Update an existing contact in your account
Update an existing contact with the specified information.
Use PUT
for a full update (replacing all fields) or PATCH
for a partial update (only updating specified fields).
This endpoint requires an API key with the can_read_contacts
permission.
Parameter | Type | Required | Description |
---|---|---|---|
contact_id | integer | Yes | The ID of the contact to update |
The request body can include any of the fields available when creating a contact. Only the fields you include will be updated when using PATCH
.
Parameter | Type | Required | Description |
---|---|---|---|
first_name | string | No | First name of the contact |
last_name | string | No | Last name of the contact |
email | string | No | Email address of the contact |
company | string | No | Company or organization name |
website | string | No | Company or personal website URL |
address | string | No | Street address |
city | string | No | City |
state | string | No | State or province |
zip_code | string | No | Postal or ZIP code |
country | string | No | Country |
status | string | No | Contact status |
stage | string | No | Contact stage |
team_id | integer | No | ID of the team to assign the contact to |
tags | array | No | Array of tag names (replaces existing tags) |
phone_numbers | array | No | Array of phone number objects |
custom_context | object | No | Custom fields and data |
industry_context | object | No | Industry-specific information |
When updating phone numbers, you can include the id
to update existing numbers:
Parameter | Type | Required | Description |
---|---|---|---|
id | integer | No | ID of an existing phone number (for updates) |
phone_number | string | Yes | Phone number in E.164 format |
phone_type | string | No | Type of phone (mobile, work, home, etc.) |
primary | boolean | No | Whether this is the primary phone number |
do_not_call | boolean | No | Whether this number is on the do not call list |
Status Code | Error Code | Description |
---|---|---|
400 | invalid_json | Invalid JSON payload |
400 | validation_error | Validation error with details |
401 | authentication_required | No API key was provided |
401 | invalid_key | The API key is invalid or inactive |
403 | permission_denied | The API key doesn’t have the required permission |
403 | team_access_denied | You do not have access to this team |
404 | not_found | Contact not found or you do not have access |
404 | team_not_found | Team not found |
500 | server_error | An unexpected server error occurred |
PUT
requests replace the entire contact object. Any fields not included in the request will be set to their default values or null
.PATCH
requests only update the fields included in the request. Existing fields not mentioned in the request remain unchanged.PUT
, all existing phone numbers will be deleted and replaced with those in the request.PATCH
:
id
will be updated if they exist.id
will be added as new numbers.tags
array completely replaces the existing tags for both PUT
and PATCH
requests.PUT
, the entire context object is replaced.PATCH
, the context objects are merged with existing data, with new values overwriting old ones for the same keys.