Licence
The licence that decides how many services and which features the appliance will run.
Licence
curl
curl -X GET "https://appliance.example.com/api/v1/licence" \
-H "Authorization: Bearer $TOKEN"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/licence';
$headers = [
'Authorization: Bearer ' . $token,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
headers = {"Authorization": f"Bearer {token}"}
response = requests.get("https://appliance.example.com/api/v1/licence", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/licence', {
method: 'GET',
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await response.json();
Bruno
meta {
name: Get the licence
type: http
seq: 1
}
get {
url: https://{{node-0}}:{{port}}/api/v1/licence
body: none
auth: bearer
}
auth:bearer {
token: {{token}}
}
Response
{
"status": "success",
"message": "Licence Details",
"data": {
"platform": "vmware",
"serial": "5df-136b976c35",
"device": {
"id": "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"claim": {
"type": "endurance-device-claim",
"version": 1,
"public_key": "...",
"payload": "...",
"signature": "..."
}
},
"type": "trial",
"isTrial": true,
"licensed": true,
"position": "licensed",
"expired": false,
"daysToExpire": 29,
"expiresAt": "2026-10-03T09:12:44+00:00",
"tier": "",
"throughputGbps": 0,
"modules": [],
"trial": {
"startedAt": "2026-09-03T09:12:44+00:00",
"expiresAt": "2026-10-03T09:12:44+00:00",
"daysToExpire": 29,
"expired": false
},
"portalLease": null
}
}
curl
curl -X PUT "https://appliance.example.com/api/v1/licence" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"licence": "<licence>"
}'
PHP
<?php
$url = 'https://appliance.example.com/api/v1/licence';
$headers = [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
];
$payload = [
'licence' => '<licence>',
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
headers = {"Authorization": f"Bearer {token}"}
payload = {
"licence": "<licence>"
}
response = requests.put("https://appliance.example.com/api/v1/licence", headers=headers, json=payload)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/licence', {
method: 'PUT',
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"licence": "<licence>"
}),
});
const data = await response.json();
Bruno
meta {
name: Install a portal licence
type: http
seq: 1
}
put {
url: https://{{node-0}}:{{port}}/api/v1/licence
body: json
auth: bearer
}
headers {
Content-Type: application/json
}
auth:bearer {
token: {{token}}
}
body:json {
{
"licence": "<licence>"
}
}
Response
{
"status": "success",
"message": "Portal licence installed successfully"
}
curl
curl -X DELETE "https://appliance.example.com/api/v1/licence" \
-H "Authorization: Bearer $TOKEN"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/licence';
$headers = [
'Authorization: Bearer ' . $token,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
headers = {"Authorization": f"Bearer {token}"}
response = requests.delete("https://appliance.example.com/api/v1/licence", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/licence', {
method: 'DELETE',
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await response.json();
Bruno
meta {
name: Remove the portal licence
type: http
seq: 1
}
delete {
url: https://{{node-0}}:{{port}}/api/v1/licence
body: none
auth: bearer
}
auth:bearer {
token: {{token}}
}
Response
{
"status": "success",
"message": "Portal licence removed",
"data": {
"portal": "released",
"message": "The licence was released and its seat returned to the Portal.",
"at": "2026-09-03T20:15:00+00:00"
}
}
Check the licence with the Portal now
curl
curl -X POST "https://appliance.example.com/api/v1/licence/checkin" \
-H "Authorization: Bearer $TOKEN"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/licence/checkin';
$headers = [
'Authorization: Bearer ' . $token,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
headers = {"Authorization": f"Bearer {token}"}
response = requests.post("https://appliance.example.com/api/v1/licence/checkin", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/licence/checkin', {
method: 'POST',
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await response.json();
Bruno
meta {
name: Check the licence with the Portal now
type: http
seq: 1
}
post {
url: https://{{node-0}}:{{port}}/api/v1/licence/checkin
body: none
auth: bearer
}
auth:bearer {
token: {{token}}
}
Response
{
"status": "success",
"message": "Licence check-in",
"data": {
"at": "2026-09-03T20:15:00+00:00",
"status": "active",
"message": "The Portal confirmed this licence.",
"renewed": false
}
}
Start the trial licence
curl
curl -X POST "https://appliance.example.com/api/v1/licence/trial" \
-H "Authorization: Bearer $TOKEN"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/licence/trial';
$headers = [
'Authorization: Bearer ' . $token,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
headers = {"Authorization": f"Bearer {token}"}
response = requests.post("https://appliance.example.com/api/v1/licence/trial", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/licence/trial', {
method: 'POST',
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await response.json();
Bruno
meta {
name: Start the trial licence
type: http
seq: 1
}
post {
url: https://{{node-0}}:{{port}}/api/v1/licence/trial
body: none
auth: bearer
}
auth:bearer {
token: {{token}}
}
Response
{
"status": "success",
"message": "Trial licence started"
}