Email for software that acts on its own
Give every agent a real inbox.
Create an address with one request, send and reply in threads, and get a signed webhook the moment mail arrives. A plain HTTP API, no mail server to run.
Free plan: 3 inboxes, 300 sends a month. No card required.
1. CREATE AN INBOX
curl -X POST "$BASE_URL/v0/inboxes" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"username": "support-agent"}'2. SEND
curl -X POST "$BASE_URL/v0/inboxes/$INBOX_ID/messages/send" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"to": "you@example.com", "subject": "Hello", "text": "Sent by an agent."}'3. GET TOLD WHEN MAIL ARRIVES
curl -X POST "$BASE_URL/v0/webhooks" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/hooks/mail", "event_types": ["message.received"]}'
# every delivery is signed (svix-id, svix-timestamp, svix-signature)How it works
01
An inbox is a resource
Each inbox has an address, an optional display name, free-form metadata and a status. Pause one and it stops sending and quietly stops receiving.
02
Mail becomes JSON
Inbound messages are parsed into threads with text, HTML, attachments and an extracted_text field that strips the quoted reply chain.
03
You react
Receive a signed webhook, hold a WebSocket open, or poll the list endpoints. Retries back off for up to eight attempts.
What is in the box
Threads and drafts
Replies join the right thread by headers. Drafts can be scheduled with send_at.
Search
Ranked full-text search across sender, recipients, subject and body, per inbox or across the org.
Labels and lists
Label messages and threads, and keep allow and block lists at org, pod or inbox scope.
Pods
Isolate a customer or a team: keys, inboxes, webhooks and domains can be scoped to a pod.
Scoped API keys
Limit a key to one inbox or pod and to named permissions such as message_send.
Custom domains
Bring your own domain with generated MX, SPF, DKIM and DMARC records and a per-record verification status.
Safe by default
Idempotency keys on sends, bounce and complaint suppression, sandboxed attachment downloads.
Usage metrics
Totals over time for storage, messages, threads, inboxes, domains and pods.
MCP and TypeScript SDK
Give an agent email tools over MCP, or use the zero-dependency TypeScript client.
What it does not do (yet)
- No IMAP or SMTP submission. Use the HTTP API, webhooks or WebSockets.
- No open tracking events.
- No tax (GST or VAT) invoicing yet.
- SDK and MCP cover the core mail flow, not domains or usage metrics.
Pricing in one line
Free to start, then $19 a month for 25 inboxes and 10,000 sends. See all plans.
Questions
What does the API look like?
A REST API under /v0 with snake_case JSON. It is an independent service with its own plans, limits and operations, and some things are not built yet (see below).
What is not supported?
No IMAP or SMTP client access in v1: everything goes through the HTTP API, webhooks and WebSockets. No SOC 2 report. Tax invoicing (GST or VAT) is not handled yet. The SDK and MCP server do not cover domains, usage metrics or agent sign-up yet.
Can my agent receive mail on its own domain?
Yes on Pro and Scale: add a domain, publish the MX, SPF, DKIM and DMARC records the API returns, and verify. Free uses the shared service domain only.
Is receiving metered?
No. Plans meter sending and resource counts. Receiving is not metered in v1, though abuse controls and message size limits apply.
Why do I have to verify my email before sending?
To keep spam off a shared sending reputation. Receiving works immediately; sending and creating API keys unlock once the owner email is verified. Agents that sign up on their own are send-locked until a human is attached and verifies a 6-digit code.
How does billing work?
Cards through Stripe in USD, or Razorpay in INR when your billing country is India (you can override this). Yearly plans cost ten months. No free trial. Downgrades take effect at period end. After a failed payment you have a 7 day grace period before Free limits apply.
Are the prices final?
The prices on this page are illustrative while the service is pre-launch. The plan table is the single source used by both this page and the billing system.
Where does my data live?
In the operator's database; webhook secrets and API key hashes are stored, raw API keys are shown once at creation and never again. Read the privacy draft for details, noting it is still a draft pending legal review.