The Webhooks API lets you configure and manage webhooks to receive real-time event notifications from DMLY (incoming/outgoing messages, contact updates, tag changes, and more).
Base URLhttps://api.dmly.io/api
AuthenticationAll endpoints require the x-api-key header:
x-api-key: YOUR_API_KEY
Endpoints
List WebhooksGET /v1/webhooksRetrieve a list of webhooks.
Response: 200 OK — Array of Webhook
Query ParametersName | In | Type | Required | Description |
limit | query | string | No | Max number of results |
page | query | string | No | Page number for pagination |
Example Requestcurl -X GET "https://api.dmly.io/api/v1/webhooks?page=1&limit=20" \
-H "x-api-key: YOUR_API_KEY"[
{
"id": "wh_001",
"name": "My Webhook",
"serverUrl": "https://example.com/webhook",
"active": true,
"events": [
"incoming_whatsapp_message",
"outgoing_whatsapp_message",
"contact_created"
],
"createdAt": "2026-02-20T10:00:00.000Z",
"updatedAt": "2026-02-20T10:00:00.000Z"
}
]POST /v1/webhooksCreate a new webhook.
Request Body: Webhook (application/json)
Response: 200 OK — Webhook
Example Requestcurl -X POST "https://api.dmly.io/api/v1/webhooks" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"name": "My Webhook",
"serverUrl": "https://example.com/webhook",
"active": true,
"events": [
"incoming_whatsapp_message",
"outgoing_whatsapp_message",
"contact_created"
]
}'{
"id": "wh_001",
"name": "My Webhook",
"serverUrl": "https://example.com/webhook",
"active": true,
"events": [
"incoming_whatsapp_message",
"outgoing_whatsapp_message",
"contact_created"
],
"createdAt": "2026-02-20T10:00:00.000Z",
"updatedAt": "2026-02-20T10:00:00.000Z"
}PUT /v1/webhooks/{webhookId}Update an existing webhook by its unique ID.
Request Body: Webhook (application/json)
Response: 200 OK — Webhook
Path ParametersName | In | Type | Required | Description |
webhookId | path | string | Yes | Webhook unique ID |
Example Requestcurl -X PUT "https://api.dmly.io/api/v1/webhooks/wh_001" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"name": "My Webhook (Updated)",
"serverUrl": "https://example.com/webhook",
"active": true,
"events": [
"incoming_whatsapp_message",
"contact_tag_added"
]
}'{
"id": "wh_001",
"name": "My Webhook (Updated)",
"serverUrl": "https://example.com/webhook",
"active": true,
"events": [
"incoming_whatsapp_message",
"contact_tag_added"
],
"createdAt": "2026-02-20T10:00:00.000Z",
"updatedAt": "2026-02-20T10:20:00.000Z"
}DELETE /v1/webhooks/{webhookId}Delete a webhook by its unique ID.
Response: 200 OK — DeleteResponse
Path ParametersName | In | Type | Required | Description |
webhookId | path | string | Yes | Webhook unique ID |
Example Requestcurl -X DELETE "https://api.dmly.io/api/v1/webhooks/wh_001" \
-H "x-api-key: YOUR_API_KEY"{
"success": true
}{
"id": "string",
"name": "string",
"serverUrl": "string",
"active": true,
"events": [
"incoming_whatsapp_message",
"outgoing_whatsapp_message",
"incoming_instagram_message",
"outgoing_instagram_message",
"incoming_telegram_message",
"outgoing_telegram_message",
"incoming_messenger_message",
"outgoing_messenger_message",
"incoming_website_message",
"outgoing_website_message",
"contact_created",
"contact_tag_added",
"contact_tag_removed"
],
"createdAt": "string",
"updatedAt": "string"
}[
{
// Webhook object
}
]{
"success": true
}Keep webhook endpoints fast and return HTTP 200 quickly.
Use a queue/worker on your server to process webhook payloads asynchronously.
Store webhook events in logs for debugging and audit trails.
Only subscribe to the events you actually need to reduce noise.
Always use HTTPS endpoints for production webhooks.