Coldfeet
Developers

API reference

370 endpoints for one organization, generated from the running Coldfeet server rather than written by hand, so it cannot drift from what the API accepts.

Base path

/api/v1

Prefix with your own Coldfeet host — the API answers on the same origin as this site.

Authentication

Authorization: Bearer …

An API token issued in the console, or a session token. See authentication and scopes.

Token reach

Operations marked API token accept a token.

The rest need a signed-in session, so a token calling them is refused rather than silently limited.

Alerting

get/api/v1/tenants/{tenantId}/alerts/signalsSession only

Signal catalogue, for building the rule form

Responses

  • 200
get/api/v1/tenants/{tenantId}/alerts/rulesSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/alerts/rulesSession only

Path parameters

tenantIdrequiredstring

Body: CreateAlertRuleDto

Responses

  • 201
patch/api/v1/tenants/{tenantId}/alerts/rules/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdateAlertRuleDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/alerts/rules/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/alerts/historySession only

Every alert this tenant has fired, newest first

Path parameters

tenantIdrequiredstring

Query parameters

eventrequiredstring
signalrequiredstring
severityrequiredstring
pagerequiredstring
pageSizerequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/alerts/notificationsSession only

Unread (or all recent) alert events for this tenant

Path parameters

tenantIdrequiredstring

Query parameters

unreadrequiredstring
pagerequiredstring
pageSizerequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/alerts/notifications/{id}/readSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/alerts/notifications/read-allSession only

Path parameters

tenantIdrequiredstring

Responses

  • 201

Archive

get/api/v1/tenants/{tenantId}/archiveSession only

Path parameters

tenantIdrequiredstring

Query parameters

qrequiredstring
limitrequiredstring
skiprequiredstring
pagerequiredstring
pageSizerequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/archive/exportSession only

Path parameters

tenantIdrequiredstring

Query parameters

limitrequiredstring
formatrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/archive/gdpr-exportSession only

Path parameters

tenantIdrequiredstring

Query parameters

subjectrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/archive/legal-hold/previewSession only

Path parameters

tenantIdrequiredstring

Body: LegalHoldQueryDto

Responses

  • 200
post/api/v1/tenants/{tenantId}/archive/legal-holdSession only

Path parameters

tenantIdrequiredstring

Body: LegalHoldQueryDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/archive/{id}/legal-holdSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: LegalHoldDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/archive/{id}/emlSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200

Audit

get/api/v1/tenants/{tenantId}/auditSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/audit/verifySession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/audit/archivesSession only

Events removed by retention, and the file each was written to

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/audit/archives/{id}Session only

Download one audit archive

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200

Awareness

get/api/v1/tenants/{tenantId}/awareness/campaignsSession only

Every simulation campaign, with its result funnel

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/awareness/campaignsSession only

Path parameters

tenantIdrequiredstring

Body: CampaignDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/awareness/campaigns/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
patch/api/v1/tenants/{tenantId}/awareness/campaigns/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: CampaignDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/awareness/campaigns/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/awareness/campaigns/{id}/launchSession only

Freeze the audience and start sending

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/awareness/campaigns/{id}/cancelSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/awareness/audience/previewSession only

Who a given audience selection would reach

Path parameters

tenantIdrequiredstring

Body: AudienceDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/awareness/templatesSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/awareness/templatesSession only

Path parameters

tenantIdrequiredstring

Body: TemplateDto

Responses

  • 201
delete/api/v1/tenants/{tenantId}/awareness/templates/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/awareness/lessonsSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/awareness/trainingSession only

Assigned lessons and who has finished them, outstanding first

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/awareness/training/assignSession only

Assign a lesson to people and mail them the link

Path parameters

tenantIdrequiredstring

Body: AssignTrainingDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/awareness/training/{id}/resendSession only

Send an outstanding lesson link again

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
get/api/v1/tenants/{tenantId}/awareness/riskSession only

Per-person risk, worst first

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/awareness/risk/historySession only

How the risk bands have moved, replayed from the campaign events

Path parameters

tenantIdrequiredstring

Responses

  • 200

Billing

get/api/v1/tenants/{tenantId}/billingSession only

Rate, billing profile, status and when the next invoice is raised

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/billing/usageSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/billing/seatsSession only

What the next invoice would be, and how the seat count was derived

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/billing/dunningSession only

What has been sent about unpaid invoices, and what happens if they stay unpaid

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/billing/invoicesSession only

Path parameters

tenantIdrequiredstring

Query parameters

limitrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/billing/invoices/{invoiceId}Session only

Path parameters

tenantIdrequiredstring
invoiceIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/billing/invoices/{invoiceId}/pdfSession only

Path parameters

tenantIdrequiredstring
invoiceIdrequiredstring

Responses

  • 200
patch/api/v1/tenants/{tenantId}/billing/profileSession only

Who the invoice is addressed to. Rate and cycle are operator-set.

Path parameters

tenantIdrequiredstring

Body: UpdateProfileDto

Responses

  • 200

Branding

get/api/v1/tenants/{tenantId}/brandingSession only

Effective branding for this tenant

Path parameters

tenantIdrequiredstring

Responses

  • 200
patch/api/v1/tenants/{tenantId}/brandingSession only

Path parameters

tenantIdrequiredstring

Body: TenantBrandingDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/brandingSession only

Drop tenant overrides and fall back to platform branding

Path parameters

tenantIdrequiredstring

Responses

  • 200

Bulk import

