TokenAccount or TokenInstance • Rate-limit: Global (100/min) • Idempotent: no
The /api/message/* module covers sending every format supported by WhatsApp, text, media, sticker, location, contact, reaction, poll, carousel, buttons, list, form, PIX and status (stories). All routes validate instance ownership and accept either TokenAccount or TokenInstance.
Available endpoints
Common structure
Recipient (number or to)
Most endpoints accept the recipient in the number field. Supported formats:
- Plain number:
"5511999999999"(preferred). - Private JID:
"5511999999999@s.whatsapp.net". - Hidden JID (
@lid):"123456789012345@lid", anonymous identifier WhatsApp uses in groups/channels when the real number is not exposed. - Group JID:
"120363406289005073@g.us". - Newsletter JID:
"120363422585881117@newsletter". - Status broadcast:
"status@broadcast".
Brazilian number behavior
For numbers starting with55 (Brazil), the service automatically tries variations:
- With 9 (
5511999999999) - Without 9 (
551199999999)
400 Number is not registered on WhatsApp.
Common optional fields
delay is in seconds (not milliseconds). A value of 3 = 3 s of “typing”.Standard response (200)
All send endpoints return the sameMessageSentDetails envelope:
data: mentions (when there is a mention), replyTo (when there is a quote), chat.groupName (when it is a group), mediaUrl/mediaMimeType/mediaSize/fileName (when it is media), vcard (when it is a contact).
status ∈ sent | disconnected | invalid_number | mentions_not_supported | reply_message_not_found | reply_message_instance_mismatch | private_reply_failed | send_failed | media_download_failed | media_upload_failed | media_validation_failed | unsupported_media_type | image_conversion_failed | sticker_upload_failed | audio_conversion_failed | invalid_message_id | missing_participant | invalid_request.
Common errors
Error envelope:
Observed limits
Next steps
Send text
The most-used endpoint, ideal as a “Hello World”.
Send media
Image, video, audio and document by URL or base64.
Fetch message by ID
Retrieves a specific message from the history.
Webhooks
Receive
message.exchange events in real time.