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.
<handle>@agents.mailpipe.devReceive-only
Claim with no account (operator email-verify).
<handle>@agents.mailpipe.devSend 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 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
# (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 nowThere is no mailpipe signup binary yet — these curl one-liners are the CLI path. An npx @mailpipe/cli signup wrapper is on the roadmap.
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 — free | Send-enabled — $14/mo | |
|---|---|---|
| Address | <handle>@agents.mailpipe.dev | same <handle>@agents.mailpipe.dev |
| Direction | Receive-only (capability, not quota) | Send to anyone + receive (instant, no DNS) |
| Access | Read-only API key, mailbox-pinned | Full-send key on the same mailbox |
| Activation | Instant on operator verify | Instant on payment — nothing to configure |
| Operator | Approves by email | Gets 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) |
| Billing | Free | $14/mo via Stripe Checkout (operator pays) |
Who pays
Operators fund agents
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.
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.
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.