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.

MethodPathSummary
GET/v1/admin/partnersList partnerships
POST/v1/admin/partners/requestsAsk to manage a customer
POST/v1/admin/partners/:id/approveApprove a partner
POST/v1/admin/partners/:id/declineDecline a partner's request
PUT/v1/admin/partners/:id/permissionsChange what a partner may do
POST/v1/admin/partners/:id/endEnd a partnership
GET/v1/admin/partners/sitesYour RMM sites and the customers they're linked to
PUT/v1/admin/partners/sites/:siteIdLink an RMM site to a customer

#List partnerships

GET/v1/admin/partners

Partners 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

FieldTypeDescription
permissionsarray 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"

#Ask to manage a customer

POST/v1/admin/partners/requests

Sends 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

NameTypeDescription
domainstringOne of the customer's verified domains.
permissionsarray of anyWhat you're asking for: devices.read, device_management.manage. (admin.full can only be given by the customer.)
notestringA message for the customer.

Response 201

FieldTypeDescription
idinteger
customerstring
Example response
JSON
{
  "id": 42,
  "customer": "string"
}

Errors

StatusMessage
404No Bramble organisation uses that domain.
400That'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"}'

#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

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
permissionsarray of anyWhat the partner may do: devices.read, device_management.manage, admin.full.

Response 200

FieldTypeDescription
statusstring
permissionsarray of any
Example response
JSON
{
  "status": "active",
  "permissions": []
}

Errors

StatusMessage
409This request has already been answered.
400Choose 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":[]}'

#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

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
statusstring
Example response
JSON
{
  "status": "active"
}

Errors

StatusMessage
409This 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"

#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

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
permissionsarray of any

Response 200

FieldTypeDescription
permissionsarray of any
Example response
JSON
{
  "permissions": []
}

Errors

StatusMessage
409Only an active partnership can be changed.
400Choose 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":[]}'

#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

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
statusstring
Example response
JSON
{
  "status": "active"
}

Errors

StatusMessage
409This 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"

#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

FieldTypeDescription
sitesarray of any
customersarray of object
customers[].idinteger
customers[].namestring
customers[].permissionsarray 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"

#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

NameTypeDescription
siteIdrequiredinteger

Request body JSON

NameTypeDescription
customer_tenant_idnumberThe customer organisation, or null to unlink.

Response 200

FieldTypeDescription
managed_tenant_idinteger
Example response
JSON
{
  "managed_tenant_id": 7
}

Errors

StatusMessage
404Site not found
400Only 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}'