SautiDesk
SautiDesk API
Direct messages, notifications and live events

Start a direct-message thread

POST
/v1/desk/dm/threads

Starts a private conversation with the teammate given as peer_user_id, or returns the existing thread with that person. Use the returned thread id to send messages.

Requires: desk.write 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

Request Body

application/json

Response

OK

Example

{  "thread": {    "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37",    "peer_user_id": "95e86c60-905b-4810-982b-252a6d0ea91b",    "peer_name": "Brian Otieno",    "peer_former": false,    "last_message_at": "2026-10-14T08:30:00Z",    "last_message_preview": "Hi Amina, your order has shipped.",    "unread": 1  }}
FieldTypeDescription
threadrequiredobject
idrequiredstring (uuid)
peer_user_idrequiredstring (uuid) | nullThe id of the teammate to start a conversation with.
peer_namerequiredstring
peer_formerrequiredboolean
last_message_atrequiredstring (date-time) | null
last_message_previewrequiredstring
unreadrequiredinteger
curl -X POST "https://api.sautidesk.com/v1/desk/dm/threads" \  -H "Content-Type: application/json" \  -d '{    "peer_user_id": "95e86c60-905b-4810-982b-252a6d0ea91b"  }'