Receive
Inbound email
Create inboxes, receive routed messages, retain attachments, and build chronological conversations.
Create an address
Create an inbox on a domain in the workspace using a valid local part. An inbox can be active or disabled. Disabling stops new routing without deleting retained email.
Routing
Cloudflare Email Routing passes the raw message to SendHQ. The worker resolves the recipient domain globally, matches an active inbox, parses safe MIME content, stores private attachments, and records the message as inbound.
Threading
Inbound and outbound messages are connected using Message-ID, In-Reply-To, and References. The thread endpoint returns tenant-scoped messages in chronological order.
Read state and search
Use PATCH /emails/:id with {"read": true}, or {"archived": true} to remove a received message from the Inbox view without deleting it. The email list supports direction, status, domain, inbox, label, archived, sender, recipient, unread, and date filters. query searches subjects, bodies, addresses, and attachment filenames. domain and label accept comma-separated lists.
Forwarding
PUT /inboxes/:id/forwarding with {"forward_to": "team@example.net"} sends a copy of every message the address receives to another mailbox. The account owner's own email activates immediately. Any other address receives a confirmation email from the inbox's verified domain, and forwarding stays pending until someone there confirms. Forwarded copies come from the inbox address with the original sender as Reply-To, count as one recipient each, skip suppressed targets, and are never forwarded a second time. Send {"forward_to": null} to turn it off.
Retention
Messages and attachments are retained according to the workspace retention configuration. Attachment metadata can remain visible after its stored object expires, with available: false.