get/api/v1/tenants/{tenantId}/bulk-import/typesSession only

Supported import types and the CSV columns each expects

Responses

  • 200
get/api/v1/tenants/{tenantId}/bulk-import/{type}/exportSession only

Export one entity type as CSV, in the columns the importer reads

Mailbox passwords are exported empty: what is stored is a bcrypt hash, and a hash is not a password. Personal safe-sender entries are left out of the list export, because the importer would read them back as rules over the whole organisation.

Path parameters

tenantIdrequiredstring
typerequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/bulk-import/{type}/previewSession only

Dry-run validation of a CSV import — nothing is written

Path parameters

tenantIdrequiredstring
typerequiredstring

Body: ImportCsvDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/bulk-import/{type}/commitSession only

Commit a CSV import — creates every valid row

Path parameters

tenantIdrequiredstring
typerequiredstring

Body: ImportCsvDto

Responses

  • 201

Campaigns

get/api/v1/tenants/{tenantId}/campaignsSession only

Threat campaigns for this tenant, most recently active first

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/campaigns/{id}Session only

One campaign, its worst-hit recipients and what is still in a mailbox

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
patch/api/v1/tenants/{tenantId}/campaigns/{id}Session only

Mark a campaign contained, closed, or open again

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: CampaignStatusDto

Responses

  • 200
get/api/v1/tenants/{tenantId}/campaigns/{id}/messagesSession only

The messages clustered into this campaign

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/campaigns/{id}/remediateSession only

Claw back every delivered copy in this campaign

Works through a batch of up to 100 messages and reports how many are left, so a large campaign is several presses rather than one request that times out halfway through.

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: CampaignRemediateDto

Responses

  • 201

Certificates

get/api/v1/tenants/{tenantId}/certificates/authoritiesSession only

Certificate authorities available to this tenant

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/certificates/authoritiesSession only

Create an internal certificate authority

Path parameters

tenantIdrequiredstring

Body: CreateAuthorityDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/certificates/authorities/{id}/retireSession only

Stop an authority issuing without invalidating its certificates

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
get/api/v1/tenants/{tenantId}/certificates/authorities/{id}/pemSession only

The root certificate, for correspondents to trust

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/certificates/expiringSession only

Certificates due for renewal

Path parameters

tenantIdrequiredstring

Query parameters

daysrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/certificates/importSession only

Store a correspondent's certificate, or a keypair from a public CA

Path parameters

tenantIdrequiredstring

Body: ImportCertificateDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/certificatesSession only

Path parameters

tenantIdrequiredstring

Query parameters

emailrequiredstring
statusrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/certificatesSession only

Issue an S/MIME certificate for a hosted address

Path parameters

tenantIdrequiredstring

Body: IssueCertificateDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/certificates/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
delete/api/v1/tenants/{tenantId}/certificates/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/certificates/{id}/renewSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: RenewDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/certificates/{id}/revokeSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: RevokeDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/certificates/{id}/exportSession only

Download as PKCS#12 for import into a mail client

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: ExportDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/pgp-keysSession only

Path parameters

tenantIdrequiredstring

Query parameters

emailrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/pgp-keysSession only

Generate a keypair for one of your own addresses

Path parameters

tenantIdrequiredstring

Body: GenerateKeyDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/pgp-keys/importSession only

Store a correspondent's public key, or your own keypair

Path parameters

tenantIdrequiredstring

Body: ImportKeyDto

Responses

  • 201
delete/api/v1/tenants/{tenantId}/pgp-keys/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/encryption-policiesSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
put/api/v1/tenants/{tenantId}/encryption-policiesSession only

Create or replace the rule for one correspondent

Path parameters

tenantIdrequiredstring

Body: UpsertPolicyDto

Responses

  • 200
get/api/v1/tenants/{tenantId}/encryption-policies/resolveSession only

What would apply to one recipient, and which rule decided it

Path parameters

tenantIdrequiredstring

Query parameters

recipientrequiredstring

Responses

  • 200
delete/api/v1/tenants/{tenantId}/encryption-policies/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/secure-delivery/secretsSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
put/api/v1/tenants/{tenantId}/secure-delivery/secretsSession only

Set or replace the passphrase for one correspondent

Path parameters

tenantIdrequiredstring

Body: UpsertSecretDto

Responses

  • 200
post/api/v1/tenants/{tenantId}/secure-delivery/secrets/{id}/revealSession only

Show a passphrase so it can be passed on out of band

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
delete/api/v1/tenants/{tenantId}/secure-delivery/secrets/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/secure-delivery/messagesSession only

Messages delivered as encrypted PDFs, and whether they were opened

Path parameters

tenantIdrequiredstring

Query parameters

pagerequiredstring
pageSizerequiredstring

Responses

  • 200

Connectors

get/api/v1/tenants/{tenantId}/connectorsSession only

Whether connector hardening is offered for this tenant, and where each domain stands

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/connectors/planSession only

Compose the Exchange script

Changes nothing in the customer’s tenant. Returns what the script will create, the script, and the command that produces the output this install accepts as proof.

Path parameters

tenantIdrequiredstring

Body: PlanDto

Responses

  • 200
post/api/v1/tenants/{tenantId}/connectors/read-backSession only

Record enforcement from Exchange’s own connector output

A domain reaches gateway_enforced only through here. Anything the output does not prove is recorded as unconfirmed, with the reason.

Path parameters

tenantIdrequiredstring

Body: ReadBackDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/connectors/enforcement/{domainId}Session only

