curl --request POST \
--url https://api2.rhombussystems.com/api/partner/license/reclaimFromClient \
--header 'Content-Type: application/json' \
--header 'x-auth-apikey: <api-key>' \
--header 'x-auth-scheme: <x-auth-scheme>' \
--data '
{
"clientOrgUuid": "AAAAAAAAAAAAAAAAAAAAAA",
"forceUnassign": true,
"licenseUuids": [
"AAAAAAAAAAAAAAAAAAAAAA"
],
"productCode": "<string>",
"quantity": 123,
"requestId": "<string>"
}
'import requests
url = "https://api2.rhombussystems.com/api/partner/license/reclaimFromClient"
payload = {
"clientOrgUuid": "AAAAAAAAAAAAAAAAAAAAAA",
"forceUnassign": True,
"licenseUuids": ["AAAAAAAAAAAAAAAAAAAAAA"],
"productCode": "<string>",
"quantity": 123,
"requestId": "<string>"
}
headers = {
"x-auth-scheme": "<x-auth-scheme>",
"x-auth-apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-auth-scheme': '<x-auth-scheme>',
'x-auth-apikey': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
clientOrgUuid: 'AAAAAAAAAAAAAAAAAAAAAA',
forceUnassign: true,
licenseUuids: ['AAAAAAAAAAAAAAAAAAAAAA'],
productCode: '<string>',
quantity: 123,
requestId: '<string>'
})
};
fetch('https://api2.rhombussystems.com/api/partner/license/reclaimFromClient', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api2.rhombussystems.com/api/partner/license/reclaimFromClient")
.header("x-auth-scheme", "<x-auth-scheme>")
.header("x-auth-apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"clientOrgUuid\": \"AAAAAAAAAAAAAAAAAAAAAA\",\n \"forceUnassign\": true,\n \"licenseUuids\": [\n \"AAAAAAAAAAAAAAAAAAAAAA\"\n ],\n \"productCode\": \"<string>\",\n \"quantity\": 123,\n \"requestId\": \"<string>\"\n}")
.asString();{
"error": true,
"errorMsg": "<string>",
"reclaimed": [
"AAAAAAAAAAAAAAAAAAAAAA"
],
"skipped": [
{
"licenseUuid": "AAAAAAAAAAAAAAAAAAAAAA",
"reason": "<string>"
}
],
"unassignedDevices": [
"AAAAAAAAAAAAAAAAAAAAAA"
],
"warningMsg": "<string>"
}Reclaim pool licenses from a managed client
MSP only. Moves MSP-owned licenses held by a managed client back to the pool, optionally unassigning them from devices first. Idempotent by requestId.
curl --request POST \
--url https://api2.rhombussystems.com/api/partner/license/reclaimFromClient \
--header 'Content-Type: application/json' \
--header 'x-auth-apikey: <api-key>' \
--header 'x-auth-scheme: <x-auth-scheme>' \
--data '
{
"clientOrgUuid": "AAAAAAAAAAAAAAAAAAAAAA",
"forceUnassign": true,
"licenseUuids": [
"AAAAAAAAAAAAAAAAAAAAAA"
],
"productCode": "<string>",
"quantity": 123,
"requestId": "<string>"
}
'import requests
url = "https://api2.rhombussystems.com/api/partner/license/reclaimFromClient"
payload = {
"clientOrgUuid": "AAAAAAAAAAAAAAAAAAAAAA",
"forceUnassign": True,
"licenseUuids": ["AAAAAAAAAAAAAAAAAAAAAA"],
"productCode": "<string>",
"quantity": 123,
"requestId": "<string>"
}
headers = {
"x-auth-scheme": "<x-auth-scheme>",
"x-auth-apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-auth-scheme': '<x-auth-scheme>',
'x-auth-apikey': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
clientOrgUuid: 'AAAAAAAAAAAAAAAAAAAAAA',
forceUnassign: true,
licenseUuids: ['AAAAAAAAAAAAAAAAAAAAAA'],
productCode: '<string>',
quantity: 123,
requestId: '<string>'
})
};
fetch('https://api2.rhombussystems.com/api/partner/license/reclaimFromClient', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api2.rhombussystems.com/api/partner/license/reclaimFromClient")
.header("x-auth-scheme", "<x-auth-scheme>")
.header("x-auth-apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"clientOrgUuid\": \"AAAAAAAAAAAAAAAAAAAAAA\",\n \"forceUnassign\": true,\n \"licenseUuids\": [\n \"AAAAAAAAAAAAAAAAAAAAAA\"\n ],\n \"productCode\": \"<string>\",\n \"quantity\": 123,\n \"requestId\": \"<string>\"\n}")
.asString();{
"error": true,
"errorMsg": "<string>",
"reclaimed": [
"AAAAAAAAAAAAAAAAAAAAAA"
],
"skipped": [
{
"licenseUuid": "AAAAAAAAAAAAAAAAAAAAAA",
"reason": "<string>"
}
],
"unassignedDevices": [
"AAAAAAAAAAAAAAAAAAAAAA"
],
"warningMsg": "<string>"
}Authorizations
Your Rhombus API key. Must be accompanied by the x-auth-scheme header set to api-token (or partner-api-token for partner endpoints).
Headers
Authentication scheme identifier. Use api-token for standard API key authentication, partner-api-token for partner API key authentication. Must be paired with the x-auth-apikey header containing your API key.
api-token, api, partner-api-token, partner-api Body
Move pooled licenses held by a managed client back to the MSP.
base 64 (url-safe) uuid string
"AAAAAAAAAAAAAAAAAAAAAA"
When true, device-assigned licenses are unassigned first (config downgrade included).
Explicit licenses; or use productCode + quantity.
base 64 (url-safe) uuid string
"AAAAAAAAAAAAAAAAAAAAAA"
Idempotency key; retries with the same id are safe.
Response
OK
Per-license outcome of a reclaim.
base 64 (url-safe) uuid string
"AAAAAAAAAAAAAAAAAAAAAA"
Show child attributes
Show child attributes
Devices whose license was force-unassigned by this call.
base 64 (url-safe) uuid string
"AAAAAAAAAAAAAAAAAAAAAA"