WhatsApp
Send Freeform Message
Send a free-text WhatsApp message within an active 24-hour session
POST
This endpoint sends a freeform (free-text) WhatsApp message to a recipient. Unlike template messages, freeform messages can contain any text but require an active 24-hour messaging window — meaning the recipient must have sent a message to your WhatsApp sender within the last 24 hours.
This endpoint is rate-limited to 5 requests per second per user.
Request Body
The ID of the WhatsApp sender to send from (obtained from the Get Senders endpoint)
The recipient’s phone number in international format (e.g.,
+1234567890)The message content to send (max 4096 characters). Optional when
media_url is provided — in that case it is used as the media caption. Audio files are the exception: WhatsApp does not support captions on audio, so the text is ignored when media_url points to an audio file. Either message or media_url is required.Optional public URL of a file to send — an image, audio file, video, or document. The file must be reachable at a public URL (WhatsApp fetches it at send time). When set,
message is used as the caption for images, videos and documents. Audio files cannot carry a caption — if you send an audio file, any message text is ignored. Either message or media_url is required.Optional filename shown to the recipient, mainly useful for documents (e.g.
invoice.pdf).Response Fields
Whether the message was sent successfully
The ID of the conversation associated with this message
The ID of the conversation message record
The ID of the WhatsApp message record
The Twilio message SID for tracking delivery
Updated session status after sending the message
Error Responses
402 Insufficient Balance
403 Session Expired
404 Not Found
503 Sender Offline
24-Hour Messaging Window
WhatsApp enforces a 24-hour messaging window policy:- When a customer sends a message to your WhatsApp Business number, a 24-hour window opens.
- During this window, you can send freeform messages without restrictions.
- After the window expires, you must use a template message to re-initiate the conversation.
- Each new customer message resets the 24-hour timer.
Notes
- Maximum message length is 4,096 characters (WhatsApp limit).
- A file (image, audio, video, or document) can be attached with
media_url. It must be hosted at a publicly reachable URL — WhatsApp fetches it at send time. When sending media,messageis optional and is used as the caption. Audio is the exception: WhatsApp does not support captions on audio files, so whenmedia_urlpoints to an audio file themessagetext is not sent. - The sender must be
online. Offline senders return a503error. - Message costs are automatically deducted from your account balance.
- Rate limit: 5 requests per second per user.

