---
title: "Get webhook"
method: GET
path: "/v2/webhooks/{webhook_id}"
tags: ["webhooks"]
---

# Get webhook

`GET /v2/webhooks/{webhook_id}`

## Request

- Base URL: `https://api.hubstaff.com`
- URL: `https://api.hubstaff.com/v2/webhooks/{webhook_id}`
- Auth: OAuth 2
  - Authorization code: `https://account.hubstaff.com/authorizations/new`
  - Token URL: `https://account.hubstaff.com/access_tokens` scopes: `hubstaff:read`, `hubstaff:write`
- TypeScript: <https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/docs/v2/webhooks/:webhook_id/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the details of a specific webhook including its status, events, and target URL.

## Path parameters

- `webhook_id` string, required

## Response `200`

A webhook

- Webhook: Webhook model
  - `id` string, required: Webhook ID (UUID)
  - `events` string[], required: Subscribed event types, ["*"] for all
  - `target_url` string, required: The URL that receives webhook POST requests
  - `status` 'inactive' | 'pending' | 'active' | 'disabled', required: inactive: verification request not sent yet. pending: the endpoint did not echo X-Hook-Secret; call activate with the secret. active: events are delivered. disabled: verification or delivery failed; delete and recreate the webhook.
  - `created_at` string, required: Creation time in UTC, ISO 8601 without an offset
  - `updated_at` string, required: Last update time in UTC, ISO 8601 without an offset

## Other responses

- `400`: Invalid parameters
- `401`: Unauthorized
- `403`: API access is only for organizations on an active plan
- `404`: Could not find record
- `429`: Rate limit exceeded
- `503`: Webhook service unavailable

---

[API](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api.md) - [All operations](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/revisions/c6b90e4e4bdc?raw)
