Skip to content

List contacts

GET
/v1/contacts

One record per person across waitlist signups, changelog subscribers, feedback and your Stripe customers, matched on normalised email (lowercase, +alias removed, dots ignored on Gmail). Works without Stripe. Each contact’s user_ids are your own user ids known for the person (from identify() with an email, feedback with both, or a paying customer’s metadata): what a notification to them reaches. Free plan: waitlist people only, one page of at most 100 (meta.plan_limited).

Auth: Secret key only.

paying
boolean

Has an active or past-due subscription.

has_feedback
boolean
status
string
Allowed values: waiting invited unsubscribed

Waitlist status.

source
string

A utm_source or referrer hostname, or direct, referral, stripe.

stage
string
Allowed values: potential in_talks customer recurring not_a_fit inactive
q
string

Part of an email address.

consent
string
/^[a-z][a-z0-9_]{0,39}$/

Only people who have granted this consent now, such as email_marketing. waitlist and changelog are built in: on the waitlist and not unsubscribed, and subscribed to the changelog.

detail
string

name for people who have that detail, or name=value for that value (any case), such as stage=building.

limit
integer
default: 20 >= 1 <= 100
cursor
string

meta.next_cursor from the previous page.

Contacts, with meta.next_cursor and meta.has_more. Each carries details (name to value) and consents (the purposes granted now, built-ins included).

Error envelope. See error.code for the discriminator.

object
data
required
null
error
required
object
code
required
string
message
required
string
remediation
required
string
doc_url
string format: uri
param
string
request_id
string
meta
object
key
additional properties

Error envelope. See error.code for the discriminator.

object
data
required
null
error
required
object
code
required
string
message
required
string
remediation
required
string
doc_url
string format: uri
param
string
request_id
string
meta
object
key
additional properties