Start a conversation
POST
Sends an approved WhatsApp template to a phone number. Ricky finds or creates the contact and reuses the number's conversation on that channel. Answers 202: the send is queued; follow it with GET /sends/{send_id}.
Scope: messages:send.
bearerAuthheader
AuthorizationBearer <token>An organization API key, rky_live_…, created in Settings → API. Send it only from a server.
Idempotency-Key*stringUnique per logical write, 8–200 characters. Retrying with the same key and body replays the first response.
Length
8 <= length <= 200application/json- body
Sends a template to a phone number.
channel_id*stringWhatsApp channel to send from. See GET /channels.
Format
uuidphone*stringRecipient phone with country code, for example +50760001234.
Length
6 <= length <= 32template*An approved WhatsApp template and the values of its variables.
Accepted.
application/json- response
data*An outbound message Ricky accepted and is delivering.
curl -X POST 'https://getricky.ai/api/v1/conversations' \ -H 'Idempotency-Key: order-10482-ready' \ -H 'Content-Type: application/json' \ -d '{ "channel_id": "8f3c2a5e-6b1d-4c7a-9e2f-1a2b3c4d5e6f", "phone": "+50760001234", "template": { "id": "1234567890123456", "components": [ { "type": "body", "parameters": [ { "type": "text", "text": "Ana" }, { "type": "text", "text": "10482" } ] } ] }}'{ "data": { "id": "6a7b8c9d-0e1f-4a2b-9c3d-4e5f6a7b8c9d", "conversation_id": "9b2e4c61-7a3f-4d18-b5c2-6e0f1a2b3c4d", "status": "sent", "message_id": "c41d7e2a-5b6f-4a89-8c3d-0e1f2a3b4c5d", "failure_reason": null, "created_at": "2026-10-14T15:30:00.000Z" }}