Put a domain back to MX-only without pasting output

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Responses

  • 200

Continuity

get/api/v1/tenants/{tenantId}/continuity/statusSession only

Continuity outage status for the tenant

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/continuitySession only

Emergency inbox: messages held while MX is down

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/continuity/{id}/previewSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/continuity/{id}/emlSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/continuity/{id}/retrySession only

Retry delivery for one held recipient now

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/continuity/drainSession only

Drain this tenant's continuity spool immediately

Path parameters

tenantIdrequiredstring

Responses

  • 201

Dashboard

get/api/v1/tenants/{tenantId}/dashboard/statsAPI token: messages:read

Path parameters

tenantIdrequiredstring

Query parameters

daysrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/dashboard/reportAPI token: messages:read

Path parameters

tenantIdrequiredstring

Query parameters

daysrequiredstring
domainrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/dashboard/trafficAPI token: messages:read

Inbound/outbound traffic strip for Message Trace (last N hours)

Path parameters

tenantIdrequiredstring

Query parameters

hoursrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/dashboard/pipelineAPI token: messages:read

SMTP accept / last relay failure pulse for Message Trace

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/dashboard/liveSession only

SSE stream of traffic + pipeline pulses (replaces 30s polling)

Path parameters

tenantIdrequiredstring

Query parameters

hoursrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/dashboard/logsAPI token: messages:read

Search the message trace by sender, recipient, subject or message-id

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/dashboard/logs/exportAPI token: messages:read

Stream every message matching the filters as CSV, not just the current page

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/dashboard/trace/{logId}API token: messages:read

Path parameters

tenantIdrequiredstring
logIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/dashboard/trace/{logId}/emlAPI token: mail:read

Path parameters

tenantIdrequiredstring
logIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/dashboard/trace/{logId}/attemptsAPI token: messages:read

Egress delivery attempts for one message (tenant-scoped)

Path parameters

tenantIdrequiredstring
logIdrequiredstring

Query parameters

pagerequiredstring
pageSizerequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/dashboard/trace/{logId}/retrySession only

Re-enqueue delivery for bounced/deferred/parked recipients

Path parameters

tenantIdrequiredstring
logIdrequiredstring

Responses

  • 201
get/api/v1/tenants/{tenantId}/dashboard/rejectionsAPI token: messages:read

SMTP connection-level rejections for this tenant

Path parameters

tenantIdrequiredstring

Query parameters

pagerequiredstring
pageSizerequiredstring
clientIprequiredstring
stagerequiredstring
hoursrequiredstring

Responses

  • 200

Dlp

get/api/v1/tenants/{tenantId}/dlp/rulesSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/dlp/rulesSession only

Path parameters

tenantIdrequiredstring

Body: DlpRuleDto

Responses

  • 201
patch/api/v1/tenants/{tenantId}/dlp/rules/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: DlpRulePatchDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/dlp/rules/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/dlp/rules/test-against-sampleSession only

Try a rule (saved or draft) against a sample of text; omit the rule fields to test everything currently enabled

Path parameters

tenantIdrequiredstring

Body: TestSampleDto

Responses

  • 201

Dmarc

get/api/v1/tenants/{tenantId}/domains/{domainId}/dmarcSession only

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/{domainId}/dmarc/trendSession only

Aligned and failing message volume per day, with a compliance percent

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/{domainId}/dmarc/tls-trendSession only

Successful and failed TLS sessions per day, from RFC 8460 reports

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/{domainId}/dmarc/tls-failuresSession only

Why TLS sessions failed, by result type and by host pair

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/{domainId}/dmarc/feedbackSession only

RFC 5965 feedback-loop reports, by type, with the recent ones

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/{domainId}/dmarc/sourcesSession only

Everyone sending as this domain, with alignment and a classification

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/{domainId}/dmarc/journeySession only

Where this domain is between monitoring and enforcement

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Responses

  • 200
put/api/v1/tenants/{tenantId}/domains/{domainId}/dmarc/journeySession only

Set the DMARC policy this domain is working towards

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Body: SetDmarcTargetDto

Responses

  • 200
post/api/v1/tenants/{tenantId}/domains/{domainId}/dmarc/ingestSession only

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Body: IngestDmarcDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/domains/{domainId}/dmarc/reportsSession only

Upload a raw DMARC aggregate report (XML, .xml.gz or .zip)

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Body: UploadReportDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/domains/{domainId}/dmarc/tls-reportsSession only

Upload a raw RFC 8460 TLS report (JSON, .json.gz or .zip)

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Body: UploadReportDto

Responses

  • 201

Domains

get/api/v1/tenants/{tenantId}/domainsAPI token: domains:read

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/domainsAPI token: domains:write

Path parameters

tenantIdrequiredstring

Body: CreateDomainDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/domains/reverse-dnsSession only

Query parameters

freshrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/capabilitiesSession only

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/inbound-relay-accountsSession only

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/{id}API token: domains:read

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
delete/api/v1/tenants/{tenantId}/domains/{id}API token: domains:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Query parameters

keepAtProviderrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/domains/{id}/verifyAPI token: domains:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
get/api/v1/tenants/{tenantId}/domains/{id}/dns-statusAPI token: domains:read

Path parameters

tenantIdrequiredstring
idrequiredstring

Query parameters

freshrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/{id}/deletion-previewSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
put/api/v1/tenants/{tenantId}/domains/{id}/integrationSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: IntegrationDto

Responses

  • 200
