Update a Contact
Update a contact.
Applies a partial (merge-patch) update to the contact: only the attributes named in the request are changed; any attribute you omit is left untouched. This endpoint updates the contact's custom field values.
To set custom field values, send them under attributes.custom_fields, keyed by custom field id. The value type is inferred from the field definition — no type is sent in the request. Only simple field types may be set: text, number, boolean, and date. Prompt-capable / computed types (ai_*, contact_collection) and unknown custom field ids are rejected with 400. The updated values are returned inside the entity's data envelope.
The request is validated strictly and applied atomically: if any field fails validation, the whole request is rejected and nothing is written. Per-field errors carry a source.pointer locating the offending field; when fields fail with different statuses, the response status is the most severe one (403 over 400). Sending null as a value clears that field (merge-patch delete); clearing a field with no stored value is a no-op. A maximum of 100 custom fields may be supplied per request.
Credit Note: Updating a contact does not consume credits.
:::info Requires the custom_fields:write OAuth2 scope. :::
Path parameters
The contact's ID. Note that the older string-based ID format continues to be supported.
Query parameters
The Leadfeeder Account ID. The Account ID can be retrieved using the List Accounts endpoint.
Request body
Response
Contact updated
Example response
{
"meta": {
"request_id": "cf054205-dd8c-4473-8689-07c30fe0789f"
}
}