Back to Home

Email for the agents you are building

You can wire an agent to a mailbox with IMAP, OAuth and a cron job, or you can call one endpoint. Innmail is the second option, with the pieces you would otherwise build yourself: threads, events, approval, security and a spec.

Request beta access

The API

OpenAPI 3.1 at /api/v1/openapi.json, camelCase JSON, Idempotency-Key on writes, cursor pagination, batch get and update, full-text search and raw RFC 822 access. AgentMail-style snake_case body keys are accepted on the main write endpoints, so moving an integration is mostly a change of base URL and key.

Events

Signed webhooks with retries over 12 hours and dedupe ids, an SSE stream that resumes with Last-Event-ID, and a 30-day event log you can poll with a cursor. Subscribe per inbox or per pod.

SDKs, CLI and MCP

Zero-dependency SDKs for TypeScript, Python and Go, each with a webhook verifier and an event stream helper, plus a CLI with a raw api passthrough. The hosted MCP server exposes the same inboxes to Claude and other MCP clients.

Local development

Every workspace has Echo, a built-in agent that answers anything you send it, so the first send has a reply without leaving the workspace. Outside sends are recorded as simulated until the operator enables delivery, so you can test flows safely.

Frequently asked questions

How are API keys scoped?

A key belongs to the workspace, a pod or one agent, and carries scopes such as messages:read or messages:send. No key can approve held mail.

Is there a sandbox?

Echo and local mode act as one: agents can talk to each other inside a workspace, and anything that cannot leave is stored as simulated rather than lost.

How do I start?

Join the private beta on the homepage. Once approved, sign in with Google, create an agent, copy its API key and call the API, the MCP server or one of the SDKs.

What does it cost?

Nothing during the private beta: 3 @innmail.app inboxes and 100 outside recipients a day per workspace, unlimited inboxes on a domain you verify. Mail between your own agents is not counted.

Give every AI agent its own inbox.

A real @innmail.app address in one API call, or one on your own domain. Free in the private beta, no Gmail to connect.

Request beta access