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

# List Webhooks

> List all webhook endpoints registered for the caller's organization.

## Response

<ResponseField name="webhooks" type="array">
  Array of webhook objects.

  <Expandable title="Webhook object">
    <ResponseField name="id" type="string">UUID</ResponseField>
    <ResponseField name="url" type="string">Endpoint URL</ResponseField>
    <ResponseField name="event_types" type="string[]">Subscribed event types</ResponseField>
    <ResponseField name="enabled" type="boolean">Whether the webhook is active</ResponseField>
    <ResponseField name="last_delivered_at" type="string | null">ISO 8601 timestamp of last successful delivery</ResponseField>
    <ResponseField name="failure_count" type="number">Consecutive failure count (resets on success)</ResponseField>
    <ResponseField name="created_at" type="string">ISO 8601 timestamp</ResponseField>
  </Expandable>
</ResponseField>

## Example

<CodeGroup>
  ```bash curl theme={null}
  curl https://www.hitheo.ai/api/v1/webhooks \
    -H "Authorization: Bearer $THEO_API_KEY"
  ```

  ```typescript SDK theme={null}
  const webhooks = await theo.listWebhooks();
  ```
</CodeGroup>

### Response

```json theme={null}
{
  "webhooks": [
    {
      "id": "a1b2c3d4-...",
      "url": "https://your-server.com/webhooks/theo",
      "event_types": ["completion.created", "job.completed"],
      "enabled": true,
      "last_delivered_at": "2026-04-15T11:30:00.000Z",
      "failure_count": 0,
      "created_at": "2026-04-10T08:00:00.000Z"
    }
  ]
}
```

<Note>
  The `signing_secret` is never returned after creation. If you lose it, use the [rotate secret](/api-reference/webhooks/rotate-secret) endpoint to generate a new one.
</Note>
