Find Contacts

Looks contacts up by email, by externalId with its source, or by tag. Without filters it lists every contact of the account, oldest first, one page at a time.

GET/v1/crm/contacts

Authentication

API keyAuthorization: Bearer

Secret API key as Authorization: Bearer sk_live_…. Create it in the dashboard under Workspace settings › API Keys, with full access or only the areas it needs (see API Keys & Scopes). Keys are for servers only. Needs the contacts:read scope.

Query Parameters

emailstring
optional

Exact email.

externalIdstring
optional

Your id for the contact. Pair it with source.

sourcestring
optional

Namespace of externalId.

Default:api
tagstring
optional

Only contacts with this tag.

limitnumber
optional

Contacts per page, 1 to 100.

Default:25
cursorstring
optional

The nextCursor of the previous page.

Responses

200Success
application/json
dataarray

Contacts of this page.

nextCursorstring | null

Pass it as cursor to get the next page. null on the last page.

Errors

401Missing, invalid or revoked API key. The body is { error: { code, message } }.
403The account has no active subscription (error.code subscription_inactive), or the key lacks the required scope (insufficient_scope, and error.details.required names it).
429More than 120 requests per minute for this key. Wait for the Retry-After header.
422Validation failed. error.details maps each field to a message; unknown fields are rejected.

Notes

  • Keep calling with the returned nextCursor until it is null to read every contact.
Request
curl --request GET \
--url "https://api.pandaidx.com/v1/crm/contacts?email=ana%40example.com" \
--header "Authorization: Bearer {{api_key}}"
Response200 OK
{
"data": [
{
"id": "6ad0c3f2e4b1a2c3d4e5f607",
"email": "ana@example.com",
"name": "Ana Torres",
"phones": [
"+13055550100"
],
"image": null,
"website": null,
"streetAddress": null,
"type": "buyer",
"stage": "new-lead",
"price": null,
"source": "zapier",
"tags": [
"buyer"
],
"externalIds": [
{
"source": "zapier",
"id": "abc-1"
}
],
"createdAt": "2026-10-14T13:40:12.000Z",
"updatedAt": "2026-10-14T13:40:12.000Z"
}
],
"nextCursor": null
}