Skip to main content
GET
Count the contacts a filter matches under each tab

Authorizations

X-API-Key
string
header
required

Path Parameters

sequence_id
string<uuid>
required

Query Parameters

statuses
enum<string>[] | null

Where one contact stands in one sequence.

ACTIVE rows carry a due_at and are what the tick claims; CLAIMED is the in-flight guard between claim and outcome. PAUSED is a deliberate per-contact hold: unclaimable because the tick claims strictly on ACTIVE, yet still LIVE. It keeps its step and its one-live-sequence slot, and a compliance stop (reply, unsubscribe) reaches it. Everything else is settled: COMPLETED walked off the end; STOPPED was halted (reply, unsubscribe, bounce, manual, company pause); FAILED is terminal; SUPPRESSED was on the do-not-contact list; SKIPPED_DUPLICATE lost the one-live-sequence-per-contact rule, with the reason visible in the grid.

A contact the workspace's recontact rule refuses is STOPPED with StopReason.COOLDOWN. There is deliberately no held state: a cooldown settles a contact rather than parking them, so nothing here waits on a date and nothing lets itself out later.

AWAITING_ACTION is a contact parked behind a task that needs a person or a channel, modelled on PAUSED: live, keeps its step and its one-live-sequence slot, unclaimable because the tick claims strictly on ACTIVE, and a compliance stop reaches it. Unlike PAUSED nobody wakes it by hand: only the outreach-task sweep does, once the task it waits on is decided or delivered. Deliberately not "awaiting approval": an AUTO-mode LinkedIn park is waiting for a browser rather than for anyone's approval, and this value is the word the Contacts tab shows for both.

PENDING is a draft's roster: in, standing on a step, and NOT live. Binding an audience enrols on the spot so the Contacts tab can show who is in, but a sequence nobody has launched must not hold anybody's one-live-sequence slot, or a second sequence written for the same people skips them all. uq_sequence_enrolment_one_live leaves PENDING out, the tick never claims it, and launch turns each row ACTIVE, settling the ones another sequence took meanwhile as SKIPPED_DUPLICATE.

Available options:
pending,
active,
claimed,
paused,
awaiting_action,
completed,
stopped,
failed,
suppressed,
skipped_duplicate
stop_reasons
enum<string>[] | null
Available options:
reply,
unsubscribe,
bounce,
manual,
company_reply,
row_left_audience,
step_removed,
removed,
cooldown,
rejected,
mailbox_removed
exclude
boolean
default:false
search
string | null
Maximum string length: 255
created_from
string<date-time> | null
created_to
string<date-time> | null

Response

Successful Response

How the contacts a roster filter matches split across the Audience tab's tabs.

capped
boolean
required

More contacts match than one read judges, so each tab's count is at least that many.

groups
ContactGroupCountsReadSchema · object
required

How many of the matching contacts sit under each tab. Each one sits under exactly one, and list_sequence_contacts' 'group' with the same filters lists them.

total
integer
required

Every contact the filters match: the All tab's count.