Ricky logorickyDocs

Send a message

POST
/conversations/{conversation_id}/messages

Sends text, or a template on WhatsApp. Answers 202: the send is queued; follow it with GET /sends/{send_id}. A message.sent webhook fires once the provider accepts it.

Scope: messages:send.

Authorization

bearerAuth
headerAuthorizationBearer <token>

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

conversation_id*string

Conversation ID.

Formatuuid
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

Text works inside the channel reply window; a template (WhatsApp only) works any time.

type*string
text*string

Message text.

Length1 <= length <= 4096

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/497f6eca-6276-4993-bfeb-53cbbbba6f08/messages' \  -H 'Idempotency-Key: order-10482-ready' \  -H 'Content-Type: application/json' \  -d '{  "type": "text",  "text": "Sí, ya están listos. Puede pasar hoy."}'
{  "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"  }}