Company Roles

Make a company role primary

Make a current role the contact's primary role; the contact's `company` follows it. A role that is not current is 400 `company_role_invalid_dates` (`details.reason` `primary_not_current`); a competing

POST /v2/company-roles/{roleId}/make-primary

Parameters

Path parameters

roleId
string (uuid) required

Responses

200 — Successful response

Content-Type: application/json

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

Example

{
  "data": {
    "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.490Z",
        "updated_at": "2026-10-23T10:31:51.490Z",
        "company": {
          "id": "00000000-0000-0000-0000-000000000000",
          "name": "string",
          "logo_url": "string",
          "archived_at": "2026-10-23T10:31:51.490Z"
        }
      }
    ],
    "contact": {
      "id": "00000000-0000-0000-0000-000000000000",
      "company": "string"
    }
  }
}

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/company-roles/00000000-0000-0000-0000-000000000000/make-primary \
  --request POST \
  --header 'Authorization: Bearer YOUR_API_KEY'
Copyright © 2026