Skip to main content
Auth: TokenAccount or TokenInstanceRate-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.
To fetch a message by ID use GET /api/chat/getMessage/:instance; that endpoint no longer belongs to the messages module.

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 with 55 (Brazil), the service automatically tries variations:
  • With 9 (5511999999999)
  • Without 9 (551199999999)
This works around a long-standing inconsistency in older area codes. If the number is not found in any of the variations, the handler returns 400 Number is not registered on WhatsApp.

Common optional fields

delay is in seconds (not milliseconds). A value of 3 = 3 s of “typing”.
Reactions (/api/message/reaction/:instance) do not support delay/replyTo/mention, the payload is minimal (messageId, reaction, participant). Status (/api/message/status/:instance) also does not use number/replyTo (it always goes to status@broadcast).

Standard response (200)

All send endpoints return the same MessageSentDetails envelope:
Optional fields in 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). statussent | 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.