Email infrastructure for AI agents
Give your agents
an email address
Send and receive email programmatically via a REST API. Create an inbox in one API call. No IMAP, no POP3, no UI — just an API.
# Create an inbox — one API call, instant email address
curl -X POST https://api.apimail.cc/v1/inboxes/ \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
# Response:
{ "email": "swiftfox482@agentcourier.cc", "status": "active" }Live Demo
See it work in seconds
Get a real email address instantly. Send it an email from your phone or laptop and watch it arrive.
10-Second Setup
Three calls. Full email.
Create an inbox, receive email, read it. No DNS, no domain verification, no setup. Just an API key.
Create an inbox
POST with an empty body. You get a unique email address on the shared domain instantly.
curl -X POST https://api.apimail.cc/v1/inboxes/ \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
# => { "email": "swiftfox482@agentcourier.cc" }Send email to that address
From any email client, another API, or another agent. It arrives in seconds.
# Send from Gmail, Outlook, or programmatically
# to: swiftfox482@agentcourier.ccRead your mail
Fetch messages by inbox email address. Filter by unread, search by subject or body.
curl https://api.apimail.cc/v1/inboxes/swiftfox482@agentcourier.cc/messages \
-H "X-API-Key: $API_KEY"
# => { "items": [{ "subject": "Hello!", "from_addr": "..." }] }Everything you need
Built for programmatic email
Inbound + Outbound
Receive email at any address. Send, reply, reply-all, and forward with full threading support.
Instant Inboxes
Create an inbox with one POST. Get a working email address on the shared domain in milliseconds.
Custom Domains
Bring your own domain with full DNS verification, SPF, DKIM signing, and DMARC compliance.
Webhooks
Real-time notifications on message.received, message.sent, and message.rejected with HMAC-SHA256 signatures.
Threads & Search
Automatic conversation threading via email headers. Full-text search across subjects, senders, and bodies.
Attachments
Send and receive attachments. Dangerous file types are automatically blocked. 10MB total per send.
Labels
Tag messages with arbitrary labels. Filter your inbox by label to build custom workflows.
Idempotent Sends
Include an idempotency key to safely retry sends without duplicates. Get 409 on conflict.
Scoped API Keys
Read, send, and admin scopes. Create limited keys for dashboards or specific agents.
For AI Agents
Point your LLM at the skill file
AgentCourier publishes a machine-readable skill file at a public URL. Give it to any LLM or agent framework and they can send and receive email autonomously.
# The skill file contains the complete API reference,
# authentication guide, code examples, and tips for AI agents.
# It's served as plain markdown — no auth required.
Skill file URL: https://api.apimail.cc/skill.md
# OpenAPI spec for programmatic discovery:
OpenAPI URL: https://api.apimail.cc/openapi.jsonHow to use with popular frameworks
system_prompt = """
You have access to email via AgentCourier.
Read the full API guide: https://api.apimail.cc/skill.md
Your API key is: om_...
"""messages = [
{"role": "system", "content": """
You can send and receive email using the AgentCourier API.
Full documentation: https://api.apimail.cc/skill.md
API key: om_...
Use curl or HTTP requests to interact with the API.
"""}
]# Fetch the skill file dynamically
curl -s https://api.apimail.cc/skill.md
# Or the OpenAPI spec for structured discovery
curl -s https://api.apimail.cc/openapi.jsonTips for agents
- •Start with shared domain — no DNS setup, instant inbox. Use custom domains for production.
- •Use email addresses as IDs — all inbox endpoints accept
hello@example.cominstead of UUIDs. - •Fetch + mark read in one call — use
?mark_read=trueon GET to prevent reprocessing. - •Use webhooks — register a
message.receivedwebhook instead of polling. - •Prefer body_text — plain text is easier for LLMs to parse than HTML.
API Reference
Simple, RESTful, complete
Every endpoint documented with request/response schemas. Interactive docs available at the Swagger UI.
| Method | Endpoint | Description |
|---|---|---|
| POST | /v1/inboxes/ | Create an inbox |
| GET | /v1/inboxes/{email}/messages | List messages |
| GET | /v1/messages/{id} | Get a message |
| POST | /v1/messages/send | Send an email |
| POST | /v1/messages/reply | Reply to a message |
| POST | /v1/messages/forward | Forward a message |
| POST | /v1/webhooks/ | Create a webhook |
| POST | /v1/domains/ | Add a custom domain |
| POST | /v1/domains/{id}/verify | Verify domain DNS |
| GET | /v1/threads/ | List threads |