Delete the organisation
Permanently deleting the organisation is a three-step process: request (type the organisation's name), confirm from the link emailed to the admin, then a grace period during which it can be cancelled. After the grace period every app's data is purged. The preview shows what would go.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/admin/tenant/delete-preview | Preview what would be deleted if this tenant were purged |
| POST | /v1/admin/tenant/delete-request | Request permanent deletion of this tenant |
| GET | /v1/admin/tenant/delete-confirm | Confirm a pending tenant deletion via emailed token |
| POST | /v1/admin/tenant/delete-cancel | Cancel a pending tenant deletion request |
| GET | /v1/admin/tenant/delete-status | Check for an active deletion request on this tenant |
#Preview what would be deleted if this tenant were purged
/v1/admin/tenant/delete-previewPreview what would be deleted if this tenant were purged. Requires the GLOBAL_ADMIN role. Read-only, no side effects — safe to call anytime.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-preview- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Response 200
Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-preview' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-preview', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-preview",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-preview' -Headers $headers#Request permanent deletion of this tenant
/v1/admin/tenant/delete-requestRequest permanent deletion of this tenant. Requires the GLOBAL_ADMIN role. confirm_text must exactly match the tenant's name. Doesn't delete anything immediately — emails a confirmation link (valid 24h) to the requester's recovery email; clicking it schedules a purge after a 14-day grace period, cancellable any time before then.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-request- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Request body JSON
| Name | Type | Description |
|---|---|---|
confirm_text | string | The organisation's exact name, as a typed confirmation. |
Response 201
| Field | Type | Description |
|---|---|---|
message | string | |
preview | any |
Example response
{
"message": "Saved",
"preview": null
}Errors
| Status | Message |
|---|---|
| 400 | The organisation name you typed doesn't match |
| 404 | Tenant not found |
| 409 | A deletion request is already pending for this organisation |
| 404 | User not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-request' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"confirm_text":"string"}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-request', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"confirm_text":"string"}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-request",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"confirm_text":"string"},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"confirm_text":"string"}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-request' -Headers $headers -ContentType 'application/json' -Body $body#Confirm a pending tenant deletion via emailed token
/v1/admin/tenant/delete-confirmThe link emailed after a deletion request. It needs no sign-in (the token is the proof), schedules the purge after the grace period, and redirects to the Admin Centre.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-confirm- Requires
- None: public, or protected by a token in the address or body.
Query parameters
| Name | Type | Description |
|---|---|---|
token | string |
Response
A redirect.
Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-confirm' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-confirm', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-confirm",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-confirm' -Headers $headers#Cancel a pending tenant deletion request
/v1/admin/tenant/delete-cancelCancel a pending tenant deletion request. Requires the GLOBAL_ADMIN role. Cancels any request still in pending_confirmation or pending_purge status.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-cancel- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Response 200
| Field | Type | Description |
|---|---|---|
message | string |
Example response
{
"message": "Saved"
}Errors
| Status | Message |
|---|---|
| 404 | No pending deletion request found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-cancel' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-cancel', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-cancel",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-cancel' -Headers $headers#Check for an active deletion request on this tenant
/v1/admin/tenant/delete-statusCheck for an active deletion request on this tenant. Requires the GLOBAL_ADMIN role. Powers the BRM-Admin danger-zone banner.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-status- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Response 200
| Field | Type | Description |
|---|---|---|
request | object, or null | |
request.status | string: "pending_confirmation" | "pending_purge" | "cancelled" | "completed" | |
request.requested_at | string (date-time), or null | |
request.confirmed_at | string (date-time), or null | |
request.purge_after | string (date-time), or null |
Example response
{
"request": {
"status": "pending_confirmation",
"requested_at": "2026-11-12T09:30:00.000Z",
"confirmed_at": "2026-11-12T09:30:00.000Z",
"purge_after": "2026-11-12T09:30:00.000Z"
}
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-status' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-status', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-status",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/delete-status' -Headers $headersWas this page helpful?
Thanks for your feedback.