mailjar
Inbound email, captured

Catch every email.
Read the code over an API.

Mailjar receives mail — on a free mailjar.dev address or your own domain — parses it, and pulls out the OTP, magic link and data — ready to read over a simple REST API, MCP, or the inbox. Perfect for reading verification emails straight from CI.

Free while in beta · EU-hosted · Every feature unlocked

read the latest OTP from CI
# in your test / CI pipeline
curl -H "Authorization: Bearer $MAILJAR_KEY" \
  https://app.mailjar.dev/api/inbox/jane.signup/latest-otp

# →
{
  "otp": "492013",
  "message_id": "a1b2c3",
  "received_at": "2026-06-13T09:41:02Z"
}
Built for developers & agents ·EU-hosted (GDPR-friendly) ·REST + OpenAPI ·MCP for AI agents ·Receive-only by design

Testing signup flows? Stop scraping inboxes.

Every end-to-end test that signs a user up hits the same wall: a verification code lands in an inbox you can't read from code. Teams hack around it with throwaway Gmail accounts, IMAP scripts, or paid per-parse services that meter every read.

Use Mailjar instead. Claim an address on mailjar.dev — or point your own domain at it — and mail to it is captured, parsed, and the code extracted, then read back with one authenticated request. No mailbox, no scraping, no per-parse meter.

Two ways to capture mail

Use a free Mailjar address, or bring your own domain. Either way, mail is parsed the moment it lands and read back over the API, MCP, or the inbox.

No setup

Use a Mailjar address

Grab any address on mailjar.dev[email protected], or a wildcard like you-*@mailjar.dev. Use it instantly; claim it and it's exclusively yours, with mail private to your account. Nothing to configure.

One DNS record

Bring your own domain

Add your domain and point a single MX record at the host we give you. That one record both routes your mail and proves you own the domain — then you receive everything sent to anything@yourdomain, private to you.

Then Mailjar parses every message — sender, bodies, attachments, with the OTP and links extracted — and you read it via REST API, MCP for agents, Telegram/webhook push, or the web inbox.

Everything, for everyone

No feature is locked behind a tier. Every account gets the full toolkit — you only ever pay for volume.

OTP & code extraction

The killer feature. Verification codes pulled from any message and served at /latest-otp.

Magic-link detection

Primary action links surfaced automatically — click the right one in your test, every time.

Full parsing

From, to, subject, date, text + HTML bodies, headers and attachments — clean, structured JSON.

Self-learning extraction

Regex fast-path, LLM fallback for the tricky ones — and it teaches itself a rule so the next one is instant. Flat cost, never per-parse.

REST API + OpenAPI

Per-key auth, scoped to your addresses. /openapi.json and an /llms.txt out of the box.

MCP server

Let an AI agent read the signup OTP itself. JSON-RPC over HTTP, same key, same scope.

Notifications

Per-address routing to Telegram or an HMAC-signed webhook — wire it into n8n, Slack, anything.

Deliverability signals

SPF, DKIM and DMARC results on every message — you're the receiver, so it's free to compute.

Private, owned aliases

Claim exact or wildcard addresses. Private by default — your mail is yours, no public inboxes.

Built to be called by code — and by agents

A clean REST API for your test suite, and a native MCP server so your AI agent can read a one-time code without you writing any glue. Same key, same access scope.

  • GET /api/inbox/{addr}/latest-otp — the code, nothing else
  • GET /api/inbox/{addr}/latest — the full parsed message
  • POST /mcplatest_otp, list_inbox, get_message
Read the API docs
let an agent read the OTP — MCP tool call
// tools/call over POST /mcp
{
  "method": "tools/call",
  "params": {
    "name": "latest_otp",
    "arguments": { "alias": "jane.signup" }
  }
}

Who it's for

CI & E2E testing

Playwright, Cypress, anything that signs a user up and needs the code back.

AI agents

Give an agent an inbox via MCP so it can complete signups and verifications on its own.

Automations

Turn inbound mail into webhooks and Telegram pings — receipts, alerts, parsed data.

Privacy-minded teams

EU-hosted, private by default, short retention — and a self-hosted path on the roadmap.

Part of a pair

Mailjar captures inbound email. Its sibling Hookjar captures inbound HTTP (webhooks). Same idea, same login, same conventions — an inbound-capture toolkit for whatever's knocking on your door.

Free while we're in beta

And when paid plans arrive, you'll pay for volume, never for features. Every capability stays unlocked for everyone — the meter only kicks in if you lean on it hard.

See the pricing philosophy

Capture your first email in minutes

Sign in with Google, claim an address, and read it over the API.

Start free