Feature availability
What exists today, and where you can use it. This table is generated from one data file that is checked against the real routes, dashboard screens, SDK methods and MCP tools on every test run, so it cannot claim more than the code has.
Available 25 API only 4 In progress 7 Not planned 2
- Available Works today where it applies (API, and dashboard unless a dashboard does not make sense for it).
- API only Works through the API but has no dashboard screen yet.
- In progress Partly built or being finished; the note says what works.
- Planned Intended, not started.
- Not planned Not built and not planned.
Columns: API means a documented HTTP route you can call with an API key. Dashboard means a screen in the web app. n/a means a dashboard screen would not make sense for that item. The product is in early access: see status and early access.
Mail#
| Feature | Status | API | Dashboard | TypeScript SDK | Python SDK | MCP | What to know |
|---|---|---|---|---|---|---|---|
| Inboxes | Available | Yes | Yes | Yes | Yes | Yes | Create, pause, resume and delete inboxes in the dashboard or the API; metadata is API only. Docs |
| Inbound email | Available | No | n/a | No | No | No | Mail to an address on the shared service domain becomes a message with a thread, labels and an event; custom domains cannot receive yet. Docs |
| Send email | Available | Yes | Yes | Yes | Yes | Yes | Needs a verified owner email; plan quotas and a default 100 sends per inbox per rolling 24 hours apply. Docs |
| Reply and reply all | Available | Yes | Yes | Yes | Yes | Yes | Replies keep the thread through In-Reply-To and References; the dashboard thread view replies to the sender or to everyone. Docs |
| Forward | API only | Yes | No | Yes | Yes | No | Forwards the message with its attachments as a new thread through the API and both SDKs; the dashboard has no forward button. Docs |
| List and read messages | Available | Yes | Yes | Yes | Yes | Yes | List, filter by label or date, read bodies and raw .eml; the dashboard shows messages inside threads. Docs |
| Threads | Available | Yes | Yes | Yes | Yes | Yes | Grouped by headers, then normalised subject for inbound mail; the dashboard lists threads, shows them with labels and a reply box, but cannot delete them. Docs |
| Drafts | Available | Yes | Yes | Yes | Yes | Yes | Create, edit, send and delete drafts; send_at scheduling is a separate row. Docs |
| Scheduled send | API only | Yes | No | Yes | Yes | Yes | Set send_at on a draft through the API, SDKs or MCP; the dashboard compose screen has no schedule field. Docs |
| Labels | Available | Yes | Yes | Yes | Yes | Yes | Add and remove labels on messages and threads in the dashboard thread view, the API, both SDKs and MCP. Docs |
| Search | API only | Yes | No | No | Yes | No | Ranked full-text search over messages and threads through the API and Python SDK; no dashboard search box and no TypeScript SDK method yet. Docs |
| Attachments | API only | Yes | No | Yes | Yes | No | Send base64 or URL attachments and download received ones through the API; the dashboard only lists attachment names. The TypeScript SDK can send but not download them. Docs |
| Idempotency keys | Available | Yes | n/a | Yes | Yes | No | Send an Idempotency-Key header on send, reply, forward and draft send; the same key on the same path replays the first response. Docs |
Organization#
| Feature | Status | API | Dashboard | TypeScript SDK | Python SDK | MCP | What to know |
|---|---|---|---|---|---|---|---|
| Pods | Available | Yes | Yes | Yes | Yes | No | Isolated sub-tenants for inboxes, keys, webhooks, domains and lists; the dashboard creates and deletes pods, shows what is inside and creates pod-scoped keys. Docs |
| Allow and block lists | Available | Yes | Yes | No | Yes | No | Allow and block lists per direction at organization, pod and inbox scope, in the dashboard and the API; the TypeScript SDK has no methods for them. Docs |
| Suppression list | Available | Yes | Yes | No | Yes | No | Hard bounces and complaints are suppressed automatically; list and remove them in the dashboard or the API (Python SDK has methods, TypeScript does not). Docs |
Events#
| Feature | Status | API | Dashboard | TypeScript SDK | Python SDK | MCP | What to know |
|---|---|---|---|---|---|---|---|
| Webhooks | Available | Yes | Yes | Yes | Yes | No | Signed HTTP deliveries with retries and a delivery log; the dashboard creates, toggles, deletes and shows deliveries but cannot set scopes or headers. Docs |
| WebSockets | Available | Yes | n/a | Yes | Yes | No | Live event stream while connected; no replay, use the events log or webhooks to catch up. Docs |
| Events log | Available | Yes | n/a | No | Yes | No | Recent events by cursor, for catching up after downtime. Docs |
| Open tracking | Available | Yes | Yes | Yes | Yes | Yes | Optional per-message pixel with a message.opened event; the dashboard compose screen has the toggle. Opens are a weak signal. Docs |
| Delivery rates | Available | Yes | Yes | Yes | Yes | No | Rolling bounce, complaint and open rates as charts on the dashboard overview and through the API and both SDKs. Docs |
| Usage metrics | Available | Yes | Yes | No | Yes | No | Usage over time (storage, messages, threads, inboxes, domains, pods) as charts on the dashboard overview and through the API; Python SDK only, no TypeScript method. Docs |
Domains#
| Feature | Status | API | Dashboard | TypeScript SDK | Python SDK | MCP | What to know |
|---|---|---|---|---|---|---|---|
| Custom domains: DNS records and verification | Available | Yes | Yes | No | Yes | No | Generates MX, SPF, DKIM and DMARC records, a zone file and checks them with live DNS lookups. Docs |
| Sending and receiving on your own domain | In progress | No | n/a | No | No | No | Not connected: a verified domain is not yet registered with the email provider, so mail cannot be sent from or received on it. Docs |
| Deliverability tooling | In progress | Yes | n/a | No | No | No | Bounce and complaint suppression and rates work; domain authentication for custom domains, warm-up and inbox placement tests do not exist yet. Docs |
Accounts#
| Feature | Status | API | Dashboard | TypeScript SDK | Python SDK | MCP | What to know |
|---|---|---|---|---|---|---|---|
| Account sign-up and sign-in | Available | No | Yes | No | No | No | Email and password with email verification and password reset, in the dashboard. (dashboard session only) Docs |
| Agent self sign-up | Available | Yes | n/a | No | Yes | No | An agent creates an organization, inbox and key in one call; sending stays locked until a human verifies a 6-digit code. Python SDK covers the verification steps only. Docs |
| API keys and permissions | Available | Yes | Yes | Yes | Yes | No | Keys can be scoped to a pod or inbox and limited to named permissions; the dashboard creates organization-wide keys with permission lists and pod-scoped keys from a pod's page, not inbox-scoped ones. Docs |
| Organization members | Available | No | Yes | No | No | No | Owners invite members with the owner, admin or member role in Settings, Members; it uses dashboard-session endpoints only, so there is no API-key access. (dashboard session only) Docs |
| Two-step verification and login security | Available | No | Yes | No | No | No | TOTP with recovery codes, password change, session list and revoke, and login throttling; the dashboard shows the setup secret and link, not a QR code. (dashboard session only) Docs |
| Billing and plans | In progress | Yes | Yes | No | Yes | No | Plan limits are enforced and checkout, portal and cancel exist, but the Stripe and Razorpay calls have not been exercised against live test accounts yet and there is no tax invoicing. Docs |
Integrations#
| Feature | Status | API | Dashboard | TypeScript SDK | Python SDK | MCP | What to know |
|---|---|---|---|---|---|---|---|
| TypeScript SDK | In progress | No | n/a | Yes | No | No | Works from the repository folder with no dependencies; it is not published to npm yet and does not cover lists, domains, search or sign-up. Docs |
| Python SDK | In progress | No | n/a | No | Yes | No | Sync and async client covering the whole /v0 API; install from the repository folder, not published to PyPI yet. Docs |
| LangChain toolkit | In progress | No | n/a | No | Yes | No | Read-only by default toolkit shipped inside the Python SDK; install from the repository folder, not published yet. Docs |
| MCP server (local) | In progress | No | n/a | No | No | Yes | A stdio server that talks to the API over HTTP with the same mail tools; build it from the repository folder, it is not published to npm. Docs |
| MCP server (hosted at /mcp) | Available | Yes | n/a | No | No | Yes | Hosted at /mcp on the API origin: bearer API key, stateless Streamable HTTP, the same mail tools as the local server, and ?read_only=1 hides every write tool. Docs |
| IMAP and SMTP access | Not planned | No | n/a | No | No | No | Not built and not planned for v1: all access is HTTP, webhooks and WebSockets. |
| AgentID sign-in | Not planned | No | n/a | No | No | No | Not built and not planned: there is no AgentID or P-256 credential flow. |