Admin API reference
Every operation of the Nixt DNA Server admin API under /api/v1 — method, path, success status, the right it needs, its query parameters and body fields.
This is every operation the admin API offers under /api/v1: 390 in all, 64 of them for the server’s operator only. It is generated from the API’s contract, which the server is tested against, so it lists exactly what the server answers.
How to reach the API, sign in to it, and read its answers and errors is on Admin API. The server also describes itself: GET /api/v1/openapi.json returns an OpenAPI 3.1 document, with no credentials needed.
Reading the tables
| Column | Meaning |
|---|---|
| Path | After /api/v1. {tenant} is the organisation’s number; other names in braces are the ids the path names. |
| Success | The status of a successful answer. Errors are problem documents; see Errors. |
| Right needed | Operator only, or the verb a role must be allowed — read, create, update, delete and a few of their own, such as reset-password and trace. See Roles and the audit log. |
| Query parameters, Body fields | Each name with its JSON type, and whether it is required. A request may leave out any field not marked required. |
Under /api/v1, operations and optional fields are only ever added. Nothing listed here is removed or changed in a way that breaks a caller.
Organisation endpoints
Paths under /tenants/{tenant}/, grouped by what they manage.
Access
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/access | 200 | read | — | — |
PUT | /tenants/{tenant}/access | 200 | update | — | apps object; networks array; otherwise string; rules array; session object; version integer |
POST | /tenants/{tenant}/access/simulate | 200 | update | — | address string, required; at string; credential string, required; from string, required; way string, required |
POST | /tenants/{tenant}/access/test | 200 | update | — | address string, required; from string, required; policy object; what string, required |
Accounts
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/accounts | 200 | read | — | — |
POST | /tenants/{tenant}/accounts | 201 | create | — | address string, required; displayName string; external string; kind string; members array; plan integer; readState string; restriction string; target integer |
PATCH | /tenants/{tenant}/accounts | 200 | update | — | ids array, required; status string, required |
GET | /tenants/{tenant}/accounts/{id} | 200 | read | — | — |
PATCH | /tenants/{tenant}/accounts/{id} | 200 | update | — | displayName string; external string; members array; restriction string; status string; target integer |
DELETE | /tenants/{tenant}/accounts/{id} | 204 | delete | — | — |
POST | /tenants/{tenant}/accounts/{id}/activate | 200 | invite | — | code string, required |
GET | /tenants/{tenant}/accounts/{id}/activity | 200 | read | after string; by string; from integer; limit integer; to integer | — |
PUT | /tenants/{tenant}/accounts/{id}/addresses | 200 | update | — | addresses array, required |
GET | /tenants/{tenant}/accounts/{id}/app-passwords | 200 | read | — | — |
POST | /tenants/{tenant}/accounts/{id}/app-passwords | 201 | update | — | name string, required; scopes array, required |
DELETE | /tenants/{tenant}/accounts/{id}/app-passwords | 200 | reset-password | — | — |
DELETE | /tenants/{tenant}/accounts/{id}/app-passwords/{app} | 204 | reset-password | — | — |
GET | /tenants/{tenant}/accounts/{id}/backups | 200 | read | — | — |
POST | /tenants/{tenant}/accounts/{id}/backups/restore | 202 | update | — | backup string, required; folder string |
GET | /tenants/{tenant}/accounts/{id}/booking | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/booking | 200 | update | — | rules object, required |
GET | /tenants/{tenant}/accounts/{id}/delegates | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/delegates | 200 | update | — | delegates array, required; version integer, required |
PUT | /tenants/{tenant}/accounts/{id}/forwarding | 200 | update | — | keepCopy boolean; to array, required |
DELETE | /tenants/{tenant}/accounts/{id}/forwarding | 200 | update | — | — |
GET | /tenants/{tenant}/accounts/{id}/hold | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/hold | 200 | update | — | reason string, required; until integer |
DELETE | /tenants/{tenant}/accounts/{id}/hold | 200 | update | — | — |
GET | /tenants/{tenant}/accounts/{id}/imports | 200 | read | — | — |
POST | /tenants/{tenant}/accounts/{id}/imports | 201 | create | — | fileName string; into string, required; size integer, required |
GET | /tenants/{tenant}/accounts/{id}/imports/{import} | 200 | read | — | — |
DELETE | /tenants/{tenant}/accounts/{id}/imports/{import} | 200 | delete | — | — |
PUT | /tenants/{tenant}/accounts/{id}/imports/{import}/parts/{part} | 200 | update | — | data string, required |
POST | /tenants/{tenant}/accounts/{id}/imports/{import}/start | 202 | update | — | — |
GET | /tenants/{tenant}/accounts/{id}/invitation | 200 | read | — | — |
POST | /tenants/{tenant}/accounts/{id}/invitation | 201 | invite | — | — |
DELETE | /tenants/{tenant}/accounts/{id}/invitation | 204 | invite | — | — |
GET | /tenants/{tenant}/accounts/{id}/location | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/location | 200 | update | — | premises string, required |
DELETE | /tenants/{tenant}/accounts/{id}/location | 204 | update | — | — |
GET | /tenants/{tenant}/accounts/{id}/masked | 200 | read | — | — |
POST | /tenants/{tenant}/accounts/{id}/masked | 201 | create | — | label string |
PATCH | /tenants/{tenant}/accounts/{id}/masked/{address} | 200 | update | — | label string; paused boolean |
DELETE | /tenants/{tenant}/accounts/{id}/masked/{address} | 204 | delete | — | — |
GET | /tenants/{tenant}/accounts/{id}/members | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/members | 200 | update | — | members array, required; readState string; version integer, required |
POST | /tenants/{tenant}/accounts/{id}/offboard | 200 | update | — | calendarsAndContacts boolean; copyCalendarsTo string; delegate object; dryRun boolean; forward object; hold object; mail string; members array; removeAt integer; removeSecondSteps boolean; reply object; revokeAppPasswords boolean; signOut boolean |
POST | /tenants/{tenant}/accounts/{id}/offboard/undo | 200 | update | — | dryRun boolean |
GET | /tenants/{tenant}/accounts/{id}/openpgp-keys | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/openpgp-keys/{address} | 200 | update | — | key string, required |
DELETE | /tenants/{tenant}/accounts/{id}/openpgp-keys/{address} | 200 | update | — | — |
PUT | /tenants/{tenant}/accounts/{id}/password | 204 | reset-password | — | mustChange boolean; password string, required |
GET | /tenants/{tenant}/accounts/{id}/plan | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/plan | 200 | update | — | plan integer, required |
GET | /tenants/{tenant}/accounts/{id}/published-calendars | 200 | read | — | — |
DELETE | /tenants/{tenant}/accounts/{id}/published-calendars/{calendar} | 204 | update | — | — |
GET | /tenants/{tenant}/accounts/{id}/quota | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/quota | 200 | update | — | bytes integer; messages integer; warnPercent integer |
GET | /tenants/{tenant}/accounts/{id}/recoverable | 200 | read | before integer; limit integer; search string; since integer | — |
POST | /tenants/{tenant}/accounts/{id}/recoverable/restore | 200 | update | — | ids array, required |
GET | /tenants/{tenant}/accounts/{id}/recovery-address | 200 | read | — | — |
GET | /tenants/{tenant}/accounts/{id}/role | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/role | 200 | update | — | scopes string, required |
DELETE | /tenants/{tenant}/accounts/{id}/role | 204 | delete | — | — |
GET | /tenants/{tenant}/accounts/{id}/second-factor | 200 | read | — | — |
DELETE | /tenants/{tenant}/accounts/{id}/second-factor | 204 | reset-password | — | — |
DELETE | /tenants/{tenant}/accounts/{id}/second-factor/{method} | 204 | reset-password | — | — |
POST | /tenants/{tenant}/accounts/{id}/secure | 200 | reset-password | — | — |
PUT | /tenants/{tenant}/accounts/{id}/send-as | 200 | update | — | addresses array, required |
GET | /tenants/{tenant}/accounts/{id}/senders | 200 | read | entries boolean; reason string | — |
GET | /tenants/{tenant}/accounts/{id}/sending | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/sending | 200 | update | — | messages_per_hour integer, required; recipients_per_day integer, required; recipients_per_message integer, required |
DELETE | /tenants/{tenant}/accounts/{id}/sending | 200 | update | — | — |
POST | /tenants/{tenant}/accounts/{id}/sending/discard | 200 | delete | — | — |
PUT | /tenants/{tenant}/accounts/{id}/sending/exempt | 200 | update | — | — |
DELETE | /tenants/{tenant}/accounts/{id}/sending/exempt | 200 | update | — | — |
POST | /tenants/{tenant}/accounts/{id}/sending/release | 200 | update | — | — |
GET | /tenants/{tenant}/accounts/{id}/sessions | 200 | read | — | — |
DELETE | /tenants/{tenant}/accounts/{id}/sessions/{session} | 200 | reset-password | — | — |
GET | /tenants/{tenant}/accounts/{id}/sign-ins | 200 | read | — | — |
POST | /tenants/{tenant}/accounts/{id}/sign-out | 200 | reset-password | — | — |
GET | /tenants/{tenant}/accounts/{id}/smime-certificates | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/smime-certificates/{address} | 200 | update | — | certificate string, required |
DELETE | /tenants/{tenant}/accounts/{id}/smime-certificates/{address} | 200 | update | — | — |
POST | /tenants/{tenant}/accounts/{id}/unlock | 204 | unlock | — | — |
GET | /tenants/{tenant}/accounts/{id}/vacation | 200 | read | — | — |
PUT | /tenants/{tenant}/accounts/{id}/vacation | 200 | update | — | enabled boolean; from integer; subject string; text string, required; to integer |
DELETE | /tenants/{tenant}/accounts/{id}/vacation | 200 | update | — | — |
Address book settings
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/address-book-settings | 200 | read | — | — |
PUT | /tenants/{tenant}/address-book-settings | 200 | update | — | fields object; hidden array; scopes array; version integer, required |
Address books
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/address-books | 200 | read | — | — |
PUT | /tenants/{tenant}/address-books/{group} | 200 | update | — | access string; name string, required |
DELETE | /tenants/{tenant}/address-books/{group} | 204 | delete | — | — |
Administrator claim
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/administrator-claim | 200 | read | — | — |
POST | /tenants/{tenant}/administrator-claim | 201 | create | — | address string, required |
DELETE | /tenants/{tenant}/administrator-claim | 200 | delete | — | — |
POST | /tenants/{tenant}/administrator-claim/secrets | 200 | create | — | — |
Alerts
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/alerts | 200 | read | — | — |
PUT | /tenants/{tenant}/alerts | 200 | update | — | rules array, required; version integer, required |
GET | /tenants/{tenant}/alerts/history | 200 | read | cursor string; limit integer | — |
Approvals
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/approvals | 200 | read | limit integer; state string | — |
POST | /tenants/{tenant}/approvals | 202 | Operator only | — | reason string, required |
GET | /tenants/{tenant}/approvals/{id} | 200 | read | — | — |
POST | /tenants/{tenant}/approvals/{id}/approve | 200 | update | — | reason string, required |
POST | /tenants/{tenant}/approvals/{id}/refuse | 200 | update | — | reason string, required |
Branding
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/branding | 200 | read | — | — |
PUT | /tenants/{tenant}/branding | 200 | update | — | colour string; help string; logo object; name string; version integer, required |
Breached passwords
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/breached-passwords | 200 | read | limit integer | — |
Break glass
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/break-glass | 200 | read | — | — |
PUT | /tenants/{tenant}/break-glass | 200 | update | — | accounts array, required; version integer, required |
Cases
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/cases | 200 | read | — | — |
POST | /tenants/{tenant}/cases | 201 | create | — | name string, required |
GET | /tenants/{tenant}/cases/{id} | 200 | read | — | — |
PATCH | /tenants/{tenant}/cases/{id} | 200 | update | — | name string; open boolean |
POST | /tenants/{tenant}/cases/{id}/custodians | 200 | update | — | addresses array, required |
DELETE | /tenants/{tenant}/cases/{id}/custodians/{account} | 200 | update | — | — |
GET | /tenants/{tenant}/cases/{id}/exports | 200 | read | — | — |
POST | /tenants/{tenant}/cases/{id}/exports | 202 | create | — | format string; passphrase string, required; set integer, required; tag string |
GET | /tenants/{tenant}/cases/{id}/exports/{export} | 200 | read | — | — |
GET | /tenants/{tenant}/cases/{id}/exports/{export}/download | 200 | read | — | — |
POST | /tenants/{tenant}/cases/{id}/holds | 201 | update | — | from integer; query string; until integer |
DELETE | /tenants/{tenant}/cases/{id}/holds/{hold} | 200 | update | — | — |
GET | /tenants/{tenant}/cases/{id}/log | 200 | read | after integer | — |
GET | /tenants/{tenant}/cases/{id}/messages/{account}/{message} | 200 | read | — | — |
POST | /tenants/{tenant}/cases/{id}/search | 200 | read | — | from integer; limit integer; people array; position integer; query string; until integer |
GET | /tenants/{tenant}/cases/{id}/sets | 200 | read | — | — |
POST | /tenants/{tenant}/cases/{id}/sets | 201 | create | — | from integer; name string, required; people array; query string; until integer |
GET | /tenants/{tenant}/cases/{id}/sets/{set} | 200 | read | — | — |
GET | /tenants/{tenant}/cases/{id}/tags | 200 | read | — | — |
POST | /tenants/{tenant}/cases/{id}/tags | 200 | update | — | messages array, required; tag string |
Ceilings
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/ceilings | 200 | Operator only | — | — |
PUT | /tenants/{tenant}/ceilings | 200 | Operator only | — | distinctOutsidePerDay integer; messagesPerDay integer; messagesPerHour integer; outsidePerDay integer; outsidePerHour integer |
PUT | /tenants/{tenant}/ceilings/probation | 200 | Operator only | — | on boolean, required |
Classifier
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/classifier | 200 | read | — | — |
DELETE | /tenants/{tenant}/classifier | 204 | delete | — | — |
Complaints
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/complaints | 200 | read | days integer | — |
Design
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/design | 200 | read | — | — |
POST | /tenants/{tenant}/design/apply | 200 | update | — | basedOn object, required; design object, required; names object |
POST | /tenants/{tenant}/design/bundle | 200 | update | — | — |
POST | /tenants/{tenant}/design/diff | 200 | read | — | design object, required; names object |
GET | /tenants/{tenant}/design/environments | 200 | read | — | — |
GET | /tenants/{tenant}/design/environments/{environment}/design | 200 | read | — | — |
GET | /tenants/{tenant}/design/history | 200 | read | — | — |
POST | /tenants/{tenant}/design/import | 200 | update | — | bundle object, required |
POST | /tenants/{tenant}/design/import/check | 200 | read | — | bundle object, required |
PUT | /tenants/{tenant}/design/pre-production | 200 | Operator only | — | names object; of integer, required |
DELETE | /tenants/{tenant}/design/pre-production | 200 | Operator only | — | — |
PUT | /tenants/{tenant}/design/promotion-only | 200 | update | — | on boolean, required |
POST | /tenants/{tenant}/design/rollback | 200 | update | — | to integer, required |
GET | /tenants/{tenant}/design/staging-installations | 200 | read | — | — |
PUT | /tenants/{tenant}/design/staging-installations/{installation} | 200 | Operator only | — | fingerprint string, required; issuer string, required; key string, required; names object |
DELETE | /tenants/{tenant}/design/staging-installations/{installation} | 204 | Operator only | — | — |
GET | /tenants/{tenant}/design/staging-installations/{installation}/design | 200 | read | — | — |
DELETE | /tenants/{tenant}/design/staging-installations/{installation}/pending | 204 | update | — | — |
Directory sync
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/directory-sync | 200 | read | — | — |
PUT | /tenants/{tenant}/directory-sync | 200 | update | — | atLeast integer; baseDn string, required; bindDn string, required; bindPassword string, required; enabled boolean; everyMinutes integer; groupFilter string; mapping object; mostAtOnce number; passThrough boolean; url string, required; userFilter string |
DELETE | /tenants/{tenant}/directory-sync | 204 | delete | — | — |
Domains
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/domains | 200 | read | — | — |
POST | /tenants/{tenant}/domains | 201 | create | — | name string, required |
GET | /tenants/{tenant}/domains/{name} | 200 | read | — | — |
PATCH | /tenants/{tenant}/domains/{name} | 200 | update | — | aliasOf string, required |
GET | /tenants/{tenant}/domains/{name}/bimi | 200 | read | — | — |
PUT | /tenants/{tenant}/domains/{name}/bimi | 200 | update | — | evidence string; logo string, required; selector string |
DELETE | /tenants/{tenant}/domains/{name}/bimi | 200 | update | — | — |
GET | /tenants/{tenant}/domains/{name}/dkim | 200 | read | — | — |
POST | /tenants/{tenant}/domains/{name}/dkim | 201 | update | — | selector string |
DELETE | /tenants/{tenant}/domains/{name}/dkim/{selector} | 200 | update | — | — |
GET | /tenants/{tenant}/domains/{name}/dns | 200 | read | — | — |
POST | /tenants/{tenant}/domains/{name}/dns | 200 | update | — | — |
GET | /tenants/{tenant}/domains/{name}/openpgp | 200 | read | — | — |
PUT | /tenants/{tenant}/domains/{name}/openpgp | 200 | update | — | publishing boolean, required |
DELETE | /tenants/{tenant}/domains/{name}/openpgp/{address} | 200 | update | — | — |
GET | /tenants/{tenant}/domains/{name}/senders | 200 | read | — | — |
PUT | /tenants/{tenant}/domains/{name}/senders | 200 | update | — | entries array, required; version integer, required |
GET | /tenants/{tenant}/domains/{name}/smime | 200 | read | — | — |
DELETE | /tenants/{tenant}/domains/{name}/smime/{address} | 200 | update | — | — |
POST | /tenants/{tenant}/domains/{name}/verify | 200 | update | — | — |
Federation
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/federation | 200 | read | — | — |
PUT | /tenants/{tenant}/federation | 200 | update | — | claim string; clientId string, required; clientSecret string, required; enabled boolean; issuer string, required; scopes string |
DELETE | /tenants/{tenant}/federation | 204 | delete | — | — |
Forwarding
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/forwarding | 200 | read | limit integer | — |
DELETE | /tenants/{tenant}/forwarding/{id} | 200 | update | reason string | — |
GET | /tenants/{tenant}/forwarding/requests | 200 | read | limit integer | — |
POST | /tenants/{tenant}/forwarding/requests/{id}/approve | 200 | update | — | list string |
POST | /tenants/{tenant}/forwarding/requests/{id}/refuse | 200 | update | — | reason string, required |
Groups
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/groups/{address}/rule | 200 | read | — | — |
PUT | /tenants/{tenant}/groups/{address}/rule | 200 | update | — | when string, required |
DELETE | /tenants/{tenant}/groups/{address}/rule | 200 | update | — | — |
POST | /tenants/{tenant}/groups/{address}/rule/preview | 200 | read | — | when string, required |
Impersonation
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/impersonation | 200 | read | — | — |
PUT | /tenants/{tenant}/impersonation | 200 | update | — | domains array; names array; version integer, required |
POST | /tenants/{tenant}/impersonation/test | 200 | read | — | from string, required; replyTo string |
Integrity
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/integrity | 200 | read | — | — |
Journal
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/journal | 200 | read | — | — |
PUT | /tenants/{tenant}/journal | 200 | update | — | rules array, required; version integer, required |
Licence
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/licence | 200 | read | — | — |
Lists
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/lists | 200 | read | — | — |
POST | /tenants/{tenant}/lists | 201 | create | — | about string; address string, required; archive string; digestHours integer; join string; members array; moderation string; moderators array; name string; owners array, required; posting string; replyTo string; subjectTag string |
GET | /tenants/{tenant}/lists/{list} | 200 | read | — | — |
PUT | /tenants/{tenant}/lists/{list} | 200 | update | — | about string; archive string; digestHours integer; join string; moderation string; moderators array; name string; owners array; posting string; replyTo string; subjectTag string |
GET | /tenants/{tenant}/lists/{list}/held | 200 | read | — | — |
POST | /tenants/{tenant}/lists/{list}/held | 200 | update | — | decision string, required; id string, required |
PUT | /tenants/{tenant}/lists/{list}/members/{member} | 200 | update | — | digest boolean |
DELETE | /tenants/{tenant}/lists/{list}/members/{member} | 200 | update | — | — |
Lockouts
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/lockouts | 200 | read | limit integer | — |
Log export
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/log-export | 200 | read | — | — |
PUT | /tenants/{tenant}/log-export | 200 | update | — | client object; format string; host string; kind string, required; pin object; pinOnly boolean; port integer; token string; url string |
DELETE | /tenants/{tenant}/log-export | 200 | delete | — | — |
POST | /tenants/{tenant}/log-export/resume | 200 | update | — | — |
Lookalikes
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/lookalikes | 200 | read | — | — |
POST | /tenants/{tenant}/lookalikes/{domain}/ours | 200 | update | — | — |
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/mail | 200 | trace | limit integer | — |
Masked
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/masked/counts | 200 | read | — | — |
Migrations
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/migrations | 200 | read | — | — |
POST | /tenants/{tenant}/migrations | 201 | create | — | atOnce integer; everyone boolean; folders string; group string; passwords object; people array; since integer; source object, required |
GET | /tenants/{tenant}/migrations/{id} | 200 | read | — | — |
POST | /tenants/{tenant}/migrations/{id}/cancel | 200 | update | — | — |
POST | /tenants/{tenant}/migrations/{id}/final-pass | 200 | update | — | — |
POST | /tenants/{tenant}/migrations/{id}/retry | 200 | update | — | address string; password string |
Network locks
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/network-locks | 200 | read | — | — |
Oauth
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/oauth/resource-servers | 200 | read | — | — |
POST | /tenants/{tenant}/oauth/resource-servers | 201 | create | — | name string, required |
DELETE | /tenants/{tenant}/oauth/resource-servers/{id} | 200 | delete | — | — |
POST | /tenants/{tenant}/oauth/resource-servers/{id}/secret | 200 | update | — | — |
Offboard
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
POST | /tenants/{tenant}/offboard | 200 | update | — | accounts array, required; calendarsAndContacts boolean; copyCalendarsTo string; delegate object; dryRun boolean; forward object; hold object; mail string; members array; removeAt integer; removeSecondSteps boolean; reply object; revokeAppPasswords boolean; signOut boolean |
Plans
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/plans | 200 | read | — | — |
PUT | /tenants/{tenant}/plans | 200 | update | — | default integer; dryRun boolean; plans array, required; version integer, required |
Provisioning tokens
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/provisioning-tokens | 200 | read | — | — |
POST | /tenants/{tenant}/provisioning-tokens | 201 | create | — | days integer; label string, required; scope string, required |
DELETE | /tenants/{tenant}/provisioning-tokens/{id} | 204 | delete | — | — |
Purge
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
POST | /tenants/{tenant}/purge | 200 | delete | — | dryRun boolean; messageId string; queueId string |
Quarantine
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/quarantine | 200 | read | account integer; after integer; cursor string; from string; limit integer; stage string | — |
DELETE | /tenants/{tenant}/quarantine/{id}/{message} | 204 | delete | — | — |
POST | /tenants/{tenant}/quarantine/{id}/{message}/release | 200 | update | — | — |
Quota
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/quota | 200 | read | limit integer | — |
PUT | /tenants/{tenant}/quota | 200 | update | — | bytes integer; warnPercent integer |
Reported
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/reported | 200 | read | after string; limit integer | — |
POST | /tenants/{tenant}/reported/{id}/block | 200 | update | — | — |
POST | /tenants/{tenant}/reported/{id}/dismiss | 200 | update | — | — |
POST | /tenants/{tenant}/reported/{id}/remove | 200 | delete | — | — |
Rescan
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/rescan | 200 | read | — | — |
POST | /tenants/{tenant}/rescan | 202 | create | — | since string, required; until string; whatIf boolean |
DELETE | /tenants/{tenant}/rescan | 204 | delete | — | — |
Residency
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/residency | 200 | read | — | — |
PUT | /tenants/{tenant}/residency | 200 | Operator only | — | rest array; transit array; version integer, required |
Retention
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/retention | 200 | read | — | — |
PUT | /tenants/{tenant}/retention | 200 | update | — | policies array, required; version integer, required |
POST | /tenants/{tenant}/retention/preview | 200 | read | — | policies array |
Roles
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/roles | 200 | read | — | — |
PUT | /tenants/{tenant}/roles | 200 | update | — | roles array, required; takeFromHolders boolean; version integer, required |
GET | /tenants/{tenant}/roles/active | 200 | read | — | — |
DELETE | /tenants/{tenant}/roles/active/{id} | 204 | update | — | — |
GET | /tenants/{tenant}/roles/eligible | 200 | read | — | — |
PUT | /tenants/{tenant}/roles/eligible | 200 | update | — | eligible array, required; version integer, required |
GET | /tenants/{tenant}/roles/mine | 200 | read | account integer | — |
GET | /tenants/{tenant}/roles/take | 200 | read | — | — |
POST | /tenants/{tenant}/roles/take | 200 | update | — | minutes integer, required; reason string, required; scopes string |
Rules
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/rules | 200 | read | — | — |
PUT | /tenants/{tenant}/rules | 200 | update | — | rules array, required; version integer |
GET | /tenants/{tenant}/rules/history | 200 | read | limit integer | — |
POST | /tenants/{tenant}/rules/preview | 200 | read | — | rules array, required |
Sandbox
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/sandbox | 200 | read | — | — |
GET | /tenants/{tenant}/sandbox/outbox | 200 | read | — | — |
GET | /tenants/{tenant}/sandbox/scenarios | 200 | read | — | — |
POST | /tenants/{tenant}/sandbox/scenarios | 201 | update | — | name string, required |
GET | /tenants/{tenant}/sandbox/scenarios/{name} | 200 | read | — | — |
POST | /tenants/{tenant}/sandbox/scenarios/{name}/run | 200 | update | — | — |
Sandboxes
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/sandboxes | 200 | read | — | — |
POST | /tenants/{tenant}/sandboxes | 201 | update | — | days integer; from string; name string, required |
DELETE | /tenants/{tenant}/sandboxes/{sandbox} | 204 | update | — | — |
GET | /tenants/{tenant}/sandboxes/{sandbox}/design | 200 | read | — | — |
GET | /tenants/{tenant}/sandboxes/{sandbox}/scenarios | 200 | read | — | — |
POST | /tenants/{tenant}/sandboxes/{sandbox}/scenarios | 201 | update | — | name string, required |
GET | /tenants/{tenant}/sandboxes/{sandbox}/scenarios/{name} | 200 | read | — | — |
POST | /tenants/{tenant}/sandboxes/{sandbox}/scenarios/{name}/run | 200 | update | — | — |
Scripts
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/scripts | 200 | read | — | — |
PUT | /tenants/{tenant}/scripts | 200 | update | — | after string; before string; version integer, required |
Security
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
PUT | /tenants/{tenant}/security/exceptions/{control} | 200 | update | — | reason string, required; until integer, required |
DELETE | /tenants/{tenant}/security/exceptions/{control} | 204 | update | — | — |
GET | /tenants/{tenant}/security/floors | 200 | read | — | — |
PUT | /tenants/{tenant}/security/floors | 200 | update | — | domains object; people object; version integer, required |
PUT | /tenants/{tenant}/security/floors/{domain} | 200 | update | — | people object, required; version integer, required |
GET | /tenants/{tenant}/security/posture | 200 | read | — | — |
GET | /tenants/{tenant}/security/report | 200 | read | framework string, required; signed boolean | — |
Sender history
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/sender-history | 200 | read | after string; limit integer | — |
DELETE | /tenants/{tenant}/sender-history/{kind}/{name} | 200 | update | — | — |
Senders
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/senders | 200 | read | — | — |
PUT | /tenants/{tenant}/senders | 200 | update | — | entries array, required; version integer, required |
POST | /tenants/{tenant}/senders/preview | 200 | read | — | entries array, required |
Sending
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/sending | 200 | read | limit integer | — |
GET | /tenants/{tenant}/sending/held | 200 | read | — | — |
Settings
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/settings | 200 | read | — | — |
PUT | /tenants/{tenant}/settings | 200 | update | — | settings object, required; version integer |
PATCH | /tenants/{tenant}/settings | 200 | update | — | version integer |
GET | /tenants/{tenant}/settings/history | 200 | read | limit integer | — |
GET | /tenants/{tenant}/settings/history/{version} | 200 | read | — | — |
Sign ins
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/sign-ins | 200 | read | cursor string; limit integer; new boolean; outcome string; protocol string; with string | — |
Storage
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/storage/breakdown | 200 | read | days integer | — |
GET | /tenants/{tenant}/storage/place | 200 | read | — | — |
Suppression
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/suppression | 200 | read | after string; limit integer | — |
DELETE | /tenants/{tenant}/suppression/{address} | 200 | update | — | — |
Tls agreements
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/tls-agreements | 200 | read | — | — |
PUT | /tenants/{tenant}/tls-agreements | 200 | update | — | agreements array, required; version integer, required |
Try
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
POST | /tenants/{tenant}/try/dns | 200 | read | — | domain string, required; records array, required |
POST | /tenants/{tenant}/try/message | 200 | read | — | from string, required; helo string; ip string; message string; tls boolean; to array, required |
Upgrade
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/upgrade | 200 | read | — | — |
PUT | /tenants/{tenant}/upgrade/{change} | 200 | update | — | choice string, required |
Usage
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/usage | 200 | read | days integer | — |
Webhooks
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/webhooks | 200 | read | — | — |
POST | /tenants/{tenant}/webhooks | 201 | create | — | description string; events array, required; url string, required |
GET | /tenants/{tenant}/webhooks/{id} | 200 | read | — | — |
PATCH | /tenants/{tenant}/webhooks/{id} | 200 | update | — | description string; events array; url string |
DELETE | /tenants/{tenant}/webhooks/{id} | 200 | delete | — | — |
GET | /tenants/{tenant}/webhooks/{id}/deliveries | 200 | read | — | — |
POST | /tenants/{tenant}/webhooks/{id}/deliveries/{delivery}/resend | 200 | update | — | — |
POST | /tenants/{tenant}/webhooks/{id}/resume | 200 | update | — | — |
POST | /tenants/{tenant}/webhooks/{id}/secret | 200 | update | — | — |
Where
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants/{tenant}/where | 200 | read | — | — |
Server-wide endpoints
Audit
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /audit | 200 | read | account integer; after integer; before integer; from integer; limit integer; resource string; role string; tenant integer; to integer; verb string | — |
Backups
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /backups | 200 | Operator only | — | — |
POST | /backups/now | 200 | Operator only | — | — |
GET | /backups/offsite | 200 | Operator only | — | — |
GET | /backups/points | 200 | Operator only | — | — |
POST | /backups/points | 201 | Operator only | — | name string, required |
GET | /backups/residency-exceptions | 200 | Operator only | — | — |
POST | /backups/residency-exceptions | 201 | Operator only | — | reason string, required; tenant integer, required |
DELETE | /backups/residency-exceptions/{tenant} | 200 | Operator only | — | — |
POST | /backups/test | 200 | Operator only | — | — |
Cluster
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /cluster/data-layer | 200 | Operator only | — | — |
GET | /cluster/dr | 200 | Operator only | — | — |
POST | /cluster/dr/confirm | 200 | Operator only | — | position integer, required |
POST | /cluster/dr/copy | 200 | Operator only | — | blobs object; outsideResidency boolean; store object |
POST | /cluster/dr/fence | 200 | Operator only | — | at integer; by string; epoch integer, required |
POST | /cluster/dr/hold | 200 | Operator only | — | seconds integer, required |
GET | /cluster/dr/log | 200 | Operator only | after integer; limit integer | — |
POST | /cluster/dr/release | 200 | Operator only | — | — |
GET | /cluster/dr/rows | 200 | Operator only | after string; limit integer | — |
POST | /cluster/finalize | 200 | Operator only | — | to integer, required |
GET | /cluster/nodes | 200 | Operator only | — | — |
GET | /cluster/nodes/{node} | 200 | Operator only | — | — |
DELETE | /cluster/nodes/{node} | 204 | Operator only | — | — |
POST | /cluster/nodes/{node}/drain | 200 | Operator only | — | — |
POST | /cluster/nodes/{node}/undrain | 200 | Operator only | — | — |
GET | /cluster/planner | 200 | Operator only | type string, required | — |
GET | /cluster/risks | 200 | Operator only | — | — |
GET | /cluster/sites | 200 | Operator only | — | — |
GET | /cluster/upgrade | 200 | Operator only | — | — |
POST | /cluster/upgrade | 202 | Operator only | — | channel string, required; to string, required; withoutBackup boolean |
POST | /cluster/upgrade/abort | 200 | Operator only | — | — |
POST | /cluster/upgrade/resume | 202 | Operator only | — | — |
Licence
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /licence | 200 | Operator only | — | — |
Links
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /links | 200 | Operator only | — | — |
GET | /links/{link} | 200 | Operator only | — | — |
DELETE | /links/{link} | 204 | Operator only | — | — |
Network locks
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
DELETE | /network-locks/{network} | 200 | Operator only | — | — |
Queue
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /queue | 200 | read | tenant integer | — |
GET | /queue/{id} | 200 | trace | tenant integer | — |
DELETE | /queue/{id} | 204 | delete | bounce boolean; tenant integer | — |
POST | /queue/{id}/hold | 200 | update | tenant integer | — |
POST | /queue/{id}/release | 200 | update | tenant integer | — |
POST | /queue/{id}/retry | 200 | update | tenant integer | — |
POST | /queue/hold | 200 | update | tenant integer | from string; ids array; to string |
GET | /queue/pacing | 200 | read | — | — |
POST | /queue/release | 200 | update | tenant integer | from string; ids array; to string |
POST | /queue/remove | 200 | delete | tenant integer | bounce boolean; from string; ids array; to string |
POST | /queue/retry | 200 | update | tenant integer | from string; ids array; to string |
Reports
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /reports | 200 | read | day string; domain string, required; from string; kind string; tenant integer; to string | — |
Search index
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /search-index | 200 | Operator only | tenant integer | — |
POST | /search-index/build | 202 | Operator only | — | rate integer; tenant integer, required |
POST | /search-index/rebuild | 202 | Operator only | — | account string, required; tenant integer, required |
Security
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /security/floors | 200 | Operator only | — | — |
PUT | /security/floors | 200 | Operator only | — | floors object, required; version integer, required |
GET | /security/listener-tls | 200 | Operator only | — | — |
PUT | /security/listener-tls | 200 | Operator only | — | minDays integer, required; minProtocol string, required |
Storage
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /storage | 200 | Operator only | — | — |
POST | /storage/compact | 200 | Operator only | — | — |
GET | /storage/integrity | 200 | Operator only | tenant integer | — |
POST | /storage/integrity/scrub | 202 | Operator only | — | tenant integer |
GET | /storage/kinds | 200 | Operator only | days integer; tenant integer | — |
GET | /storage/moves | 200 | Operator only | — | — |
GET | /storage/organisations | 200 | Operator only | — | — |
Tenants
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /tenants | 200 | Operator only | — | — |
POST | /tenants | 201 | Operator only | — | admin string; domain string; name string, required; sandbox boolean |
GET | /tenants/{tenant} | 200 | read | — | — |
PATCH | /tenants/{tenant} | 200 | Operator only | — | suspended boolean, required |
Trace
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /trace | 200 | trace | address string; cursor string; day string; from string; outcome string; tenant integer; to string | — |
GET | /trace/{id} | 200 | trace | tenant integer | — |
Upgrade
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /upgrade | 200 | Operator only | backup string | — |
PUT | /upgrade/{change} | 200 | Operator only | — | choice string, required |
Version
| Method | Path | Success | Right needed | Query parameters | Body fields |
|---|---|---|---|---|---|
GET | /version | 200 | read | — | — |
Something unclear or out of date on this page? Tell us.