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).
| Method | Path | Summary |
|---|---|---|
| GET | /v1/admin/mail/mailboxes | List every mailbox |
| GET | /v1/admin/mail/domains | List mail domains and their DNS |
| POST | /v1/admin/mail/domains/:domain/setup | Set up mail for a domain |
| POST | /v1/admin/mail/domains/:domain/check | Check a mail domain's DNS now |
| GET | /v1/admin/mail/shared | List shared mailboxes |
| POST | /v1/admin/mail/shared | Create a shared mailbox |
| POST | /v1/admin/mail/shared/existing | Turn an existing mailbox into a shared one |
| PATCH | /v1/admin/mail/shared/:id | Change a shared mailbox |
| DELETE | /v1/admin/mail/shared/:id | Stop sharing a mailbox |
| DELETE | /v1/admin/mail/mailboxes/:domain/:boxId | Deletes a shared or unassigned mailbox and all its mail from the server |
| GET | /v1/admin/mail/users/:userId/mailbox | A person's mailbox, so "Remove user" can ask what happens to it |
| GET | /v1/admin/mail/users/:userId/app-passwords | List a person's admin-made app passwords |
| POST | /v1/admin/mail/users/:userId/app-passwords | Make an app password for a person |
| DELETE | /v1/admin/mail/users/:userId/app-passwords/:id | Revoke an app password |
| PUT | /v1/admin/mail/shared/:id/members/:userId | Set 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
| Field | Type | Description |
|---|---|---|
success | boolean |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/mail/mailboxes', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/mail/mailboxes",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/mailboxes' -Headers $headers#List mail domains and their DNS
GET
/v1/admin/mail/domainsEvery 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
| Field | Type | Description |
|---|---|---|
success | boolean | |
domains | array 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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains' -Headers $headers#Set up mail for a domain
POST
/v1/admin/mail/domains/:domain/setupCreates 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
| Name | Type | Description |
|---|---|---|
domainrequired | string |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains/string/setup', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains/string/setup",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains/string/setup' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
domainrequired | string |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains/string/check', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains/string/check",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/domains/string/check' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
domainrequired | string | |
boxIdrequired | number |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean | |
address | any |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/mail/mailboxes/string/12.5', {
method: 'DELETE',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.delete(
"https://<your-org>.brambleit.cloud/api/v1/admin/mail/mailboxes/string/12.5",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method DELETE -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/mailboxes/string/12.5' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
userIdrequired | number |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean | |
mailbox | any |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/mailbox', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/mailbox",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/mailbox' -Headers $headers#List a person's admin-made app passwords
GET
/v1/admin/mail/users/:userId/app-passwordsApp 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
| Name | Type | Description |
|---|---|---|
userIdrequired | number |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean | |
app_passwords | array 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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords' -Headers $headers#Make an app password for a person
POST
/v1/admin/mail/users/:userId/app-passwordsFor 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
| Name | Type | Description |
|---|---|---|
userIdrequired | number |
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | What it's for. |
Response 201
| Field | Type | Description |
|---|---|---|
success | boolean | |
app_password | any |
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"}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name"}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name"},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name"}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords' -Headers $headers -ContentType 'application/json' -Body $body#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
| Name | Type | Description |
|---|---|---|
userIdrequired | number | |
idrequired | number |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
JSON
{
"success": true
}Errors
| Status | Message |
|---|---|
| 404 | App 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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords/12.5', {
method: 'DELETE',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.delete(
"https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords/12.5",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method DELETE -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/mail/users/12.5/app-passwords/12.5' -Headers $headersWas this page helpful?
Thanks for your feedback.