## List **get** `/v1/webhooks` Lists webhook endpoints with optional filters and pagination ### Query Parameters - `cursor: optional string` Omit for the first page. For the next page, use the exact value from the previous response's next_cursor. Opaque (base64-encoded); keyset pagination. - `enabled: optional boolean` Filter by enabled status - `limit: optional number` Number of results to return (max 1000) - `tenant_id: optional string` Filter by tenant ID. NULL bytes not allowed. ### Returns - `data: array of object { id, created_at, enabled, 6 more }` List of webhooks (signing_key omitted for security) - `id: string` Webhook ID (UUID) - `created_at: string` When the webhook was created - `enabled: boolean` Whether the webhook is active - `updated_at: string` When the webhook was last updated - `url: string` URL that receives webhook POSTs - `disabled_at: optional string` Read-only. When the webhook was disabled. Omitted when null. - `disabled_reason: optional string` Read-only. Set by the system when the webhook was disabled. Omitted when null. - `event_types: optional array of "feedback_record.created" or "feedback_record.updated" or "feedback_record.deleted" or 3 more` Event types this webhook subscribes to (empty = all) - `"feedback_record.created"` - `"feedback_record.updated"` - `"feedback_record.deleted"` - `"webhook.created"` - `"webhook.updated"` - `"webhook.deleted"` - `tenant_id: optional string` Tenant/organization identifier - `limit: number` Limit used in query - `next_cursor: optional string` Opaque cursor for the next page (keyset paging). Present only when there may be more results. Use as the cursor query param for the next page. - `offset: optional number` Offset used in query (present when offset-based; omitted when using cursor) - `total: optional number` Total count matching filters (present when offset-based; omitted when using cursor) ### Example ```http curl http://localhost:8080/v1/webhooks \ -H "Authorization: Bearer $HUB_API_KEY" ```