API reference
Mail administration
/ v1/ orgs/ :orgId/ mail/ domainsThe organization's mail domains with their status, DNS records and which records were found.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/domains' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
domains: {
domain: string
status: "error" | "active" | "pending" | "verifying"
region: string
zone?: string
dnsProvider?: string
message?: string
dkimMode: "easy" | "byo"
dkimRotatedAt?: number
records: {
key: string
purpose: "discovery" | "dkim" | "receiving" | "spf" | "dmarc" | "mailfrom"
type: "CNAME" | "TXT" | "MX" | "SRV"
name: string
fqdn: string
value: string
priority?: number
optional?: boolean
}[]
checks: {
[key: string]: boolean
}
checkedAt?: number
catchAllMailboxId?: string
lent: boolean
createdAt?: number
}[]
}/ v1/ orgs/ :orgId/ mail/ domainsAdds a domain for sending and receiving mail: creates its sending identity and returns the DNS records to add. Hostnames under the platform's domain can't be added.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).
Request body
domainstringrequiredMatches
^(?=.{4,253}$)([a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$. Trimmed. Lowercased.
Errors
400Platform domains can't be added.409This domain is already in use.502Couldn't set up this domain. Try again.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/domains' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"domain": "example"
}'Response 201
{
domain: {
domain: string
status: "error" | "active" | "pending" | "verifying"
region: string
zone?: string
dnsProvider?: string
message?: string
dkimMode: "easy" | "byo"
dkimRotatedAt?: number
records: {
key: string
purpose: "discovery" | "dkim" | "receiving" | "spf" | "dmarc" | "mailfrom"
type: "CNAME" | "TXT" | "MX" | "SRV"
name: string
fqdn: string
value: string
priority?: number
optional?: boolean
}[]
checks: {
[key: string]: boolean
}
checkedAt?: number
catchAllMailboxId?: string
lent: boolean
createdAt?: number
}
}/ v1/ orgs/ :orgId/ mail/ domains/ :domain/ dkim/ rotateA new DKIM key for the domain's mail (platform-generated keys only; the customer's DNS stays).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).domainThe mail domain, e.g.
example.com.
Errors
404Domain not found502Couldn't rotate the key. The current key is still in use; try again.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/domains/{domain}/dkim/rotate' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
domain: {
domain: string
status: "error" | "active" | "pending" | "verifying"
region: string
zone?: string
dnsProvider?: string
message?: string
dkimMode: "easy" | "byo"
dkimRotatedAt?: number
records: {
key: string
purpose: "discovery" | "dkim" | "receiving" | "spf" | "dmarc" | "mailfrom"
type: "CNAME" | "TXT" | "MX" | "SRV"
name: string
fqdn: string
value: string
priority?: number
optional?: boolean
}[]
checks: {
[key: string]: boolean
}
checkedAt?: number
catchAllMailboxId?: string
lent: boolean
createdAt?: number
}
}/ v1/ orgs/ :orgId/ mail/ domains/ :domain/ verifyChecks the domain's DNS records and verification now.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).domainThe mail domain, e.g.
example.com.
Errors
404Domain not found
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/domains/{domain}/verify' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
domain: {
domain: string
status: "error" | "active" | "pending" | "verifying"
region: string
zone?: string
dnsProvider?: string
message?: string
dkimMode: "easy" | "byo"
dkimRotatedAt?: number
records: {
key: string
purpose: "discovery" | "dkim" | "receiving" | "spf" | "dmarc" | "mailfrom"
type: "CNAME" | "TXT" | "MX" | "SRV"
name: string
fqdn: string
value: string
priority?: number
optional?: boolean
}[]
checks: {
[key: string]: boolean
}
checkedAt?: number
catchAllMailboxId?: string
lent: boolean
createdAt?: number
}
}/ v1/ orgs/ :orgId/ mail/ domains/ :domainSets or clears the domain's catch-all mailbox, which receives mail to unknown addresses.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).domainThe mail domain, e.g.
example.com.
Request body
catchAllMailboxIdstringrequiredor nullUp to 40 characters.
Errors
404Domain not found404Mailbox not found
curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/domains/{domain}' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"catchAllMailboxId": "<catchAllMailboxId>"
}'Response 200
{
domain: {
domain: string
status: "error" | "active" | "pending" | "verifying"
region: string
zone?: string
dnsProvider?: string
message?: string
dkimMode: "easy" | "byo"
dkimRotatedAt?: number
records: {
key: string
purpose: "discovery" | "dkim" | "receiving" | "spf" | "dmarc" | "mailfrom"
type: "CNAME" | "TXT" | "MX" | "SRV"
name: string
fqdn: string
value: string
priority?: number
optional?: boolean
}[]
checks: {
[key: string]: boolean
}
checkedAt?: number
catchAllMailboxId?: string
lent: boolean
createdAt?: number
}
}/ v1/ orgs/ :orgId/ mail/ domains/ :domainRemoves a domain and its aliases. Its mailboxes must be deleted first.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).domainThe mail domain, e.g.
example.com.
Errors
404Domain not found409Delete this domain's mailboxes first.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/domains/{domain}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ orgs/ :orgId/ mail/ membersMembers of the organization, to choose mailbox members from.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/members' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
members: {
userId: string
email: string
name?: string
}[]
}/ v1/ orgs/ :orgId/ mail/ admin/ mailboxesEvery mailbox of the organization with its members and aliases.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/admin/mailboxes' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
mailboxes: {
mailboxId: string
address: string
domain: string
displayName: string
members: string[]
aliases: string[]
createdAt?: number
}[]
}/ v1/ orgs/ :orgId/ mail/ admin/ mailboxesCreates a mailbox at one of the organization's domains, with a sender name and members.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).
Request body
localPartstringrequiredMatches
^[a-z0-9](?:[a-z0-9._-]{0,62}[a-z0-9])?$. Trimmed. Lowercased.domainstringrequiredTrimmed. Lowercased.
displayNamestringDefault
"". Up to 200 characters. Trimmed.membersstring[]Default
[]. Up to 100 items. Each up to 64 characters.
Errors
400Mailbox members must belong to the organization.400Enter a valid address.404Domain not found409… is already in use.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/admin/mailboxes' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"localPart": "example",
"domain": "example"
}'Response 201
{
mailbox: {
mailboxId: string
address: string
domain: string
displayName: string
members: string[]
aliases: string[]
createdAt?: number
}
}/ v1/ orgs/ :orgId/ mail/ admin/ mailboxes/ :mailboxIdChanges a mailbox's sender name or members.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).
Request body
displayNamestringUp to 200 characters. Trimmed.
membersstring[]Up to 100 items. Each up to 64 characters.
Errors
400Mailbox members must belong to the organization.404Mailbox not found
curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/admin/mailboxes/{mailboxId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"displayName": "Example",
"members": [
"example"
]
}'Response 200
{
mailbox: {
mailboxId: string
address: string
domain: string
displayName: string
members: string[]
aliases: string[]
createdAt?: number
}
}/ v1/ orgs/ :orgId/ mail/ admin/ mailboxes/ :mailboxIdDeletes a mailbox with all of its mail, drafts, labels and aliases.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).
Errors
404Mailbox not found
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/admin/mailboxes/{mailboxId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 202
{
background: true
}Response 204 with no body
/ v1/ orgs/ :orgId/ mail/ admin/ mailboxes/ :mailboxId/ aliasesAdds another address, at one of the organization's domains, that delivers to the mailbox.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).
Request body
addressstringrequiredTrimmed. Lowercased.
Errors
400Enter a valid address.404Mailbox not found404Domain not found409… is already in use.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/admin/mailboxes/{mailboxId}/aliases' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"address": "example"
}'Response 201
{
mailbox: {
mailboxId: string
address: string
domain: string
displayName: string
members: string[]
aliases: string[]
createdAt?: number
}
}/ v1/ orgs/ :orgId/ mail/ admin/ aliases/ :addressRemoves an alias.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).addressAn email address (URL-encoded): the alias, or the forwarding address; under
marketinga person's email address or mobile number.
Errors
404Alias not found
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/admin/aliases/{address}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ orgs/ :orgId/ mail/ usageMessages sent, received, bounced and complained about per day, and the organization's sending limits.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- mail:admin
Path parameters
orgIdOrganization id (
org_…).
Query parameters
daysintegerDefault
30. 1–90. Coerced from a string.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/usage' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
days: {
day: string
sent: number
received: number
bounced: number
complained: number
}[]
limits: {
sendPerDay: number
maxMessageMb: number
maxRecipients: number
}
}