Companies

List a company's contacts

List one section of a company's contacts: `section` `current` (at least one current role there) or `past` (only past or unknown roles there). Active contacts come first, then archived ones (`is_archiv

GET /v2/companies/{companyId}/contacts

Parameters

Path parameters

companyId
string (uuid) required

Query parameters

section
string enum required
Possible values: "current", "past"
limit
integer
cursor
string

Responses

200 — Successful response

Content-Type: application/json

data
object required
data.contacts
array<object> required
data.contacts[].contact_id
string (uuid) required
data.contacts[].is_archived
boolean required
data.contacts[].roles
array<object> required
data.contacts[].roles[].id
string (uuid) required
data.contacts[].roles[].contact_id
string (uuid) required
data.contacts[].roles[].company_id
string (uuid) required
data.contacts[].roles[].user_id
string required
data.contacts[].roles[].workspace_id
string (uuid) | null required
data.contacts[].roles[].title
string | null required
data.contacts[].roles[].status
string enum required
Possible values: "current", "past", "unknown"
data.contacts[].roles[].is_primary
boolean required
data.contacts[].roles[].start_year
integer | null required
data.contacts[].roles[].start_month
integer | null required
data.contacts[].roles[].start_day
integer | null required
data.contacts[].roles[].end_year
integer | null required
data.contacts[].roles[].end_month
integer | null required
data.contacts[].roles[].end_day
integer | null required
data.contacts[].roles[].provenance
string enum required
Possible values: "manual", "add_people", "csv_import", "auto_link", "copy", "mcp", "extension", "migration", "text_conversion", "merge"
data.contacts[].roles[].created_at
string (date-time) required
data.contacts[].roles[].updated_at
string (date-time) required
data.contacts[].team_connection_count
integer required
data.contacts[].notes_count
integer required
data.contacts[].connected_with_you
boolean required
data.pagination
object
data.pagination.nextCursor
string | null
data.pagination.count
integer

Example

{
  "data": {
    "contacts": [
      {
        "contact_id": "00000000-0000-0000-0000-000000000000",
        "is_archived": false,
        "roles": [
          {
            "id": "00000000-0000-0000-0000-000000000000",
            "contact_id": "00000000-0000-0000-0000-000000000000",
            "company_id": "00000000-0000-0000-0000-000000000000",
            "user_id": "string",
            "workspace_id": "00000000-0000-0000-0000-000000000000",
            "title": "string",
            "status": "current",
            "is_primary": false,
            "start_year": 0,
            "start_month": 0,
            "start_day": 0,
            "end_year": 0,
            "end_month": 0,
            "end_day": 0,
            "provenance": "manual",
            "created_at": "2026-10-23T10:31:51.480Z",
            "updated_at": "2026-10-23T10:31:51.480Z"
          }
        ],
        "team_connection_count": 0,
        "notes_count": 0,
        "connected_with_you": false
      }
    ]
  }
}

400 — Request body failed validation.

Content-Type: application/json

(body)
any

401 — Missing or invalid API key.

Content-Type: application/json

(body)
any

403 — Valid key, insufficient permission.

Content-Type: application/json

(body)
any

404 — Resource does not exist.

Content-Type: application/json

(body)
any

409 — Request conflicts with the current state of the resource.

Content-Type: application/json

(body)
any

429 — Rate limit exceeded.

Content-Type: application/json

(body)
any

500 — Unexpected server error.

Content-Type: application/json

(body)
any

Code samples

curl 'https://api.prod.getdex.com/v2/companies/00000000-0000-0000-0000-000000000000/contacts?section=current' \
  --header 'Authorization: Bearer YOUR_API_KEY'
Copyright © 2026