Get a message
GET
One message, as the list shows it. A media url is signed again on each read.
Scope: conversations:read.
bearerAuthheader
AuthorizationBearer <token>An organization API key, rky_live_…, created in Settings → API. Send it only from a server.
conversation_id*stringConversation ID.
Format
uuidmessage_id*stringMessage ID.
Format
uuidSuccess.
application/json- response
data*One message in a conversation.
curl -X GET 'https://getricky.ai/api/v1/conversations/497f6eca-6276-4993-bfeb-53cbbbba6f08/messages/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "data": { "id": "c41d7e2a-5b6f-4a89-8c3d-0e1f2a3b4c5d", "conversation_id": "9b2e4c61-7a3f-4d18-b5c2-6e0f1a2b3c4d", "direction": "inbound", "type": "text", "text": "¿Ya están mis lentes?", "sender": { "type": "contact", "name": null }, "status": "read", "media": { "kind": "image", "mime_type": "image/jpeg", "filename": null, "byte_size": -9007199254740991, "transcript": null, "url": null }, "provider_message_id": "wamid.HBgLNTA3NjAwMDEyMzQV", "created_at": "2026-10-14T15:30:00.000Z", "sent_at": "2026-10-14T15:30:00.000Z", "delivered_at": "2026-10-14T15:30:00.000Z", "read_at": "2026-10-14T15:30:00.000Z", "failed_at": "2026-10-14T15:30:00.000Z", "edited_at": "2026-10-14T15:30:00.000Z", "deleted_at": "2026-10-14T15:30:00.000Z" }}Send a message POST
Sends text, a file on WhatsApp or Instagram, or a template on WhatsApp. For a file, Ricky downloads `media.url` before answering. 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`.
Get a send GET
Whether the provider accepted a message, and why not if it failed. Scope: `messages:send`.