Mail API reference

Mail API.

48 endpoints, 19 of them read-only. Every one is also a command in the orbit CLI, a method in the SDKs and a tool on the MCP server.

01

domains

EndpointScopeParametersCLI · MCP tool
GET /mail/domains
Domains set up for mail forwarding
read—orbit mail domains list
mail_domains_list
POST /mail/domains
Start accepting mail for a zone (publishes MX, SPF, DKIM, DMARC and the TLS policy)
writebody: zone_id integer, server_id string, name string, zone_name string, mode mailbox | forward | bothorbit mail domains create
mail_domains_create
GET /mail/domains/{id}
One domain, with the records we publish for it
readid integerorbit mail domains get <id>
mail_domains_get
PATCH /mail/domains/{id}
Enable/disable, or set the catch-all
writeid integer
body: enabled boolean, catch_all string, mode mailbox | forward | both, default_quota_bytes integer, dmarc_policy none | quarantine | reject, backup_enabled boolean
orbit mail domains patch <id>
mail_domains_patch
DELETE /mail/domains/{id}
Stop accepting mail and remove the published records
writeid integerorbit mail domains delete <id>
mail_domains_delete
GET /mail/domains/{id}/records
The wizard's records, as last checked (BYO) or published (legacy)
readid integerorbit mail domains records <id>
mail_domains_records
POST /mail/domains/{id}/records
Publish the mail records again
writeid integerorbit mail domains republish <id>
mail_domains_republish
POST /mail/domains/{id}/check
Re-check the domain's records against public DNS right now (BYO only)
writeid integerorbit mail domains check <id>
mail_domains_check
02

routes

EndpointScopeParametersCLI · MCP tool
GET /mail/domains/{id}/routes
Forwarding rules
readid integerorbit mail routes list <id>
mail_routes_list
PUT /mail/domains/{id}/routes
Add or change a forwarding rule
writeid integer
body: local_part* string, dest* string
orbit mail routes put <id>
mail_routes_put
DELETE /mail/domains/{id}/routes/{local}
Remove a forwarding rule
writeid integer
local string
orbit mail routes delete <id> <local>
mail_routes_delete
03

destinations

EndpointScopeParametersCLI · MCP tool
GET /mail/destinations
Addresses mail may be forwarded to
read—orbit mail destinations list
mail_destinations_list
POST /mail/destinations
Add a destination; a confirmation link is sent to it
writebody: addr* stringorbit mail destinations create
mail_destinations_create
DELETE /mail/destinations/{addr}
Remove a destination
writeaddr stringorbit mail destinations delete <addr>
mail_destinations_delete
04

General

EndpointScopeParametersCLI · MCP tool
GET /mail/domains/{id}/log
Recent envelopes and verdicts (never subjects or bodies)
readid integer
?verdict delivered | rejected | deferred | dropped
?limit integer
orbit mail log <id>
mail_log
GET /mail/domains/{id}/stats
Hourly counters
readid integer
?days integer
orbit mail stats <id>
mail_stats
GET /mail/servers/{id}/deliverability
PTR / outbound port 25 / SPF / DKIM / DMARC, and advice
readid stringorbit mail deliverability <id>
mail_deliverability
POST /mail/send
Queue an outbound message; the node picks it up, signs it (DKIM) and delivers it
writebody: mailbox_id* string, to* string[], cc string[], bcc string[], subject* string, text string, html string, attachments object[], in_reply_to stringorbit mail send
mail_send
05

servers

EndpointScopeParametersCLI · MCP tool
GET /mail/servers
Your BYO mail servers
read—orbit mail servers list
mail_servers_list
POST /mail/servers
Register a server and get its install command
writebody: name* string, ip4* string, ip6 stringorbit mail servers create
mail_servers_create
GET /mail/servers/{id}
One server, with its last self-check
readid stringorbit mail servers get <id>
mail_servers_get
DELETE /mail/servers/{id}
Remove a server (its domains must be removed first)
writeid stringorbit mail servers delete <id>
mail_servers_delete
POST /mail/servers/{id}/token
Invalidate the current session and get a fresh install command
writeid stringorbit mail servers regenerate_token <id>
mail_servers_regenerate_token
06

mailboxes

EndpointScopeParametersCLI · MCP tool
GET /mail/domains/{domain_id}/mailboxes
Mailboxes on one domain
readdomain_id integerorbit mail mailboxes list <domain_id>
mail_mailboxes_list
POST /mail/domains/{domain_id}/mailboxes
Create a mailbox
writedomain_id integer
body: domain_id* integer, local* string, display string, quota_bytes integer
orbit mail mailboxes create <domain_id>
mail_mailboxes_create
PATCH /mail/mailboxes/{id}
Rename, requota, enable/disable
writeid string
body: display string, quota_bytes integer, state active | disabled, user_email string, send_limit_hour integer, shared_with string[], collab boolean
orbit mail mailboxes patch <id>
mail_mailboxes_patch
DELETE /mail/mailboxes/{id}
Delete a mailbox and its index
writeid stringorbit mail mailboxes delete <id>
mail_mailboxes_delete
POST /mail/domains/{id}/mailboxes/import
Create mailboxes in bulk (rows, or a CSV of local,display,quota_bytes)
writeid integer
body: rows object[], csv string
orbit mail mailboxes import <id>
mail_mailboxes_import
07

