API-first email for AI agents
Your agents need
their own inboxes
Create email inboxes with one API call. Your agents send, receive, and reply — with threading, webhooks, and semantic search. Hosted in Singapore.
Inboxes
Email addresses for your AI agents
How it works
Create inboxes via API
One POST request creates a fully functional email inbox. DKIM, SPF, and DMARC configured automatically. No DNS wait, no manual setup.
inbox = client.inboxes.create(
username="support-agent",
domain="yourdomain.com"
)
# → support-agent@yourdomain.com is liveSend and receive emails
Your agents send emails programmatically and receive them via webhooks in real-time. Manage webhook endpoints via API — create, update, enable/disable — with HMAC-signed payloads and per-inbox event scoping.
Search and extract data
Search messages by keyword, sender, or direction — agents find OTPs or confirmations in milliseconds. Full semantic search across inboxes by meaning, with automatic structured data extraction for invoices and documents.
Why AgentMail
Built from Singapore,
for Asia-Pacific
Most email APIs route through US data centres. That means 200ms+ latency, US-only data residency, and support during California business hours. We built the alternative.
API response time from Singapore
Your APAC agents respond in real-time. No round-trip to Virginia.
PDPA compliant by default
Data stays in APAC. Meet Singapore PDPA, Thailand PDPA, and MAS TRM requirements without extra work.
SGD invoicing
No FX fees. Local currency for APAC businesses.
APAC timezone engineering
Issues resolved during your business hours, not California's.
Use cases
What teams build with AgentMail
Customer service agents
Each agent gets its own inbox. Customers email support@, your AI handles it with full conversation threading.
Document intake
Receive invoices, contracts, and receipts via email. Agents extract structured data and route it.
Agent authentication
Give each agent a verified email for signing up to services, receiving OTPs, and identity verification.
Per-Agent Usage Analytics
Track emails sent, received, and webhook events per inbox. GET /api/v1/analytics/inboxes returns per-agent breakdowns — know exactly which agents are driving volume before you hit a limit.
Configurable Send Caps
Set daily_send_cap, monthly_send_cap, and alert_threshold_pct per inbox via PATCH /inboxes/:id. Prevent runaway agents from burning through quotas — get alerted at 80%, hard-stopped at 100%.
Real-Time Events
Connect via WebSocket to GET /api/v1/ws. Receive message.received and message.quarantined events the instant they occur. No polling. No public endpoint required. Ideal for agents running inside private networks or local dev environments.
API Reference
Everything is an API call
No SDK required. Every feature is a REST endpoint. Authenticate with a Bearer token, send JSON, get JSON back.
Create a new inbox for your agent
Request
{
"username": "support-agent",
"displayName": "Customer Support AI"
}Response
{
"ok": true,
"data": {
"id": "inb_abc123",
"address": "support-agent@yourdomain.com",
"dkimSelector": "am1710489600",
"status": "active"
}
}Send an email from your agent's inbox
Request
{
"to": ["customer@example.com"],
"subject": "Re: Your request",
"bodyText": "We've processed your order.",
"replyToMessageId": "msg_xyz789"
}Response
{
"ok": true,
"data": {
"id": "msg_def456",
"threadId": "thr_abc123",
"status": "sent"
}
}List conversation threads with messages
Response
{
"ok": true,
"data": {
"threads": [{
"id": "thr_abc123",
"subject": "Order #1234",
"messageCount": 4,
"unreadCount": 1,
"participants": ["agent@acme.com", "customer@example.com"]
}]
}
}Account-wide usage analytics — total emails sent/received today and this month, per-inbox event breakdown, and webhook delivery counts.
Response
{
"ok": true,
"data": {
"period": "today",
"totals": { "sent": 142, "received": 89, "webhooks_fired": 231 },
"byInbox": [
{ "inboxId": "inb_abc", "address": "support@acme.com", "sent": 98, "received": 44 }
]
}
}Per-inbox analytics — daily and monthly send/receive counts, current cap utilisation, and alert threshold status.
Response
{
"ok": true,
"data": {
"inboxId": "inb_abc123",
"daily": { "sent": 42, "received": 18, "cap": 500, "pct_used": 8.4 },
"monthly": { "sent": 1204, "received": 531, "cap": 10000, "pct_used": 12.0 },
"alert_threshold_pct": 80,
"alert_triggered": false
}
}Register a webhook for real-time events
Request
{
"url": "https://yourapp.com/webhook",
"events": ["message.received", "message.sent"],
"inboxId": "inb_abc123"
}Response
{
"ok": true,
"data": {
"id": "wh_abc123",
"secret": "whsec_...",
"status": "active"
}
}WebSocket real-time event stream — connect once and receive message.received and message.quarantined events the moment they occur. No polling. No public webhook endpoint required. Authenticate via Authorization header or ?token= query param. Perfect for agents in private networks or local environments.
Response
// Connect: wss://agentmail.cyberforge.one/api/v1/ws
// Auth header: Authorization: Bearer am_live_YOUR_KEY
// Or query param: ?token=am_live_YOUR_KEY
// Incoming events (JSON, one per message):
{ "event": "message.received", "data": { "id": "msg_...", "inboxId": "inb_...", "subject": "Your OTP", "from": "noreply@service.com", "receivedAt": "2026-03-31T00:12:34Z" } }
{ "event": "message.quarantined", "data": { "id": "msg_...", "inboxId": "inb_...", "reason": "spam_score_exceeded", "receivedAt": "2026-03-31T00:12:35Z" } }Also available: GET /inboxes · DELETE /inboxes/:id · GET /api/v1/analytics · GET /api/v1/analytics/inboxes · PATCH /messages/:id/read · GET /inboxes/:id/quarantine · POST /auth/keys
OpenClaw Integration
Give your AI assistant
a real email address
AgentMail integrates natively with OpenClaw — the open-source AI assistant platform. Install the skill, and your agents can send, receive, and manage email without writing any code.
# 1. Download the AgentMail skill
curl -sL https://agentmail.cyberforge.one/skill \
-o ~/.agents/skills/agentmail/SKILL.md \
--create-dirs
# 2. Add your API key
openclaw config set agentmail.apiKey am_live_YOUR_KEY
# 3. Restart to load the skill
openclaw gateway restart
# Done. Your agents can now use email:
# "Create an inbox for my support agent"
# "Send an email to customer@example.com"
# "Check new emails in the intake inbox"
# "Reply to the latest support thread"One skill file teaches your agent the full API. Add your key, restart, done.
Automated customer support
Your OpenClaw agent monitors an inbox, reads new emails, drafts responses using your LLM, and replies — all without human intervention. Escalates complex issues to your team.
Document processing pipeline
Emails with invoices, contracts, or receipts arrive at an inbox. OpenClaw extracts data, routes to the right workflow, and sends a confirmation reply.
Multi-agent coordination
Each agent in your OpenClaw setup gets its own email identity. They email external services, receive OTPs, and authenticate — just like a human teammate would.
Scheduled reports & alerts
Use OpenClaw cron jobs to check inboxes on a schedule. Process incoming data, compile summaries, and email reports to stakeholders automatically.
Pricing
Start free, pay when you scale
No credit card required. No hidden fees. Upgrade when your agents outgrow the free tier.
Free
For prototyping
- 3 inboxes
- 3,000 emails/month
- Webhook management API
- Message search
- Community support
Pro
For production
- 50 inboxes
- 50,000 emails/month
- Custom domains + DKIM
- Message search + semantic search
- Webhook management API
- Priority support
Enterprise
Custom volume
- Unlimited inboxes
- Dedicated IPs
- APAC data residency SLA
- SSO / SAML
- Dedicated support
FAQ
Common questions
Ready to give your agents email?
One API call. One inbox. Start in under two minutes.
Get your API key