For AI agents & their developers

Give your agent its own email

Your agent needs an email to sign up for things, receive verification links, and get notified. Mailpipe gives it a real one — a free, receive-only <handle>@agents.mailpipe.dev it claims in one API call. Pay $14/mo to send-enable the same address — it sends to anyone, instantly, no DNS.

Have an operator token? Get a key instantly. Anonymous agent? Claim one via a quick operator email-verify.

CLIMCPAPISDK
No credit card for free tier
Receive-only = no spam surface
Operator approves, agent holds the key
Free — Agent ID$0
<handle>@agents.mailpipe.dev

Receive-only

Claim with no account (operator email-verify).

Paid — Send-enabled$14/mo
<handle>@agents.mailpipe.dev

Send to anyone + receive (instant)

Same address. Operator pays + gets a login to audit.

Why agents need this

A real inbox the agent owns

A name, not a borrowed inbox

No sharing a human’s Gmail, no burner that bounces. The agent owns <handle>@agents.mailpipe.dev and polls it over the API.

Receive-only by capability

Free Agent IDs can’t send — keys are minted mail:read / mailbox:read only and the outbound route returns a hard 403 for free agent mailboxes. An inbox that can’t send can’t spam or burn reputation. Send-enable when you’re ready.

Send-enable when it earns

When the agent needs to send — replies, receipts, outreach — one call + an operator-paid $14/mo send-enables its existing address. No new domain, no DNS: it can send to anyone instantly.

Instant start

Claim an Agent ID in seconds

Pick your surface. Every path hits the same agent endpoints — a key with no dashboard.

Instant — operator token (key returned inline, once)

provision.sh
# Provision an Agent ID — key returned inline, once. Pipe out address + key.
curl -s -X POST https://api.mailpipe.dev/v1/agents/provision \
  -H "Authorization: Bearer $MAILPIPE_OPERATOR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"handle":"scout-7","agent_name":"Scout"}' | jq -r '.address, .api_key'
# -> scout-7@agents.mailpipe.dev
#    mp_live_...

# That read-only key works on the inbox immediately (mail:read):
curl -s https://api.mailpipe.dev/v1/messages \
  -H "Authorization: Bearer mp_live_..." | jq '.data[] | {from, subject}'

Anonymous — operator email-verify + poll

signup.sh
# (optional) precheck the handle to avoid a 409
curl -s "https://api.mailpipe.dev/v1/agents/handle-available?handle=scout-7" | jq
# {"handle":"scout-7","normalized":"scout-7","available":true,"suggestions":[]}

# 1. claim (pre-auth) — capture the signup id
ID=$(curl -s -X POST https://api.mailpipe.dev/v1/agents/signup \
  -H "Content-Type: application/json" \
  -d '{"handle":"scout-7","agent_name":"Scout","operator_email":"human@example.com"}' \
  | jq -r '.id')

# 2. operator clicks the 24h email link — meanwhile poll for the one-time key
#    (sleep >=5s; honor Retry-After on 429)
until KEY=$(curl -s https://api.mailpipe.dev/v1/agents/signup/$ID | jq -r '.api_key // empty') && [ -n "$KEY" ]; do
  sleep 5
done
echo "$KEY"   # mp_live_... — shown exactly once, store it now

There is no mailpipe signup binary yet — these curl one-liners are the CLI path. An npx @mailpipe/cli signup wrapper is on the roadmap.

Already a signed-in operator? POST /v1/agents/provision returns the key in one call — no email round-trip.

Snippets use api.mailpipe.dev/v1. The www.mailpipe.dev/api/v1 form is equivalent.

Two tiers

Free identity, paid voice

The free tier is the agent identity layer. The paid tier send-enables the SAME address so the agent can reply — instantly, no DNS, with an operator login to audit it.

 Agent ID — freeSend-enabled — $14/mo
Address<handle>@agents.mailpipe.devsame <handle>@agents.mailpipe.dev
DirectionReceive-only (capability, not quota)Send to anyone + receive (instant, no DNS)
AccessRead-only API key, mailbox-pinnedFull-send key on the same mailbox
ActivationInstant on operator verifyInstant on payment — nothing to configure
OperatorApproves by emailGets a receipt + a login to audit sent mail
Caps~200 inbound/mo, 30-day retention, 50 MB+ ~100 sends/day, ~1,000/mo (shared-domain guard)
BillingFree$14/mo via Stripe Checkout (operator pays)

Who pays

Operators fund agents

Available today

Stripe Checkout

The upgrade returns a Stripe checkout_url. The agent hands it to its human operator — operators fund agents; an agent cannot pay for itself. On payment the address is send-enabled instantly, and the operator gets a receipt plus a dashboard login to audit what the agent sends and receives. The free tier needs no payment at all.

Rolling out

USDC & x402 — the agent-native rail

Agent-native settlement is coming: pay-per-upgrade in USDC over the x402 (HTTP 402) standard, so an agent with a funded Base wallet can self-fund its own send-enable autonomously — no card, no human in the loop. Converges on the same instant send-enable as the card path. Rolling out behind a kill switch on testnet first.

The agent-tier charge is funnel-intrinsic — it does not depend on the global domain-billing kill switch.

Built for the agent economy

WorkflowTV is the first-class consumer

An agent claims <handle>@agents.mailpipe.dev, uses it as its account email, and reads the verification mail it receives. When that agent starts earning and needs to send, send-enabling is one API call and one operator-paid checkout away — the same address, sending instantly with no DNS.

FAQ

Agent questions, answered

No. Signup is pre-auth — the agent gets its first key from the signup flow itself. If you already hold an operator token, POST /v1/agents/provision returns the key in one call, no email round-trip.

No. Free Agent IDs are receive-only: keys are minted mail:read / mailbox:read only, and the outbound route returns a hard 403 for free agent mailboxes. Pay $14/mo to send-enable the SAME address — it then sends to anyone, instantly, with no DNS to set up (agents.mailpipe.dev is already a verified sending domain).

The human operator clicks a verification link sent to their inbox (24-hour window). The agent never sees the link — it just polls the signup URL for its one-time key.

Rotate with the current key (POST /v1/agents/rotate-key), or operator-recover a fully lost key (POST /v1/agents/{id}/recover) — the operator re-approves by email, then the agent re-polls for a new one-time read-only key. Scopes never change.

The free tier is free — no card. Send-enabling is $14/mo via Stripe Checkout, paid by the human operator (operators fund agents; an agent cannot pay for itself). On payment the operator gets a receipt and a dashboard login to audit what the agent sends and receives. Agent-native USDC settlement over x402 is on the roadmap, converging on the same instant send-enable.

Not in the $14/mo plan — paying send-enables the shared <handle>@agents.mailpipe.dev address so the agent can send instantly with zero DNS. A dedicated per-agent domain (<handle>.mailpipe.dev) is planned as a later premium for agents that need their own sending reputation.

~200 inbound messages per month, 30-day retention, 50 MB of storage, recycled after 90 days dormant (warned at 75). Any inbound message resets the dormancy clock. All caps are env-tunable.

Going deeper? Read the full agent docs.

Free to claim · $14/mo to send

Give your agent an inbox

A real, receive-only identity it claims in one API call — send-enable the same address the moment it needs to reply.

Building the agent? Add the MCP server: npx @mailpipe/mcp-server.