sequences

List a sequence's contacts

Newest-first unless sorted; each row names why it is where it is. 'group' lists one tab of the Audience tab (In progress, Needs approval, Paused, Done, Blocked), which get_audience_eligibility counts over the whole roster and count_sequence_contacts_per_group under the same filters. 'status' orders contacts the way the Status column reads them, first in line on top (on LinkedIn now, then everyone with a next move by when it happens, then Needs approval, then everyone done); 'status_desc' reverses it. Status, stop reason, search and the added-date range all filter server-side, so 'total' counts what the filter matched rather than the whole sequence.

get/sequences/{sequence_id}/contacts/

Request

  • Base URL: https://api.getoneprofile.ai (the document declares no server; this is the origin it was published from)
  • URL: https://api.getoneprofile.ai/sequences/{sequence_id}/contacts/
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer

Path parameters

sequence_idstring uuid required

Query parameters

status'pending' | 'active' | 'claimed' | 'paused' | 'awaiting_action' | 'completed' | 'stopped' | 'failed' | 'suppressed' | 'skipped_duplicate'

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.

statusesEnrolmentStatus[] nullable
stop_reasonsStopReason[] nullable
excludeboolean
searchstring nullable
group'in_progress' | 'needs_approval' | 'paused' | 'done' | 'blocked'

The Audience tab's tab a contact sits under; every contact is under one.

The tabs used to be counts that overlapped (a bounced contact was both "reachable" and "blocked", so the counts added up past the roster) and opened a list of names over the roster they repeated (Natsuki, 2026-10-02). They partition the roster now and filter it in place, so a tab's count is exactly the rows it shows, and each row's own status chip names the state that put it there.

Derived at read time from the status, the stop reason, the contact's current-step task and whether an address reaches them, never stored.

Only the contacts under this tab of the Audience tab, as get_audience_eligibility's 'groups' counts them, or count_sequence_contacts_per_group's under the same filters.

sort'created_desc' | 'created_asc' | 'status' | 'status_desc' | 'next_due'

The orders the Audience tab can list a sequence's contacts in.

created_fromstring date-time nullable
created_tostring date-time nullable
limitinteger
offsetinteger

Response

Successful Response

totalinteger required

Changes

No recorded changes to this operation across all 2 revisions of this API.