apppasswords

EndpointScopeParametersCLI · MCP tool
POST /mail/mailboxes/{id}/apppasswords
Issue an application password (shown once)
writeid string
body: mailbox_id* string, label string
orbit mail apppasswords create <id>
mail_apppasswords_create
DELETE /mail/apppasswords/{id}
Revoke an application password
writeid stringorbit mail apppasswords revoke <id>
mail_apppasswords_revoke
08

messages

EndpointScopeParametersCLI · MCP tool
GET /mail/mailboxes/{id}/messages
A mailbox's index (headers and a verdict, never a body)
readid string
?folder string
?q string
?cursor string
?limit integer
orbit mail messages list <id>
mail_messages_list
GET /mail/messages/{id}
One message: the index row plus a short-lived direct link to its body — on the node, or (?source=backup) through the control plane's decrypted backup copy
readid string
?source node | backup
orbit mail messages get <id>
mail_messages_get
DELETE /mail/messages/{id}
Remove a message from the index
writeid stringorbit mail messages delete <id>
mail_messages_delete
GET /mail/messages/{id}/backup
The decrypted backup copy of a message (only when the domain has backup enabled and this message has one)
readid stringorbit mail messages backup <id>
mail_messages_backup
POST /mail/messages/{id}/flags
Add/remove flags (e.g. \Seen)
writeid string
body: add string[], remove string[]
orbit mail messages flags <id>
mail_messages_flags
09

outbox

EndpointScopeParametersCLI · MCP tool
GET /mail/outbox/{id}
One outbound job's state
readid stringorbit mail outbox get <id>
mail_outbox_get
10

aliases

EndpointScopeParametersCLI · MCP tool
GET /mail/domains/{id}/aliases
Alias addresses on a domain
readid integerorbit mail aliases list <id>
mail_aliases_list
POST /mail/domains/{id}/aliases
Point an address at a mailbox
writeid integer
body: local_part* string, target_mailbox_id* string, enabled boolean
orbit mail aliases create <id>
mail_aliases_create
DELETE /mail/aliases/{id}
Remove an alias
writeid integerorbit mail aliases delete <id>
mail_aliases_delete
11

groups

EndpointScopeParametersCLI · MCP tool
GET /mail/domains/{id}/groups
Mail groups on a domain
readid integerorbit mail groups list <id>
mail_groups_list
POST /mail/domains/{id}/groups
Create a group address
writeid integer
body: local_part* string, name string, members object[], allow_external_senders boolean, members_can_send boolean, enabled boolean, posting anyone | org | members, reply_to sender | group, subject_tag string, archive boolean, replace_alias boolean
orbit mail groups create <id>
mail_groups_create
PATCH /mail/groups/{id}
Rename a group, change its members, or who may write to it
writeid string
body: local_part* string, name string, members object[], allow_external_senders boolean, members_can_send boolean, enabled boolean, posting anyone | org | members, reply_to sender | group, subject_tag string, archive boolean, replace_alias boolean
orbit mail groups patch <id>
mail_groups_patch
DELETE /mail/groups/{id}
Delete a group
writeid stringorbit mail groups delete <id>
mail_groups_delete
12

domainrules

EndpointScopeParametersCLI · MCP tool
GET /mail/domains/{id}/rules
Domain-level routing rules
readid integerorbit mail domainrules list <id>
mail_domainrules_list
POST /mail/domains/{id}/rules
Add a routing rule (forward a copy, refuse a sender, quarantine, relay a recipient)
writeid integer
body: kind* forward_copy | reject_sender | quarantine_sender | relay_rcpt, pattern* string, target string, enabled boolean
orbit mail domainrules create <id>
mail_domainrules_create
PATCH /mail/domainrules/{id}
Change a routing rule
writeid integer
body: kind* forward_copy | reject_sender | quarantine_sender | relay_rcpt, pattern* string, target string, enabled boolean
orbit mail domainrules patch <id>
mail_domainrules_patch
DELETE /mail/domainrules/{id}
Remove a routing rule
writeid integerorbit mail domainrules delete <id>
mail_domainrules_delete
13

logs

EndpointScopeParametersCLI · MCP tool
GET /mail/domains/{id}/logs
Received / rejected verdicts, deliveries, bounces and failed actions, newest first
readid integer
?kind received | rejected | delivered | bounced | action_failed
?q string
?cursor string
?limit integer
orbit mail logs list <id>
mail_logs_list
Next

Related

Account API reference

Every Account endpoint in the Orbit API (10): method and path, the token scope it needs, its parameters, and the matching CLI command and MCP tool.

Organization API reference

Every Organization endpoint in the Orbit API (10): method and path, the token scope it needs, its parameters, and the matching CLI command and MCP tool.

Services API reference

Every Services endpoint in the Orbit API (15): method and path, the token scope it needs, its parameters, and the matching CLI command and MCP tool.

← All documentation