SautiDesk
SautiDesk API
Contacts

List contacts

GET
/v1/desk/contacts

Lists the contacts in the address book with their name, company, numbers and emails. Narrow results with q, which matches name, company, number or email, and page with limit and cursor.

Requires: desk.read scope, Contacts 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

Query Parameters

q?string

Search by name, company, number or email.

limit?integer

Page size.

cursor?string

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

Response

OK

Example

{  "data": [    {      "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37",      "name": "Amina Wanjiru",      "company": "Example Ltd",      "number": "+254712345678",      "account_no": "example",      "blocked": false,      "tickets": 1,      "open": 1,      "last_at": "2026-10-14T08:30:00Z",      "numbers": [        {          "id": null,          "e164": null,          "label": null,          "primary": null        }      ],      "emails": [        {          "id": null,          "address": null,          "label": null,          "primary": null        }      ],      "first_seen": "2026-10-14T08:30:00Z",      "last_contact_at": "2026-10-14T08:30:00Z",      "last_channel": "sms",      "email": "amina@example.com",      "open_ticket_ref": "TCK-4471",      "open_ticket_status": "open",      "owner_id": "1dc86aaf-2f65-4b1b-9ef7-7dabe869da64",      "owner_name": "Wanjiku Mwangi"    }  ],  "next_cursor": "eyJvIjoyNX0",  "has_more": false,  "total": 3}
FieldTypeDescription
datarequiredobject[]
idrequiredstring (uuid)
namerequiredstringA name for it.
companystringThe company the contact works for.
numberstringA phone number in international format, for example +254712345678.
account_nostringYour own account or customer number for this contact, so you can match it to your billing system.
blockedrequiredbooleanTrue to block this contact so nobody on the team contacts them by mistake, false to unblock.
ticketsrequiredinteger
openrequiredinteger
last_atstring (date-time) | null
numbersrequiredobject[]
idrequiredstring (uuid)
e164requiredstring
labelstringA short name to recognise it by.
primaryrequiredbooleanTrue to make this the contact's main one.
emailsrequiredobject[]
idrequiredstring (uuid)
addressrequiredstringAn email address.
labelstringA short name to recognise it by.
primaryrequiredbooleanTrue to make this the contact's main one.
first_seenrequiredstring (date-time)
last_contact_atstring (date-time) | null
last_channelstring | null
emailrequiredstring | nullAn email address.
open_ticket_refrequiredstring | null
open_ticket_statusrequiredstring | null
owner_idrequiredstring | null
owner_namerequiredstring | null
next_cursorrequiredstring | null
has_morerequiredboolean
totalrequiredinteger
curl -X GET "https://api.sautidesk.com/v1/desk/contacts"