Mailflow Product OTP Pricing

Email and one-time codes, in one API call.

Send transactional email, or hand us the whole OTP problem — we generate the code, deliver it, and verify it. No SMTP, no SDK, no expiry logic in your database.

Start with 200 free credits See pricing

    

What you get

Everything transactional email needs, and nothing it doesn't.

One endpoint

POST JSON with an API key. No SMTP handshake, no SDK to install, no Lambda layer.

Managed OTP

We generate, store, expire and verify the code. Your database never holds one.

Authenticated by default

DKIM-signed and SPF-aligned. Bounced addresses are suppressed automatically.

Idempotent

Pass a key and a retry after a timeout is acknowledged, not delivered twice.

Credits, not contracts

Buy what you need. No monthly minimum, no seat pricing, nothing expires.

Revocable keys

One key per app, hashed at rest. Leaked keys die in five minutes.

Stop storing OTPs yourself

Most in-house implementations get at least two of these wrong. All of it is handled for you, on every request.

Codes never stored in plaintext

Kept as an HMAC with a server-side secret. A six-digit SHA-256 hash is brute-forced instantly; a keyed MAC is not.

Single use, five attempts

Consumed on success, dead after five wrong guesses. Compared in constant time.

Bombing protection

60 seconds between codes, three per recipient per ten minutes. Built in, not your problem.

Your app asks for a code. POST /v1/otp/send with an email. You get back a request id — never the code.
We email it. Delivered in about a second, from a domain with real sending reputation.
Your user types it in. POST /v1/otp/verify with the request id and the code. You get {"valid": true}.

Pricing

One rate for everything. Sending an email costs a credit, sending a code costs a credit, verifying is free.

$10per 10,000 emails — $0.001 each

Credits never expire. New accounts get 200 free to try the API before paying.

Mailflow · built on AWS SES · Get started

Add credits

API keys

Shown once. Store it in a secrets manager, not in git.

Try it

Quickstart

Recent activity

Credit history