BioFlow / API docs / listContacts

List contacts.

GET /v1/contacts
scope: contacts:readCreator & Pro plansquota cost: 1

Captured contacts and leads (newsletter signups, form submissions, gated downloads), newest first. Cursor-paginated with REAL database keyset cursors — safe at any collection size.

Requires scope: contacts:read. Plan entitlement: public_api (Creator and Pro).

Try it

Request.

curl "https://app.getbioflow.com/v1/contacts" \ -H "Authorization: Bearer bf_live_YOUR_KEY"
Parameters

Path & query parameters.

Parameters accepted by listContacts
NameInTypeRequiredDescription
limitqueryintegerno
afterquerystringnoOpaque cursor from a previous response
Response

200A page of contacts.

Fields of the 200 response for listContacts
FieldTypeDescription
dataarray<object>
has_moreboolean
next_cursorstring | null

Every response also carries X-Request-Id plus the IETF draft-11 RateLimit / RateLimit-Policy headers.

Errors

What can go wrong here.

Problem codes this operation can return
CodeStatusMeaning
invalid_request400The request body or parameters failed validation
invalid_api_key401Missing, malformed, unknown, disabled, or expired API key
insufficient_scope403The API key was not granted the required scope
feature_not_enabled403The workspace plan does not include public API access
test_key_read_only403Test-mode keys are restricted to read operations
rate_limited429Per-key rate limit exceeded
quota_exhausted429Monthly API quota exhausted
internal_error500Something went wrong on our side

All errors are RFC 9457 application/problem+json — branch on code, quote request_id to support. Full registry on the API docs hub; interactive playground in the API reference.