contacts
Partially update a contact
PATCH /v1/contacts/{email}
Auth required
api.contacts.manage
Partial diff-merge: only the fields present in the body are applied.
attributes— keys in the map are set or cleared (anullvalue removes the key); keys absent from the map are left untouched.topic_preferences— only the listed topics are updated; others keep their existing preference.unsubscribe_all— when present, sets the master opt-out flag.lists—add/removeapply a delta;set, when present, replaces membership declaratively.
Returns 404 not_found when the contact does not exist or has been
deleted. Supports the Idempotency-Key header.
Path parameters
email string<email> required Recipient address. Percent-encode @ as %40. Matched case-insensitively.
Request body
Content type: application/json
{
"attributes": {},
"unsubscribe_all": true,
"topic_preferences": [
{
"topic_name": "string",
"subscription_status": "OPT_IN"
}
],
"lists": {
"add": [
"00000000-0000-0000-0000-000000000000"
],
"remove": [
"00000000-0000-0000-0000-000000000000"
],
"set": [
"00000000-0000-0000-0000-000000000000"
]
}
} Responses
200 Contact updated application/json
401 Missing, malformed, or unknown API key application/problem+json
403 Key lacks the required scope or plan limit violated application/problem+json
404 Resource not found application/problem+json
422 Query parameter or path value failed validation application/problem+json
429 Per-org rate limit exceeded application/problem+json
500 Unexpected server-side failure. The
code is internal_error. The
request_id field can be quoted to SendOps support to investigate.
application/problem+json