put/api/v1/tenants/{tenantId}/domains/{id}/delivery-modeAPI token: domains:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: DeliveryModeDto

Responses

  • 200
put/api/v1/tenants/{tenantId}/domains/{id}/inbound-modeAPI token: domains:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: InboundModeDto

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/{id}/dns-delegationAPI token: domains:read

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
put/api/v1/tenants/{tenantId}/domains/{id}/dns-delegationAPI token: domains:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: DnsDelegationDto

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/{id}/inbound-relay-forwardAPI token: domains:read

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
put/api/v1/tenants/{tenantId}/domains/{id}/inbound-relay-forwardAPI token: domains:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: InboundRelayForwardDto

Responses

  • 200
get/api/v1/tenants/{tenantId}/domains/{id}/relay-accountsSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/domains/{id}/relay-accountsSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: SetRelayAccountsDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/domains/{id}/relay-accounts/refreshSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
delete/api/v1/tenants/{tenantId}/domains/{id}/relay-accounts/{accountId}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring
accountIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/domains/{id}/dkimAPI token: domains:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/domains/{id}/test-relaySession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: TestRelayDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/domains/{id}/detect-relaySession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/domains/{id}/test-mailSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
get/api/v1/tenants/{tenantId}/domains/{id}/onboarding-dnsAPI token: domains:read

Path parameters

tenantIdrequiredstring
idrequiredstring

Query parameters

freshrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/dns-panelsSession only

Responses

  • 200
post/api/v1/tenants/{tenantId}/domains/{id}/dns-panel/inspectSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: InspectPanelDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/domains/{id}/dns-panelSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/domains/{id}/dns-panelSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: ConnectPanelDto

Responses

  • 201
put/api/v1/tenants/{tenantId}/domains/{id}/dns-panelSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdatePanelDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/domains/{id}/dns-panelSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/domains/{id}/dns-panel/verifySession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/domains/{id}/dns-panel/runSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: PanelRunDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/domains/{id}/dns-panel/runsSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Query parameters

limitrequiredstring

Responses

  • 200

Ediscovery

get/api/v1/tenants/{tenantId}/ediscovery/casesSession only

Path parameters

tenantIdrequiredstring

Query parameters

statusrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/ediscovery/casesSession only

Path parameters

tenantIdrequiredstring

Body: CreateCaseDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/ediscovery/cases/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/ediscovery/cases/{id}/itemsSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Query parameters

takerequiredstring
skiprequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/ediscovery/cases/{id}/itemsSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: CaseItemsDto

Responses

  • 200
post/api/v1/tenants/{tenantId}/ediscovery/cases/{id}/items/querySession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: CaseQueryDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/ediscovery/cases/{id}/items/{itemId}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring
itemIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/ediscovery/cases/{id}/releaseSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/ediscovery/cases/{id}/reopenSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/ediscovery/exportsSession only

Path parameters

tenantIdrequiredstring

Query parameters

takerequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/ediscovery/exportsSession only

Path parameters

tenantIdrequiredstring

Body: StartExportDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/ediscovery/exports/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
delete/api/v1/tenants/{tenantId}/ediscovery/exports/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/ediscovery/exports/{id}/downloadSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200

Efficacy

get/api/v1/tenants/{tenantId}/efficacyAPI token: messages:read

Quarantine overturn rate, per-policy hits and per-engine accuracy

Path parameters

tenantIdrequiredstring

Query parameters

daysrequiredstring

Responses

  • 200

Evidence

get/api/v1/tenants/{tenantId}/evidenceSession only

List generated evidence packs

Path parameters

tenantIdrequiredstring

Query parameters

takerequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/evidenceSession only

Generate an evidence pack for a period

Path parameters

tenantIdrequiredstring

Body: BuildPackDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/evidence/{id}/downloadSession only

Download one evidence pack

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
delete/api/v1/tenants/{tenantId}/evidence/{id}Session only

Delete an evidence pack

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200

Integrations

get/api/v1/tenants/{tenantId}/integrationsSession only

Mail platform connections for this tenant

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/integrations/consentSession only

Begin admin consent, returning the URL to send an administrator to

Path parameters

tenantIdrequiredstring

Body: ConnectProviderDto

Responses

  • 201
put/api/v1/tenants/{tenantId}/integrations/google_workspace/dwdSession only

Upload a domain-wide-delegated service-account key for Google Workspace clawback

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/integrations/{provider}/verifySession only

Call the provider and record whether the grant still works

Path parameters

tenantIdrequiredstring
providerrequiredstring

Responses

  • 201
delete/api/v1/tenants/{tenantId}/integrations/{provider}Session only

Forget the stored authorisation for this provider

Path parameters

tenantIdrequiredstring
providerrequiredstring

Responses

  • 200

Journal

get/api/v1/tenants/{tenantId}/journal/endpointsSession only

Journal endpoints for this tenant

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/journal/endpointsSession only

Create a journal endpoint

Returns the full URL, including the token, exactly once. It is stored as a SHA-256 and cannot be shown again.

Path parameters

tenantIdrequiredstring

Body: CreateEndpointDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/journal/endpoints/{id}/enabledSession only

Stop or resume accepting reports on this endpoint

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: SetEnabledDto

Responses

  • 201
delete/api/v1/tenants/{tenantId}/journal/endpoints/{id}Session only

Delete a journal endpoint and the token that reaches it

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200

Lists

get/api/v1/tenants/{tenantId}/listsAPI token: policy:read

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/listsAPI token: policy:write

