Read a conversation and its 24-hour window
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/conversations/string'
Returns a conversation and the state of its 24-hour window. Check window_open before you send a session message. Reading a conversation does not mark its messages as read.
bearerAuthAuthorizationBearer <nfy_live_<32 characters>>An API key from Settings > API keys, sent as Authorization: Bearer <key>.
id*stringThe conversation id.
1 <= length <= 64The conversation.
application/json- response
One customer on one of the business numbers. One person writing to two numbers has two conversations.
object*stringid*string1 <= length <= 64number_id*stringThe business number of the conversation.
1 <= length <= 64contact_id*string1 <= length <= 64last_message_at*|The last message in either direction. Null before the first message. A list puts such a conversation last.
last_inbound_at*|The customer's last message. Null when they never wrote.
window_expires_at*|When the 24-hour customer-service window closes. Null when it never opened.
window_open*booleanWhether a session message (any type but template) can be sent now. Check it before a session send.
unread_count*integerInbound messages nobody has read in the inbox. Reading through the API does not change it.
0 <= value <= 9007199254740991ai*|nullcreated_at*stringdate-timeupdated_at*stringdate-timecurl -X GET 'https://api.whatsable.app/v1/conversations/string'{ "object": "conversation", "id": "cm2v8c1a00001qz8h4t5u6v7w", "number_id": "cm2v8a1b20002qz8h9i0j1k2l", "contact_id": "cm2v8k1a00001qz8h8x9y0z1a", "last_message_at": "2026-10-20T19:51:21Z", "last_inbound_at": "2026-10-20T18:00:00Z", "window_expires_at": "2026-10-21T18:00:00Z", "window_open": true, "unread_count": 2, "ai": { "bot_id": "cm2v8b1a00001qz8h3j4k5l6m", "status": "active" }, "created_at": "2026-09-01T12:00:00Z", "updated_at": "2026-10-20T19:51:21Z"}List conversations GET
Lists the conversations on the numbers this key may use, the latest `last_message_at` first. The order changes as messages arrive, so paging can skip or repeat a conversation. To follow changes, poll with `updated_after`.
Read a conversation's timeline GET
Returns what happened in a conversation, newest first: its messages, notes, AI decisions, AI status and bot changes, and label changes.