whatsapp.message API
Send text to a phone number or provider_id, or reply in an existing chat by chat_id, from your connected WhatsApp account.
Unipile:
all inputs
✓ marks a combination proven with a real provider call. Others are wired and unit-tested; their first live run verifies them.
| Provider | Status |
|---|---|
Unipile |
live |
Unit: per_message · unmatched results billed: no
Charged per successful send. WhatsApp account restrictions apply. Text only; attachments and broadcast campaigns are not exposed.
The exact quote is returned by /v1/inspect before every call and held with headroom on execution. The quote is the price floor: if the provider's actual cost overruns it, the run bills the overrun at the same rate, never above the hold. The unused part of every hold is released.
curl https://api.routergrowth.com/v1/run \ -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \ -d '{ "capability": "whatsapp.message", "input": { "text": "..." }, "routing": {"provider": "auto"} }'
{
"properties": {
"account_id": {
"description": "Account name or ID from whatsapp.accounts. Optional when exactly one account is connected.",
"type": "string"
},
"chat_id": {
"description": "Existing chat from whatsapp.messages; must belong to the selected account.",
"type": "string"
},
"phone": {
"description": "International phone number with + and country code, e.g. +14155550123.",
"type": "string"
},
"provider_id": {
"description": "WhatsApp user ID returned by Unipile (@s.whatsapp.net or @lid). Reuse unchanged.",
"type": "string"
},
"text": {
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
}
chat_id · message_id · provider_id