Partially update a contact

Search Documentation

Search across all developer documentation

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 (a null value 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.
  • listsadd/remove apply 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