API referenceWebhooks

Create a webhook endpoint

POST
/v2/webhook-endpoints

Starts sending the chosen events to url. The response carries the signing secret ONCE. The endpoint receives only conversations the key’s member can see. Subscribing to message, conversation or contact events also needs messages:read, conversations:read or contacts:read on the key. For WhatsApp Web connections you are responsible for send volume and the ban risk. Deliveries are at-least-once: dedupe on the event id (also in Gauge-Event-Id). Order is NOT guaranteed, not even within one conversation — use occurredAt and the snapshot in the payload. A non-2xx answer is retried after 30 s, 5 min, 1 h and 6 h. An endpoint failing every delivery for 3 days is switched off and its owner is told.

Authorization

ApiKey
headerAuthorizationBearer <token>

An API key from Developers → API keys: Authorization: Bearer gauge_live_… (or pulse_k_live_…).

Header Parameters

Gauge-Version?string

A dated version. Default 2026-10-21.

Idempotency-Key*string

Required on every POST. Retries with the same key replay the first response for 24 h.

Length1 <= length <= 255

Request Body

application/json
  1. body
url*string
Formaturi
Lengthlength <= 2048
events*array<>
Items1 <= items
connectionIds?array<>|
Items1 <= items <= 50
projectId?|
Formatuuid
apiVersion?"2026-10-21"
Value in"2026-10-21"
enabled?boolean

Response Body

The endpoint, with its signing secret (shown once).

application/json
  1. response
id*string
Formatuuid
url*string
events*array<string>

Exact event names, family.* prefixes, or *.

connectionIds*array<>|

Only events on these connections; null for every connection.

projectId*|

Only events of this App; null for every App and none.

Formatuuid
apiVersion*|

The payload version. Null on endpoints created before API v2 (support events only).

enabled*boolean
disabledReason*|

Set when Gauge switched the endpoint off after failing for days.

Value in"consecutive_failures"
disabledAt*|
Formatdate-time
ownerMemberId*|

Whose visibility the endpoint has: it only receives conversations this member can see.

Formatuuid
createdAt*string
Formatdate-time
secretRotatedAt*|
Formatdate-time
previousSecretExpiresAt*|
Formatdate-time
lastDeliveryStatus*|
Value in"pending""delivering""delivered""failed""dead"
lastDeliveryAt*|
Formatdate-time
successRate24h*|
Range0 <= value <= 1
secret*string

The signing secret. Shown once: store it now.

Example Request
curl -X POST 'https://app.gauge.chat/backend/v2/webhook-endpoints' \  -H 'Idempotency-Key: string' \  -H 'Content-Type: application/json' \  -d '{  "url": "http://example.com",  "events": [    "string"  ]}'
Example Response
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "url": "string",  "events": [    "string"  ],  "connectionIds": [    "727129f8-6680-44ef-a207-d136cf0c29f0"  ],  "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",  "apiVersion": "string",  "enabled": true,  "disabledReason": "consecutive_failures",  "disabledAt": "2019-08-24T14:15:22Z",  "ownerMemberId": "a8961912-4bf3-4418-9ed8-fe7fa367bf97",  "createdAt": "2019-08-24T14:15:22Z",  "secretRotatedAt": "2019-08-24T14:15:22Z",  "previousSecretExpiresAt": "2019-08-24T14:15:22Z",  "lastDeliveryStatus": "pending",  "lastDeliveryAt": "2019-08-24T14:15:22Z",  "successRate24h": 0,  "secret": "string"}