Path parameters

tenantIdrequiredstring

Body: AddListDto

Responses

  • 201
delete/api/v1/tenants/{tenantId}/lists/{id}API token: policy:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/my-listsSession only

List the caller's own safe/blocked senders

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/my-listsSession only

Path parameters

tenantIdrequiredstring

Body: AddListDto

Responses

  • 201
delete/api/v1/tenants/{tenantId}/my-lists/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200

Mail

get/api/v1/tenants/{tenantId}/mail/mailboxSession only

The mailbox this session will act on, or null

Path parameters

tenantIdrequiredstring

Query parameters

mailboxIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/mail/foldersSession only

Folder tree with message and unread counts

Path parameters

tenantIdrequiredstring

Query parameters

mailboxIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/mail/messagesSession only

One page of a folder, newest first

Path parameters

tenantIdrequiredstring

Query parameters

searchrequiredstring
unreadrequiredstring
flaggedrequiredstring
mailboxIdrequiredstring

Responses

  • 200
delete/api/v1/tenants/{tenantId}/mail/messagesSession only

Move to Trash, or expunge when already there

Path parameters

tenantIdrequiredstring

Query parameters

mailboxIdrequiredstring

Body: MailDeleteDto

Responses

  • 200
get/api/v1/tenants/{tenantId}/mail/messages/{uid}Session only

One message, body sanitised for the reading pane

Path parameters

tenantIdrequiredstring
uidrequiredstring

Query parameters

imagesrequiredstring
mailboxIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/mail/messages/{uid}/parts/{partId}Session only

Download one MIME part

Path parameters

tenantIdrequiredstring
uidrequiredstring
partIdrequiredstring

Query parameters

mailboxIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/mail/messages/{uid}/sourceSession only

The original .eml

Path parameters

tenantIdrequiredstring
uidrequiredstring

Query parameters

mailboxIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/mail/imageSession only

Fetch a remote image on the reader’s behalf

Path parameters

tenantIdrequiredstring

Query parameters

urlrequiredstring
mailboxIdrequiredstring

Responses

  • 200
patch/api/v1/tenants/{tenantId}/mail/messages/flagsSession only

Set or clear flags on a selection

Path parameters

tenantIdrequiredstring

Query parameters

mailboxIdrequiredstring

Body: MailFlagsDto

Responses

  • 200
post/api/v1/tenants/{tenantId}/mail/messages/moveSession only

Move a selection to another folder

Path parameters

tenantIdrequiredstring

Query parameters

mailboxIdrequiredstring

Body: MailMoveDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/mail/sendSession only

Submit a message through the install’s own listener

Path parameters

tenantIdrequiredstring

Query parameters

mailboxIdrequiredstring

Body: ComposeDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/mail/draftsSession only

Save a draft, replacing the previous revision

Path parameters

tenantIdrequiredstring

Query parameters

mailboxIdrequiredstring

Body: ComposeDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/mail/liveSession only

SSE stream of folder counts, so new mail appears

Path parameters

tenantIdrequiredstring

Query parameters

mailboxIdrequiredstring

Responses

  • 200

Mailboxes

get/api/v1/tenants/{tenantId}/mailboxesSession only

Path parameters

tenantIdrequiredstring

Query parameters

domainIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/mailboxesSession only

Path parameters

tenantIdrequiredstring

Body: CreateMailboxDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/mailboxes/domain-summarySession only

Committed quota and usage per domain

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/mailboxes/aliasesSession only

Path parameters

tenantIdrequiredstring

Query parameters

domainIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/mailboxes/aliasesSession only

Path parameters

tenantIdrequiredstring

Body: CreateAliasDto

Responses

  • 201
delete/api/v1/tenants/{tenantId}/mailboxes/aliases/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/mailboxes/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
put/api/v1/tenants/{tenantId}/mailboxes/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdateMailboxDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/mailboxes/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/mailboxes/{id}/client-settingsSession only

Hostnames and ports for setting up a mail client

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/mailboxes/{mailboxId}/sieveSession only

Path parameters

tenantIdrequiredstring
mailboxIdrequiredstring

Responses

  • 200
put/api/v1/tenants/{tenantId}/mailboxes/{mailboxId}/sieveSession only

Path parameters

tenantIdrequiredstring
mailboxIdrequiredstring

Body: RuleSetDto

Responses

  • 200
post/api/v1/tenants/{tenantId}/mailboxes/{mailboxId}/sieve/resyncSession only

Path parameters

tenantIdrequiredstring
mailboxIdrequiredstring

Responses

  • 201
get/api/v1/tenants/{tenantId}/shared-foldersSession only

Path parameters

tenantIdrequiredstring

Query parameters

mailboxIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/shared-foldersSession only

Path parameters

tenantIdrequiredstring

Body: ShareDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/shared-folders/folders/{mailboxId}Session only

The IMAP folders a mailbox actually has

Path parameters

tenantIdrequiredstring
mailboxIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/shared-folders/{id}/effectiveSession only

The ACL as the mail store currently holds it

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
delete/api/v1/tenants/{tenantId}/shared-folders/grants/{aclId}Session only

Path parameters

tenantIdrequiredstring
aclIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/mailboxes/{mailboxId}/app-passwordsSession only

Path parameters

tenantIdrequiredstring
mailboxIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/mailboxes/{mailboxId}/app-passwordsSession only

Create one; the password is returned once and never again

Path parameters

tenantIdrequiredstring
mailboxIdrequiredstring

