v2

latestOpenAPI 3.0.02026-07-26365590.3 KB
Contacts

Update a contact

Updates an existing contact. Only provided fields will be updated. Returns 404 if the contact is in a workspace outside the API key scope.

patch/v1/contacts/{id}

Path parameters

idstring required

Request body

firstNamestring

First name of the contact

lastNamestring

Last name of the contact

emailstring

Email address of the contact

companystring

Company name

citystring

City

countrystring

Country

urlstring

Website URL

linkedinUrlstring

LinkedIn profile URL

linkedinSalesUrlstring

LinkedIn Sales Navigator URL

rolestring

Role / job title

allowPhoneCallsboolean

Whether the contact accepts phone calls

phoneNumbersstring[]

Phone numbers in E.164 format. If provided, replaces all existing phone numbers.

customFieldsobject

Custom field values keyed by the custom field slug (the stable, immutable identifier returned by GET /custom-fields). Only provided keys are updated; omit to leave existing values untouched. Custom fields must already exist for the team. For backwards compatibility this endpoint also accepts keys matching the custom field name, but this fallback is deprecated and will be removed in a future release — migrate your integrations to use slugs.

Example request

{
  "firstName": "John",
  "lastName": "Doe",
  "email": "john.doe@example.com",
  "company": "Acme Inc.",
  "city": "Paris",
  "country": "France",
  "url": "https://example.com",
  "linkedinUrl": "https://linkedin.com/in/johndoe",
  "linkedinSalesUrl": "https://linkedin.com/sales/people/johndoe",
  "role": "CTO",
  "allowPhoneCalls": true,
  "phoneNumbers": [
    "+33612345678",
    "+33698765432"
  ],
  "customFields": {
    "industry": "Technology",
    "team_size": "50-100"
  }
}

Response

The updated contact

idstring required
firstNamestring required
lastNamestring required
emailobject nullable
companyobject nullable
cityobject nullable
countryobject nullable
urlobject nullable
linkedinUrlobject nullable
linkedinSalesUrlobject nullable
roleobject nullable
allowPhoneCallsboolean required
callCountnumber required
lastCallAtstring date-time nullable
teamIdstring required
phoneNumbersstring[] required
customFieldsobject required
createdAtstring date-time required
updatedAtstring date-time required
lastModificationSource'SKIPCALL' | 'API' required

Example response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "firstName": "John",
  "lastName": "Doe",
  "allowPhoneCalls": true,
  "callCount": 5,
  "teamId": "550e8400-e29b-41d4-a716-446655440000",
  "phoneNumbers": [
    "+33612345678"
  ],
  "customFields": {
    "Industry": "Technology",
    "Size": "50-100"
  }
}