Bulk toggle a user’s subscription states
Subscribes or unsubscribes a user across one or more subscription types in a single call. Up to 100 toggles per request. Toggling to the current state is a no-op (idempotent). The response is the refreshed user record so callers can confirm the update without a second round-trip.
Idempotent — pass an Idempotency-Key header to make safely retryable. On a replay the original response is returned with Idempotent-Replayed: true. See the API conventions guide for the full state machine, TTL, and mismatch behaviour.
Authorizations
Project-scoped secret API key (sk_…). Pass in the Authorization: Bearer <key> header. Grants access to the project the key was issued for.
Path Parameters
Numeric ID (admin scope) or user external_id (project scope) — the route resolves both.
"cust-9f4b21"
Body
1 - 100 elementsResponse
The user, refreshed after the toggle.
A customer record being marketed to. Owned by a project; identified by external_id.
Numeric identifier. Use external_id as the stable cross-system reference.
1024
Identifier of the project this user belongs to.
42
Stable identifier supplied by the calling system. Treated as the user’s primary key for upserts.
"cust-9f4b21"
Time the user was first created. ISO 8601.
"2026-04-28T05:14:00.000Z"
Time the user was last modified. ISO 8601.
"2026-04-28T05:14:00.000Z"
Anonymous tracking identifier captured before the user was identified, when available.
"anon-2c8a3e"
User’s email address. Format-validated on write.
"jane@example.com"
User’s phone number in E.164 format on read.
"+61400123456"
IANA timezone used for time-of-day delivery scheduling.
"Australia/Sydney"
BCP-47 locale used for content rendering.
"en-AU"
Free-form custom attributes attached to the user. Used in segmentation and template rendering.
True when the user has at least one registered push device.
Registered push devices, when included.