# Compliance requirements

> Opt-in, unsubscribe, physical address, and what gets a Mailmanny workspace's sending paused.

Source: https://www.mailmanny.com/docs/compliance
All docs for AI agents: https://www.mailmanny.com/llms.txt

Every Mailmanny workspace shares sending infrastructure with every other one, so the rules are the same for all of us. They're also what keeps your email out of spam folders. Here's what the API expects from you, and what Mailmanny does automatically.

## 1. Only email people who asked

- Add contacts only with their permission: a signup form, a checkbox at checkout, an account they created. Purchased, rented, scraped or "borrowed" lists are banned by the [Acceptable Use Policy](https://www.mailmanny.com/acceptable-use).
- Record where consent came from. Pass `consent_source` (and `ip` when you have it) when you add contacts; it becomes the contact's consent record. Without one, Mailmanny records the API key that added them.
- Double opt-in is on by default. Contacts added through the API get the confirmation email and stay `pending` until they click it. Skipping it requires a full-access key and a `consent_source`, and is meant for people who already confirmed somewhere else.

## 2. Make leaving easy

- Campaigns and automations get a one-click unsubscribe header (`List-Unsubscribe` plus `List-Unsubscribe-Post`, which Gmail and Yahoo require) and an unsubscribe link in the footer, automatically.
- Unsubscribes take effect immediately, everywhere. The API never resubscribes anyone.
- If you run your own preference center, unsubscribe people through the API (`PATCH` with `status: "unsubscribed"`) so every list stays in sync.

## 3. Show who you are

Marketing email must include your physical mailing address (CAN-SPAM). Mailmanny prints the address from your workspace settings in every campaign and automation footer, and won't send marketing until it's filled in. Send from your own verified domain with an honest from name and subject line.

## 4. Keep transactional email transactional

The emails API is for messages a person expects because of something they did: receipts, password resets, shipping updates, account alerts. Promotions and newsletters belong in campaigns, which handle unsubscribes, footers and segmentation for you. Sending marketing through the transactional API is a policy violation.

For new accounts, and accounts we're watching more closely, the first API email of each kind gets a quick automatic review before it goes out. Emails that differ only in names, numbers, codes or link paths count as one kind. The API accepts the request as usual, and the message shows `last_event: "delivery_delayed"` until it's approved, usually in under a minute; after that, emails of the same kind go straight out. If the review holds it, those messages fail and further sends of that email return 422 `sending_blocked` with the reasons. Change the email and send it again.

## What gets sending paused

Mailmanny watches every workspace's delivery feedback in real time and pauses sending automatically, well before mailbox providers would act, when:

- `Bounce rate` (above 3%): Usually an old, bought or mistyped list. Hard-bounced addresses are suppressed automatically.
- `Spam complaint rate` (above 0.08%): About 1 complaint per 1,250 emails. People don't remember signing up, or can't find the unsubscribe link.
- `Abuse reports` (3 reports in 24 hours): Reports from recipients or providers are reviewed before sending resumes.
- `Content checks` (held for review): Phishing-like content, deceptive links, URL shorteners and denylisted domains.

A paused workspace can still use the contacts and templates APIs; send requests return 423 `workspace_paused`. Email that was queued waits rather than failing. Repeated or serious abuse suspends the workspace for good.

### New workspaces

New workspaces start with small daily caps, a contact limit, and a quick automatic review of their first campaigns. Caps grow on their own as your metrics stay healthy. It's the same warm-up mailbox providers expect from any new sender.

> **Compliance:** Bounces and complaints follow the address, not the list
> An address that hard-bounced or marked you as spam is suppressed in your whole workspace, and the API skips it with `last_event: "suppressed"`. Don't work around it: those addresses are the fastest way to get paused.

Questions about a specific use case? Read the [Acceptable Use Policy](https://www.mailmanny.com/acceptable-use) or write to support before you send.
