Webhooks
Outgoing webhooks (Standard Webhooks signatures).
8 endpoints.
GET /v1/webhooksPOST /v1/webhooksGET /v1/webhooks/{webhook_id}PATCH /v1/webhooks/{webhook_id}DELETE /v1/webhooks/{webhook_id}POST /v1/webhooks/{webhook_id}/rotate-secretPOST /v1/webhooks/{webhook_id}/testGET /v1/webhooks/{webhook_id}/deliveries
GET
/v1/webhooksWebhooks List
Needs a key or a dashboard session
Responses
- 200Successful Response
WebhookOut[]
POST
/v1/webhooksWebhooks Create
Needs a key or a dashboard session
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Idempotency-Key | header | string | null | no | Unique per logical write (8-255 chars). Retries with the same key are safe. · pattern ^[A-Za-z0-9_\-:.]{8,255}$ |
Request body application/json WebhookIn
| Name | Type | Required | Description |
|---|---|---|---|
url | string | yes | HTTPS only.max length 2048 · pattern ^https:// |
events | "search.zero_results_spike" | "catalog.sync_failed" | "catalog.import_finished" | "translation.batch_ready" | "usage.threshold_reached" | "experiment.finished" | "billing.payment_failed" | "ping"[] | yes | |
description | string | null | no | max length 300 |
enabled | boolean | no | default true |
Responses
- 201Successful Response
WebhookCreated
GET
/v1/webhooks/{webhook_id}Webhooks Get
Needs a key or a dashboard session
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
webhook_id | path | string | yes |
Responses
- 200Successful Response
WebhookOut
PATCH
/v1/webhooks/{webhook_id}Webhooks Update
Needs a key or a dashboard session
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
webhook_id | path | string | yes |
Request body application/json WebhookPatch
| Name | Type | Required | Description |
|---|---|---|---|
url | string | null | no | max length 2048 · pattern ^https:// |
events | "search.zero_results_spike" | "catalog.sync_failed" | "catalog.import_finished" | "translation.batch_ready" | "usage.threshold_reached" | "experiment.finished" | "billing.payment_failed" | "ping"[] | null | no | |
description | string | null | no | max length 300 |
enabled | boolean | null | no |
Responses
- 200Successful Response
WebhookOut
DELETE
/v1/webhooks/{webhook_id}Webhooks Delete
Needs a key or a dashboard session
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
webhook_id | path | string | yes |
Responses
- 200Successful Response
Deleted
POST
/v1/webhooks/{webhook_id}/rotate-secretNew secret; deliveries are signed with old + new for 24 h
Needs a key or a dashboard session
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
webhook_id | path | string | yes |
Responses
- 200Successful Response
WebhookCreated
POST
/v1/webhooks/{webhook_id}/testSend a `ping` event now
Needs a key or a dashboard session
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
webhook_id | path | string | yes |
Responses
- 200Successful Response
WebhookDeliveryOut
GET
/v1/webhooks/{webhook_id}/deliveriesWebhooks Deliveries
Needs a key or a dashboard session
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
webhook_id | path | string | yes | |
cursor | query | string | null | no | max length 200 |
limit | query | integer | no | default 50 · min 1 · max 200 |
Responses
- 200Successful Response
Page_WebhookDeliveryOut_
Data shapes on this page
WebhookOut
| Name | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
url | string | yes | |
events | "search.zero_results_spike" | "catalog.sync_failed" | "catalog.import_finished" | "translation.batch_ready" | "usage.threshold_reached" | "experiment.finished" | "billing.payment_failed" | "ping"[] | yes | |
description | string | null | no | |
enabled | boolean | yes | |
failure_count | integer | no | default 0 |
created_at | string (date-time) | yes |
WebhookIn
| Name | Type | Required | Description |
|---|---|---|---|
url | string | yes | HTTPS only.max length 2048 · pattern ^https:// |
events | "search.zero_results_spike" | "catalog.sync_failed" | "catalog.import_finished" | "translation.batch_ready" | "usage.threshold_reached" | "experiment.finished" | "billing.payment_failed" | "ping"[] | yes | |
description | string | null | no | max length 300 |
enabled | boolean | no | default true |
WebhookCreated
| Name | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
url | string | yes | |
events | "search.zero_results_spike" | "catalog.sync_failed" | "catalog.import_finished" | "translation.batch_ready" | "usage.threshold_reached" | "experiment.finished" | "billing.payment_failed" | "ping"[] | yes | |
description | string | null | no | |
enabled | boolean | yes | |
failure_count | integer | no | default 0 |
created_at | string (date-time) | yes | |
secret | string | yes | whsec_... Shown once. Verify deliveries with it (Standard Webhooks). |
WebhookPatch
| Name | Type | Required | Description |
|---|---|---|---|
url | string | null | no | max length 2048 · pattern ^https:// |
events | "search.zero_results_spike" | "catalog.sync_failed" | "catalog.import_finished" | "translation.batch_ready" | "usage.threshold_reached" | "experiment.finished" | "billing.payment_failed" | "ping"[] | null | no | |
description | string | null | no | max length 300 |
enabled | boolean | null | no |
Deleted
| Name | Type | Required | Description |
|---|---|---|---|
deleted | boolean | no | default true |
id | string | yes |
WebhookDeliveryOut
| Name | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
event_id | string | yes | |
event_type | string | yes | |
status | "pending" | "succeeded" | "failed" | "dead" | yes | |
attempt | integer | yes | |
response_status | integer | null | no | |
created_at | string (date-time) | yes | |
delivered_at | string (date-time) | null | no |
Page_WebhookDeliveryOut_
| Name | Type | Required | Description |
|---|---|---|---|
data | WebhookDeliveryOut[] | yes | |
next_cursor | string | null | no | |
total | integer | null | no | Present when cheap to count. |