> ## Documentation Index
> Fetch the complete documentation index at: https://docs.instaview.sk/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Webhook

Returns a single webhook configuration by ID.

## Overview

Retrieve detailed information about a specific webhook configuration, including its health status, subscribed events, and configuration details.

## Authentication

<ParamField header="Authorization" type="string" required>
  Bearer token with `read:webhooks` scope
</ParamField>

## Path Parameters

<ParamField path="id" type="string" required>
  The webhook configuration ID (UUID v4)
</ParamField>

## Response

<ResponseField name="id" type="string">
  Unique identifier for the webhook
</ResponseField>

<ResponseField name="apiKeyId" type="string">
  The API key ID this webhook belongs to
</ResponseField>

<ResponseField name="url" type="string">
  The endpoint URL receiving webhook notifications
</ResponseField>

<ResponseField name="name" type="string">
  Human-readable name for the webhook
</ResponseField>

<ResponseField name="description" type="string">
  Description of the webhook's purpose
</ResponseField>

<ResponseField name="headers" type="array">
  Custom headers configured for this webhook. Sensitive header values are masked.
</ResponseField>

<ResponseField name="events" type="array">
  Array of subscribed event type labels
</ResponseField>

<ResponseField name="isActive" type="boolean">
  Whether the webhook is currently active
</ResponseField>

<ResponseField name="maxRetries" type="number">
  Maximum retry attempts for failed deliveries
</ResponseField>

<ResponseField name="timeoutMs" type="number">
  Request timeout in milliseconds
</ResponseField>

<ResponseField name="consecutiveFailures" type="number">
  Current count of consecutive delivery failures
</ResponseField>

<ResponseField name="circuitOpenedAt" type="string">
  ISO 8601 timestamp when circuit breaker was triggered (null if closed)
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 timestamp when webhook was created
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO 8601 timestamp when webhook was last updated
</ResponseField>

## Example Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET https://api.instaview.sk/webhooks/550e8400-e29b-41d4-a716-446655440000 \
    -H "Authorization: Bearer sk_your_key_here"
  ```

  ```javascript Node.js theme={null}
  const webhookId = '550e8400-e29b-41d4-a716-446655440000';

  const response = await fetch(
    `https://api.instaview.sk/webhooks/${webhookId}`,
    {
      headers: {
        'Authorization': `Bearer ${process.env.INSTAVIEW_API_KEY}`
      }
    }
  );

  const { data } = await response.json();
  console.log(`Webhook: ${data.name}`);
  console.log(`Events: ${data.events.join(', ')}`);
  console.log(`Active: ${data.isActive}`);
  ```

  ```python Python theme={null}
  webhook_id = '550e8400-e29b-41d4-a716-446655440000'

  response = requests.get(
      f'https://api.instaview.sk/webhooks/{webhook_id}',
      headers={
          'Authorization': f'Bearer {os.environ["INSTAVIEW_API_KEY"]}'
      }
  )

  data = response.json()['data']
  print(f'Webhook: {data["name"]}')
  print(f'Events: {", ".join(data["events"])}')
  print(f'Active: {data["isActive"]}')
  ```
</CodeGroup>

## Example Response

```json theme={null}
{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "apiKeyId": "api-key-uuid",
    "url": "https://api.example.com/webhooks/instaview",
    "name": "Production Webhook",
    "description": "Receives interview completion notifications",
    "headers": [
      { "name": "Authorization", "isMasked": true },
      { "name": "X-Custom-Header", "isMasked": false }
    ],
    "events": ["interview.completed", "analysis.completed"],
    "isActive": true,
    "maxRetries": 3,
    "timeoutMs": 30000,
    "consecutiveFailures": 0,
    "circuitOpenedAt": null,
    "createdAt": "2024-01-15T10:30:00Z",
    "updatedAt": "2024-01-15T10:30:00Z"
  }
}
```

## Error Responses

<AccordionGroup>
  <Accordion title="404 - Webhook Not Found">
    ```json theme={null}
    {
      "success": false,
      "error": {
        "code": "RESOURCE_NOT_FOUND",
        "message": "Webhook configuration not found",
        "details": {
          "resourceType": "WebhookConfig",
          "resourceId": "invalid-uuid"
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="403 - Access Denied">
    ```json theme={null}
    {
      "success": false,
      "error": {
        "code": "RESOURCE_ACCESS_DENIED",
        "message": "Access denied to this webhook configuration"
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="List Webhooks" icon="list" href="/api-reference/webhooks/list-webhooks">
    List all webhook configurations
  </Card>

  <Card title="Update Webhook" icon="pen" href="/api-reference/webhooks/update-webhook">
    Update webhook configuration
  </Card>
</CardGroup>
