Subscribe to HTTPS endpoints and receive real-time notifications for messages and campaigns. List available events with GET /api/webhooks/events (no auth).
message_receivedmessages
Inbound message from a contact.
{
"event": "message_received",
"timestamp": "2026-01-01T12:00:00.000Z",
"data": {
"sessionId": "uuid",
"from": "+15551234567",
"text": "Hello",
"messageId": "msg-id"
}
}message_sentmessages
Outbound message accepted for delivery.
{
"event": "message_sent",
"timestamp": "2026-01-01T12:00:00.000Z",
"data": {
"sessionId": "uuid",
"to": "+15551234567",
"messageId": "msg-id"
}
}message_deliveredmessages
Delivery receipt for an outbound message.
{
"event": "message_delivered",
"timestamp": "2026-01-01T12:00:00.000Z",
"data": {
"sessionId": "uuid",
"messageId": "msg-id",
"deliveredAt": "2026-01-01T12:00:00.000Z"
}
}message_readmessages
Read receipt for an outbound message.
{
"event": "message_read",
"timestamp": "2026-01-01T12:00:00.000Z",
"data": {
"sessionId": "uuid",
"messageId": "msg-id",
"readAt": "2026-01-01T12:00:00.000Z"
}
}message_failedmessages
Outbound message could not be sent.
{
"event": "message_failed",
"timestamp": "2026-01-01T12:00:00.000Z",
"data": {
"sessionId": "uuid",
"messageId": "msg-id",
"error": "Session not connected"
}
}campaign_progresscampaigns
A campaign recipient was processed.
{
"event": "campaign_progress",
"timestamp": "2026-01-01T12:00:00.000Z",
"data": {
"campaignId": "uuid",
"recipientId": "uuid",
"phone": "+15551234567",
"status": "sent"
}
}