Webhooks

Create a webhook endpoint

Point transglot at an HTTPS URL of yours, choose the events it receives and store its signing secret.

You need to be an Admin of the workspace or an Owner of its account, on the Starter plan or higher. Build and deploy the receiving endpoint first, so it can answer the first delivery.

In the console

Open the project's developer settings

Open the project, then Settings → Developer. The Webhooks section lists the project's endpoints.

Start a new endpoint

Select New endpoint. The Create webhook endpoint dialog opens.

Enter the URL

Enter the Endpoint URL, for example https://ci.example.com/hooks/transglot. It must be an HTTPS URL on the default port (443) whose host resolves to a public address.

Choose the events

Under Events, tick each event the endpoint should receive. They are grouped as Batches, Keys, Translations, Project and Quality. The event reference says when each one fires.

Create it and copy the secret

Select Create endpoint. Copy your signing secret appears with the secret, which starts with whsec_. Select Copy and store it where your receiver can read it, for example as an environment variable. It is shown only once and cannot be recovered later.

The endpoint is now listed with its Events, when it Last delivered, an Active switch, and Deliveries and Delete actions.

Lost the secret?

There is no way to show it again. Delete the endpoint and create a new one, then update your receiver with the new secret.

With the API

POST /v1/webhooks creates an endpoint with a deploy token that has the manage ability. The response is the only place the secret appears.

Create an endpoint
curl https://api.transglot.ai/v1/webhooks \
  -H "Authorization: Bearer $TRANSGLOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://ci.example.com/hooks/transglot",
    "events": ["batch.completed", "batch.failed"]
  }'
201 Created
{
  "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"
}

GET /v1/webhooks lists the project's endpoints (never their secrets), and DELETE /v1/webhooks/{id} removes one. GET /v1/webhooks/events returns the event catalog with a representative payload for each event, which is useful for building a field mapper. See the API reference.

Pause or delete an endpoint

  • Pause. Turn the Active switch off. Events stop being sent to it until you switch it back on. Events that happen while it is off are not sent later.
  • Delete. Select Delete, then Delete endpoint. The endpoint stops receiving deliveries immediately, and events that fire while it is gone are not queued or replayed.

If it does not work

What you seeWhy
The webhook URL must use https.The URL is http://. Only HTTPS is accepted
The webhook URL port 8443 is not allowed.Only port 443 is accepted
The webhook URL resolves to a private or reserved address.The host resolves to a private, loopback or otherwise internal address. Endpoints must be publicly reachable
The webhook URL host could not be resolved.The host name has no DNS record
Paused: the account plan does not include webhooks.The account's plan no longer includes webhooks. Endpoints are kept, and deliveries resume after an upgrade
Deliveries are paused.The workspace cannot send data out right now. An account owner can see why in the console

Through the API, each of the first four comes back as 422 with the type /problems/webhook-url-not-allowed and that sentence as detail.

Once deliveries are flowing, the endpoint's delivery log shows each attempt and what your endpoint answered. See Retries and redelivery.

On this page