Link the phone
Sign in at dashboard.deltamsg.live and scan the code once.
Your phones are already linked. Send the key, the number, and the text.
Open the API docsPOST /api/messages
{
"to": "+254712345678",
"text": "Your order is ready."
}202 queuedOne account key covers every workspace you run, and each workspace already has its phone.
Sign in at dashboard.deltamsg.live and scan the code once.
Create one account key. It works for every workspace you own or manage, including new ones.
One call queues the message. Delivery stays paced with that phone’s other sends.
Authorization
Bearer dm_live_your_key on https://api.deltamsg.live/api/messages. A 202 means the message is queued. Read it back from the same path. Keys made for a single workspace keep working.
Authorization
Bearer dm_live_your_keyEvery workspace you manage
POST /api/messages
{
"to": "+254712345678",
"text": "Your order is ready.",
"instances": ["<sales id>", "<support id>"]
}202 queued · soonest in the listSeveral numbers
Leave the instance out and the message goes from your main number, which you pick on the API keys page. Pass one instance to use that number, or a list and each message goes from whichever can send it soonest, while a customer stays on the number they already talk to. If a number drops or falls behind, waiting messages move to another in the list. Copy instance ids from the API keys page.
Bulk
POST /api/messages/batch with a text and a list of phones. It sends from your main number, or is shared across the instances you list, faster and emptier ones taking more. Each share sends in the background with that number’s gap and daily limit. Poll /api/campaigns/{id}/queue for progress.
POST /api/messages/batch
{
"text": "Your order is ready.",
"phones": ["+254712345678", "+254798765432"]
}202 queued · spread · pacedWhatsApp bans numbers that people block or report. Every API send is checked first, across all your numbers.
Anyone who replies STOP is never messaged again until they reply START. The same text to the same person twice in a day is refused. Someone who hasn’t written to you gets at most 3 messages a day.
A freshly linked number starts at 20 messages a day, then 50 from day 3, 150 from day 7 and 300 from day 14. Your plan’s full limit applies from day 21. You can end it early for a number with a history, or start it again, from the dashboard or the API. Every send waits a random gap.
Message only people who asked to hear from you. Say who you are, put their name or order in the text, retry with an idempotency_key, and back off on 429.
Replies
Point one webhook at your server for all your numbers, or only the ones you pick. Events are message.sent, message.delivered, message.read, message.failed, message.inbound, and session.status, and each says which number it came from. Each one is signed and retried for about a day until you answer. Photos and documents your customers send can be downloaded too.
Full reference