Skip to content

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

X-Target-Org-Id
Any of:
string

Request Body required

Which contacts to read in full.

object
contact_ids
required

Up to 100 contact ids, the ids GET /contacts returns. Duplicates are read once; the response keeps first-seen order.

Array<integer>
>= 1 items <= 100 items
include_custom_fields

When true, each found contact includes a custom_fields object keyed by column slug, as GET /contacts/{contact_id}?include_custom_fields=true does.

boolean

Responses

200

Successful Response

object
data
required
object
items
Array<object>

One contact: the full record, or found: false.

object
contact
Any of:
object
about
Any of:
string
city
Any of:
string
company
Any of:
object
city
Any of:
string
country
Any of:
string
domain
Any of:
string
employee_count
Any of:
string
id
Any of:
integer
industry
Any of:
string
linkedin_url
Any of:
string
logo_url
Any of:
string
name
Any of:
string
state
Any of:
string
website
Any of:
string
confidence_score
Any of:
number
country
Any of:
string
created_at
Any of:
string
custom_fields
Any of:
object
key
additional properties
Any of:
string
direct_phone
Any of:
string
facebook_url
Any of:
string
first_name
Any of:
string
full_name
Any of:
string
id
required
integer
job_department
Any of:
string
job_title
Any of:
string
last_name
Any of:
string
linkedin_url
Any of:
string
meta_data
Any of:
object
key
additional properties
any
mobile_phone
Any of:
string
personal_emails
Any of:
seniority_level
Any of:
string
state
Any of:
string
twitter_url
Any of:
string
updated_at
Any of:
string
work_email
Any of:
string
contact_id
required
integer
found
required

False when the contact does not exist or is outside this key’s scope (indistinguishable on purpose, like the per-contact 404).

boolean
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
notes
Any of:
Array<string>
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer
total_available
Any of:
integer
total_is_lower_bound
Any of:
boolean

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string