Email Verification API for AI Agents
Give your agents a dedicated inbox to receive OTP codes, confirmation links, and 2FA emails — automatically, in real time, with no human in the loop.
Why email verification is broken for agents
No inbox to receive the code
Most email APIs are outbound only. Your agent can trigger a verification email but has nowhere to receive it. You end up hardcoding a personal inbox or using a throwaway address — neither of which scales.
Polling is fragile and slow
IMAP polling is the fallback option. It adds latency, requires managing connection state, and breaks under load. OTP codes expire in 30–60 seconds. You need real-time delivery, not a cron job.
Shared inboxes cause cross-agent interference
If multiple agents share one inbox, filtering emails to the right agent becomes a problem you have to solve. Missed codes, race conditions, and duplicate processing follow.
Parsing is your problem
Verification emails come in every format — plain text, HTML, image-embedded codes, deep links with tokens. Without structured parsing, your agent has to handle every variation itself.
How it works
Provision a dedicated inbox
One API call creates a live inbox on your domain and returns the address. Your agent uses that address for the signup or verification flow.
Trigger the verification email
Your agent completes the signup form, account creation, or 2FA setup using the provisioned address. The service sends its verification email to that inbox.
Receive the email in real time
OpenMail delivers the inbound email to your agent via webhook or WebSocket in under 500ms — no polling, no IMAP, no waiting.
Read the structured payload
The event includes the full parsed message: plain-text body, HTML body, extracted links, and any attachments — as structured JSON your agent can read directly.
Complete the verification
Your agent extracts the OTP code or confirmation link from the payload and uses it to complete the flow. No human involvement at any step.
What agents use this for
Browser agents completing signups
Agents that automate account creation on third-party services — entering an email, receiving the confirmation link, and clicking through to activate the account without human involvement.
2FA automation
Agents that handle two-factor authentication flows by receiving the one-time code via email, reading it from the structured payload, and submitting it before it expires.
Scraping and data collection agents
Agents that need to authenticate with services to access data — creating accounts, confirming emails, and maintaining authenticated sessions at scale.
Testing and QA agents
Automated test suites that create test accounts end-to-end — provisioning an inbox, triggering verification, receiving the email, and confirming the flow completed correctly.
Onboarding automation
Agents that onboard new users into downstream services on their behalf — completing email verification steps that are part of a larger automated workflow.
What the API gives you
Dedicated inbox per agent
Each agent gets its own address on your domain. No shared inboxes, no filtering logic, no cross-agent interference.
Real-time inbound delivery
Emails delivered via webhook or WebSocket in under 500ms. Fast enough to use OTP codes before they expire.
Structured JSON payload
Every inbound message arrives as parsed JSON — plain text, HTML, extracted links, sender details. Your agent reads it directly.
Instant provisioning
One API call returns a live address. No manual DNS steps, no approval process, no waiting.
Managed deliverability
SPF, DKIM, and DMARC configured automatically. Verification emails from services reach the inbox, not the spam folder.
Scale to thousands
Provision as many inboxes as your workflow needs programmatically. No per-inbox overhead, no manual setup.
Receive a verification email in three lines
const inbox = await openmail.inboxes.create();
// use inbox.address for signup
const email = await inbox.waitForEmail({ timeout: 60 });
const otp = email.text.match(/\d{6}/)?.[0];Provision an inbox, wait for the verification email, extract the code. No polling, no parsing, no infrastructure.