Read a message and its status
Build a request to copy
This page never sends a request. Fill in the fields, then copy the request and run it from your server.
curl -X GET 'https://api.whatsable.app/v1/messages/string'
bearerAuthAuthorizationBearer <nfy_live_<32 characters>>An API key from Settings > API keys, sent as Authorization: Bearer <key>.
id*stringThe message id.
1 <= length <= 64The message.
application/json- response
A WhatsApp message, inbound or outbound.
object*stringid*string1 <= length <= 64conversation_id*string1 <= length <= 64contact_id*string1 <= length <= 64number_id*stringThe business number the message was sent from or received on.
1 <= length <= 64direction*string"inbound""outbound"type*|stringstatus*stringpending (Meta did not acknowledge it yet), sent, delivered, read or failed. A send answers sent or failed.
"pending""sent""delivered""read""failed"sent_by*||Who sent an outbound message. Null on inbound.
to*|The recipient of an outbound message. Null on inbound.
from*|The sender of an inbound message. Null on outbound.
text*|The text, a caption, or the body of a template or buttons message.
template*|The template a template message used. Null otherwise.
media*|nullwhatsapp_message_id*|Meta's message id (wamid). Null when Meta never accepted the message.
error*|Why the message failed. Null unless status is failed.
created_at*stringdate-timedelivered_at*|nullread_at*|nulledited_at*|When the customer edited this inbound message.
deleted_at*|When the customer withdrew this inbound message. Its text is kept.
referral*|Meta's Click-to-WhatsApp referral object as Meta sent it, with keys such as ctwa_clid. Set only on the inbound message that started a chat from an ad or a post.
button_reply*|nullcurl -X GET 'https://api.whatsable.app/v1/messages/string'{ "object": "message", "id": "cm2v8m1a00001qz8h0p1q2r3s", "conversation_id": "cm2v8c1a00001qz8h4t5u6v7w", "contact_id": "cm2v8k1a00001qz8h8x9y0z1a", "number_id": "cm2v8a1b20002qz8h9i0j1k2l", "direction": "outbound", "type": "template", "status": "sent", "sent_by": "api", "to": { "phone": "+5491155550000", "wa_user_id": null, "username": null }, "from": null, "text": "Hi Ana, your order #1042 is on its way.", "template": { "id": "cm2v8t1a00001qz8habcd1234", "name": "order_shipped", "language": "en_US" }, "media": null, "whatsapp_message_id": "wamid.HBgMNTQ5MTE1NTU1MDAwMBUCABEYEjQ", "error": null, "created_at": "2026-10-20T19:51:21Z", "delivered_at": null, "read_at": null, "edited_at": null, "deleted_at": null, "referral": null, "button_reply": null}Send a message POST
Sends one WhatsApp message: text, a template, an image, a video, an audio file, a sticker, a document or reply buttons.
Download a message's media file GET
Downloads the file of a message, from the link in its `media.url`. The link needs no API key, because its signature is the credential. It expires after 15 minutes. An expired, changed or broken link gets the same 404 as a deleted file.