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.Requires the custom_fields:write OAuth2 scope.