API referenceContacts
Update a contact
PATCH
attributes is a merge (incoming keys overlay existing; keys not present are kept) — not a replace. status changes only affect marketing eligibility.
bearerAuthheader
AuthorizationBearer <token>API key sent as Authorization: Bearer <key>. Looked up by SHA-256
hash (email_core::sha256_hex) against api_keys.hash; revoked
keys and keys belonging to a suspended tenant are rejected. See the
top-level Authentication section for permission levels.
id*stringapplication/json- body
attributes?Flat schemaless attributes (email_core::validate_attributes): object only, at most 50 keys, ≤8 KiB serialized, and every value must be a string/number/bool/null — no nested objects or arrays.
Default
{}status?stringValue in
"subscribed""unsubscribed""cleaned"Updated.
application/json- response
The intentionally minimal response from create/patch (no attributes/source/timestamps).
id?stringemail?stringstatus?stringValue in
"subscribed""unsubscribed""cleaned"curl -X PATCH "https://example.com/v1/contacts/string" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "string", "email": "string", "status": "subscribed"}