Updates the fields you send and leaves the rest unchanged. To merge many contacts by phone number at once, use Import contacts.
Request#
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Path parameter. The contact_id. |
Body:
| Field | Type | Required | Description |
|---|---|---|---|
phone_number |
string | No | New E.164 number. Must not belong to another contact. |
first_name |
string or null | No | Up to 100 characters. null clears it. |
last_name |
string or null | No | Up to 100 characters. null clears it. |
email |
string or null | No | A valid email address. null or "" clears it. |
custom_fields |
object | No | Replaces all custom fields. Values can be string, number or boolean and are stored as strings. Send {} to clear them. |
do_not_call |
boolean | No | Do-not-call flag. |
Example request#
curl -X PATCH https://api.tried.com.au/update-contact/contact_4b8e2f1a9c3d5e7f6a0b2c4d \
-H "Authorization: Bearer $TRIED_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "do_not_call": true, "custom_fields": { "plan": "Enterprise" } }'const id = "contact_4b8e2f1a9c3d5e7f6a0b2c4d";
const res = await fetch(`https://api.tried.com.au/update-contact/${id}`, {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.TRIED_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ do_not_call: true, custom_fields: { plan: "Enterprise" } }),
});
const contact = await res.json();import os, requests
contact_id = "contact_4b8e2f1a9c3d5e7f6a0b2c4d"
res = requests.patch(
f"https://api.tried.com.au/update-contact/{contact_id}",
headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
json={"do_not_call": True, "custom_fields": {"plan": "Enterprise"}},
)
contact = res.json()Response#
200 OK
{
"contact_id": "contact_4b8e2f1a9c3d5e7f6a0b2c4d",
"phone_number": "+61412345678",
"first_name": "Sam",
"last_name": "Nguyen",
"email": "sam@example.com",
"custom_fields": { "plan": "Enterprise" },
"do_not_call": true,
"created_timestamp": 1760850000000,
"last_modification_timestamp": 1760857200000
}Fields are described in Create contact.
Errors#
| Status | When |
|---|---|
400 |
Body fails validation, for example email: Invalid email. |
401 |
Missing or invalid API key. |
403 |
The key's IP allowlist or scopes reject the request, or the caller has the read-only member role. This route needs the calls scope. |
404 |
Contact <id> not found. |
409 |
A contact with <phone_number> already exists. |
429 |
Rate limit exceeded. See Rate limits. |
See Errors for the body format.
Retell compatibility#
Same path and method as Retell. custom_fields replaces the whole object rather than clearing single keys set to null, and phone_number and email can be changed here.