Partners
MSP partnerships. A partner (MSP) asks to manage this organisation; the organisation approves it and chooses what the partner may do: devices.read (see devices in the partner's RMM), device_management.manage (manage device policies) and admin.full (delegated admin of the Admin Centre). Either side can end it.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/admin/partners | List partnerships |
| POST | /v1/admin/partners/requests | Ask to manage a customer |
| POST | /v1/admin/partners/:id/approve | Approve a partner |
| POST | /v1/admin/partners/:id/decline | Decline a partner's request |
| PUT | /v1/admin/partners/:id/permissions | Change what a partner may do |
| POST | /v1/admin/partners/:id/end | End a partnership |
| GET | /v1/admin/partners/sites | Your RMM sites and the customers they're linked to |
| PUT | /v1/admin/partners/sites/:siteId | Link an RMM site to a customer |
#List partnerships
GET
/v1/admin/partnersPartners managing this organisation, customers this organisation manages, pending requests, and the permissions available.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/partners- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Response 200
| Field | Type | Description |
|---|---|---|
permissions | array of any |
Example response
JSON
{
"…list": "…",
"permissions": []
}Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/partners' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/partners', {
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/partners",
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/partners' -Headers $headers#Ask to manage a customer
POST
/v1/admin/partners/requestsSends a partnership request to the organisation that owns the domain. They approve it and choose the permissions.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/partners/requests- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Request body JSON
| Name | Type | Description |
|---|---|---|
domain | string | One of the customer's verified domains. |
permissions | array of any | What you're asking for: devices.read, device_management.manage. (admin.full can only be given by the customer.) |
note | string | A message for the customer. |
Response 201
| Field | Type | Description |
|---|---|---|
id | integer | |
customer | string |
Example response
JSON
{
"id": 42,
"customer": "string"
}Errors
| Status | Message |
|---|---|
| 404 | No Bramble organisation uses that domain. |
| 400 | That's your own organisation. |
Example request
Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/partners/requests' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"string","permissions":[],"note":"string"}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/partners/requests', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"domain":"string","permissions":[],"note":"string"}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/partners/requests",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"domain":"string","permissions":[],"note":"string"},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"domain":"string","permissions":[],"note":"string"}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/partners/requests' -Headers $headers -ContentType 'application/json' -Body $body#Approve a partner
POST
/v1/admin/partners/:id/approve- Address
https://<your-org>.brambleit.cloud/api/v1/admin/partners/:id/approve- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
permissions | array of any | What the partner may do: devices.read, device_management.manage, admin.full. |
Response 200
| Field | Type | Description |
|---|---|---|
status | string | |
permissions | array of any |
Example response
JSON
{
"status": "active",
"permissions": []
}Errors
| Status | Message |
|---|---|
| 409 | This request has already been answered. |
| 400 | Choose at least one thing they may do. |
Example request
Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/approve' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"permissions":[]}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/approve', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"permissions":[]}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/approve",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"permissions":[]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"permissions":[]}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/approve' -Headers $headers -ContentType 'application/json' -Body $body#Decline a partner's request
POST
/v1/admin/partners/:id/decline- Address
https://<your-org>.brambleit.cloud/api/v1/admin/partners/:id/decline- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
status | string |
Example response
JSON
{
"status": "active"
}Errors
| Status | Message |
|---|---|
| 409 | This request has already been answered. |
Example request
Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/decline' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/decline', {
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/partners/42/decline",
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/partners/42/decline' -Headers $headers#Change what a partner may do
PUT
/v1/admin/partners/:id/permissions- Address
https://<your-org>.brambleit.cloud/api/v1/admin/partners/:id/permissions- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
permissions | array of any |
Response 200
| Field | Type | Description |
|---|---|---|
permissions | array of any |
Example response
JSON
{
"permissions": []
}Errors
| Status | Message |
|---|---|
| 409 | Only an active partnership can be changed. |
| 400 | Choose at least one thing they may do, or end the partnership. |
Example request
Bash
curl -X PUT 'https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/permissions' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"permissions":[]}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/permissions', {
method: 'PUT',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"permissions":[]}),
});
const data = await res.json();Python
import os, requests
r = requests.put(
"https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/permissions",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"permissions":[]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"permissions":[]}'
Invoke-RestMethod -Method PUT -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/permissions' -Headers $headers -ContentType 'application/json' -Body $body#End a partnership
POST
/v1/admin/partners/:id/end- Address
https://<your-org>.brambleit.cloud/api/v1/admin/partners/:id/end- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
status | string |
Example response
JSON
{
"status": "active"
}Errors
| Status | Message |
|---|---|
| 409 | This partnership has already ended. |
Example request
Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/end' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/partners/42/end', {
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/partners/42/end",
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/partners/42/end' -Headers $headers#Your RMM sites and the customers they're linked to
GET
/v1/admin/partners/sites- Address
https://<your-org>.brambleit.cloud/api/v1/admin/partners/sites- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Response 200
| Field | Type | Description |
|---|---|---|
sites | array of any | |
customers | array of object | |
customers[].id | integer | |
customers[].name | string | |
customers[].permissions | array of any |
Example response
JSON
{
"sites": [],
"customers": [
{
"id": 42,
"name": "Example name",
"permissions": []
}
]
}Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/partners/sites' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/partners/sites', {
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/partners/sites",
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/partners/sites' -Headers $headers#Link an RMM site to a customer
PUT
/v1/admin/partners/sites/:siteId- Address
https://<your-org>.brambleit.cloud/api/v1/admin/partners/sites/:siteId- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Path parameters
| Name | Type | Description |
|---|---|---|
siteIdrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
customer_tenant_id | number | The customer organisation, or null to unlink. |
Response 200
| Field | Type | Description |
|---|---|---|
managed_tenant_id | integer |
Example response
JSON
{
"managed_tenant_id": 7
}Errors
| Status | Message |
|---|---|
| 404 | Site not found |
| 400 | Only organisations that have approved you as their partner can be linked. |
Example request
Bash
curl -X PUT 'https://<your-org>.brambleit.cloud/api/v1/admin/partners/sites/1' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"customer_tenant_id":12.5}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/partners/sites/1', {
method: 'PUT',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"customer_tenant_id":12.5}),
});
const data = await res.json();Python
import os, requests
r = requests.put(
"https://<your-org>.brambleit.cloud/api/v1/admin/partners/sites/1",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"customer_tenant_id":12.5},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"customer_tenant_id":12.5}'
Invoke-RestMethod -Method PUT -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/partners/sites/1' -Headers $headers -ContentType 'application/json' -Body $bodyWas this page helpful?
Thanks for your feedback.