Privacy Policy · MachineMail
Privacy Policy
Effective November 2, 2026.
MachineMail is an email API for AI agents. This policy says what we collect, why, who helps us run the service, how long we keep it, and what you can ask us to do with it. It covers machinemail.dev, the dashboard, the API, the MCP server at mcp.machinemail.dev, the CLI and the docs.
"MachineMail", "we" and "us" means the operator of MachineMail at machinemail.dev. "You" means the person or organization with a MachineMail account.
01 The short version
- We store the mail your inboxes send and receive so your agents can use it. That is the product.
- Every inbound message is checked automatically for phishing and prompt injection. Part of that check runs on a hosted model at Cloudflare.
- We don't sell your data, we don't show ads, and the site has no ad trackers. We count visits to our public pages with cookieless analytics that store no personal data.
- You can export an inbox and delete it at any time. Deleting an inbox deletes its mail.
- Questions go to support@machinemail.dev.
02 Our role
For your account and how you use the service, we decide what to collect and why. We are the controller of that data. Payments for paid plans are handled by Polar, which sells our paid plans as Merchant of Record. Polar's privacy policy covers the payment details it collects.
For the mail in your inboxes, we act on your behalf. You decide which inboxes exist, who writes to them, what your agents send, and when mail is deleted. We process that mail to run the service for you and for nothing else. The people who email your inboxes are your correspondents: if one of them asks us about their data, we will point them to you and help you answer. A data processing agreement is available on request: email support@machinemail.dev.
03 What we collect
Account data
- Your email address, and your name if you give it.
- Your organization's name, its members, their roles, and the email addresses you send invitations to.
- How you sign in. You sign in with a one-time code we email to you, with a social account such as GitHub or Google, or with your organization's single sign-on (SSO). Sign-in, organization membership and invitations are handled by WorkOS. When you sign in with a social account, that provider shares your name, email address and profile with us through WorkOS. For each organization you belong to, we record which of these methods you have used to sign in to it, which one you used last and when. That organization's members list shows the methods (not the times); other organizations you belong to never see them.
- For paid plans, billing details are collected by Polar, our Merchant of Record, at checkout: your name, email address, billing address, tax ID if you give one, and payment details (card payments are processed by Stripe on Polar's behalf). When you start a checkout, we give Polar your organization's ID and the email address and IP address of the person checking out. We receive what we need to run your subscription, and store Polar's customer and subscription IDs, your plan, the subscription's status and its current billing period. To bill usage beyond what your plan includes, we send Polar usage counts tied to your organization's ID: messages received, recipients sent to, storage in GB and the number of custom domains. We never send Polar the content of your mail. We never see or store full card numbers.
Inbox contents
- Every message your inboxes receive and send: headers, subject, body, attachments and the raw message (MIME) as it arrived.
- Drafts, threads, labels and anything else you or your agents store with a message.
- The trust report we attach to each inbound message: authentication results (SPF, DKIM, DMARC), link and attachment findings, classifier scores and the reasons behind its verdict.
- The email addresses and names of the people your inboxes correspond with, because they are in the mail.
Message metadata and delivery data
- Who sent a message to whom, when, its size, its status (sent, delivered, bounced, complained), and the IDs that tie it to a thread.
- Your suppression list: addresses we stopped sending to after a permanent bounce or a spam complaint, plus any you add.
- Your allow and block lists.
- Your custom domains and the DNS records we check to verify them.
Credentials and connections
- API keys. We store a one-way hash of each key and its first characters, never the key itself. You see the full key once, when it is created.
- Dashboard sessions. A session cookie (
mm_session), valid for 30 days. - Agent registrations. When an agent registers itself through auth.md, we store the registration, its sandbox inbox, whether a person has claimed it, and the IP address it registered from.
- OAuth grants. When you connect an app or an MCP client such as ChatGPT or Claude, we store the grant: which client, which scopes, who approved it and when.
- Webhooks and MCP Events callbacks. The URLs you or your clients register, their signing secrets, and a record of each delivery (status code, timing and the first 1,024 bytes of the response).
Technical data
- IP addresses. We use them to rate-limit sign-in and agent registration and to block abuse. Failed sign-in codes are counted per email address and IP address. Agent registrations keep the IP they came from.
- Logs. Our servers log requests: method, path, status code and timing. Query strings are left out by default, and API keys are never written to logs. Our hosting provider also keeps network logs, including IP addresses.
- Usage metrics. Counts of messages sent, received, bounced and so on, per inbox and per organization, built from the events above.
- Browser storage. Besides the session cookie, the dashboard keeps a few settings in your browser, such as your theme and whether you are signed in. They never leave your browser.
- Visits to our public pages. We use cookieless product analytics (PostHog) on our public pages, meaning the home page, pricing, the legal pages, the docs and the blog, to count visits, without cookies and without storing personal data. For each page view it records the page's address (without query parameters, other than campaign tags) and title, the referring site (its domain only), your browser's language and time zone, the type of browser, operating system and device, and the screen size. It stores nothing in your browser, and we never link a visit to an account or a person. To count unique visitors without cookies, PostHog turns your IP address and browser into a one-way hash with a random value that changes every day, then discards the IP address. It does not run when your browser sends Do Not Track or Global Privacy Control, and it never runs in the dashboard you sign in to or on the sign-in pages.
- MCP tool usage. Our MCP server sends PostHog counts of tool use: which tool was called, how long it took, whether it failed and with which error code, the names (never the values) of the arguments given, the MCP protocol version, the MCP client's name, version and user agent, and a random per-request session ID. It never sends message content, addresses, argument values or results, and nothing that identifies you or your organization.
- Account milestones. When an account is created, when an inbox is created, and when an organization's first email is accepted for sending, our servers send PostHog an event saying so. It carries random identifiers only (your organization's, your account's, the pod's and the message's, and the ID of the API key, connected app or agent that acted), how it was done (dashboard, API or MCP) and, for a new account, the sign-in method. It never carries an email address, a message's subject, body or recipients, or a key or token. These events are tied to your organization, so we can see how organizations get started; they are never linked to visits to our public pages.
- Agent feedback. When an agent sends us feedback through the MCP server's feedback tool, we store what it wrote (with keys, tokens, passwords, email addresses and codes removed), its rating, and which organization, inbox or pod, credential (its ID, never the secret), MCP client and version, protocol version and user agent sent it, for 180 days, to improve the product. Deleting your organization deletes its feedback too.
We do not use cookies for analytics, advertising or tracking.
04 Why we use it
- To run the service: receive mail for your inboxes, store it, send what you and your agents send, deliver events to your webhooks and clients, and show it in the dashboard, API, CLI and MCP server.
- To protect your agents: check every inbound message for phishing, spam, impersonation and prompt injection.
- To keep the service safe: rate limits, abuse detection, sending limits and suspending accounts that break the Terms of Service.
- To sign you in and talk to you: sign-in codes, invitations, account and security notices, and answers to support requests.
- To bill you, on paid plans, together with Polar.
- To meet legal obligations, such as keeping tax and accounting records and answering valid legal requests.
We do not sell your data or share it for advertising. We do not use your mail to train machine learning models.
If the GDPR or UK GDPR applies to you, our legal bases are:
- Contract: to run the service, sign you in, run the trust layer (a core feature) and bill you on paid plans.
- Legitimate interests: to keep the service safe (security, rate limits, abuse detection and enforcement), to send service and security notices, and to improve the service, including counting visits to our public pages.
- Legal obligation: to keep tax and accounting records and to answer valid legal requests.
- Consent: we don't rely on consent for anything today. If we ever send optional emails, such as product news, we will ask first.
For the mail in your inboxes we act on your behalf, so the legal basis for that mail is yours.
05 The trust layer
Every inbound message is analysed automatically before your agents see it. This is a core part of MachineMail, not an add-on.
- Rules run on our own servers. They check authentication results, links, attachments, hidden text and the wording of the message, and they compare the sender with your lists and past mail.
- A hosted model then reads the message. We send it to Cloudflare Workers AI: the subject, the sender, the authentication results, the link and attachment findings, hidden text, and the body and text from attachments. The model returns scores for phishing, prompt injection, spam, requests for credentials or payment, and urgency.
- Quarantined mail is withheld from agents. Mail judged to be phishing or prompt injection is labelled
QUARANTINEand kept out of your agents' way: lists skip it, MCP read tools withhold its text, and it never wakes an agent. It is not deleted. A person in your organization can review it and release it.
No classifier is perfect. Some bad mail will get through and some good mail will be quarantined. The trust report lists every reason for its verdict so you can check it.
06 AI agents and connectors
You can give AI agents access to MachineMail: your own code with an API key, or apps such as ChatGPT and Claude through OAuth or an API key. They act on your behalf, with the access you grant.
- You control the grants. A grant or key gives only the scopes and inboxes you approve. You can see every connected app and agent registration under Settings in the dashboard, and revoke any of them, or any API key, at any time. Revoking stops new requests at once and closes open connections within 30 seconds.
- What a client receives is up to its provider. When ChatGPT, Claude or another client reads your mail through MachineMail, the data it receives is also governed by that provider's own terms and privacy policy.
- MCP Events. If your client subscribes to new-mail events, we send a short notice to the callback URL the client registered: message and thread IDs, sender, recipients, subject, time, trust level, labels, the number of attachments, and the first 1,000 characters of the message's cleaned text. Suspicious mail is sent without the text. Quarantined, spam, blocked and unauthenticated mail is not sent at all.
- Webhooks. Webhooks go to the URLs you choose. Message events include the full message.
- Self-registered agents. An agent can register itself and get a sandbox inbox before any person is involved. Until a person claims it, it is limited to one inbox for 24 hours and a small number of sends per 24 hours. When you claim it, it becomes part of your organization.
07 Who processes your data
We use these providers to run MachineMail. Each one gets only what it needs for its job.
| Provider | What it does for us | Data it handles | Where |
|---|---|---|---|
| Fly.io | Hosting: our servers, disks and Managed Postgres database | Everything we store | United States (Ashburn, Virginia, region iad) |
| Tigris Data | Object storage | Raw messages and attachments | Each file is stored in the Tigris region nearest to where it was uploaded; our servers are in the eastern United States. Metadata is replicated to all Tigris regions, and a file can be cached in another region when it is read from there. See Tigris bucket locations. |
| Amazon Web Services (Amazon SES) | Sends and receives email for our domains and yours | Outbound and inbound mail, delivery events | United States (region us-east-1, North Virginia) |
| Resend | Sent and received email for our domains and yours until October 15, 2026 | Outbound and inbound mail, delivery events | United States (sending region us-east-1, North Virginia) |
| Cloudflare | DNS for machinemail.dev; Workers AI runs the trust layer's hosted model | DNS queries; message content sent for classification | Cloudflare's global network. We have not restricted where Workers AI runs, so classification may happen outside the United States. Cloudflare does not use this content to train AI models. |
| WorkOS | Sign-in, organization membership and invitations | Names, email addresses, sign-in details, IP address and browser of the person signing in | United States |
| PostHog | Product analytics: counts visits to our public pages, MCP tool use and account milestones | Page address and title, referring site, browser language and time zone, browser, operating system, device type and screen size, and a daily one-way hash of IP address and browser; for MCP tool use: tool name, duration, error code, argument names, protocol version, MCP client name, version and user agent; for account milestones: random organization, account, pod and message IDs, how the action was taken and the sign-in method | United States |
| Polar | Merchant of Record for paid plans: checkout, payments (card payments through Stripe), invoices, sales tax and VAT, and refunds | Name, email address, billing address, tax ID if given, payment card type and last four digits, phone number if given, order and subscription records; your organization's ID and its usage counts | The United States, Canada or other countries, as described in Polar's privacy policy |
08 How long we keep it
- Messages, attachments, drafts and threads: until you delete them, or until their inbox is deleted or expires. There is no automatic expiry for permanent inboxes.
- Ephemeral inboxes: deleted, with all their mail and files, within about a minute of their expiry time. You set the lifetime; the default is one hour. New mail pushes the expiry out.
- Sandbox inboxes of unclaimed agents: 24 hours.
- Events and webhook delivery records: 30 days. Events can contain full messages.
- Deleted inboxes: deleting an inbox deletes its messages, attachments, threads, drafts and events right away.
- Sessions and sign-in records: sessions last 30 days. Sign-in codes expire after 10 minutes. Expired records are removed automatically.
- Your account: until you ask us to delete it. To delete your organization and everything in it, email support@machinemail.dev. We complete deletion within 30 days of your request.
- Accounts we close: if we close your account, we keep your data for 30 days so you can export it, unless we closed it for serious abuse or the law prevents it, then delete it.
- Backups: database backups are kept for 10 days and server disk snapshots for 5 days. Deleted data can stay in a backup until it expires.
- Agent feedback sent through the MCP feedback tool: 180 days, or until your organization is deleted if that comes first.
- Logs: 7 days, in our hosting provider's log search. We don't copy logs anywhere else.
- At our providers: Amazon SES puts each inbound message in our own storage at Amazon Web Services, which we delete once we have stored the message. Resend keeps its own copy of the mail it sent and received for us for 30 days.
09 Your rights
Depending on where you live, you may have the right to access, correct, export or delete your personal data, to object to or restrict how we use it, and to withdraw consent you gave, where we rely on it. You can do most of this yourself:
- Export: download any inbox as
mboxor JSON Lines from the API or the CLI. - Delete: delete messages, inboxes, API keys, webhooks, connected apps and agent registrations from the dashboard or the API.
- Everything else: email support@machinemail.dev. We answer within 30 days and may need to confirm who you are first.
If you emailed someone's MachineMail inbox and want your data removed, contact the owner of that inbox. If you can't reach them, contact us and we will pass your request on.
You can also complain to your local data protection authority.
10 International transfers
We store data in the United States. If you are outside the United States, your data is transferred there. Some providers may also process data in other countries, as described in Who processes your data.
11 Security
- In transit: all traffic to machinemail.dev and the API uses HTTPS. Our calls to providers use TLS.
- At rest: our servers' disks at Fly.io, our Fly Managed Postgres database and our Tigris object storage are encrypted at rest.
- Credentials: API keys and claim tokens are stored only as hashes. Session cookies are
HttpOnly,SecureandSameSite=Lax. - Webhooks: each delivery is signed so you can check it came from us. Webhook and attachment URLs can't point at private networks.
- Staff access: our internal admin tool is not reachable from the public internet. It shows account metadata only, never subjects, bodies or recipients.
No system is perfectly secure. If we learn of a breach that affects your data, we will tell you without undue delay and as the law requires.
12 Children
MachineMail is a developer service. It is not meant for children, and you must be at least 18 to create an account. We do not knowingly collect data from children. If you think a child has given us data, email support@machinemail.dev and we will delete it.
13 Changes to this policy
We will post any change on this page and update the effective date. If a change is material, we will also email account owners 30 days before it takes effect.
14 Contact
Email support@machinemail.dev.