Skip to main content

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

StatusMeaning
queuedAccepted, waiting to be processed
sentDelivered to the channel provider
deliveredConfirmed delivered to recipient
failedDelivery failed — see error field