Ricky logorickyDocs

Start a conversation

POST
/conversations

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.

Authorization

bearerAuth
headerAuthorizationBearer <token>

An organization API key, rky_live_…, created in Settings → API. Send it only from a server.

Idempotency-Key*string

Unique per logical write, 8–200 characters. Retrying with the same key and body replays the first response.

Length8 <= length <= 200

Request Body

application/json
  1. body

Sends a template to a phone number.

channel_id*string

WhatsApp channel to send from. See GET /channels.

Formatuuid
phone*string

Recipient phone with country code, for example +50760001234.

Length6 <= length <= 32
template*

An approved WhatsApp template and the values of its variables.

Response Body

Accepted.

application/json
  1. 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"  }}