Incoming messages
Nor can you list a conversation, fetch chat history, or look up a message you did not send. What this rules out: chatbots, auto-responders, support inboxes, anything that reacts to what a customer typed. What to do meanwhile: somebody reads the phone. For high volume, keep the conversation one-way and route replies to a channel you can automate — a link to a web form, a phone number, an email address.Webhooks
There is no way to subscribe to events. Nothing is pushed to your server: not incoming messages, not delivery receipts, not read receipts, not connection changes. What to do meanwhile: pollGET /v1/instances on a schedule to notice a number going offline — see If your number disconnects. For everything else, the answer is simply that the data is not available.
Delivery and read receipts
A send returnsprovider_status — the delivery state at the instant of sending, typically PENDING. It is a snapshot, not a receipt. There is no way to ask later whether a message was delivered, read, or failed on the recipient’s end.
What to do meanwhile: treat a 200 as “handed over to WhatsApp successfully” and design around not knowing more. If confirmation matters, ask for a reply.
Bulk send
One request sends one message to one recipient. There is no endpoint that takes a list. What to do meanwhile: loop on your side and pace it against your rate limit, readingX-RateLimit-Remaining and honouring Retry-After. Check the numbers first.
Scheduling
A request sends immediately. There is nosend_at, and nothing is queued for later.
What to do meanwhile: schedule it on your side — a cron job, a task queue, your framework’s scheduler — and call the API at the moment you want the message to go.
File upload
There is no endpoint to upload a file. Media is sent from a public link you host. See Sending media.Group messages
to is a single recipient’s phone number. Sending to a WhatsApp group is not supported, and there is no way to create, list or manage groups.
Poll results and button taps
Polls render and people can vote, but there is no endpoint that returns the results. The same is true of button taps and list selections: the response goes into the chat on the phone, not to your system. What to do meanwhile: ask for a typed reply — “Reply MORNING or EVENING” — which at least reaches a human reading the conversation.Message templates
There is no template system, no pre-approval process, and no template variables. You build the message text yourself on each send.Editing or deleting a sent message
Once a message is sent it cannot be recalled or edited through this API.Contacts, profile and presence
You cannot read or set the number’s profile name or picture, manage a contact list, or see whether someone is online.What you can do
Send 12 message types
Text, image, video, document, voice note, sticker, location, contact, reaction, poll, list, buttons.
Check numbers
Find out who is on WhatsApp before you send.
Manage your numbers
Create, connect, rename, disconnect and delete — all from the API.
Reply and react
Quote your own earlier messages and react to them.
This page describes the API as it stands today. If something here matters to your project, tell your account contact — it is useful to know what people are actually blocked on.