Skip to main content

Update Contact

Update an existing contact's information. Only the fields you include in the request body will be updated — all other fields remain unchanged.

Endpoint

PATCH /contacts/:id

Returns: 200 OK

Headers

HeaderValueRequired
AuthorizationBearer <your-api-key>Yes
Content-Typeapplication/jsonYes

Path Parameters

ParameterTypeDescription
idstringThe contact ID to update

Body Parameters

All fields are optional. Only include the fields you want to change.

ParameterTypeRequiredDescription
emailstring | nullNoUpdated email address. Set to null to clear.
phone_numberstring | nullNoUpdated phone number in E.164 format. Set to null to clear.
first_namestring | nullNoUpdated first name. Max 100 characters. Set to null to clear.
last_namestring | nullNoUpdated last name. Max 100 characters. Set to null to clear.
propertiesobjectNoCustom property values. Replaces the previous values.
list_idsstring[]NoList IDs to add the contact to.
info

Setting a field to null clears its value. Omitting a field leaves it unchanged. These are different behaviors — be intentional about which you use.


Response

Returns the full updated contact object. See Create Contact for the complete response schema.

{
"id": "01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a",
"email": "john.updated@example.com",
"phone_number": "+201234567890",
"first_name": "John",
"last_name": "Doe",
"source": "api",
"properties": {
"company": "New Company"
},
"is_suppressed": false,
"created_at": "2026-01-15T10:00:00.000Z",
"updated_at": "2026-03-08T14:30:00.000Z"
}

Examples

Update Email and Name

curl -X PATCH "https://api.arsel.sa/v1/contacts/01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a" \
-H "Authorization: Bearer be_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"email": "john.updated@example.com",
"first_name": "Jonathan"
}'

Update Custom Properties

curl -X PATCH "https://api.arsel.sa/v1/contacts/01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a" \
-H "Authorization: Bearer be_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"properties": {
"company": "New Company",
"city": "Jeddah"
}
}'

Error Responses

{
"status_code": 404,
"name": "not_found",
"message": "Contact not found"
}