Update a contact

PATCH
/lists/contacts/{contactId}

Updates a contact identified by its id only (its list is derived from the contact). The body is the same flat object as POST /lists/list/{listId}/contacts, with the same key resolution and the same pitfalls: unknown keys create custom variables, null and empty strings are ignored (a field cannot be cleared), sent fields overwrite, absent fields stay untouched. A company row is created if the contact has none and company fields are sent.

No duplicate check is made: changing the email to one already present in the list creates a duplicate. List counters are not updated. The campaigns using the list are resynchronized.

Authorization

apiKey
Authorization<token>

Your 48 character API key, sent as is (a Bearer prefix is tolerated). Create it at https://v3.emelia.io/settings/api.

In: header

Path Parameters

contactId*string

Contact id (leadId).

Match^[0-9a-fA-F]{24}$

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Flat contact object: one key per field, scalar values only. Standard keys are listed in the description of POST /lists/list/{listId}/contacts; any other key goes to an existing custom variable of the same name or creates a new one. Numbers and booleans are converted to strings. null and empty strings are ignored. Arrays and objects are rejected.

Properties1 <= properties

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/lists/contacts/65f1a2b3c4d5e6f74db757ce" \  -H "Authorization: YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "jobTitle": "VP Sales",    "phone": "+33612345678",    "icebreaker": "Saw your post about the Series A"  }'
{  "success": true,  "leadId": "66f2a1b2c3d4e5f6a7b8c9d0",  "companyId": "66f2a1b2c3d4e5f6a7b8c9e0",  "createdCustomVariables": []}