Body: CreateAppPasswordDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/mailboxes/{mailboxId}/app-passwords/{id}/revokeSession only

Path parameters

tenantIdrequiredstring
mailboxIdrequiredstring
idrequiredstring

Responses

  • 201
delete/api/v1/tenants/{tenantId}/mailboxes/{mailboxId}/app-passwords/{id}Session only

Path parameters

tenantIdrequiredstring
mailboxIdrequiredstring
idrequiredstring

Responses

  • 200

Outbound guard

get/api/v1/tenants/{tenantId}/outbound-guardsSession only

List throttled/suspended (or all) outbound senders for this tenant

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/outbound-guards/sendersSession only

Sending habits per outbound sender — volume, correspondents, and hours

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/outbound-guards/senders/{identity}Session only

One sender: hour histogram, known correspondents, recent additions

Path parameters

tenantIdrequiredstring
identityrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/outbound-guards/{id}/releaseSession only

Clear a throttled/suspended sender and restore normal outbound sending

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201

Partner

get/api/v1/tenants/{tenantId}/partner/summarySession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/partner/customersSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/partner/customers/{customerId}Session only

Path parameters

tenantIdrequiredstring
customerIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/partner/invoicesSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200

Policies

get/api/v1/tenants/{tenantId}/policies/vocabularyAPI token: policy:read

Responses

  • 200
get/api/v1/tenants/{tenantId}/policies/templatesAPI token: policy:read

Responses

  • 200
post/api/v1/tenants/{tenantId}/policies/templates/{templateId}API token: policy:write

Path parameters

tenantIdrequiredstring
templateIdrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/policies/simulateAPI token: policy:read

Path parameters

tenantIdrequiredstring

Body: SimulateDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/policiesAPI token: policy:read

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/policiesAPI token: policy:write

Path parameters

tenantIdrequiredstring

Body: CreatePolicyDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/policies/{id}/rulesAPI token: policy:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: AddRuleDto

Responses

  • 201
put/api/v1/tenants/{tenantId}/policies/{id}/rules/reorderAPI token: policy:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: ReorderRulesDto

Responses

  • 200
patch/api/v1/tenants/{tenantId}/policies/rules/{ruleId}API token: policy:write

Path parameters

tenantIdrequiredstring
ruleIdrequiredstring

Body: UpdateRuleDto

Responses

  • 200
patch/api/v1/tenants/{tenantId}/policies/{id}API token: policy:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdatePolicyDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/policies/{id}API token: policy:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
patch/api/v1/tenants/{tenantId}/policies/{id}/scopeAPI token: policy:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: ScopePolicyDto

Responses

  • 200
get/api/v1/tenants/{tenantId}/policies/{id}/historyAPI token: policy:read

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/policies/{id}/history/{version}/rollbackAPI token: policy:write

Path parameters

tenantIdrequiredstring
idrequiredstring
versionrequirednumber

Responses

  • 201
delete/api/v1/tenants/{tenantId}/policies/{id}/rules/{ruleId}API token: policy:write

Path parameters

tenantIdrequiredstring
ruleIdrequiredstring

Responses

  • 200

Quarantine

get/api/v1/tenants/{tenantId}/quarantineAPI token: quarantine:read

List held messages visible to the caller

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/quarantine/stats/trendAPI token: quarantine:read

Daily quarantine inflow vs release counts, for the dashboard trend panel

Path parameters

tenantIdrequiredstring

Query parameters

daysrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/quarantine/exportAPI token: quarantine:read

Stream every held message matching the filters as CSV, not just the current page

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/quarantine/{id}/previewAPI token: quarantine:read

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/quarantine/{id}/releaseAPI token: quarantine:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: ReleaseDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/quarantine/{id}/denyAPI token: quarantine:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/quarantine/{id}/reportAPI token: quarantine:write

Report a held message as a false positive (trains the filter)

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/quarantine/bulkAPI token: quarantine:write

Release or deny many held messages in one request

Path parameters

tenantIdrequiredstring

Body: BulkActionDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/quarantine/portal-links/revokeSession only

Withdraw every passwordless quarantine link for one mailbox

Path parameters

tenantIdrequiredstring

Body: RevokePortalLinksDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/quarantine/{id}/emlAPI token: mail:read

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/my-preferencesSession only

Get the caller's digest preferences

Path parameters

tenantIdrequiredstring

Responses

  • 200
put/api/v1/tenants/{tenantId}/my-preferencesSession only

Update the caller's digest preferences

Path parameters

tenantIdrequiredstring

Body: UpdatePreferencesDto

Responses

  • 200

Recipients

get/api/v1/tenants/{tenantId}/domains/{domainId}/recipientsSession only

List valid recipients and the domain recipient mode

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/domains/{domainId}/recipientsSession only

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Body: AddRecipientsDto

Responses

  • 201
patch/api/v1/tenants/{tenantId}/domains/{domainId}/recipients/modeSession only

Switch between catch-all and explicit recipient list

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Body: SetModeDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/domains/{domainId}/recipients/{id}Session only

Path parameters

tenantIdrequiredstring
domainIdrequiredstring
idrequiredstring

Responses

  • 200

Remediation

post/api/v1/tenants/{tenantId}/remediation/logs/bulkSession only

Quarantine or expunge every delivered copy of many messages at once

Path parameters

tenantIdrequiredstring

Body: BulkRemediateDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/remediation/logs/{logId}Session only

Quarantine or expunge every delivered copy of a message

