SautiDesk
SautiDesk API
Direct messages, notifications and live events

List a thread's messages

GET
/v1/desk/dm/threads/{id}/messages

Lists the messages in a direct-message thread, with their attachments. Page backwards with before; limit defaults to 100 and is capped at 100.

Requires: desk.read scope.

Authorization

bearerAuth
AuthorizationBearer <token>

A SautiDesk API key. An owner or admin makes it under Settings in SautiDesk for a named person and picks the scopes. The key is shown once. Send it as Authorization: Bearer <key>. It acts as that person and as nobody else.

In: header

Path Parameters

id*string

The thread's id (a UUID).

Query Parameters

cursor?string

next_cursor from the previous page. Leave it out for the first page.

limit?integer

Page size: 100 by default, 100 at most.

Response

OK

Example

{  "data": [    {      "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37",      "thread_id": "35d0bbe4-0406-4c99-9c19-73bab32a78b7",      "sender_user_id": "5452a94c-7311-4fcc-9fa8-ef6527f42b16",      "sender_name": "Amina Wanjiru",      "sender_former": false,      "body": "Hi Amina, your order has shipped.",      "ticket_id": "b1e8bf6f-7f06-4c91-96dd-a1eb7abe504b",      "ticket": {        "ticket_id": "b1e8bf6f-7f06-4c91-96dd-a1eb7abe504b",        "ref": "TCK-4471",        "title": "Order 1182 has not arrived",        "contact_name": "Amina Wanjiru",        "transferred_to": "Brian Otieno"      },      "client_id": "642d75b7-2106-4687-96a3-70539952a466",      "created_at": "2026-10-14T08:30:00Z",      "attachments": [        {          "id": null,          "filename": null,          "content_type": null,          "size": null,          "url": null        }      ],      "kind": "billing",      "call": {        "caller_user_id": "320ad1ba-40a4-4403-9f51-d9dbff8d97bc",        "callee_user_id": "f1c23795-89a4-4ac5-9719-6c07c8bcf095",        "started_at": "2026-10-14T08:30:00Z",        "answered_at": "2026-10-14T08:30:00Z",        "ended_at": "2026-10-14T08:30:00Z",        "outcome": "billing",        "seconds": 60      }    }  ],  "next_cursor": "eyJvIjoyNX0",  "has_more": false}
FieldTypeDescription
datarequiredobject[]
idrequiredstring (uuid)
thread_idrequiredstring (uuid)
sender_user_idrequiredstring (uuid) | null
sender_namerequiredstring
sender_formerrequiredboolean
bodyrequiredstringThe message text.
ticket_idrequiredstring (uuid) | nullThe id of the ticket this is about.
ticketanyThe ticket the call belongs to, by id or reference such as TCK-4471.
ticket_idrequiredstring (uuid)The id of the ticket this is about.
refrequiredstring
titlerequiredstringA short title.
contact_namerequiredstring
transferred_torequiredstring
client_idstring | nullAn id you make up for this request. Send the same id when you retry and the server will not add it twice.
created_atrequiredstring (date-time)
attachmentsrequiredobject[]
idrequiredstring (uuid)
filenamerequiredstring
content_typerequiredstring
sizerequiredinteger
urlrequiredstring
kindrequiredstringWhat kind it is.
callany
caller_user_idrequiredstring (uuid)
callee_user_idrequiredstring (uuid)
started_atrequiredstring (date-time)
answered_atstring (date-time) | null
ended_atstring (date-time) | null
outcomerequiredstringHow it ended: the name or id of one of your outcomes.
secondsrequiredinteger
next_cursorrequiredstring | null
has_morerequiredboolean
curl -X GET "https://api.sautidesk.com/v1/desk/dm/threads/string/messages"