This is not the Blocklist API. That one is inbound: it stops the AI from replying to a visitor who messages you. This one is outbound: it stops you reaching out. They answer different questions and share no storage.
What an entry is
Entries are keyed on the address, not on a contact record, so consent survives the contact being merged, deleted or re-imported.Who else writes entries
The list is shared with the channels themselves. Besides what you add, entries appear when:- a person opts out of WhatsApp marketing messages (
channel: whatsapp), - a person unsubscribes from an email through the unsubscribe link or one-click header (
channel: email), - an email address hard-bounces (
channel: email).
source other than api. List returns all of them so a sync into your CRM sees everything.
How channels are covered
A block applies to every channel that could reach the address:
Someone reachable on WhatsApp without a known phone number is a separate identity: if you hold both a phone and a WhatsApp user id for a person, block both.
A person is skipped at enrollment only when every channel they could be reached on is blocked. A block on one channel leaves them enrollable, and the launch and send gates hold them on that channel only.
Rules
- Blocking is idempotent and only strengthens. Re-blocking an existing address never shortens its expiry and never turns a permanent block into a temporary one. Retrying a queued job is harmless.
expires_atmust be in the future. Omit it for a permanent block.- Unblocking defaults to your own entries. Unblock removes entries with
source: apithat cover every channel. A person’s own opt-out and single-channel entries are left in place and counted inskipped. Whenskippedis above zero the address is still blocked; passinclude_provider_entries=trueto remove those too, deliberately. - Check ignores expired entries. Check answers
blockedwhen at least one live entry exists and returns them, so you can see which channel each covers. - Invalid addresses are rejected, never stored as-is, so junk can never occupy an address’s slot.
Scopes
Entries govern outbound sending, so the endpoints use the sequence scopes:sequences:write to block and unblock, sequences:read to check and list.
Available endpoints
Block address
Add a phone, email or WhatsApp user id
Unblock address
Remove an address, with skipped reporting
Check address
Is this address blocked, and on which channels
List addresses
Page through the whole list, newest first