Temp Email API — Disposable Inboxes & Messages
Pricing
from $10.00 / 1,000 message receiveds
Temp Email API — Disposable Inboxes & Messages
Create or inspect supported disposable inboxes; return received messages and verification fields when available. Bulk export: JSON, CSV, Excel and API. PPE: $10/1K inbox results; start fee extra; mode rates differ.
Pricing
from $10.00 / 1,000 message receiveds
Rating
0.0
(0)
Developer
Apivault Labs
Maintained by CommunityActor stats
0
Bookmarked
75
Total users
5
Monthly active users
3 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 separate mailbox-service registration is required for the standard create flow; an Apify account is required to run the Actor. Create an inbox instantly, then read it on demand with built-in OTP/verification-code extraction.
📮 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 a source-dependent time.
-
📥 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 while the provider retains it.
-
🆓 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 (source-dependent time). 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":"..."}]. |
| key / password | string | — | Credentials for an Auto inbox (for read). |
| key | string | — | Pass a provider token/code through the schema-supported key input when needed. |
| 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 parsed from the headers (pass / fail), when available. |
💡 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 empty read has no message-received event, but startup and platform resources still apply. -
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.
⚖️ Legal, Compliance & Acceptable Use
Please read this section carefully. By running this Actor you accept these terms.
Bottom line: this is a neutral, general-purpose software tool. It processes disposable test-inbox data that you are authorized to access. You — the user — decide what to search for and how to use the results, so you alone are responsible and liable for that use. The developer/operator of this Actor merely provides the tool and does not control, endorse, or take responsibility for what you do with it.
1. Authorized test inboxes only. Create a test inbox or use credentials for one you are authorized to read. Do not use this tool to access another person’s mailbox.
2. You are the responsible party (data controller). For every run you start, you act as the data controller and are solely responsible for using the output lawfully. This includes having a valid lawful basis (for business/B2B use this is typically legitimate interest), honoring data-subject rights (access, correction, deletion, opt-out), and complying with all applicable laws and regulations — including, where relevant, the GDPR, UK GDPR, CCPA/CPRA, and similar privacy, marketing, and anti-spam laws (e.g. ePrivacy, CAN-SPAM, CASL, TCPA).
3. Not a Consumer Reporting Agency. This Actor and its operator are not a consumer reporting agency (CRA), and the output is not a "consumer report" under the U.S. Fair Credit Reporting Act (FCRA) or similar laws. You must NOT use it, in whole or in part, to decide a person's eligibility for credit, employment, housing/tenancy, insurance, or any other FCRA-regulated purpose.
4. Respect third-party terms. You are responsible for complying with the terms of service of any website or platform whose public data you choose to process, and with any applicable intellectual-property rights.
5. No warranty. The Actor is provided "as is", without warranty of any kind. Inbox data and extracted signals may be incomplete, outdated, or inaccurate — verify independently before relying on it. Availability of sources and fields can change at any time.
6. Prohibited use. Do not use this Actor or its output for stalking, harassment, discrimination, fraud, spam, or any unlawful or harmful purpose.
7. Indemnification. You assume all risk and liability arising from your use of this Actor, and you agree to defend, indemnify and hold the operator harmless from any and all claims, losses, fines, or liabilities — including reasonable legal fees — resulting from your use or misuse of the Actor or its output, or from your breach of these terms or of any law.
This section is general information, not legal advice. If you are unsure whether your intended use is permitted, consult your own legal counsel before running this Actor.
Build a controlled disposable-inbox test
Use this temporary email API for test inboxes you create or are authorized to read. Create the inbox first, keep the returned credentials private, and pass its actual address and key to a later read. This workflow can test your own transactional email and code-parsing flow; it does not provide access to someone else's normal Gmail account or guarantee that a service accepts disposable mail.
| Goal | Starting action | What to verify |
|---|---|---|
| One isolated QA mailbox | create with count1 | Returned address, provider and credentials |
| Check for a test message | read once with your own key | Empty result versus a retrieved message |
| Wait for a known notification | bounded read with sender/subject filters | Wait budget, source availability and message match |
| Parallel test cases | Small create count | Separate private credentials and per-inbox events |
Create one disposable test inbox
{"action": "create","domain": "auto","count": 1}
Creation returns inbox credentials, which belong in private workflow storage. No test email is sent by this request. Domain availability and creation time depend on the provider.
Create two independent test inboxes
{"action": "create","domain": "auto","count": 2,"allowFallback": true}
Two successful inboxes can mean two inbox-created events. Use the returned address/provider rather than assuming a requested branded domain was retained after fallback.
Read a mailbox you created, without waiting
{"action": "read","address": "YOUR_CREATED_INBOX_ADDRESS","key": "YOUR_PRIVATE_INBOX_KEY","waitTimeout": 0,"maxMessages": 1,"includeBody": false}
The strings are placeholders, not usable credentials. Replace them privately with one create result. maxMessages limits returned messages; it does not authorize reading arbitrary addresses.
Wait briefly for your own QA notification
{"action": "read","address": "YOUR_CREATED_INBOX_ADDRESS","key": "YOUR_PRIVATE_INBOX_KEY","matchSubject": "Your test confirmation","waitTimeout": 30,"pollInterval": 6,"latestOnly": true,"maxMessages": 1,"includeRaw": false}
A waiting read is a separate operation from sending a test notification. Polling can end with no matching message, and a guessed OTP candidate still needs validation in your own test workflow.
Credentials, retention and operation costs
Create output can contain token/password or provider-specific access values. These are intended private user results, not examples to publish in Issues, shared Tasks, screenshots, logs or public datasets. Mail bodies, OTP values and verification URLs can also contain access secrets. Prefer a small projection for downstream steps and keep the original credential record private. Address-only disposable providers should not be treated as confidential storage. Do not send real account recovery, financial or production secrets to a temporary mailbox. Gmail-style provider options are not authentication to an existing personal Gmail account.
Current events are $0.003 per inbox created, $0.01 per retrieved message and a configured $0.01 mail-wait event. Startup is $0.002 per allocated GB, minimum one event; platform usage is separate. The current source explicitly charges inbox creation and delivered messages, but does not call the configured mail-wait event. Inspect actual settled events rather than assuming every configured event is used. One inbox create is $0.003 plus startup/resources. An empty read has no message event, but startup/resources still apply; it is not an entirely free run. Re-reading a delivered message can charge it again.
onlyUnseen filters provider-returned seen flags; it is not a universal cross-run delivery ledger. waitForNew snapshots existing IDs at that read's start; if the message arrived earlier it can be excluded. Keep an external test-case/message ledger when repeat delivery matters. Filters use available sender/subject/body text, and OTP extraction is heuristic rather than proof that the first number is the intended code.
Only create was exercised by this documentation QA: no messages were sent and no message/OTP/attachment-retrieval success is claimed for that check. JSON is appropriate for credential and nested message fields; export only selected non-secret columns into a shared sheet. Use the actual returned provider and supported key input in the existing n8n/Python integration.
Is a temporary inbox permanent or confidential? No retention or availability is guaranteed. Provider lifecycle and address-only access models limit its use.
Does an empty read prove delivery failed? No. The message may be delayed, filtered, rejected by the sender, removed or outside the selected polling window.
n8n and developer integrations
Use this Actor in your automation or application with the existing community integrations below. An Apify account and API token are required; Actor and platform charges follow the current pricing.
- n8n community node: n8n-nodes-apivault-temp-email. Install package name
n8n-nodes-apivault-temp-emailin a self-hosted n8n instance that permits community packages. - Python client and examples: GitHub.
- n8n source and usage: GitHub.
These are community packages. Publication on npm does not establish n8n verification or availability in n8n Cloud. Review the linked package README for supported inputs and setup.