App settings: Mail

Mail domains (set up and check DNS), every mailbox, shared mailboxes and their members (full access, send as, send on behalf), and app passwords for accounts that never sign in interactively (a scanner, Paper's intake).

MethodPathSummary
GET/v1/admin/mail/mailboxesList every mailbox
GET/v1/admin/mail/domainsList mail domains and their DNS
POST/v1/admin/mail/domains/:domain/setupSet up mail for a domain
POST/v1/admin/mail/domains/:domain/checkCheck a mail domain's DNS now
GET/v1/admin/mail/sharedList shared mailboxes
POST/v1/admin/mail/sharedCreate a shared mailbox
POST/v1/admin/mail/shared/existingTurn an existing mailbox into a shared one
PATCH/v1/admin/mail/shared/:idChange a shared mailbox
DELETE/v1/admin/mail/shared/:idStop sharing a mailbox
DELETE/v1/admin/mail/mailboxes/:domain/:boxIdDeletes a shared or unassigned mailbox and all its mail from the server
GET/v1/admin/mail/users/:userId/mailboxA person's mailbox, so "Remove user" can ask what happens to it
GET/v1/admin/mail/users/:userId/app-passwordsList a person's admin-made app passwords
POST/v1/admin/mail/users/:userId/app-passwordsMake an app password for a person
DELETE/v1/admin/mail/users/:userId/app-passwords/:idRevoke an app password
PUT/v1/admin/mail/shared/:id/members/:userIdSet a person's access to a shared mailbox

#List every mailbox

GET/v1/admin/mail/mailboxes
Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/mailboxes
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true,
  "…await shared.allMailboxe": "…"
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/mailboxes' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List mail domains and their DNS

GET/v1/admin/mail/domains

Every verified domain with its mail state and DNS records (services/mailDomains.js).

Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Response 200

FieldTypeDescription
successboolean
domainsarray of any
Example response
JSON
{
  "success": true,
  "domains": []
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Set up mail for a domain

POST/v1/admin/mail/domains/:domain/setup

Creates the domain on the mail server and returns the DNS records (MX, SPF, DKIM, DMARC) to publish.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains/:domain/setup
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Path parameters

NameTypeDescription
domainrequiredstring

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true,
  "…await mailDomains.setUp(": "…"
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains/string/setup' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Check a mail domain's DNS now

POST/v1/admin/mail/domains/:domain/check
Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains/:domain/check
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Path parameters

NameTypeDescription
domainrequiredstring

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true,
  "…await mailDomains.checkN": "…"
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains/string/check' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List shared mailboxes

GET/v1/admin/mail/shared
Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Response 200

FieldTypeDescription
successboolean
sharedany
Example response
JSON
{
  "success": true,
  "shared": null
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Create a shared mailbox

POST/v1/admin/mail/shared
Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Request body JSON

NameTypeDescription
local_partanyThe part before the @.
domainstringA mail domain.
display_namestringIts name.

Response 201

FieldTypeDescription
successboolean
sharedany
Example response
JSON
{
  "success": true,
  "shared": null
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"local_part":"…","domain":"string","display_name":"Example display name"}'

#Turn an existing mailbox into a shared one

POST/v1/admin/mail/shared/existing
Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared/existing
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Request body JSON

NameTypeDescription
emailstringThe mailbox's address.
display_namestring
keep_sign_inbooleanKeep the old account able to sign in.

Response 201

FieldTypeDescription
successboolean
sharedany
Example response
JSON
{
  "success": true,
  "shared": null
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared/existing' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"alex@example.com","display_name":"Example display name","keep_sign_in":false}'

#Change a shared mailbox

PATCH/v1/admin/mail/shared/:id
Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Path parameters

NameTypeDescription
idrequirednumber

Request body JSON

NameTypeDescription
display_namestring
keep_sign_inany

Response 200

FieldTypeDescription
successboolean
sharedany
Example response
JSON
{
  "success": true,
  "shared": null
}

Errors

StatusMessage
404Shared mailbox not found.

Example request

Bash
curl -X PATCH 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared/12.5' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"display_name":"Example display name","keep_sign_in":"…"}'

#Stop sharing a mailbox

DELETE/v1/admin/mail/shared/:id
Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Path parameters

NameTypeDescription
idrequirednumber

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
404Shared mailbox not found.

Example request

Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared/12.5' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Deletes a shared or unassigned mailbox and all its mail from the server

DELETE/v1/admin/mail/mailboxes/:domain/:boxId
Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/mailboxes/:domain/:boxId
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Path parameters

NameTypeDescription
domainrequiredstring
boxIdrequirednumber

Response 200

FieldTypeDescription
successboolean
addressany
Example response
JSON
{
  "success": true,
  "address": null
}

Example request

Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/mailboxes/string/12.5' \
  -H "X-API-Key: $BRAMBLE_KEY"

#A person's mailbox, so "Remove user" can ask what happens to it

GET/v1/admin/mail/users/:userId/mailbox
Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/:userId/mailbox
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Path parameters

NameTypeDescription
userIdrequirednumber

Response 200

FieldTypeDescription
successboolean
mailboxany
Example response
JSON
{
  "success": true,
  "mailbox": null
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/mailbox' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List a person's admin-made app passwords

GET/v1/admin/mail/users/:userId/app-passwords

App passwords made by an admin, for accounts that never sign in interactively (a scanner's or Paper's mailbox). services/appPasswords.js.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/:userId/app-passwords
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Path parameters

NameTypeDescription
userIdrequirednumber

Response 200

FieldTypeDescription
successboolean
app_passwordsarray of any
Example response
JSON
{
  "success": true,
  "app_passwords": []
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Make an app password for a person

POST/v1/admin/mail/users/:userId/app-passwords

For accounts that never sign in interactively (a scanner, Paper's intake mailbox). The password is shown once.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/:userId/app-passwords
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Path parameters

NameTypeDescription
userIdrequirednumber

Request body JSON

NameTypeDescription
namestringWhat it's for.

Response 201

FieldTypeDescription
successboolean
app_passwordany
Example response
JSON
{
  "success": true,
  "app_password": null
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name"}'

#Revoke an app password

DELETE/v1/admin/mail/users/:userId/app-passwords/:id
Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/:userId/app-passwords/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Path parameters

NameTypeDescription
userIdrequirednumber
idrequirednumber

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
404App password not found.

Example request

Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords/12.5' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Set a person's access to a shared mailbox

PUT/v1/admin/mail/shared/:id/members/:userId
Address
https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared/:id/members/:userId
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Path parameters

NameTypeDescription
idrequirednumber
userIdrequirednumber

Request body JSON

NameTypeDescription
full_accessanyRead and manage the mailbox.
send_asarray of anySend as the mailbox's address.
send_on_behalfanySend "on behalf of" the mailbox.

Response 200

FieldTypeDescription
successboolean
sharedany
Example response
JSON
{
  "success": true,
  "shared": null
}

Example request

Bash
curl -X PUT 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/shared/12.5/members/12.5' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"full_access":"…","send_as":[],"send_on_behalf":"…"}'