Notify API
All endpoints require X-Api-Key header. All return 202 Accepted.
Valid :channel values: whatsapp, telegram, sms
POST /v1/notify/:channel/text
Send a text message.
Request
{
"to": "string",
"text": "string (max 4096)",
"channelAccountId": "UUID (optional)",
"idempotencyKey": "string max 100 (optional)"
}
Response 202
{
"id": "msg_01j...",
"tenantId": "ten_01j...",
"provider": "whatsapp",
"to": "+905551234567",
"type": "text",
"status": "queued",
"body": { "text": "string" },
"createdAt": "ISO8601"
}
POST /v1/notify/:channel/media
Send an image, video, audio, or document.
Request
{
"to": "string",
"type": "image | video | audio | document",
"url": "string (optional)",
"caption": "string max 1024 (optional)",
"filename": "string max 255 (optional)",
"channelAccountId": "UUID (optional)",
"idempotencyKey": "string max 100 (optional)"
}
Response 202 — same shape as text, with type set to the media type.
POST /v1/notify/:channel/bulk
Send up to 100 text messages in one call.
Request
{
"messages": [
{ "to": "string", "text": "string", "idempotencyKey": "string (optional)" }
]
}
messages array: 1–100 items.
Response 202 — array of message objects, one per input message.
GET /v1/notify/messages/:id
Check the delivery status of a message using the messageId returned by any send endpoint.
Requires X-Api-Key header — no dashboard login needed.
Example
curl https://api.notifo.cloud/v1/notify/messages/42a99bbc-25da-45c7-95cb-43d86178f887 \
-H "X-Api-Key: ntf_YOUR_KEY"
Response 200
{
"messageId": "42a99bbc-25da-45c7-95cb-43d86178f887",
"status": "sent",
"provider": "whatsapp",
"to": "+989133326754",
"type": "text",
"body": { "text": "Your order is on the way!" },
"externalId": "waid.abc123",
"error": null,
"sentAt": "2026-06-05T19:48:00.000Z",
"createdAt": "2026-06-05T19:47:58.000Z",
"updatedAt": "2026-06-05T19:48:01.000Z"
}
Status values
| Status | Meaning |
|---|---|
queued | Accepted, waiting to be processed |
sent | Delivered to the channel provider |
delivered | Confirmed delivered to recipient |
failed | Delivery failed — see error field |