Skip to content

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.

Get your API key Free tier · No credit card · PDPA compliant
AgentMail Console

Inboxes

Email addresses for your AI agents

+ New Inbox
support-agent@acme.com
Last message 2 min ago
intake@acme.com
Last message 14 min ago
scheduler@acme.com
Last message 1 hr ago
3 active inboxes1,247 emails this month

How it works

01

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 live
02

Send 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.

03

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.

<50ms

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.

POST/api/v1/inboxes

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"
  }
}
POST/api/v1/inboxes/:id/send

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"
  }
}
GET/api/v1/inboxes/:id/threads

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"]
    }]
  }
}
GET/api/v1/analytics

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 }
    ]
  }
}
GET/api/v1/analytics/inboxes/:id

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
  }
}
POST/api/v1/webhooks

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"
  }
}
GET/api/v1/ws

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.

setup.sh
# 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

$0/mo
  • 3 inboxes
  • 3,000 emails/month
  • Webhook management API
  • Message search
  • Community support
Start free

Pro

For production

$29/mo
  • 50 inboxes
  • 50,000 emails/month
  • Custom domains + DKIM
  • Message search + semantic search
  • Webhook management API
  • Priority support
Get started

Enterprise

Custom volume

Custom
  • Unlimited inboxes
  • Dedicated IPs
  • APAC data residency SLA
  • SSO / SAML
  • Dedicated support
Talk to us

FAQ

Common questions

Ready to give your agents email?

One API call. One inbox. Start in under two minutes.

Get your API key