---
title: "List supported webhook event types"
method: GET
path: "/v1/webhooks/events"
tags: ["Webhooks"]
---

# List supported webhook event types

`GET /v1/webhooks/events`

## Request

- Base URL: `https://api.talonic.com`
- URL: `https://api.talonic.com/v1/webhooks/events`
- Auth: HTTP bearer

Live catalog served from code (not a static enum) — includes run.completed ("A /v1/run pipeline finished; structured output is available, review-held fields null" — payload adds `records`, an array of `{ document_id, filename, data }` always present even for a single document (`document_id` and `filename` are nullable — null when a row's document identity cannot be resolved), alongside the legacy `structured_data`, which is still emitted but considered legacy in favor of `records`) and run.failed ("A /v1/run pipeline failed — all documents errored during ingest or extraction" — its `error` object may include `document_ids`, a best-effort array of the input document ids, present only on some failure paths) alongside the document/extraction/job/delivery/process event families.

## Response `200`

`{ data: [{ event, description }] }`. The `run.completed` and `run.failed` entries carry an extra `served_by_delivery` note: Delivery publishes them as `pipeline.completed` / `pipeline.failed` on every deployment (the outbox row, `/v1/events` and app subscriptions are unconditional); `delivery.run_signals_via_outbox` retires the legacy `run.*` fire and opens the `/v1/delivery/bindings` leg for them. Existing `/v1/webhooks` subscriptions keep working until migrated.

---

[API](https://skmtc.dev/talonic/apis/talonic-api.md) · [All operations](https://skmtc.dev/talonic/apis/talonic-api/llms.txt) · [OpenAPI document](https://skmtc.dev/talonic/apis/talonic-api/revisions/678fe5f8c9c3?raw)
