23 live operations under /api/mail. 20 require a machine key; 3 are public. Tagged: Other.
| Method | Path | What it does | Auth |
|---|---|---|---|
POST | /api/mail/ai/compose-html | — | key |
DELETE | /api/mail/aliases/{id} | — | key |
GET | /api/mail/aliases | — | key |
POST | /api/mail/aliases | — | key |
DELETE | /api/mail/blocklist/{id} | — | key |
GET | /api/mail/blocklist | — | key |
POST | /api/mail/blocklist | { kind: "address"|"domain"|"pattern", value, reason? | key |
DELETE | /api/mail/contacts/{id} | Removes the SAVED DETAIL, not the contact. | key |
GET | /api/mail/contacts | Derived from message history: every distinct address the owner has sent to OR received from. | key |
PUT | /api/mail/contacts | Save or update the detail for one address. | key |
POST | /api/mail/foundation/daily | — | public |
GET | /api/mail/foundation/unsubscribe | one click, no login. | public |
POST | /api/mail/inbound | — | public |
GET | /api/mail/inbox | — | key |
POST | /api/mail/message/{id}/block | One-click block from an open message or a card. | key |
GET | /api/mail/message/{id} | — | key |
PATCH | /api/mail/message/{id} | — | key |
POST | /api/mail/send | Internal routing: alias-table OR ZID-derived address → local zid. | key |
GET | /api/mail/sent | — | key |
GET | /api/mail/signatures | — | key |
PUT | /api/mail/signatures | Upsert the signature for one address you own. | key |
GET | /api/mail/spam | Quarantine. Nothing here was rejected — it was scored, filed and kept, so a false positive is always recoverable by movi | key |
GET | /api/mail/stats | Auth-gate bootstrap. Returns counts + identity card. | key |
Generated by scripts/generate-reference.mjs from https://zeq.me/openapi.json.