Developer documentation
Email API reference for AI agents
Create persistent agent inboxes, send and receive email, and continue conversations through Cyberpigeon’s REST API. Your application supplies the agent and its workflow; Cyberpigeon stores the mail and exposes the delivery events.
Base URL: https://cyberpigeon.ai ·
Open the interactive explorer
Authenticate before making requests
Create a workspace, then generate an account key in the console’s API keys view. Use account keys for mailbox provisioning and workspace management. Give an agent only the mailbox-scoped read/send key it needs. Keys belong in an Authorization header on your server, never in a URL or public client.
curl 'https://cyberpigeon.ai/v1/me' \
-H 'Authorization: Bearer YOUR_API_KEY'
New accounts can send right after signup. Custom domains need their own DNS verification. An accepted send returns
202 for queued mail, not confirmed delivery. Save an
Idempotency-Key for each send, and poll message history or
GET /v1/events with a persisted cursor for the outcome.
Signed incoming-email wake-ups are available after
hosted delivery is activated; delivery-status events still use polling.
The current beta supports permitted testing, expected transactional mail and support replies. Cold outreach, sales prospecting, bulk marketing, inbox warmup and spam are prohibited. Read the terms and acceptable use; Cyberpigeon Outbound is a separate product in development.
Browse the REST endpoints
This endpoint index is available without JavaScript. The OpenAPI specification contains request parameters and schemas for tools and client generators. Use the documentation index to find the explanatory guides. Administration operations require the deployment administrator key and are not account-signup endpoints.
Messages
GET /v1/messagesSearch message history across agents (account access)
Explore this operation (JavaScript)GET /v1/messages/{messageId}Message details, safe preview and delivery timeline (account access)
Explore this operation (JavaScript)GET /v1/overviewAccount mail activity over the last seven UTC days
Explore this operation (JavaScript)GET /v1/mailboxes/{mailboxId}/messagesList messages, newest first (view=summary returns body prefixes, view=headers none)
Explore this operation (JavaScript)POST /v1/mailboxes/{mailboxId}/messagesQueue an email (202 does not mean delivered)
Explore this operation (JavaScript)GET /v1/mailboxes/{mailboxId}/messages/{messageId}Read a message
Explore this operation (JavaScript)PATCH /v1/mailboxes/{mailboxId}/messages/{messageId}Mark a message read or unread
Explore this operation (JavaScript)POST /v1/mailboxes/{mailboxId}/messages/{messageId}/replyReply to an inbound message with email threading headers
Explore this operation (JavaScript)GET /v1/mailboxes/{mailboxId}/messages/{messageId}/attachments/{attachmentId}Get a temporary download URL for a received attachment
Explore this operation (JavaScript)
Account
GET /v1/account/exportDownload account data as newline-delimited JSON (no credential secrets)
Explore this operation (JavaScript)GET /v1/privacy/requestsView your privacy requests and responses
Explore this operation (JavaScript)POST /v1/privacy/requestsSubmit a privacy rights request
Explore this operation (JavaScript)
Administration
POST /admin/accountsCreate an account (deployment administrator key required)
Explore this operation (JavaScript)
Domains
GET /v1/domainsList your custom email domains and DNS records
Explore this operation (JavaScript)POST /v1/domainsAdd a custom email domain and obtain its ownership TXT record
Explore this operation (JavaScript)GET /v1/domains/{domainId}Get saved domain verification status
Explore this operation (JavaScript)DELETE /v1/domains/{domainId}Disconnect a domain, pause its mailboxes, and retain message history
Explore this operation (JavaScript)POST /v1/domains/{domainId}/verifyCheck ownership and start or refresh asynchronous mail DNS verification
Explore this operation (JavaScript)
Events
GET /v1/wakeupsList email wake-ups and delivery status
Explore this operation (JavaScript)POST /v1/wakeupsConnect an inbox to a webhook or Claude Routine
Explore this operation (JavaScript)PATCH /v1/wakeups/{id}Pause or resume an email wake-up
Explore this operation (JavaScript)DELETE /v1/wakeups/{id}Remove an email wake-up
Explore this operation (JavaScript)GET /v1/eventsPoll durable events after a cursor
Explore this operation (JavaScript)
Identity
GET /v1/meInspect current identity and permissions
Explore this operation (JavaScript)
Mailboxes
GET /v1/mailboxesList accessible mailboxes
Explore this operation (JavaScript)POST /v1/mailboxesCreate a mailbox and its first scoped agent key (omit with issue_key: false)
Explore this operation (JavaScript)PATCH /v1/mailboxes/{mailboxId}Pause or resume outbound sending
Explore this operation (JavaScript)
Keys
GET /v1/keysList API key metadata (secrets are never returned)
Explore this operation (JavaScript)POST /v1/keysCreate an account key or scoped mailbox key
Explore this operation (JavaScript)DELETE /v1/keys/{keyId}Revoke a key
Explore this operation (JavaScript)
Interactive API explorer
The explorer uses JavaScript and makes real requests to your workspace when you authorize and execute an operation. Creating or sending mail changes your account and consumes its allowance.