Skip to main content
Anyreach keeps an org-scoped suppression ledger of addresses that should never be messaged again. Every recipient is considered subscribed unless their address is listed. Each send is checked against the ledger first, so an opt-out takes effect immediately.

How the ledger works

The ledger is a single table of suppressed addresses, scoped to your organization. A row records the address, the channel, the reason it was added, and the date it was created. An address is unique per organization and channel, so the same address can be suppressed independently on different channels. Before drafting or sending a reply, Anyreach checks whether the sender’s address is suppressed. If it is, the message is still recorded as part of the conversation, but no reply is sent. The check runs again as a safety net right before the send, in case the address was suppressed between the inbound message and the outbound reply.
inbound message

   ├─ control keyword? ── STOP  → add to ledger
   │                      START → remove from ledger

   ├─ record the turn (always)

   └─ suppressed?  ── yes → record only, no reply
                      no  → draft → re-check ledger → send

What adds and removes addresses

Addresses land in the ledger automatically. You do not need to manage it by hand for normal opt-outs.
TriggerEffectReason
Inbound STOP keywordAddress addedstop_keyword
Hard bounce delivery eventAddress addedbounce
Spam complaint delivery eventAddress addedcomplaint
Inbound START keywordAddress removed
Resubscribe in the dashboardAddress removed

Control keywords

Anyreach scans the body of each inbound message for a control keyword. A STOP keyword adds the sender to the ledger; a START keyword removes them. Either way the message is still recorded as a conversation turn, it just does not get a reply. The keywords are matched case-insensitively against the message:
KeywordRecognized words
STOPstop, stopall, unsubscribe, cancel, end, quit, optout, opt-out
STARTstart, unstop, subscribe, resume, yes
HELPhelp, info
A HELP keyword does not change the ledger. It is recognized so the message is not treated as normal content to reply to.

Bounces and complaints

Delivery events feed the ledger too. When a send hard-bounces, the recipient is added with reason bounce. When a recipient marks a message as spam, they are added with reason complaint. See delivery status for how these events are reported. By default, replies append a footer so recipients always have a way to opt out:
Reply STOP to unsubscribe.
The footer is added to both the HTML and plain-text parts of the email. It is controlled per email agent by the include_unsubscribe_footer property, which is on by default. Configure it on the agent — see configuring an email agent.

The Unsubscribes page

Open Settings → Unsubscribes to see the ledger. The page lists every suppressed address with its channel, reason, and date, newest first.
ColumnDescription
AddressThe suppressed address
ChannelThe channel the suppression applies to
ReasonWhy it was added (for example stop_keyword, bounce, complaint)
DateWhen it was added
To opt an address back in, select Resubscribe on its row. This removes the row from the ledger, and the address becomes eligible for messaging again on that channel.
Only resubscribe an address when you have a clear basis to do so. Bounce and complaint suppressions exist to protect your sending reputation; re-messaging a complaining recipient can harm deliverability.

API

The ledger is exposed under the /core prefix. Both endpoints are organization-scoped via your credentials.
MethodPathScope
GET/core/unsubscribesunsubscribes:read or unsubscribes:manage
DELETE/core/unsubscribes/{id}unsubscribes:manage
GET /core/unsubscribes returns the suppression rows ordered by created_at descending. DELETE /core/unsubscribes/{id} resubscribes an address by removing its row.
# List suppressions
curl https://api.anyreach.ai/core/unsubscribes \
  -H "Authorization: Bearer <token>" \
  -H "X-Anyreach-Org: <organization_id>"

# Resubscribe (remove a row)
curl -X DELETE https://api.anyreach.ai/core/unsubscribes/<id> \
  -H "Authorization: Bearer <token>" \
  -H "X-Anyreach-Org: <organization_id>"
X-Anyreach-Org is required for user PATs (pat_). Organization API keys (ak_) carry their organization implicitly.

Configuring an email agent

Set the unsubscribe footer and other reply properties.

Delivery status

How bounces and complaints are reported.