Skip to main content
POST
Filter contacts

Authorizations

Authorization
string
header
required

Authenticate every request with a Bearer token. Pass your Reply API key in the Authorization header:

Get your API key from the Reply dashboard: Settings → API Key.

Query Parameters

top
integer

Maximum number of contacts to return (default 100, max 1000)

skip
integer

Number of contacts to skip

Body

application/json

Conditions and scope for filtering contacts.

conditions
Filter condition · object[] | null

Field conditions, joined with AND; one condition per field. GET /v3/contacts/filter/fields lists the fields, their operators, value types and allowed values. sequenceIds and sequenceNames both describe the sequences the contact is in, so a filter takes one of them: sequenceIds matches by id, sequenceNames by the whole name (equals) or a fragment of it (contains). and branches take equals, notEquals, contains, notContains, notIn, containsAll, isEmpty and isNotEmpty. Up to 200 branches per condition, 200 values per list and 500 values across all conditions. Omit it, or send null or an empty list, to filter by the other fields only. To filter one sequence's contacts by what happened in that sequence, use POST /v3/sequences/{id}/contacts/filter.

Maximum array length: 20
listId
integer | null

Filter by contact list ID.

searchTerm
string | null

Free-text search term

sortBy
enum<string> | null

Field to sort by. Defaults to addedOn.

Available options:
name,
company,
email,
addedOn,
sent,
opens,
clicks,
replies,
lastTouch,
optedOut,
title,
country,
city,
state,
deliveryDate,
views,
domain,
companySize,
industry,
owner,
stage,
bouncesCount,
lastCallDate,
callStatus,
meetingStatus
sortDirection
enum<string> | null

Sort direction, case-insensitive. Defaults to desc.

Available options:
asc,
desc

Response

Filtered contacts retrieved successfully

items
Contact · object[]
hasMore
boolean

Indicates if there are more items to fetch