Webhooks let you receive real-time WhatsApp events — incoming messages, session status changes, group updates, presence updates, and more — as HTTP POST requests to a URL you control. Titan signs every delivery with an HMAC-SHA256 signature so you can verify the payload is genuine. Every webhook delivery includes anDocumentation Index
Fetch the complete documentation index at: https://docs.usetitan.app/llms.txt
Use this file to discover all available pages before exploring further.
X-Webhook-Signature header containing the HMAC-SHA256 signature computed from the raw request body using your hmacKey. You set the hmacKey at creation time and it is shown only once.
Titan supports 30 event types across messages, sessions, groups, presence, calls, contacts, chats, labels, newsletters, blocklists, and history sync. Pass an empty events array to subscribe to all events.
Webhook object
Unique webhook identifier.
Target URL for webhook delivery.
Subscribed event types. Empty array means all events.
Session name filter.
null means events from all sessions are delivered.Whether the webhook is currently active.
Custom HTTP headers included with each delivery.
Retry configuration for failed deliveries.
ISO 8601 timestamp when the webhook was created.
Create a webhook
POST /api/webhooks
Creates a new webhook subscription. The hmacKey you supply is used to sign every delivery — store it as you would a password.
Target HTTPS URL for webhook delivery. Must be publicly reachable. Private IPs and localhost are rejected.
Event types to subscribe to. Pass an empty array or omit to receive all events. Available events:
message.received, message.sent, message.ack, message.revoked, message.reaction, message.edited, message.update, message.delete, message.vote, session.status, session.qr, session.connected, session.logged_out, group.update, group.participant, presence.update, call.received, call.missed, call.accepted, call.rejected, contact.update, chat.archive, chat.mute, chat.read, chat.clear, chat.delete, labels.update, newsletter.update, blocklist.update, history.sync, command.result.Filter deliveries to events from this session only. Omit to receive events from all sessions.
Secret key for HMAC-SHA256 signature verification. Titan computes
HMAC-SHA256(rawBody, hmacKey) and includes the hex digest in the X-Webhook-Signature header.Custom HTTP headers to include with each delivery. Maximum 10 headers.
Retry configuration for failed deliveries (non-2xx responses or timeouts).
Unique webhook ID. Use this to update or delete the webhook.
The HMAC signing key. Only returned in this response — store it now.
List webhooks
GET /api/webhooks
Returns all webhooks for your account. The hmacKey is not included in list or get responses.
Get a webhook
GET /api/webhooks/{id}
Returns details for a specific webhook. The hmacKey is not returned.
Webhook ID.
Update a webhook
PUT /api/webhooks/{id}
Updates a webhook. All fields are optional — only the fields you include are changed.
Webhook ID.
New target URL.
New list of subscribed event types.
New session filter.
New HMAC signing key. The new key takes effect immediately.
Enable or disable the webhook.
Replacement list of custom headers (replaces existing headers entirely).
Updated retry configuration.
Delete a webhook
DELETE /api/webhooks/{id}
Permanently deletes a webhook. Deliveries in flight will still complete.
Webhook ID.
Verifying webhook signatures
When you set anhmacKey, Titan includes an X-Webhook-Signature header with every delivery. Verify it by computing your own HMAC and comparing: