Contacts

Update a contact

Partially update a contact by its ID. **Requires `Idempotency-Key`.** Returns `{ data: { contact: {...} } }` with the post-update row. Also fires a Pub/Sub message to auto-add the contact to social gr

PATCH /v2/contacts/{contactId}

Parameters

Path parameters

contactId
string (uuid) required

Header parameters

Idempotency-Key
string required
Required. UUID per logical operation, reused on every retry. See apps/rest-api/src/shared/idempotency.ts for the full contract. Missing → 400 BadRequest; same key + different body → 409 Conflict.

Request body

Content-Type: application/json

full_name
string
first_name
string
last_name
string
description
string
job_title
string
legacy_location
string
company
string
education
string
starred
boolean
source
string enum
Possible values: "linkedin_sync", "facebook_import", "cal_ingest", "email_ingest", "web_import", "csv_import", "whatsapp_sync", "imessage_sync", "phone_calls_sync", "mobile", "mobile_import", "instagram_sync", "oauth_interaction"
coordinates
object
coordinates.operation
string enum
Possible values: "set", "delete"
coordinates.data
object
coordinates.data.latitude
number
coordinates.data.longitude
number
priority_tier
integer
image_url
string (uri)
image_source
string (uri)
business_card_url
string (uri)
website
any
birthday
string (date)
birthday_year
number
frequency
string
last_seen_at
any
first_met_at
any
never_keep_in_touch
boolean
next_reminder_at
any
linkedin
string
twitter
string
facebook
string
instagram
string
telegram
string
tiktok
string
youtube
string
whatsapp_message_link
string
whatsapp_message_snippet
string
whatsapp_last_message_at
any
imessage_message_link
string
imessage_message_snippet
string
imessage_last_message_at
any
linkedin_message_link
string
linkedin_last_message_snippet
string
linkedin_last_message_at
any
linkedin_data
object
instagram_message_link
string
instagram_message_snippet
string
instagram_last_message_at
any
gmail_last_interaction_at
any
gmail_last_interaction_provider_id
string
gmail_last_interaction_subject
string
gmail_last_interaction_provider
string enum
Possible values: "GOOGLE", "OFFICE365"
gcal_last_interaction_at
any
gcal_last_interaction_provider_id
string
gcal_last_interaction_title
string
gcal_last_interaction_provider
string enum
Possible values: "GOOGLE", "OFFICE365"
phone_call_last_interaction_at
any
phone_call_interaction_snippet
string
web_search_summary
object
legacy_contact_addresses
array<object>
legacy_contact_addresses[].formatted
string
contact_emails
array<object>
contact_emails[].email
string
contact_emails[].label
string
contact_emails[].ranking
number
contact_phone_numbers
array<object>
contact_phone_numbers[].phone_number
string
contact_phone_numbers[].country_code
string
contact_phone_numbers[].phone_number_sanitized
string
contact_phone_numbers[].label
string
contact_phone_numbers[].ranking
number
groups_contacts
array<object>
groups_contacts[].group_id
string (uuid)
tags_contacts
object
tags_contacts.append
array<object>
tags_contacts.append[].tag_id
string (uuid)
tags_contacts.remove
array<object>
tags_contacts.remove[].tag_id
string (uuid)
tags_contacts.remove[].contact_id
string (uuid)
tags_contacts.replace
any
custom_fields
array<object>
custom_fields[].id
string (uuid)
custom_fields[].type
string enum
Possible values: "input"
custom_fields[].text_value
string
custom_fields[].custom_field
any
contact_birthdays
object
contact_birthdays.contact_id
string (uuid)
contact_birthdays.last_dismissal_year
number
is_archived
boolean
ignore_merge
boolean
related_contacts
object
related_contacts.append
array<object>
related_contacts.append[].destination
string (uuid)
related_contacts.append[].source_contact
any
related_contacts.append[].destination_contact
any
related_contacts.remove
array<object>
related_contacts.remove[].source
string (uuid)
related_contacts.remove[].destination
any
related_contacts.replace
any

Example

{
  "full_name": "string",
  "first_name": "string"
}

Responses

200 — Successful response

Content-Type: application/json

data
object required
data.contact
object required
data.contact.id
string (uuid) required
data.contact.user_id
string
data.contact.first_name
string | null
data.contact.last_name
string | null
data.contact.full_name
string | null
data.contact.description
string | null
data.contact.job_title
string | null
data.contact.company
string | null
data.contact.education
string | null
data.contact.legacy_location
string | null
data.contact.image_url
string | null
data.contact.business_card_url
string | null
data.contact.website
string | null
data.contact.image_source
string | null
data.contact.birthday
string (date-time)
data.contact.birthday_year
integer | null
data.contact.linkedin
string | null
data.contact.twitter
string | null
data.contact.facebook
string | null
data.contact.instagram
string | null
data.contact.telegram
string | null
data.contact.tiktok
string | null
data.contact.youtube
string | null
data.contact.starred
boolean
data.contact.is_archived
boolean
data.contact.ignore_merge
boolean
data.contact.never_keep_in_touch
boolean
data.contact.source
string
data.contact.priority_tier
integer | null
data.contact.frequency
string | null
data.contact.frequency_text
string | null
data.contact.last_seen_at
string (date-time)
data.contact.last_reminder_at
string (date-time)
data.contact.next_reminder_at
string (date-time)
data.contact.first_met_at
string (date-time)
data.contact.first_interaction_at
string (date-time)
data.contact.linkedin_companies
string | null
data.contact.linkedin_education
string | null
data.contact.linkedin_enhance_date
string (date-time)
data.contact.linkedin_last_message_at
string (date-time)
data.contact.linkedin_last_message_snippet
string | null
data.contact.linkedin_message_link
string | null
data.contact.whatsapp_message_link
string | null
data.contact.whatsapp_message_snippet
string | null
data.contact.whatsapp_last_message_at
string (date-time)
data.contact.imessage_message_link
string | null
data.contact.imessage_message_snippet
string | null
data.contact.imessage_last_message_at
string (date-time)
data.contact.instagram_message_link
string | null
data.contact.instagram_message_snippet
string | null
data.contact.instagram_last_message_at
string (date-time)
data.contact.gmail_last_interaction_at
string (date-time)
data.contact.gmail_last_interaction_provider
string enum
Possible values: "GOOGLE", "OFFICE365"
data.contact.gmail_last_interaction_provider_id
string | null
data.contact.gmail_last_interaction_subject
string | null
data.contact.gcal_last_interaction_at
string (date-time)
data.contact.gcal_last_interaction_provider
string enum
Possible values: "GOOGLE", "OFFICE365"
data.contact.gcal_last_interaction_provider_id
string | null
data.contact.gcal_last_interaction_title
string | null
data.contact.phone_call_interaction_snippet
string | null
data.contact.phone_call_last_interaction_at
string (date-time)
data.contact.web_search_summary
any | null
data.contact.created_at
string (date-time)
data.contact.updated_at
string (date-time)
data.contact.geocode_attempts
integer
data.contact.geocode_failed_at
string (date-time)
data.contact._count
object
data.contact._count.groups_contacts
integer
data.contact.frequency_interval
any
data.contact.linkedin_data
object | null
data.contact.latitude
number | null
data.contact.longitude
number | null
data.contact.contact_emails
array<object>
data.contact.contact_phone_numbers
array<object>
data.contact.contact_birthdays
object | null
data.contact.contact_locations
array<object>
data.contact.contacts_custom_fields
array<object>
data.contact.legacy_contact_addresses
array<object>
data.contact.groups_contacts
array<object>
data.contact.tags_contacts
array<object>
data.contact.timeline_items_contacts
array<object>
data.contact.reminders_contacts
array<object>
data.contact.contact_relations_contact_relations_sourceTocontacts
array<object>
data.contact.contact_relations_contact_relations_destinationTocontacts
array<object>
data.contact.feed_items
array<object>
data.contact.keep_in_touch_reminders
object | null

Example

{
  "data": {
    "contact": {
      "id": "00000000-0000-0000-0000-000000000000"
    }
  }
}

400

No response body.

401

No response body.

403

No response body.

404

No response body.

409

No response body.

429

No response body.

500

No response body.

Code samples

curl https://api.prod.getdex.com/v2/contacts/00000000-0000-0000-0000-000000000000 \
  --request PATCH \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "full_name": "string",
  "first_name": "string"
}'
Copyright © 2026