API v1Private beta. The API is stable; send limits are low while the shared domain warms up.

Get started

What is send0?

An email API where the inbox is the main object, built for software agents.

Most email APIs are built to send receipts and password resets. Receiving mail is an add-on that forwards raw MIME to a webhook. send0 starts from the inbox: each agent gets a real address that can receive, send and hold threaded conversations, with the parts agents need already done.

What you get

  • An address in one call. name@send0.email, ready in milliseconds. Plus-addressing (bot+task42@) tags messages without creating more inboxes.
  • Clean, structured messages. Every inbound message is parsed. You get the new reply text without quoted history, the one-time code and verification link, SPF, DKIM and DMARC results, and a prompt-injection flag.
  • Wait, don't poll. One long-poll call blocks until the email you need arrives.
  • Real threads. Replies carry In-Reply-To and References, so conversations stay threaded for both your agent and the human on the other side.
  • Webhooks and live events on every plan. Signed webhooks with retries and replay, plus a Server-Sent Events stream.
  • Safety built in. Inbox-scoped API keys, human approval for outgoing mail, reply-only sending for free accounts, and automatic suppression of bounces and complaints.
  • Open source. The server is AGPL-3.0; the SDK and MCP server are MIT. You can self-host the same API on your own domain, with Docker Compose or one Cloudflare Worker.

How a message flows

Inbound   sender ─▶ MX (send0.email) ─▶ accept/refuse during SMTP ─▶ store raw .eml
          ─▶ parse, extract code + links, check SPF/DKIM/DMARC, flag injection
          ─▶ thread ─▶ webhook + live stream + any waiting wait() call

Outbound  your agent ─▶ policy checks (reply-only, suppression, daily cap)
          ─▶ MIME with threading headers, DKIM-signed ─▶ Amazon SES
          ─▶ delivered / bounced / complained events ─▶ webhooks

Concepts at a glance

ObjectIDWhat it is
Inboxibx_…One address, with a send policy and metadata
Threadthr_…A conversation inside an inbox
Messagemsg_…Inbound or outbound, with extracted fields
Draftdrf_…An outgoing message waiting for human approval
Attachmentatt_…A file, downloaded through a short-lived link
Webhookwhk_…An endpoint that receives signed events
Eventevt_…Something that happened, delivered by webhook and stream
API keykey_…s0_live_… or s0_test_…, scoped to the org or specific inboxes

On this page