Reaches mailboxes hosted here over IMAP, and mailboxes on a connected mail platform through its API. A copy removed through the platform reports `recoverable`: Microsoft 365 moves it to Recoverable Items, which an administrator can still restore.

Path parameters

tenantIdrequiredstring
logIdrequiredstring

Body: RemediateDto

Responses

  • 201

Reports

get/api/v1/tenants/{tenantId}/abuse-forwardSession only

The address users forward suspicious mail to

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/abuse-forwardSession only

Claim an abuse-forward address for this tenant

Path parameters

tenantIdrequiredstring

Responses

  • 201
patch/api/v1/tenants/{tenantId}/abuse-forwardSession only

Turn the abuse-forward address on or off

Path parameters

tenantIdrequiredstring

Body: EnabledDto

Responses

  • 200
post/api/v1/tenants/{tenantId}/abuse-forward/rotateSession only

Replace the abuse-forward address

Path parameters

tenantIdrequiredstring

Responses

  • 201
get/api/v1/tenants/{tenantId}/reports/queueSession only

Abuse triage queue: reports with the reported message attached

Path parameters

tenantIdrequiredstring

Query parameters

statusrequiredstring
typerequiredstring
sourcerequiredstring
uncorrelatedrequiredstring
takerequiredstring
skiprequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/reports/queue/countsSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/reports/{id}/previewSession only

Sanitised body of a reported message

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/reports/{id}/adjudicateSession only

Record a verdict on a report and act on it

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: AdjudicateDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/reports/{logId}Session only

Report a delivered message as phishing, spam or a false positive

Path parameters

tenantIdrequiredstring
logIdrequiredstring

Body: ReportMessageDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/reports/mineSession only

The caller's own reports and what was decided about them

Path parameters

tenantIdrequiredstring

Query parameters

pagerequiredstring
pageSizerequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/reportsSession only

Recent user reports, for false-positive rate tracking

Path parameters

tenantIdrequiredstring

Query parameters

pagerequiredstring
pageSizerequiredstring
statusrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/scheduled-reportsAPI token: reports:read

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/scheduled-reportsAPI token: reports:write

Path parameters

tenantIdrequiredstring

Body: CreateScheduledReportDto

Responses

  • 201
patch/api/v1/tenants/{tenantId}/scheduled-reports/{id}API token: reports:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdateScheduledReportDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/scheduled-reports/{id}API token: reports:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/scheduled-reports/{id}/send-nowAPI token: reports:write

Send this report immediately, outside its regular cadence

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
get/api/v1/tenants/{tenantId}/scheduled-reports/{id}/deliveriesAPI token: reports:read

Per-recipient outcome of recent sends of this report

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200

Reputation

get/api/v1/tenants/{tenantId}/domains/{domainId}/reputationSession only

Google Postmaster samples for this domain

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/domains/{domainId}/reputation/refreshSession only

Re-poll Postmaster Tools for this domain

Path parameters

tenantIdrequiredstring
domainIdrequiredstring

Responses

  • 201

Saved searches

get/api/v1/tenants/{tenantId}/saved-searchesSession only

The caller's own saved searches, plus every shared search in the tenant

Path parameters

tenantIdrequiredstring

Query parameters

scoperequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/saved-searchesSession only

Path parameters

tenantIdrequiredstring

Body: CreateSavedSearchDto

Responses

  • 201
patch/api/v1/tenants/{tenantId}/saved-searches/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdateSavedSearchDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/saved-searches/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200

Scanning

get/api/v1/tenants/{tenantId}/cdrSession only

The disarm setting for this tenant and the sidecar it depends on

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/breach-checkSession only

The sender-breach setting for this tenant and whether it can run

Path parameters

tenantIdrequiredstring

Responses

  • 200

Siem

get/api/v1/tenants/{tenantId}/siemSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/siemSession only

Path parameters

tenantIdrequiredstring

Body: CreateSiemDto

Responses

  • 201
patch/api/v1/tenants/{tenantId}/siem/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdateSiemDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/siem/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/siem/{id}/testSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/siem/{id}/rotate-secretSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201

Smtp credentials

get/api/v1/tenants/{tenantId}/smtp-credentialsSession only

List submission credentials (never returns passwords)

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/smtp-credentialsSession only

Create a credential; the password is shown once and never again

Path parameters

tenantIdrequiredstring

Body: CreateCredentialDto

Responses

  • 201
delete/api/v1/tenants/{tenantId}/smtp-credentials/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200

Stationery

get/api/v1/tenants/{tenantId}/stationery/organisationSession only

Registered name and address, for disclaimers

Path parameters

tenantIdrequiredstring

Responses

  • 200
patch/api/v1/tenants/{tenantId}/stationery/organisationSession only

Path parameters

tenantIdrequiredstring

Body: OrgProfileDto

Responses

  • 200
post/api/v1/tenants/{tenantId}/stationery/previewSession only

What mail from this sender would carry

Path parameters

tenantIdrequiredstring

Body: PreviewSenderDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/stationerySession only

Path parameters

tenantIdrequiredstring

Query parameters

kindrequiredstring
scoperequiredstring
targetIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/stationerySession only

Path parameters

tenantIdrequiredstring

Body: StationeryDto

Responses

  • 201
patch/api/v1/tenants/{tenantId}/stationery/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdateStationeryDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/stationery/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/stationery/{id}/defaultSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
get/api/v1/tenants/{tenantId}/my-signaturesSession only

The caller's own signatures

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/my-signaturesSession only

