POST /v1/mail/sendGET /v1/outboundGET /v1/outbound/{id}POST /v1/mailboxesPOST /v1/aliasesGET /v1/mailboxes/{address}/messagesGET /v1/messages/{id}?address=<mailbox>
GET /v1/queueGET /v1/debug/healthGET /v1/debug/configGET /v1/debug/messages/{id}/traceGET /v1/debug/deliverability/reportGET /v1/debug/logsPOST /v1/backupPOST /v1/restore/validate
curl http://127.0.0.1:8787/healthProvision a mailbox with an admin-scoped API key:
curl -X POST http://127.0.0.1:8787/v1/mailboxes \
-H "Content-Type: application/json" \
-H "X-OpenMailserver-Key: <admin-api-key>" \
-d '{
"local_part": "agent",
"domain": "yourdomain.com",
"password": "choose-a-strong-password"
}'The response includes:
mailbox.email: the hosted inbox addresspassword: mailbox password for IMAP/SMTP loginapi_key.key: mailbox-scoped API key for send/read calls
Use the mailbox API key returned at provisioning time:
curl -X POST http://127.0.0.1:8787/v1/mail/send \
-H "Content-Type: application/json" \
-H "X-OpenMailserver-Key: <mailbox-api-key>" \
-d '{
"sender": "agent@example.com",
"recipients": ["agent@example.com"],
"subject": "hello",
"text_body": "it works"
}'List messages for a mailbox:
curl http://127.0.0.1:8787/v1/mailboxes/agent@yourdomain.com/messages \
-H "X-OpenMailserver-Key: <mailbox-api-key>"Fetch a specific message body:
curl "http://127.0.0.1:8787/v1/messages/<message-id>?address=agent@yourdomain.com" \
-H "X-OpenMailserver-Key: <mailbox-api-key>"Mailbox provisioning returns two credential types:
- mailbox password: use with IMAP and SMTP submission clients
- mailbox API key: use with the Open Mailserver HTTP API for send/read operations
Standard client settings:
- IMAP host: your canonical mail hostname
- IMAP port:
993 - SMTP submission host: your canonical mail hostname
- SMTP submission port:
465 - username: full mailbox address
- password: mailbox password