Reply in a conversation
POST/inbox/conversations/:id/messages
Sends a message through the conversation's number, chosen by kind:
kind | What |
|---|---|
text | Free-form text. Only with the 24-hour window open |
media | A file already uploaded to POST /inbox/conversations/{id}/media. Only with the window open |
template | An approved template. Reopens the conversation at any time |
note | Internal note: stays in the conversation, never goes to WhatsApp |
Outside the window, text and media are refused before sending with
422 window_closed and the windowExpiresAt. The reply reopens a closed or snoozed
conversation and pauses automations for a while, as when a team member answers.
Request
Responses
- 201
- 401
- 402
- 404
- 409
- 422
- 429
Message recorded.
Missing, malformed, unknown or revoked token (authentication), or a suspended
account (tenant_inactive).
No entitlement (payment_required). The body carries the reason in reason and the
way out in action: what to do (kind) and the dashboard page where it is done (url).
Resource does not exist (not_found).
The conversation's number is no longer connected (phone_unavailable).
window_closed, contact_unreachable, media_not_found, template_unavailable, template_variables_invalid, contact_opted_out (marketing template), meta_error or invalid_request.
Rate limit exceeded (rate_limit).
Response Headers
Seconds to wait before retrying.
Which rate limit category applied — send, media or default.
Which bucket the other headers describe — key (the API key), session (the dashboard) or account (the account ceiling).
Request ceiling for this category in the current window.
Requests left in the current window.