Tempx for Developers
Tempx is a free email testing toolkit built around one idea: mail you can inspect programmatically, without a real mailbox and without ever reaching a real person. Open the app and you have a working address; send mail to it and read it back over a REST API; point your mailer at a capture-only SMTP server; or let an AI agent own the inbox over MCP. Every surface is free, and none of them requires an account to start.
your app sends mail → Tempx inbox → your test reads the API → assert
# 1. Pick any address - for named inboxes the name IS the mailbox
ADDR="qa-check-427@tempx.uk"
# 2. Send mail to it from anywhere (your app, your provider, a colleague)
# 3. Read the inbox over the REST API - no account, no auth
curl -s "https://tempx.uk/api/inbox?address=$ADDR" | jq '.messages[0]'
Four ways in
- REST inbox API. For named inboxes the address is the credential:
GET /api/inbox?address=qa-check-427@tempx.ukreturns the message list as JSON — id, from, subject, a 140-character text preview and timestamps. 240 reads per minute, no auth, works from curl, Node, Python, CI jobs, anything that can issue an HTTP GET. - Capture-only SMTP gateway.
smtp.tempx.uk:587(STARTTLS) authenticates withtmtp_credentials from your account and accepts mail for any recipient domain — then stores it in the paired inbox instead of delivering. Mailtrap-style sandboxing with zero configuration in the app under test. - Resend-compatible endpoint. Using the Resend SDK? Set its base URL to
https://tempx.uk/resendand your Tempx connection token as the API key;resend.emails.send()is captured instead of transmitted. See the Resend integration. - MCP server for agents.
https://tempx.uk/mcpexposes list/search/read tools pluswait_for_email, a blocking long-poll built for verification codes. Pairing is one browser approval. See the MCP integration.
Choosing a surface
| Surface | Auth | Best for |
|---|---|---|
| Named inbox + API | none (name is the secret) | QA suites, E2E tests, quick manual checks |
| Private inbox + token | Bearer token | Keeping test mail away from public names |
| SMTP gateway | tmtp_ user + password | Framework mailers, staging apps, CI |
| Resend adapter | tmcp_ token (send) | Apps already using the Resend SDK |
| MCP server | OAuth pairing or tmcp_ | AI agents, prompt-driven testing |
Every endpoint, auth mode and rate limit is catalogued in the API documentation — generated from the same registry as the machine-readable llms.txt overview, so it cannot drift from the product.
Fresh inbox per run, zero cleanup
Named inboxes exist from the moment mail is sent to them, so a test suite can derive a unique address per run — ci-signup-8f3a1@tempx.uk — and never collide with a parallel job. Mail to any unused name is accepted by our MX and waits for the first read. Inboxes and their contents are deleted automatically (named inboxes keep mail up to 7 days), so there is nothing to tear down in your pipeline.
Two design limits worth knowing up front: the inbox API is meant for server-side calls (browser-based cross-origin calls are refused by design), and programmatic anonymous mailbox creation is Turnstile-gated — tests should derive names, not create accounts.
Start in three steps
- Pick an address for your test run — any name at tempx.uk works, no sign-up.
- Send mail to it: point your app's SMTP at the capture gateway, or just send from any real provider — our MX accepts it.
- Read
GET /api/inbox?address=…from your test and assert on subject, sender or the code inside the preview.
Open an inbox and try one call
The mail app is live at tempx.uk/mail — send it something and watch the API answer.
Open the inbox