Latest API and SDK updates. Subscribe via RSS · Discord
Inboxes now support custom metadata: your own key-value data attached to any inbox. Link an inbox to records in your own system, such as a tenant ID, user ID, or feature flags, and read it back on every inbox response. Build agents that carry your application’s context wherever an inbox goes.
New features:
Changes:
Inbox object now includes an optional metadata field, returned on get, list, and create responses.POST /v0/inboxes accepts a metadata field to set metadata at creation time.PATCH /v0/inboxes/:inbox_id accepts a metadata field. Updates merge into existing metadata: keys you include are added or overwritten, and keys you omit are preserved. Send a key with a null value to remove it, or set metadata to null to clear everything. Each update must include at least one of display_name or metadata.Build agents that:
Learn more about attaching and updating inbox data in the Inboxes metadata guide.
Inbox-scoped API keys let you generate credentials that are restricted to a single inbox. This gives agents and integrations the minimum access they need, reducing the blast radius if a key is compromised.
New endpoints:
GET /v0/inboxes/:inbox_id/api-keys - List all API keys scoped to an inboxPOST /v0/inboxes/:inbox_id/api-keys - Create an API key scoped to an inboxDELETE /v0/inboxes/:inbox_id/api-keys/:api_key - Delete an inbox-scoped API keyUpdated types:
ApiKey and CreateApiKeyResponse now include an optional inbox_id field when the key is scoped to an inboxBuild agents that:
Learn more about API key scoping in the API Keys reference.
Webhooks & Events – receive email and domain events via HTTP callbacks. Subscribe to message lifecycle events (received, sent, delivered, bounced, complained, rejected) and domain verification. Use Svix headers for verification and filter by inbox or pod. Perfect for agents that need reliable, async notifications without keeping a WebSocket open.
Webhook events:
message.received - New inbound emailmessage.sent - Outbound message sentmessage.delivered - Delivery confirmedmessage.bounced - Bounce (with type and recipients)message.complained - Spam complaintmessage.rejected - Rejection (e.g. validation)domain.verified - Domain verification succeededDelivery & verification:
svix-id, svix-signature, svix-timestamp for verificationBuild agents that:
Set up and verify webhooks in our Webhooks documentation.
Introducing Custom Domains – add and verify your own domains for sending and receiving email. Use DNS verification (TXT, CNAME, MX), export zone files for easy DNS setup, and control feedback (bounce and complaint) delivery. Perfect for agents that need to send from your brand’s domain with full control over deliverability.
New endpoints:
GET /domains - List all domainsGET /domains/{domain_id} - Get domain details and verification recordsPOST /domains - Create (add) a domainDELETE /domains/{domain_id} - Remove a domainGET /domains/{domain_id}/zone-file - Download zone file for DNS setupPOST /domains/{domain_id}/verify - Trigger domain verificationDomain features:
Build systems where:
Learn more in our Custom Domains and Managing Domains guides.
Introducing the Drafts API – compose and manage email drafts before sending. Create drafts, update them over time, schedule send times, and send when ready. Perfect for agents that need to build messages incrementally, support reply threading, or queue emails for later delivery.
New endpoints:
GET /drafts - List all drafts (with optional filters)GET /drafts/{draft_id} - Get a draftPOST /inboxes/{inbox_id}/drafts - Create a draft in an inboxPATCH /inboxes/{inbox_id}/drafts/{draft_id} - Update a draftPOST /inboxes/{inbox_id}/drafts/{draft_id}/send - Send a draftDELETE /inboxes/{inbox_id}/drafts/{draft_id} - Delete a draftDraft features:
in_reply_to and referencessend_at for delayed deliveryBuild agents that:
in_reply_toLearn more about composing and sending in our Drafts documentation.
We’re excited to introduce Metrics Endpoints - two new powerful endpoints that give you deep insights into your email deliverability and agent performance. Track critical events like bounces, deliveries, rejections, and complaints with detailed timestamps to build smarter, self-optimizing email agents.
New endpoints:
GET /metrics - Get comprehensive metrics across all your inboxesGET /inboxes/{inbox_id}/metrics - Get metrics for a specific inboxMetrics tracked:
Build agents that:
Ready to build smarter agents? Check out our Metrics API documentation to get started.
Introducing WebSocket Streaming - receive email events in real-time as they happen. Build reactive agents that respond instantly to new messages, deliveries, and bounces without polling. Perfect for building interactive, event-driven email experiences.
WebSocket endpoint:
wss://ws.agentmail.to/v0 - Real-time event streamingEvents streamed:
message.received - New inbound email detectedmessage.sent - Outbound email sent successfullymessage.delivered - Delivery confirmed by recipient servermessage.bounced - Bounce detected (permanent or temporary)message.complained - Spam complaint receivedConnection features:
Build agents that:
Get started with WebSocket Streaming to build real-time email agents.
Introducing Pods - team collaboration spaces for AgentMail. Share inboxes, domains, and resources across your organization while maintaining granular control. Perfect for teams building multi-agent email systems that need organized resource management.
New endpoints:
POST /pods - Create a new pod (team workspace)GET /pods - List all pods in your organizationGET /pods/{pod_id} - Get pod detailsDELETE /pods/{pod_id} - Delete a podPOST /pods/{pod_id}/inboxes - Create inbox within a podPOST /pods/{pod_id}/domains - Add custom domain to a podGET /pods/{pod_id}/threads - List threads within a podGET /pods/{pod_id}/metrics - Get metrics for a podPod features:
Build systems where:
Learn more about organizing teams with Pods in our documentation.