Bulk Get Contacts
POST /contacts/bulk-get
Full records for up to 100 contacts in ONE request. Writes nothing.
Use this instead of looping GET /contacts/{contact_id}: GET /contacts
returns a lean summary per contact, and the loop spends one rate-limit slot per
contact to get the other fields. Each item is exactly what the per-contact
route returns, through the same access check. A contact that does not exist
or is outside the key’s scope comes back found: false, rather than failing
the batch. POST only because the ids are a body; it is tiered as a read.
Authorizations
Parameters
Header Parameters
Request Body required
Which contacts to read in full.
object
Up to 100 contact ids, the ids GET /contacts returns. Duplicates are read once; the response keeps first-seen order.
When true, each found contact includes a custom_fields object keyed by column slug, as GET /contacts/{contact_id}?include_custom_fields=true does.
Responses
200
Successful Response
object
object
One contact: the full record, or found: false.
object
object
object
False when the contact does not exist or is outside this key’s scope (indistinguishable on purpose, like the per-contact 404).
object
Whether there are more pages
Items per page
Current page number (1-indexed)
Total number of items
422
Validation Error