v58

latestOpenAPI 3.0.0raw.githubusercontent.com2026-08-073053701.0 MB
Reach: Contacts

Update a contact

Update a contact's attributes and custom field values.

Only the properties present in the request body are changed, so a partial body is enough to change a single attribute. Sending a property as null clears it.

The response carries the contact's core attributes. Read back its tags, custom field values, source and note with GET /api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}.

patch/api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}

Path parameters

profileUuidstring required
Example:550e8400-e09b-41d4-a716-400055000000

Profile uuid parameter

contactUuidstring uuid required
Example:550e8400-e29b-41d4-a716-446655440000

Contact uuid parameter

Request body

emailstring nullable
namestring nullable
surnamestring nullable
phonestring nullable

Phone number in E.164 format (leading "+" then 7-15 digits)

subscription_status'subscribed' | 'unsubscribed' | 'confirmed' | 'pending' nullable
notestring nullable

Example request

{
  "email": "john.doe@example.com",
  "name": "John",
  "surname": "Doe",
  "phone": "+14155552671",
  "subscription_status": "subscribed",
  "note": "VIP customer"
}

Response

Success response

uuidstring
namestring nullable
surnamestring nullable
emailstring
phonestring nullable
subscription_status'subscribed' | 'unsubscribed' | 'confirmed' | 'pending'
subscribed_atstring date-time nullable
unsubscribed_atstring date-time nullable

Example response

{
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "name": "John",
  "surname": "Doe",
  "email": "john.doe@example.com",
  "phone": "+14155552671",
  "subscription_status": "subscribed",
  "subscribed_at": "2023-01-01T00:00:00Z",
  "unsubscribed_at": "2023-06-15T00:00:00Z"
}