Get contacts

GET/api/v1/getContacts

List contacts or find one by ID or email

contact_id and email cannot be combined.

Permission

An OAuth access token with this scope. How to get a token

contacts:read
Read contacts and resolve existing recipients.

Parameters

Not sure what to enter? Here’s where to find IDs.

client_idquery · stringrequired
The Client ID of your OAuth client. It’s public, and goes on every request alongside your access token. Find it in QuoteCloud under Settings → API dashboard → Manage Integrations → OAuth Clients.Length at least 1.
contact_idquery · string
Return only this contact. Use the id from an earlier response. Can’t be combined with email.
emailquery · string (email)
Return only the contact with this email address. Can’t be combined with contact_id.
cursorquery · string or null
Where the next page starts. Leave this out for the first page, then send meta.nextCursor from the previous response.
limitquery · integer
How many results to return per page, up to 100.Default 50. Value 1 to 100.

Responses

200Contact page.
dataarray of objectrequired
Item fields
idstringrequired
emailstring (email)required
firstNamestringrequired
lastNamestringrequired
fullNamestringrequired
phonestringrequired
mobilestringrequired
jobTitlestringrequired
addressstringrequired
companystring
companyAccountRefstring
createdAtvaries
Fields

Exactly one of these:

Option 1number
Option 2string (date-time)
updatedAtvariesrequired
Fields

Exactly one of these:

Option 1number
Option 2string (date-time)
paginationobjectrequired
Fields
continueCursorstring or nullrequired
isDonebooleanrequired
400Invalid request or validation failure.
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired
401Missing or invalid bearer token or client ID.
errorstringrequired
error_descriptionstring
403Insufficient scope, missing add-on, usage limit, or permission denial.

Exactly one of these:

OAuthError
errorstringrequired
error_descriptionstring
ApiErrorEnvelope
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired

Rate limit

120 requests a minute per company, shared across REST, Zapier and MCP. On a 429, wait for Retry-After.