Skip to main content
POST
Send Message

Headers

Authorization
string | null

Body

application/json

Request to send a direct message.

phone_number
string
required

Recipient phone number in E.164 or local WhatsApp format.

Required string length: 5 - 50
whatsapp_account_id
string<uuid>
required
content
string | null

Message text body. Required unless template_id supplies the content.

Minimum string length: 1
template_id
string<uuid> | null
custom_variables
Custom Variables · object

Template variables merged into the outgoing content before queueing.

message_type
string
default:text

Outbound object type. Supported values: text, image, video, voice, document, location, contact.

media_type
string | null

Optional media type hint, typically image, video, document, or audio.

media_url
string | null

Publicly fetchable URL for media/document payloads.

media_base64
string | null

Base64-encoded media content or data URI (data:…;base64,…). Takes precedence over media_url when both are provided.

filename
string | null

Filename for document sends. Required when media_base64 is used for documents. If not provided for URL-based sends, it is inferred from the URL path.

mimetype
string | null

MIME type hint (e.g. 'image/png', 'application/pdf'). Required when media_base64 is raw base64 (not a data URI). If omitted, guessed from filename or defaults to 'application/octet-stream'.

caption
string | null

Optional caption for image, video, and document messages.

latitude
number | null

Latitude for location messages.

longitude
number | null

Longitude for location messages.

location_title
string | null

Display label sent with a location pin.

location_address
string | null

Optional address or fallback label for location messages.

contacts
Contacts · object[] | null

Contact cards for contact messages. The first item is serialized to a vCard for delivery.

contact_id
string<uuid> | null
scheduled_for
string<date-time> | null

Optional future delivery time. When set, the API returns status=scheduled instead of queueing immediately.

validate_phone
boolean
default:true

When true, validate the destination phone before accepting the request.

status_callback_url
string | null

Reserved callback URL for downstream status delivery integrations.

Response

Successful Response

Response from sending a message.

success
boolean
required
message_id
string<uuid>
required
status
string
required
run_id
string | null