---
title: "Create a webhook"
method: POST
path: "/v1/webhooks"
tags: ["Webhooks"]
---

# Create a webhook

`POST /v1/webhooks`

## Request

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

## Request body

- object
  - `url` string, uri, required
  - `secret` string: HMAC signing secret (defaults to empty).
  - `events` string[]: Event types to subscribe to (default: extraction.complete, extraction.failed). Includes run.completed / run.failed — fired on POST /v1/run pipeline completion. run.completed's payload carries records (array of { document_id, filename, data }, always present; document_id and filename are nullable — null when a row's document identity cannot be resolved) alongside the legacy structured_data; run.failed's error object may carry document_ids (best effort, present on some failure paths only). See GET /v1/webhooks/events for the full, current catalog.
  - `source_connection_id` string, uuid, nullable
  - `is_active` boolean

## Response `201`

Created webhook

## Other responses

- `400`: Missing url

---

[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)
