SautiDesk
SautiDesk API
Activities

Get a single activity

GET
/v1/desk/activities/{id}

Returns one activity, a single message, call or email, with its ticket, sender and time. Use it to fetch details for an activity id taken from a list or a webhook.

Requires: desk.read scope, Converse licence.

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 activity's id (a UUID).

Response

OK

Example

{  "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37",  "ticket_id": "b1e8bf6f-7f06-4c91-96dd-a1eb7abe504b",  "ticket_ref": "TCK-4471",  "kind": "billing",  "divider_kind": "date",  "channel": "sms",  "direction": "inbound",  "author": "Wanjiku Mwangi",  "body": "Hi Amina, your order has shipped.",  "subject": "Order 1182 has not arrived",  "occurred_at": "2026-10-14T08:30:00Z",  "recording_seconds": 60,  "no_recording_reason": "Recording is off for this number",  "recording_url": "https://example.com/file",  "recording_bytes": 1,  "call_leg_id": "c314e328-b417-48b4-95fe-e9b71a13dede",  "handled_by": "Wanjiku Mwangi",  "placed_by_name": "Wanjiku Mwangi",  "placed_by_system": false,  "outcome": "billing",  "category": "billing",  "local_address": "help",  "remote_address": "example",  "delivery": "delivered",  "delivery_error": "",  "body_full": "example",  "body_html_url": "https://example.com/file",  "body_html_omitted": "example",  "attachments": [    {      "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37",      "filename": "invoice-1182.pdf",      "content_type": "application/pdf",      "size": 1,      "content_id": "f8222a1e-d891-443e-9fa3-36c957c39682",      "inline": false    }  ],  "cc": [    "amina@example.com"  ],  "bcc": [    "amina@example.com"  ],  "to": [    "+254712345678"  ],  "media": {    "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37",    "type": "billing",    "mime_type": "application/pdf",    "filename": "invoice-1182.pdf",    "url": "https://example.com/file",    "status": "open",    "retention_days": 1  },  "reply_to": {    "activity_id": "0d6c4f09-7095-4291-9bdb-50991c39602c",    "author": "Wanjiku Mwangi",    "body": "Hi Amina, your order has shipped."  },  "comments": {    "count": 3,    "last_at": "2026-10-14T08:30:00Z",    "authors": [      "199d601a-f53c-44bf-9f0f-711fd093f476"    ],    "unread": false  },  "mentions": [    "af55b8ed-074f-478d-9661-0c5ccc54d6d5"  ]}
FieldTypeDescription
idrequiredstring (uuid)
ticket_idrequiredstring (uuid)The id of the ticket this is about.
ticket_refrequiredstring
kindrequiredstringWhat kind it is.
divider_kindstring | null
channelstring | nullThe channel to use: sms, whatsapp or email.
directionstring | null
authorrequiredstring
bodyrequiredstringThe message text.
subjectstringThe subject line.
occurred_atrequiredstring (date-time)
recording_secondsinteger | null
no_recording_reasonstring | null
recording_urlstring
recording_bytesinteger | null
call_leg_idstring (uuid) | nullThe id of the call leg being wrapped up.
handled_bystring
placed_by_namestring
placed_by_systemboolean
outcomestringHow it ended: the name or id of one of your outcomes.
categorystringThe name of the category.
local_addressstring
remote_addressstring
deliveryrequiredstring
delivery_errorstring
body_fullstring
body_html_urlrequiredstring | null
body_html_omittedrequiredstring | null
attachmentsrequiredobject[]
idrequiredstring (uuid)
filenamerequiredstring
content_typerequiredstring
sizerequiredinteger
content_idrequiredstring
inlinerequiredboolean
ccrequiredstring[]Email addresses to copy on the message.
bccrequiredstring[]Email addresses to copy privately.
torequiredstring[]Who to send to: a phone number in international format or, for email, an address.
mediaany
idrequiredstring
typerequiredstring
mime_typestring
filenamestring
urlstring
statusrequiredstringThe status to set.
retention_daysintegerHow many days the activity log is kept before it is cleared.
reply_toany
activity_idrequiredstring (uuid)The id of the message on the ticket to forward.
authorrequiredstring
bodyrequiredstringThe message text.
commentsany
countrequiredintegerWhat the table says about its own size, in its own words, for example 4 channels or 42 contacts. Left out when it is the number of rows.
last_atrequiredstring (date-time)
authorsrequiredstring (uuid)[]
unreadrequiredboolean
mentionsstring (uuid)[]The ids of the teammates to notify about the comment.
curl -X GET "https://api.sautidesk.com/v1/desk/activities/string"