Update contact
Patch any subset of fields on an existing contact.
PATCH/api-contacts/:id
Requires the contacts:write scope. Only fields you include are updated; everything else is left untouched. Unknown fields are silently dropped.
Path parameters
Path
| Name | Type | Description |
|---|---|---|
idrequired | uuid | The contact ID. Must belong to the caller's organization. |
Updatable fields
first_name, last_name, email, phone, company, company_id, job_title, industry, address_line1, address_line2, city, state, zip, country, tags, status, stage, source, notes, linkedin_url, score.
System fields (id, org_id, created_at, updated_at, created_by, enriched_at, enrichment_status) cannot be set via this endpoint.
Example request
bash
curl -X PATCH \
'https://api.wundertreos.com/functions/v1/api-contacts/c8b1f3a0-4d2e-4f9a-9b1c-2d4e5f6a7b8c' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"tags": ["lead", "qualified"],
"stage": "qualified",
"score": 82
}'Response
Returns the updated contact (same shape as Get contact):
json
{ "data": { "id": "c8b1f3a0-…", "tags": ["lead", "qualified"], "stage": "qualified", "score": 82, "updated_at": "2026-05-17T14:05:00Z" } }Errors
| Status | error | When |
|---|---|---|
| 400 | invalid_request | The body has no updatable fields, or is not valid JSON. |
| 403 | forbidden | The credential lacks the contacts:write scope. |
| 404 | not_found | No contact with that ID in the caller's organization. |
