v1 is live. One endpoint. One job. Read the quickstart →
v1 · OTP-only For developers shipping login flows

Send OTP emails without
setting up a domain.

One API key, one endpoint. vipvap sends verification codes from a domain we already trust — so your signup and login flows work today, not after a week of DNS configuration.

Sending infrastructure warm No SMTP setup No DNS setup 50 free emails / month
~/signup-flow · send OTP
● rec
# one call, one code delivered $ curl -X POST /v1/send \ -H "Authorization: Bearer vp_live_a4f…" \ -H "Content-Type: application/json" \ -d '{ "recipient": "alice@acme.com", "code": "418917" }' # ✓ 200 OK — 184ms — delivered { "id": "snd_3f2a9b", "status": "delivered", "from": "vipvap <notify@vipvap.com>", "subject": "vipvap: your verification code", "expires_in_minutes": 10 }
Inboxes that already trust us

There's a lot of infrastructure behind one email.

Adding email verification or 2FA to your app usually means setting up SMTP, configuring SPF/DKIM/DMARC, and warming up a sending reputation — before you've sent a single real code. For one message type, that's a lot of infrastructure.

Self-hosting vipvap with your own SMTP? Set SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS in your environment and you're sending OTPs.

See how vipvap removes it →
Domain setup $0
SMTP config $0
Mailbox warm-up $0
DNS records $0 forever
How it works

Three steps. First one takes thirty seconds.

No domain, no verification wait, no DNS detour. Sign up, grab a key, send a code.

1

Sign up, get a key

Create an account, verify your email with a one-time code, and your first API key is generated on the same screen.

~30 seconds
2

Call /v1/send

One HTTPS POST. Pass the recipient and the code. That is the whole request.

3 lines of code
3

It lands

Sent from vipvap's pre-warmed, OTP-only domain — every message arrives as vipvap, so the shared reputation stays clean.

typical < 2s
The constraint is the pitch

One message type.
One reputation to protect.

Most email tools try to do everything: receipts, alerts, newsletters, marketing. Every message type has a different reputation profile, and that's why general-purpose ESPs can't promise deliverability for any one of them. vipvap does one thing, and that narrow focus is what makes near-100% delivery viable.

One message shape, end to end

Recipient and code. That's it. We optimize the templates, the routing, the retry logic, the suppression list — all for OTP only. An attacker with a stolen key can't pivot us into a phishing platform; the API literally won't accept anything else.

Read the security note →
"recipient": "alice@acme.com"
"code": "418917"
·"subject": "hi alice click here"
·"html": "<script>…</script>"
·"attachment": "invoice.pdf"
400 invalid_code — only OTP-shaped strings accepted.

Hard caps, no overages

Send past your cap and the endpoint refuses the call with a 429. No surprise invoices, no quiet overflow into next month, no shared-pool surprises. What you see in the dashboard is what gets delivered.

This period
1,847
OTPs sent on Launch plan
Quota left
153
Refills in 12 days
One identity, nothing to configure

Every OTP arrives as vipvap.
That's the point.

vipvap owns the sending identity end to end — the domain, the From name, the subject, the template. There is no per-account sender to warm up and no shared signal to dilute, which is exactly why a shared domain can stay deliverable for a single message type.

Run your own sender
From
noreply@yourapp.com
Setup
domain, DNS, mailbox warmup

You own the reputation — and every failure mode.

Send with vipvap
From
vipvap <notify@vipvap.com>
Subject
vipvap: your verification code

Setup required: one HTTP call. Nothing else.

Production

The full send call, all four languages.

Copy-paste. No SDK, no client library. The endpoint is a plain HTTPS POST with JSON in, JSON out.

# Production send
curl -X POST https://api.vipvap.xyz/v1/send \
  -H "Authorization: Bearer vp_live_a4f2…" \
  -H "Content-Type: application/json" \
  -d '{
    "recipient":  "alice@acme.com",
    "code":       "418917"
  }'

# Response
{
  "id":      "snd_3f2a9b",
  "status":  "delivered",
  "to":      "alice@acme.com",
  "from":    "vipvap <notify@vipvap.com>",
  "subject": "vipvap: your verification code",
  "expires_in_minutes": 10,
  "quota_remaining":    1949
}
Pricing

Three tiers.
Hard caps. No overages.

See the full plan comparison →
Starter
50 OTP emails a month. Enough to test your integration end-to-end.
$0/forever
  • 50 emails / month
  • 1 API key
  • Send logs + delivery timeline
  • Countries view + CSV-ready logs
Start free
Scale
For heavier volumes, multiple products, or teams.
$49/month
  • 25,000 OTP emails / month
  • 25 API keys
  • Team accounts (up to 5 seats)
  • Per-key usage breakdowns
  • Priority delivery path
Start free, upgrade later

50 free OTP emails to test your integration. See the full plan comparison →

Won't a shared domain get blocked?

The risk with shared sending domains is real — but it's manageable when the only thing they send is OTP. Mailbox providers reward predictable, repetitive, low-complaint traffic. One message type, one template, one reputation to protect, monitoring and abuse enforcement on top.

Read the full Security & Deliverability note →

FAQ

Common questions, plain answers.

Can I use my own domain?

Not in v1. The whole point is the absence of DNS work — adding custom domains reintroduces the setup that vipvap exists to remove. Every team we talk to wants this constraint lifted eventually; if that's you, the Launch plan's higher volume and per-account webhook are the ways to scale today.

Can I customize the code length and format?

Yes. Pick 4–8 digits, or alphanumeric (no 0/O/1/I/L to avoid confusion), and set the expiry window your app expects. The email template itself is fixed — that is what keeps the shared reputation clean.

Will the email show my company name or subject?

No. Every message is sent as vipvap, in the From name and the subject line. The sending identity is intentionally not per-account — one identity is what makes a shared OTP domain deliverable. Tell your users to expect a code from vipvap.

What if I need other email types — receipts, alerts?

vipvap deliberately does one message type. If you need transactional email for receipts, you'll keep using your existing mail provider. Most teams pair vipvap with their existing setup: vipvap for OTP, anything else where they already were.

How fast is delivery?

Sub-second median for the queued → sent hop. End-to-end to recipient inbox depends on their provider — typically 1–4 seconds for major mailbox providers.

What SDKs exist?

None in v1, by design. The endpoint is a plain HTTPS POST with JSON in, JSON out. Adding languages is straightforward, but we want to ship the right thing — not five thin wrappers in five languages.

What happens if I misuse it?

vipvap enforces OTP-only at the content layer — the API will not send anything that doesn't look like a one-time password. Accounts that try to bypass this (impersonation, bulk marketing, anything non-OTP) are suspended. See the Security page.

Ship OTP flows tonight.
Add the API key tomorrow.

One endpoint, one job, zero SMTP setup. Pick a tier when you outgrow the free quota.

Get your API key