Skip to main content
GET
List contacts

Authorizations

Authorization
string
header
required

Send either an API token or an OAuth access token as Authorization: Bearer <token>. See the Authentication page for details.

Headers

Privy-Account-Id
string

Target a subaccount instead of the main connected account. Pass a subaccount id from get_account's subaccounts list. Only direct subaccounts of the connected account are reachable — omit this for the main account itself.

Query Parameters

page
integer
default:1

Page number (starts at 1).

Required range: x >= 1
per_page
integer
default:40

Number of results per page. Values outside 10–100 are clamped to the nearest bound.

Required range: 10 <= x <= 100
email
string<email>

Filter by exact email address.

phone_number
string

Filter by exact phone number (E.164 format).

Filter by email consent status. subscribed matches both explicit and implicit opt-in. suppressed matches merchant-suppressed contacts only; compliance_suppressed matches system/compliance-suppressed contacts.

Available options:
subscribed,
unsubscribed,
never_subscribed,
suppressed,
compliance_suppressed

Filter by SMS consent status.

Available options:
subscribed,
unsubscribed,
never_subscribed,
single_opt_in,
pending
created_after
string<date-time>

Only contacts created strictly after this ISO 8601 datetime (or date). Zone-less datetimes are interpreted as UTC; bare dates as midnight US Eastern time.

created_before
string<date-time>

Only contacts created strictly before this ISO 8601 datetime (or date). Zone-less datetimes are interpreted as UTC; bare dates as midnight US Eastern time.

updated_after
string<date-time>

Only contacts updated strictly after this ISO 8601 datetime (or date). Zone-less datetimes are interpreted as UTC; bare dates as midnight US Eastern time.

updated_before
string<date-time>

Only contacts updated strictly before this ISO 8601 datetime (or date). Zone-less datetimes are interpreted as UTC; bare dates as midnight US Eastern time.

import_id
string

Only contacts touched by this import — including contacts that already existed before it ran. Takes an email import id (im_…) from a contact's import_ids. Unknown or malformed ids return a 422; SMS consent imports (sim_…) do not link to contacts.

tag
string[]

Only contacts with at least one of these Privy tags. Pass names comma-separated (tag=vip,wholesale) or repeated in array form (tag[]=vip&tag[]=wholesale); use the array form for a name that contains a comma. Matching ignores case and surrounding whitespace. At most 50 names; an empty list or more than 50 returns a 422.

shopify_tag
string[]

Only contacts with at least one of these Shopify tags. Same format and limits as tag. When both are given, a contact must match each.

Response

A paginated list of contacts.

data
object[]
pagination
object