SautiDesk
SautiDesk API
Sales

List leads

GET
/v1/desk/leads

Lists the leads the key's person may see: their own, those in their queues and the unowned pool, or every lead for supervisors and admins. Open leads by default, overdue follow-ups first; narrow with view, status, stage, queue, owner, tag, source, temperature, contact or next_step, and pass sort=newest for the newest first. Answers 403 desk.sales_off while Sales is switched off.

Requires: desk.read scope, Converse or Contacts licence, Pro plan.

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

stage?string

Only leads at this stage: its id (a UUID).

queue?string

Only leads in this queue: its id (a UUID).

tag?string

Only leads carrying this tag: its id (a UUID).

source?string

Only leads from this source: its id (a UUID).

contact?string

Only this contact's leads: their id (a UUID). With status=open and limit=1 it returns the contact's open lead.

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.

status?string

open (default), won, lost, closed (won or lost) or all.

temperature?string

Only leads at this temperature: hot, warm or cold.

view?string

mine (leads the key's person owns), unassigned (in a queue with no owner), queue (one queue: pass queue too) or all (default, every lead the person may see).

next_step?string

overdue (the next follow-up is past due), today (it is due before the end of today on the workspace's clock) or none (open leads with no follow-up booked).

sort?string

next_due (default: overdue follow-ups first, then by the next follow-up's time, then newest) or newest (most recently opened first).

owner?string

Only leads owned by this person: their id (a UUID), me for the key's own person, or none for unowned leads.

Response

OK

Example

{  "data": [    {      "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37",      "ref": "TCK-4471",      "status": "open",      "contact_id": "e370603e-5791-443e-9fb1-26dedb014cd9",      "contact_name": "Amina Wanjiru",      "contact_number": "+254712345678",      "stage_id": "bfed4519-9865-4baf-930a-0ac87c16a093",      "stage_name": "example",      "stage_kind": "example",      "owner_id": "1dc86aaf-2f65-4b1b-9ef7-7dabe869da64",      "owner_name": "Wanjiku Mwangi",      "queue_id": "c70c2d37-4d65-4ba4-9843-5e8aaf2dae40",      "queue_name": "Support",      "source_id": "2e953c78-1606-4098-9709-061f8b3d7860",      "source_name": "example",      "temperature": "example",      "value_minor": 1,      "currency": "KES",      "lost_reason_id": "b015e632-7186-485b-90f6-cc9f3b883d90",      "lost_reason": "example",      "lost_note": "example",      "company": "Example Ltd",      "name": "Amina Wanjiru",      "tags": [        {          "id": null,          "name": null,          "colour": null        }      ],      "next_follow_up": {        "task_id": "ad869580-754f-478d-9f53-ece308d91edc",        "due_at": "2026-10-14T08:30:00Z",        "note": "Hi Amina, your order has shipped.",        "activity_type_id": "7dc83545-5e5c-4ee0-9e92-704cc08faaf7",        "activity_type_name": "example",        "assignee_id": "fe310313-9e12-412d-969a-cdb7558caaca",        "overdue": false      },      "opened_at": "2026-10-14T08:30:00Z",      "opened_by": "d30d083f-3105-4b54-925d-0f1bdfa2fb14",      "closed_at": "2026-10-14T08:30:00Z",      "updated_at": "2026-10-14T08:30:00Z"    }  ],  "next_cursor": "eyJvIjoyNX0",  "has_more": false}
FieldTypeDescription
datarequiredobject[]
idrequiredstring (uuid)
refrequiredstring
statusrequiredstringThe status to set.
contact_idrequiredstring (uuid)The id of the contact the task is about.
contact_namerequiredstring
contact_numberstring
stage_idrequiredstring (uuid)
stage_namerequiredstring
stage_kindrequiredstring
owner_idrequiredstring (uuid) | null
owner_namestring
queue_idrequiredstring (uuid) | nullThe id of the queue that receives what arrives here.
queue_namestring
source_idrequiredstring (uuid)
source_namerequiredstring
temperaturerequiredstring
value_minorrequiredinteger
currencyrequiredstringThe currency code of the money in this report, for example KES. Write money figures with it. Left out when the report has no money.
lost_reason_idrequiredstring (uuid) | null
lost_reasonstring
lost_notestring
companyrequiredstringThe company the contact works for.
namerequiredstringA name for it.
tagsrequiredobject[]
idrequiredstring (uuid)
namerequiredstringA name for it.
colourrequiredstring
next_follow_uprequiredany
task_idrequiredstring (uuid)
due_atrequiredstring (date-time)When it is due, as a date and time with an offset, for example 2026-10-15T09:00:00+03:00.
noterequiredstringA note.
activity_type_idrequiredstring (uuid) | null
activity_type_namerequiredstring
assignee_idrequiredstring (uuid) | nullThe id of the person the task is for.
overduerequiredboolean
opened_atrequiredstring (date-time)
opened_byrequiredstring (uuid) | null
closed_atrequiredstring (date-time) | null
updated_atrequiredstring (date-time)
next_cursorrequiredstring | null
has_morerequiredboolean
curl -X GET "https://api.sautidesk.com/v1/desk/leads"