> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.videogen.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.videogen.io/_mcp/server.

# List webhooks

GET https://api.videogen.io/v1/webhooks/endpoints

List configured webhook endpoints for your account. Cursor-paginated; see the [Pagination](/pagination) guide.

Reference: https://docs.videogen.io/rest-api-reference/webhooks/list-webhook-endpoints

## Authentication

- `Authorization` header (bearer token, required) — API key from [app.videogen.io/api](https://app.videogen.io/api). The full key is only shown once when you create it.

## Request

### Query parameters

- `limit` (integer, optional, default: 50) — Maximum number of items to return in the page. Defaults to 50; capped at 200. See [Pagination](/pagination).
- `cursor` (string, optional) — Opaque pagination cursor returned as `nextCursor` by the previous page. Omit on the first request. Cursors are tied to the endpoint that produced them and must be passed unmodified. See [Pagination](/pagination).

## Response

### 200

Configured endpoints

- `endpoints` (list of WebhookEndpoint, required)
- `hasMore` (boolean, required) — When true, there are more endpoints available. Pass `nextCursor` as the `cursor` query param to fetch the next page.
- `nextCursor` (string, required, nullable) — Opaque cursor to fetch the next page. `null` when `hasMore` is false.

## Types

### WebhookEndpoint

- `endpointId` (string, required) — Webhook endpoint id (e.g. `ep_...`).
- `url` (string, required)
- `events` (list of enum, required)
  - Allowed values: `tool_execution.succeeded`, `tool_execution.failed`, `tool_execution.cancelled`, `workflow_run.succeeded`, `workflow_run.failed`, `workflow_run.cancelled`, `project_export.succeeded`, `project_export.failed`, `project_export.cancelled`, `assistant_message.succeeded`, `assistant_message.failed`, `assistant_message.cancelled`, `file.upload.completed`, `file.upload.failed`, `file.playback_ready`, `file.download_ready`, `file.analysis_completed`, `file.analysis_failed`
- `createdAt` (integer, required) — Seconds since epoch (Unix timestamp) when the endpoint was created.
- `description` (string, optional, nullable)
- `signingSecret` (string, optional) — HMAC secret for verifying [Standard Webhooks](https://www.standardwebhooks.com/) signatures. Only returned once on create; store it securely.
- `signingSecretLast4` (string, optional) — Last four characters of the signing secret, for display purposes.

## Examples

**Response**

```json
{
  "endpoints": [
    {
      "endpointId": "ep_28KVX7vT9mQ2sL4nR6pB1cD0fG",
      "url": "https://webhooks.example.com/videogen",
      "events": [
        "tool_execution.succeeded",
        "tool_execution.failed",
        "tool_execution.cancelled"
      ],
      "createdAt": 1705308600,
      "description": "Primary webhook endpoint for tool execution notifications",
      "signingSecret": null,
      "signingSecretLast4": "9f3d"
    }
  ],
  "hasMore": false,
  "nextCursor": null
}
```

**SDK Code**

```typescript
import { VideoGen } from "@videogen/sdk";

const client = new VideoGen({ apiKey: "sk_videogen_live_..." });

await client.webhooks.listWebhookEndpoints();
```

```python
from videogen import VideoGen

client = VideoGen(api_key="sk_videogen_live_...")

client.webhooks.list_webhook_endpoints()
```