Webhooks

Create a webhook endpoint

Subscribe an endpoint to one or more events.

POST
/v1/webhooks

Subscribe an endpoint to one or more events. The response carries the signing secret, and this is the only time it is returned. Endpoints must be publicly reachable HTTPS URLs on port 443; private and internal addresses are refused with 422 webhook-url-not-allowed. Needs a plan that includes webhooks; otherwise 403 plan-limit.

Authorization

deployToken
headerAuthorizationBearer <token>

A project deploy token, minted in the console under Settings, Developer, API tokens. Send the whole value, including the numeric prefix before the |. A token carries a set of abilities (push, pull, manage, read, write) and each operation requires one of them. Tokens do not inherit from each other: a manage token cannot read the glossary unless it also has read.

Request Body

application/json
  1. body
url*string
Formaturi
Lengthlength <= 2048
events*array<>
Items1 <= items

Response Body

The endpoint, with its signing secret.

application/json
  1. response
id?integer
url?string
Formaturi
events?array<>
active?boolean

Whether the endpoint receives deliveries. Paused endpoints miss events; nothing is sent later.

created_at?|
Formatdate-time
last_delivered_at?|

When a delivery to this endpoint last succeeded.

Formatdate-time
secret?string

The signing secret (whsec_...). It is returned in this response only and can never be read again. Use it to verify X-Transglot-Signature.

curl -X POST 'https://api.transglot.ai/v1/webhooks' \  -H 'Content-Type: application/json' \  -d '{  "url": "https://ci.example.com/hooks/transglot",  "events": [    "batch.completed",    "batch.failed"  ]}'
{  "id": 8,  "url": "https://ci.example.com/hooks/transglot",  "events": [    "batch.completed",    "batch.failed"  ],  "active": true,  "created_at": "2026-10-12T10:02:19+00:00",  "last_delivered_at": null,  "secret": "whsec_Zq8mB3vN6xR1tY4uI7oP0aS2dF5gH8jK9lQ3wE6r"}