Path parameters

tenantIdrequiredstring

Body: StationeryDto

Responses

  • 201
patch/api/v1/tenants/{tenantId}/my-signatures/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdateStationeryDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/my-signatures/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/my-signatures/{id}/defaultSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
get/api/v1/tenants/{tenantId}/external-bannerSession only

External-sender banner settings

Path parameters

tenantIdrequiredstring

Responses

  • 200
patch/api/v1/tenants/{tenantId}/external-bannerSession only

Path parameters

tenantIdrequiredstring

Body: BannerConfigDto

Responses

  • 200
post/api/v1/tenants/{tenantId}/external-banner/previewSession only

What a message from this address would carry

Path parameters

tenantIdrequiredstring

Body: PreviewSenderDto

Responses

  • 201

Support

get/api/v1/tenants/{tenantId}/ticketsSession only

The signed-in user's support tickets

Responses

  • 200
get/api/v1/tenants/{tenantId}/tickets/{id}Session only

Path parameters

idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/tickets/{id}/replySession only

Write back on your own ticket

Path parameters

idrequiredstring

Body: ReplyDto

Responses

  • 201
post/api/v1/tenants/{tenantId}/tickets/{id}/closeSession only

Close your own ticket once it is resolved

Path parameters

idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/tickets/{id}/reopenSession only

Reopen a closed ticket without writing a new message

Path parameters

idrequiredstring

Responses

  • 201

Suppression

get/api/v1/tenants/{tenantId}/suppressionsAPI token: suppression:read

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/suppressionsAPI token: suppression:write

Path parameters

tenantIdrequiredstring

Body: AddSuppressionDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/suppressions/summaryAPI token: suppression:read

Path parameters

tenantIdrequiredstring

Responses

  • 200
delete/api/v1/tenants/{tenantId}/suppressions/{id}API token: suppression:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200

S

get/api/v1/tenantsSession only

Responses

  • 200
post/api/v1/tenantsSession only

Body: CreateTenantDto

Responses

  • 201
get/api/v1/tenants/{tenantId}Session only

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/api-keysSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/api-keysSession only

Path parameters

tenantIdrequiredstring

Body: CreateApiKeyDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/api-keys/scopesSession only

Responses

  • 200
post/api/v1/tenants/{tenantId}/api-keys/{keyId}/rotateSession only

Path parameters

tenantIdrequiredstring
keyIdrequiredstring

Body: RotateApiKeyDto

Responses

  • 201
put/api/v1/tenants/{tenantId}/api-keys/{keyId}/enabledSession only

Path parameters

tenantIdrequiredstring
keyIdrequiredstring

Body: ApiKeyEnabledDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/api-keys/{keyId}Session only

Path parameters

tenantIdrequiredstring
keyIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/childrenAPI token: tenants:children

Path parameters

tenantIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/membersAPI token: members:read

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/membersAPI token: members:write

Path parameters

tenantIdrequiredstring

Body: AddMemberDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/invitationsAPI token: members:read

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/invitations/resendAPI token: members:write

Path parameters

tenantIdrequiredstring

Body: ResendInviteDto

Responses

  • 201
delete/api/v1/tenants/{tenantId}/invitations/{id}API token: members:write

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
patch/api/v1/tenants/{tenantId}/members/{userId}API token: members:write

Path parameters

tenantIdrequiredstring
userIdrequiredstring

Body: UpdateMemberDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/members/{userId}API token: members:write

Path parameters

tenantIdrequiredstring
userIdrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/settingsAPI token: settings:read

Path parameters

tenantIdrequiredstring

Responses

  • 200
patch/api/v1/tenants/{tenantId}/settingsAPI token: settings:write

Path parameters

tenantIdrequiredstring

Body: TenantSettingsDto

Responses

  • 200

Vip protection

get/api/v1/tenants/{tenantId}/vip-entriesSession only

The VIP roster protected against impersonation

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/vip-entriesSession only

Path parameters

tenantIdrequiredstring

Body: CreateVipDto

Responses

  • 201
patch/api/v1/tenants/{tenantId}/vip-entries/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdateVipDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/vip-entries/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
get/api/v1/tenants/{tenantId}/lookalikesSession only

Lookalike domains seen in Certificate Transparency

Path parameters

tenantIdrequiredstring

Query parameters

allrequiredstring

Responses

  • 200
patch/api/v1/tenants/{tenantId}/lookalikes/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdateLookalikeDto

Responses

  • 200

Webhooks

get/api/v1/tenants/{tenantId}/webhooksSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/webhooksSession only

Path parameters

tenantIdrequiredstring

Body: CreateWebhookDto

Responses

  • 201
get/api/v1/tenants/{tenantId}/webhooks/eventsSession only

Responses

  • 200
get/api/v1/tenants/{tenantId}/webhooks/deliveriesSession only

Path parameters

tenantIdrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/webhooks/deliveries/{deliveryId}/retrySession only

Path parameters

tenantIdrequiredstring
deliveryIdrequiredstring

Responses

  • 201
patch/api/v1/tenants/{tenantId}/webhooks/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Body: UpdateWebhookDto

Responses

  • 200
delete/api/v1/tenants/{tenantId}/webhooks/{id}Session only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 200
post/api/v1/tenants/{tenantId}/webhooks/{id}/rotate-secretSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201
post/api/v1/tenants/{tenantId}/webhooks/{id}/testSession only

Path parameters

tenantIdrequiredstring
idrequiredstring

Responses

  • 201