Documentation navigation

Data inventory · Updated October 2026

Data & Privacy

MarkRelay runs in your own Cloudflare account, your own cloud account rather than ours. Mailboxes, messages, attachments and contacts are stored in the D1 database and R2 bucket in your own Cloudflare account. MarkRelay never receives your email, attachments or contacts. This page lists each kind of data, where it is stored, and who can see it.

This page is about the data inside your deployment. The Privacy Policy covers markrelay.com itself: its visitors, customers and purchases.

Where each kind of data is stored

Your deployment has one D1 database and one R2 bucket, both in your Cloudflare account. D1 keeps what lists, search and threading need; R2 keeps message bodies, files and designs.

DataWhere it is storedWho can see it in MarkRelay
Domains and mailboxesD1Administrators manage them; members see the mailboxes granted to them
Messages: index (sender, recipients, subject, snippet, folder, read and starred state, thread)D1People and API keys granted the mailbox, and administrators
Messages: body, headers, Cc/Bcc and authentication resultsR2, one object per messageSame as above
AttachmentsR2 (file) and D1 (name, type, size)Same as above
DraftsD1 and R2, like any other message, in the Drafts folderPeople with access to the mailbox
FoldersA folder field on each message in D1 (Inbox, Starred, Drafts, Sent, Spam, Archive, Trash)People with access to the mailbox
TemplatesD1 (name, subject, sharing) and R2 (the design)Their creator, and whoever they are shared with
Broadcasts: settings and contentD1 (name, sender, schedule, tracking switches) and R2 (the message content)The broadcast's creator, and administrators
Broadcast recipients (your contacts)R2 (the imported list) and D1 (one delivery row per recipient, with its columns and results)The broadcast's creator, and administrators
Opens and clicksD1, on each recipient's delivery row, only for broadcasts with tracking turned onThe broadcast's creator, and administrators
Suppression list (unsubscribes, bounces, complaints, manual blocks)D1Administrators
Send and receive logsD1, deleted automatically after 90 daysPeople with access to that mailbox, and administrators
People: accounts, sessions and mailbox grantsD1Each person their own; administrators everyone's
API keysD1, with their owner, scope, status and last-used timeThe key's owner, and administrators
Webhooks: destination URL, scope and signing secretsD1The webhook's owner, and administrators

Anyone with access to your Cloudflare account can also open the D1 database and R2 bucket in the Cloudflare dashboard, so keep that account to the people who run the deployment.

What Cloudflare processes

Cloudflare productWhat it does for MarkRelay
Email RoutingReceives mail for your domains and hands each message to your MarkRelay Worker.
Email SendingSends your replies, new mail and broadcasts from your own domains.
WorkersRuns the MarkRelay app, its API, webhooks and scheduled jobs.
D1The database described above.
R2The storage described above.

What Cloudflare says about it, in its own words:

  • Email Routing: “Cloudflare does not store or access the content of your emails.” (Email Routing)
  • Cloudflare shows routing activity, including sender, recipient, subject and status, in the Email Routing activity log and analytics (Email Routing analytics).
  • For sent mail, previews “are retained for about seven days” while Email preview is on for the sending domain; it is on for new sending domains (Email activity log).

Your mail passes through Cloudflare's network on its way in and out. MarkRelay does not add any promise on Cloudflare's behalf; read Cloudflare's own pages for how it handles that traffic.

What MarkRelay receives

MarkRelay never receives your email, attachments or contacts; your deployment only contacts markrelay.com to check its license.

Mail sent to webhook destinations

A webhook sends mail from the mailboxes it covers to the destination its owner chooses: the full message to a custom endpoint, or the sender, mailbox, subject and a short preview to a team chat such as Slack or Feishu/Lark. What arrives there is kept under that service's own terms. See Inbound webhooks.

Tracking

Broadcast open tracking and click tracking are off by default; you turn them on per broadcast. When tracking is on, opens and clicks are recorded by your own deployment and stored in your own database, not by a third-party tracking service: the pixel is served from /api/mail/track/open and links redirect through /api/mail/track/click on your own deployment. A cloned broadcast keeps the tracking settings of the one it was cloned from. Mail sent from webmail and the API is never tracked. See a newsletter without tracking.

Images in received mail

Remote images in received mail load through your own deployment, so senders' tracking pixels don't see the reader's IP address or browser. Your deployment fetches the image and passes it to the browser.

Access

Each person sees only the mailboxes they are granted; administrators can open every mailbox. API keys and webhooks belong to a person and reach only the mailboxes granted to them, narrowed further to one domain or selected mailboxes if you choose. That includes an AI agent's key: an agent only sees mail if you connect one, and only the mailboxes its key is granted. No built-in AI reads your mail. See Members & access and giving an agent one mailbox.

Retention

  • Send and receive logs are deleted automatically after 90 days.
  • Everything else stays in your D1 database and R2 bucket until you delete it.
  • Cloudflare's own logs and previews follow Cloudflare's retention, described above.

Your responsibilities

You run the deployment, so you decide who can use it and what is sent from it. Every broadcast includes one-click unsubscribe (RFC 8058); unsubscribes, hard bounces and complaints are suppressed automatically. You are responsible for collecting consent where it is needed, for honoring unsubscribes, and for following the laws where you and your recipients are, such as CAN-SPAM and GDPR, and Cloudflare's Email Service terms. See Broadcasts and Deliverability.

Common questions

Can MarkRelay read my email?

No. MarkRelay never receives your email, attachments or contacts. They are stored in the D1 database and R2 bucket in your own Cloudflare account, and your deployment only contacts markrelay.com to check its license.

Is Cloudflare Email Routing private? Does Cloudflare read or store my emails?

Cloudflare says Email Routing does not store or access the content of your emails. It does show routing activity (sender, recipient, subject and status) in its activity log and analytics. For mail you send through Email Sending, Cloudflare keeps previews for about seven days while Email preview is on for the sending domain. Read Cloudflare's own pages for the details.

How long is my data kept?

Send and receive logs are deleted automatically after 90 days. Everything else, including messages, attachments, recipient lists and the suppression list, stays until you delete it.

Does any AI read my mail?

No built-in AI reads your mail. An AI agent only sees mail if you connect one, and only the mailboxes its key is granted.

Is this the same as the markrelay.com privacy policy?

No. The privacy policy covers markrelay.com itself: visitors, customers and purchases. This page covers the data inside your own MarkRelay deployment.

Next: private email in your own cloud account, a newsletter without tracking, or one mailbox for an AI agent.