Temp Email | Disposable Inbox, OTP & Verification Catcher
Pricing
from $10.00 / 1,000 message receiveds
Temp Email | Disposable Inbox, OTP & Verification Catcher
Create a disposable email inbox and read incoming messages on demand: OTP codes, sign-up confirmations and verification links. Wait for a specific email, auto-extract codes and magic-link tokens, read attachments and headers. Keyless, no signup. For QA, automation and signup testing.
Pricing
from $10.00 / 1,000 message receiveds
Rating
0.0
(0)
Developer
Apivault Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
📧 Temp Email — Disposable Inbox, OTP & Verification Catcher

Spin up a disposable email inbox in seconds and read its incoming messages — one-time codes (OTP), sign-up confirmations and verification links — on demand. Perfect for QA, test automation, sign-up flows, scraping pipelines and bots that need a throwaway mailbox.
No API key, no registration. Create an inbox instantly, then read it on demand with built-in OTP/verification-code extraction.
🤖 For AI agents — MCP & Standby (on-demand inbox)
Run this Actor in Standby mode and it exposes a warm HTTP + MCP endpoint, so an AI agent can grab a throwaway inbox and catch the sign-up OTP within a single session — no cold start per call.
- MCP tools:
create_inbox(→address+key) andread_inbox(→ messages + extractedfirstCode/ OTP, with optionalwaitTimeout). - Plain REST (same endpoint):
GET /?action=create&domain=auto→{ address, key }GET /?action=read&address=<addr>&key=<key>&waitTimeout=30&matchSubject=code→ messages +firstCode
Typical agent flow: create_inbox → sign up with the address → read_inbox(waitTimeout=30) → read firstCode. Turn on Standby in the Actor's settings to get your endpoint URL.
📮 Available domains
Just pick a domain from the dropdown when you create the address:
- Auto — the fastest, most reliable random address (recommended).
- Branded custom domains:
@swagpapa.com·@rulersonline.com·@besttempmail.com·@deepmails.org·@embassybase.com·@justdefinition.com·@gongjua.com·@123mails.org - Gmail aliases: dot trick (
a.b.c@gmail.com), plus trick (abc+tag@gmail.com), Googlemail (a.bc@googlemail.com).
Reading: Auto inboxes are read with their key (token). Branded and Gmail inboxes can be read with just the address — leave the key empty.
✨ Highlights
- 📨 Create a throwaway inbox instantly — pick any domain, get the address + credentials in ~1 second.
- 📥 Read on demand — when you expect a message, run
readon the inbox; it polls until the mail lands (great for catching a verification email after a sign-up). - 🔑 OTP & link extraction — pulls likely one-time codes and verification/confirmation links out of the message body.
- 🎯 Wait for the right email — filter by sender, subject or keyword and keep polling until the email you actually want arrives (ignore inbox noise and old mail).
- 📎 Attachments — see attachment metadata (filename, type, size, download URL) on each message.
- 📦 Bulk create — spin up many inboxes in a single run for load and parallel QA testing.
- 🛡️ Reliable by default — create retries automatically and falls back to the fast Auto pool if a branded inbox is unavailable.
- 🏷️ Branded domains & Gmail aliases — varied addresses, or a fast random one.
- 🔑 Read by address — branded/Gmail inboxes open with just the email (no key to keep).
- 🔁 Re-readable — the create result carries the inbox credentials so you can read the same inbox any time.
- 🆓 Keyless — no key, no signup, no proxy.
🧠 How it works
Two simple, separate steps:
| Action | What it does |
|---|---|
create (default) | Makes a new inbox and returns its address + credentials instantly (~1s). No waiting. |
read | Checks an existing inbox for messages. Pass the address + credentials from a create run; it polls up to waitTimeout for new mail. |
Typical automation flow:
- Run create → get the
address(+token/passwordorcode). - Use the address to sign up somewhere / trigger a mail.
- Run read with that address + credentials → get the message and the extracted
firstCode.
📥 Input
| Field | Type | Default | Description |
|---|---|---|---|
domain | string | auto | Pick the address domain: auto, a branded domain, or a Gmail alias. |
action | string | create | create (new inbox, instant) or read (check an existing inbox). |
username | string | — | Local part for the Auto domain (random if empty). |
count | integer | 1 | create only: number of inboxes to create in one run (1-25). |
allowFallback | boolean | true | create only: fall back to a reliable Auto inbox if a branded/Gmail inbox fails. |
address | string | — | Inbox address (for action=read). |
inboxes | array | — | read only: check several inboxes in one run, e.g. [{"address":"a@x.com","key":"..."}]. |
token / password | string | — | Credentials for an Auto inbox (for read). |
code | string | — | Credential for a branded/Gmail inbox (for read). |
waitTimeout | integer | 0 | read only: 0 = check once and return instantly (fast). Set >0 to wait for mail. |
pollInterval | integer | 6 | read only: seconds between inbox checks. |
matchFrom | string | — | read only: keep waiting until an email from a sender containing this text arrives. |
matchSubject | string | — | read only: only return emails whose subject contains this text. |
matchKeyword | string | — | read only: only return emails containing this text anywhere (subject/body). |
onlyUnseen | boolean | false | read only: skip messages already marked as seen. |
waitForNew | boolean | false | read only: ignore mail already in the inbox when the run starts. |
latestOnly | boolean | false | read only: return just the newest matching message. |
maxMessages | integer | 0 | read only: cap how many matching emails to return (0 = no limit). |
extractCodes | boolean | true | Extract OTP codes and verification links. |
includeBody | boolean | true | Include full text/HTML body per message. |
codeMinLength / codeMaxLength | integer | 4 / 8 | Length range for OTP code detection. |
codeRegex | string | — | Advanced: custom regex to extract the code yourself. |
includeRaw | boolean | false | Also return raw EML + parsed headers and SPF/DKIM/DMARC (Auto inboxes only). |
Example: create an inbox (instant)
{"action": "create","domain": "auto"}
Example: create several inboxes at once
{"action": "create","domain": "auto","count": 10}
Example: branded address, then read it later
{ "action": "create", "domain": "swagpapa.com" }
{ "action": "read", "address": "abc@swagpapa.com" }
Add
"waitTimeout": 60to a read if you want it to keep waiting for an incoming mail instead of returning instantly.
Example: wait for the verification email from a specific sender
{"action": "read","address": "abc@swagpapa.com","matchFrom": "no-reply@service.com","waitForNew": true,"latestOnly": true,"waitTimeout": 90}
This keeps polling (ignoring anything already in the inbox) until a fresh email from
service.comlands, then returns just that one message with its extractedfirstCode.
Example: check several inboxes at once
{"action": "read","inboxes": [{ "address": "a@swagpapa.com" },{ "address": "u4f9k2@example.net", "key": "eyJ0eXAiOiJKV1Q..." }]}
Takes one snapshot per inbox. Branded/Gmail addresses open with just the address; Auto addresses need their
key(token).
📤 Output
create → one item with the new inbox address and its credentials:
{"success": true,"address": "u4f9k2@example-domain.com","token": "eyJ0eXAiOiJKV1Q...","password": "…","messageCount": 0}
read → one dataset item per email (so a 3-message inbox = 3 results). Each item is a full message:
{"success": true,"address": "u4f9k2@example-domain.com","messageIndex": 1,"messageCount": 2,"id": "…","from": "no-reply@service.com","fromName": "Service","subject": "Your verification code","text": "…","html": "…","otpCodes": ["424864"],"verificationLinks": ["https://service.com/verify?token=…"],"firstCode": "424864","token": "eyJ0eXAiOiJKV1Q..."}
If the inbox is empty, read returns a single summary item with messageCount: 0 and the inbox credentials so you can read again later.
| Field | Description |
|---|---|
address | The disposable inbox address. |
token / password or code | Credentials to re-read this inbox later. |
messageIndex / messageCount | Position of this email and the total found this read. |
from / fromName / subject | Sender and subject of the email. |
text / html | Full message body. |
otpCodes[] / verificationLinks[] | Extracted one-time codes and verification links. |
verificationTokens[] | Token-like values pulled from verification link query params (e.g. magic-link / passwordless tokens). |
firstCode | The first extracted OTP code of this message (handy shortcut). |
hasAttachments / attachments[] | Whether the email has attachments, and their metadata (filename, contentType, size, downloadUrl). |
raw / headers / authResults | Raw EML source, parsed headers and the Authentication-Results line (when includeRaw is on, Auto inboxes). |
spf / dkim / dmarc | Authentication verdicts when the receiving server provides them (pass / fail); dkim shows signed when a DKIM signature is present. |
💡 Use cases
- Automated sign-up / account testing — catch the confirmation email and code.
- QA & end-to-end tests — verify your product's transactional emails.
- Scraping & bots — register throwaway accounts that need email verification.
- OTP capture — pull the one-time code straight into your workflow.
⚙️ Notes & limits
- Billed per inbox created and per message retrieved —
create= one charge for the new inbox;read= one charge per email delivered. An instant check (waitTimeout0) that finds nothing is free. If you ask the Actor to wait for mail (waitTimeout> 0) and it actually has to poll, a single small watch charge applies for that run — so a fast lookup stays cheap while waiting is priced separately. - create is instant; read checks once by default (
waitTimeout0) — setwaitTimeoutto keep waiting for mail to arrive. - Disposable inboxes are short-lived by nature; read them promptly.
- Branded inboxes are rate-limited, so
readuses a safe minimum poll interval automatically.
Built and maintained by Apivault — reliable data Actors, fair pricing.