Agent-readable docs index: /docs/llms.txt. Full docs in one file: /docs/llms-full.txt. Download /docs/docs.zip to grep all markdown files locally.

Queue batch

/messages/batchPOST
Queues valid recipients; inspect accepted and rejected rows. Default limit 1,000, configurable by the deployment. HTTP 202 means queued, not delivered. The single-message test flag is not a batch simulation contract. Required scope: messages:write.
Authorization
BearerAuth *Bearer <token>
API key generated under Account Settings → API Keys (rk_live_...). Send as header Authorization: Bearer <key>.
Request Bodyapplication/jsonrequired
channel?"whatsapp" | "sms" | "email" | "smart"
Default: "smart"
messages *object[]
Min items: 1Max items: 1000
Show item properties
to *string
message?string
variables?object
subject?string
media_url?string
reference?string
first_name?string
last_name?string
custom_fields?object
whatsapp_opt_in?boolean
purpose?string
template?string
sender?string
list_id?integer
purpose?string
Response
202 · Successful response. See the integration guide for status and lifecycle semantics.
Type: object
401 · Invalid, expired, revoked or missing key.
Invalid, expired, revoked or missing key.
403 · Required scope not granted.
Required scope not granted.
422 · Validation or eligibility failure.
Validation or eligibility failure.
Request example
curl -X POST "https://convert.ruut.chat/api/v1/messages/batch" \ -H "Idempotency-Key: <Idempotency-Key>" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "channel": "whatsapp", "messages": [ { "to": "string", "message": "string", "variables": {}, "subject": "string", "media_url": "string", "reference": "string", "first_name": "string", "last_name": "string", "custom_fields": {}, "whatsapp_opt_in": true, "purpose": "string" } ], "template": "string", "sender": "string", "list_id": 0, "purpose": "string" }'