At a glance
Fourteen rows. Every MailSlurp cell is what its pricing page, documentation and llms.txt said on 2 September 2026; every GrabMail cell is read from the constants the service enforces. “Partly” means a paid tier, a cap, or a caveat the row cannot hold — the sections below say which.
| Feature | GrabMail | MailSlurp |
|---|---|---|
| Free tier | Yes: Everything: public domains, your own domain, the API and the MCP server. No account, no card. | Partly: Free forever, no card: 500 inbound emails and 100 inbox creations a month, 50 retained inboxes, 200 MB, webhooks. No attachments, no external sending. |
| No account, no API key | Yes: Nothing to create. A GET with the address in the query string reads the mailbox. | No: An account and an x-api-key header on every call; agent keys and OAuth for MCP. |
| REST API | Yes: Three endpoints over HTTPS, OpenAPI 3.1, one read per second per address. | Yes: A large REST API with waitForLatestEmail, waitForMatchingEmails and friends, 150 requests a second, OpenAPI. |
| Choose your own address | Yes: Any name on 8 public domains, grabmail.io and mixozia.com among them, free. | Partly: Random local parts on 14 pooled domains. A name you choose needs a custom domain, which Free does not have. |
| Your own domain | Yes: Free and unlimited: one MX record at smtp.grabmail.io, no registration step. | Partly: Not on Free. Usage-based on Pro, one included on Team, unlimited on Enterprise. |
| Message retention | 5 days, fixed. Not a tier, not a setting. | Bounded by storage (200 MB free, 1 GB Pro, 5 GB Team) and by inbox expiry; free inboxes expire after an unpublished default. |
| Attachments | Yes: Up to 5 MB per message, downloadable from the inbox and the API. | Partly: Pro and above only. Message size 5 MB on Free, 10 MB on Pro, 50 MB on Team. |
| No ads, no tracking | Yes: No ads, no analytics, no third-party script. | Yes: No advertising; a SaaS with a signed-in dashboard. |
| Private inbox | No: Public: anyone who knows the address can read it. Each mailbox has an alias to hand out instead. | Yes: Private: inboxes belong to an account, and agent keys can be scoped to a role and to specific inboxes. |
| MCP server for AI agents | Yes: Free MCP server at https://grabmail.io/mcp: create an inbox, wait up to 25 seconds for a message, read it. | Yes: Hosted MCP server behind OAuth with 16 tools and five agent roles, plus an agent REST API and llms.txt. Free includes one agent connection. |
| Sending mail | No: None, by design. Receive only. | Partly: Free sends only to its own sandbox inboxes (25 a month). External sending from Pro upward. |
| Webhooks or push | No: None. Poll once a second, or let the MCP wait hold the call open. | Yes: Webhooks on every plan, wait endpoints in the API, IMAP and SMTP access. |
| Official SDKs | No: None. An OpenAPI document and three endpoints instead. | Yes: JavaScript, Java, Python, C#, PHP, Ruby, Go, Swift and Dart, with Playwright, Cypress and Selenium guides. |
| Apps and extensions | Partly: A Chrome extension, loaded by hand; not on the store yet. | No: No app, extension or CLI; Zapier and Power Automate integrations. |
Checked 2 September 2026. MailSlurp publishes monthly prices only; the annual toggle on its pricing page does not render a figure. The duration of the automatic expiry on free inboxes is not published either, so the table says “expire” without a number.
What MailSlurp does well
If email testing is a budgeted line and you want everything in one account, MailSlurp is the reference. Four things it does that GrabMail does not:
- It waits for you.
waitForLatestEmail,waitForMatchingEmailsandwaitForNthEmailhold the request until the message exists, so a test has no polling loop to write and no sleep to tune. GrabMail’s REST API is polled; only its MCP server waits. - It sends, and it has phone numbers. A flow that replies to a message, or one that verifies by SMS, can be tested end to end on the paid plans. GrabMail is receive-only and email-only, by design.
- Nine SDKs and a webhook on every plan.
npm install mailslurp-clientexists, in nine languages, with typed models; and an event arriving at an inbox can be posted to your endpoint even on Free. Here there is an OpenAPI document and a GET. - A security story you can send to procurement. SOC 2 Type I, GDPR and CCPA badges, scoped agent roles, and an Enterprise tier with SAML, SCIM, audit logs and regional hosting. GrabMail publishes what it does not do and offers no SLA.
Where GrabMail is different
GrabMail is built for the cases MailSlurp’s Free plan caps out of and its paid plans price out: a job that must not hold a secret, a domain that must not cost anything, and an agent nobody is supervising.
- No key, so no secret store. A MailSlurp call needs
x-api-key; a GrabMail call needs an address in the query string. A pull request from a fork, a snippet in a README and an agent on a stranger’s machine can all read a mailbox here without being trusted with anything. - No monthly cap. MailSlurp Free stops at 500 inbound emails and 100 new inboxes a month, then asks for $49.99. A GrabMail address exists the moment mail arrives at it, on the public domains or on yours, with one read a second per address as the only limit — all month.
- Your own domain is free, and it is how you choose a name. MailSlurp assigns random local parts on its pooled domains and lets you choose a name only on a custom domain, which Free lacks and Pro meters. Here
run-42@grabmail.iois yours by typing it, and any domain you point at smtp.grabmail.io becomes a catch-all inbox for nothing. - Attachments and an MCP server on the free tier. MailSlurp delivers attachments from Pro upward; GrabMail takes 5 MB per message from the first day. Its MCP server needs no OAuth screen, which is what an agent working without a human in front of a browser needs.
Price, side by side
MailSlurp’s prices are monthly in US dollars, non-refundable except where the law requires, with usage-based overage above the included volumes. GrabMail’s only paid plan buys access to a pool of domains kept off the disposable-mail blocklists; everything in the table above stays free.
| Tier | GrabMail | MailSlurp |
|---|---|---|
| Free | Public domains, your own domain, API, MCP. No account, no cap. | Free forever, no card: 500 inbound emails, 100 inbox creations, 50 retained inboxes, 200 MB, 1 agent. No attachments, no external sending, no custom domain. |
| Cheapest paid | Premium, $24 a month: API access to the off-blocklist domain pool, paid in crypto. | Pro, $49.99 a month: 3 agents, 1,000 inbox creations, 5,000 inbound and 500 outbound emails, attachments, 1 GB; custom domains metered on top. |
| Team tier | Pro $78 and Scale $148 a month: more messages and keys on the same pool. | Team, $129.99 a month: 10 agents, 5,000 inboxes and emails then $3.00 per 1,000 inboxes and $0.99 per 1,000 emails, 2 users, 1 custom domain, 5 GB then $0.75 per GB. |
| Enterprise | None. There is no contract tier and no SLA. | Custom: unlimited agents, SOC 2 report, MSA, SAML, OIDC, SCIM, RBAC, regional hosting. |
Prices as published on 2 September 2026. MailSlurp offers a card-backed trial on Pro and Team; its terms make fees non-refundable. GrabMail’s pricing page has the full grid.
For developers: reading a mailbox
The whole difference in one command. This reads a GrabMail mailbox with no header, no key and no account:
$ curl -sG https://grabmail.io/api/v1/mailbox --data-urlencode "address=anything@grabmail.io" | jq '{count, alias}'The MailSlurp equivalent begins with an account, an API key and usually an SDK: create an inbox, then waitForLatestEmail(inboxId, timeout). That is more to set up and less to write in the test, because the wait is on the server. On GrabMail the wait is a loop with a deadline — twenty lines, shown in the Playwright, Python and Node.js guides — and there is nothing to install.
A CI detail worth knowing: MailSlurp’s key goes in a secret and the pipeline must be allowed to read it, which excludes pull requests from forks on most platforms. GrabMail needs no secret, so a fork’s pipeline can run the same email test. The GitHub Actions guide shows the workflow.
For AI agents
MailSlurp has done serious work here: a hosted MCP endpoint, sixteen tools, five least-privilege roles from read-only to inbox manager, and an agent REST API. It is designed for an agent acting inside an organisation’s account, with OAuth and permissions around it. GrabMail’s server at https://grabmail.io/mcp is designed for the opposite case — an agent that has no account anywhere and needs an inbox now — so it asks for nothing and offers six tools, including a wait_for_message that blocks for up to 25 seconds.
If the agent is yours and the mail is your company’s, MailSlurp’s roles are the safer model. If the agent is signing itself up to a third-party service and the mail is a verification code, GrabMail’s keyless server removes the one step an unattended agent cannot do alone: getting through a sign-up. Email for AI agents covers the loop.
Switching from MailSlurp
A test suite that uses MailSlurp for inbound mail only moves in an afternoon; one that uses sending or webhooks should stay. The steps:
- Replace inbox creation with an address. Where the suite called
createInbox()and stored an id, build an address instead:run-${id}@grabmail.io, or any name on a domain you point here. Nothing has to be created. - Replace the wait with a loop.
waitForLatestEmailbecomes a GET on/api/v1/mailboxevery second untilcountis above zero or the deadline passes. The guides have the function in TypeScript and Python; copy it once. - Remove the secret. Delete the
MAILSLURP_API_KEYvariable from CI and the SDK from the lockfile. If your pipeline pins outbound hosts, allowgrabmail.io. - Check what you relied on. Attachments still work here (5 MB per message). Sending, SMS, IMAP and webhooks do not exist here, and mail is gone after 5 days.
Which one, for what
The honest split is by requirement:
Pick GrabMail when
- the pipeline, script or agent must not hold a key, or runs where a secret cannot be read;
- you want unlimited addresses on your own domain for free, and to choose their names;
- the job is inbound verification mail, and $49.99 a month is more than it is worth.
Pick MailSlurp when
- the suite sends, replies, or verifies by SMS;
- you want a typed SDK, server-side waiting and webhooks instead of a polling loop;
- procurement wants SOC 2, roles, SSO and an MSA.
When to stay with MailSlurp
Three situations where switching would cost you something real:
- Your tests carry real data. A GrabMail mailbox is readable by anyone who knows the address, on the public domains and on yours. MailSlurp inboxes belong to an account and can be scoped per agent. A test that mails a customer’s details needs the second.
- You depend on push or on sending. Webhooks, IMAP, SMTP, outbound mail and phone numbers are absent here by design and will stay absent. If any of them is in your suite, there is nothing to switch to.
- You have already paid for the year. MailSlurp’s fees are non-refundable. Run the two in parallel on the next project rather than tearing out a working one.
Questions
Is GrabMail a free alternative to MailSlurp?
For inbound mail, yes: reading an inbox, attachments, your own domain and an MCP server are free with no account and no monthly cap. It is not a replacement for MailSlurp’s sending, SMS, webhooks, IMAP or SDKs, which do not exist here at any price.
Is MailSlurp free?
There is a permanent Free plan with no card: 500 inbound emails and 100 inbox creations a month, 50 retained inboxes, no attachments and no external sending, with inboxes that expire after an unpublished default. The first paid plan is Pro at $49.99 a month.
Can I choose my own email address on MailSlurp?
Only on a custom domain: on MailSlurp’s own pooled domains the local part is random, and its documentation says a custom address needs a custom domain, which the Free plan does not include. On GrabMail any name works on the public domains and on yours, free.
Which one works with Claude, Cursor or an AI agent?
Both run an MCP server. MailSlurp’s is behind OAuth with roles and sixteen tools, made for an agent inside an account; GrabMail’s is keyless with six tools and a blocking wait_for_message, made for an agent with no account at all. The client guide has the configuration for seven clients.
Does GrabMail have a wait endpoint like waitForLatestEmail?
Not in the REST API, which is polled at one read a second per address. The MCP server’s wait_for_message holds the call open for up to 25 seconds, which is the same idea for agents. For a test suite, the guides give a twenty-line wait-with-deadline function.


