Auth flow testing API
for developers and QA
Test, debug, and automate signup, OTP, and email-based authentication flows. Gain real-time observability into email delivery, with sub-ms timeline tracking and automatic OTP extraction.
import { test, expect } from "@playwright/test";
import { FreecustomEmailClient } from "freecustom-email";
const fce = new FreecustomEmailClient({ apiKey: process.env.FCE_API_KEY! });
test("signup with email verification", async ({ page }) => {
const inbox = `pw-test-${Date.now()}@ditapi.info`;
await fce.inboxes.register(inbox, true);
await fce.inboxes.startTest(inbox, "e2e-signup");
await page.goto("https://your-app.com/signup");
await page.fill('[name="email"]', inbox);
await page.fill('[name="password"]', "Str0ng!Pass#99");
await page.click('[type="submit"]');
const otp = await fce.otp.waitFor(inbox, { timeoutMs: 30_000 });
await page.fill('[name="otp"]', otp);
await page.click('[data-testid="verify-btn"]');
await expect(page).toHaveURL("/dashboard");
});0+
API Calls / Day
0+
Emails / Day
0+
Developers
Debug auth flows
in real-time
Stop blindly guessing why your Playwright tests fail. Group your E2E signups into "Test Runs" and visually trace the exact OTP extraction flow, latency, and failure points in our new Auth Flow Debugger.
Explore the Debugger →Email Received
⚠️ slowOTP Extracted
847291
From sent to extracted
in under 200ms
Your app sends a verification email. It hits our SMTP server, gets stored and parsed, and arrives at your code via WebSocket push — OTP already extracted, no regex needed.
POST /api/signup
{ "email": "test@ditapi.info" }
▶ Dispatching verification email…
https://api2.freecustom.email — all endpoints live under /v1.Authorization: Bearer fce_… or as api_key query param. Get a key from the Dashboard.wss://api2.freecustom.email/v1/ws (Startup plan and above).Up and running
in 30 seconds
Install the official SDK for your language. Full TypeScript types, async/sync support, typed errors, and WebSocket built in.
npm install freecustom-emailimport { FreecustomEmailClient } from 'freecustom-email';
const client = new FreecustomEmailClient({ apiKey: 'fce_...' });
const otp = await client.otp.waitFor('test@ditapi.info');pip install freecustom-emailfrom freecustom_email import FreeCustomEmail
client = FreeCustomEmail(api_key="fce_...")
otp = await client.otp.wait_for("test@ditapi.info")TypeScript
fully typed
async + sync
both supported
ESM + CJS
dual format
0 deps*
* except httpx/ws
Official Tools
Everything you need to handle email programmatically
01
Instant inboxes
Register an inbox and start receiving in seconds
02
OTP extraction
Regex-free. We parse the code, you get the value
03
WebSocket push
Real-time delivery. No polling required
04
Live Auth Debugger
Visually trace exact OTP extraction flow and latency
05
Custom domains
Use your own domain on Startup plan and above
06
Attachment support
Up to 50 MB on Enterprise
Built for real workflows
Step-by-step guides for the most common disposable email patterns.
Simple pricing,
every stage
No credit card required to start. Credits never expire — top up once, use forever.
50k req/mo
- 25Max inboxes
- OTP extraction
- WebSocket push
- Attachments
- Custom domains
- ✉Email support
250k req/mo
- 40Max inboxes
- OTP extraction
- WebSocket push
- Attachments
- Custom domains
- ✉Email support
1M req/mo
- 100Max inboxes
- OTP extraction
- WebSocket push
- Attachments
- Custom domains
- ✉Priority support
Free tier
1k req/mo, no card
Credits
never expire
WebSocket
Growth and above
Custom MX
Growth and above
Three steps to production
01
Get an API key
From your dashboard after signing in.
02
Register an inbox
POST /v1/inboxes with { "inbox": "..." } to create a disposable address.
03
Read or stream
Fetch messages with GET or subscribe via WebSocket for instant delivery.
Up and running in minutes
# 1. Register an inbox
curl -X POST https://api2.freecustom.email/v1/inboxes \
-H "Authorization: Bearer fce_your_api_key" \
-H "Content-Type: application/json" \
-d '{"inbox":"test@ditapi.info"}'
# 2. Get latest OTP
curl "https://api2.freecustom.email/v1/inboxes/test@ditapi.info/otp" \
-H "Authorization: Bearer fce_your_api_key"Need more capacity?
Credits never expire. Top up once, use forever. Consumed automatically when you exceed your monthly quota.
$10
100k requests
$0.10 / 1k
$25
300k requests
$0.083 / 1k
$50
750k requests
$0.066 / 1k
$100
2M requests
$0.05 / 1k
Frequently asked questions
What is an Auth flow testing API?+
An Auth flow testing API lets you create and use disposable email addresses programmatically. FreeCustom.Email provides instant inboxes, OTP extraction, and optional WebSocket delivery.
How does the FreeCustom.Email Auth flow testing API work?+
Get an API key from the dashboard, then call api2.freecustom.email to register inboxes, list messages, and extract OTPs. The Free plan gives 1,000 requests/month; paid plans add OTP extraction, WebSocket push, attachments, and custom domains.
Who is the Auth flow testing API for?+
Developers running integration tests, QA automation, CI/CD pipelines, and apps that need disposable inboxes for signup flows and verification testing.
Is there a free Auth flow testing API?+
Yes. FreeCustom.Email offers a Free API plan with 1,000 requests per month, 1 req/sec. No credit card required.
Can I use the Auth flow testing API with my own domain?+
Yes, on Startup (1 domain), Growth (10 domains), and Enterprise (unlimited) plans. Add and verify your domain in the dashboard; then register inboxes like user@yourdomain.com via the API.