Fetch a message's file
POST
Ricky stores the file of each message it receives in the background, and media.url is null until it has. This stores it now from the provider and answers the message with its url; a file already stored answers at once. A message without a received file, or whose file the provider says expired (it keeps them about 30 days), answers 422 rule_violation; other provider failures answer 502 upstream_error. Send no body.
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 POST 'https://getricky.ai/api/v1/conversations/497f6eca-6276-4993-bfeb-53cbbbba6f08/messages/497f6eca-6276-4993-bfeb-53cbbbba6f08/media'{ "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" }}