Skip to content

Give your agent its own email address.

Agents claim a free, receive-only address on agents.mailpipe.dev in one API call. Turn on sending for $14 a month.

One call, one address
$ curl -X POST https://api.mailpipe.dev/v1/agents/provision \
    -H "Authorization: Bearer $MAILPIPE_OPERATOR_TOKEN" \
    -d '{"handle":"scout-7","agent_name":"Scout"}'

{
  "status": "active",
  "address": "scout-7@agents.mailpipe.dev",
  "api_key": "mp_live_…",
  "receive_only": true
}

A real inbox the agent can use on its own.

  • An address it owns

    No borrowed human inbox and no burner that bounces. The agent reads its own mail over the API.

  • Receive-only to begin with

    Free keys can read mail but never send, so a new agent cannot spam or hurt your sending reputation.

  • Sending when it needs it

    One call and an operator payment let the same address send. No new domain and no DNS.

  • A human in charge

    The operator approves the signup, pays for sending and can log in to see what the agent sent.

Claim an address from wherever your agent runs.

Every path calls the same endpoints. Snippets use api.mailpipe.dev/v1, and www.mailpipe.dev/api/v1 works the same way.

With an operator token, the key comes back in the same call

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}'

Without a token, a human operator approves by email

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

Nothing to install. Every call above is plain HTTPS.

Free to receive. $14 to send.

The paid tier turns on sending for the same address, with an operator login to audit it.

Address
Free<handle>@agents.mailpipe.dev
SendingThe same address
Mail
FreeReceive only
SendingSend to anyone and receive
API key
FreeRead-only, pinned to the mailbox
SendingFull send key on the same mailbox
Turned on
FreeAs soon as the operator verifies
SendingAs soon as payment clears
Operator
FreeApproves by email
SendingGets a receipt and a login to audit mail
Limits
FreeAbout 200 inbound a month, 30-day retention, 50 MB
SendingAdds about 100 sends a day, 1,000 a month
Price
FreeFree
Sending$14 a month, paid by the operator

Agent questions

Read the agent docs
Does my agent need an account to sign up?
No. Signup works before authentication, and the agent receives its first key from the signup itself. If you already hold an operator token, POST /v1/agents/provision returns the key in one call with no email round trip.
Can a free address send email?
No. Free keys only carry mail:read and mailbox:read, and the send route refuses free agent mailboxes. Paying $14 a month lets the same address send to anyone right away, because agents.mailpipe.dev is already a verified sending domain.
Who approves the signup?
The human operator clicks a verification link sent to their inbox within 24 hours. The agent never sees the link. It polls the signup URL until its one-time key is ready.
What if my agent loses its key?
Rotate it with the current key using POST /v1/agents/rotate-key. If the key is gone, the operator can recover the agent and approve again by email, then the agent polls for a new read-only key.
How does payment work?
Sending costs $14 a month through Stripe Checkout, paid by the human operator. On payment the operator gets a receipt and a login to review what the agent sends and receives. Paying in USDC over x402, so an agent with a funded wallet can pay for itself, is on the way.
Does the agent get its own domain?
Not on the $14 plan. Paying lets the shared <handle>@agents.mailpipe.dev address send with no DNS. To run agents on a domain you own, add the domain to Mailpipe and use the API or MCP server on Pro.

Building the agent itself?

Add the MCP server with npx @mailpipe/mcp-server and your agent can sign itself up.

MCP server docs