List installed catalogue apps
curl --request GET \
--url https://my.server.express/api/v1/cloud/{id}/app-installs \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://my.server.express/api/v1/cloud/{id}/app-installs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://my.server.express/api/v1/cloud/{id}/app-installs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"installs": [
{
"id": "<string>",
"slug": "<string>",
"name": "<string>",
"icon": "<string>",
"status": "PENDING",
"attempts": 123,
"lastError": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"readyAt": "2023-11-07T05:31:56Z",
"url": "<string>",
"docsUrl": "<string>"
}
],
"catalogue": [
{
"slug": "<string>",
"name": "<string>",
"tagline": "<string>",
"description": "<string>",
"icon": "<string>",
"fields": [
{
"key": "<string>",
"label": "<string>",
"type": "text",
"required": true,
"placeholder": "<string>",
"help": "<string>",
"default": "<string>",
"options": [
{
"value": "<string>",
"label": "<string>",
"help": "<string>"
}
],
"min": 123,
"max": 123,
"group": "<string>"
}
],
"minCores": 123,
"minRamMb": 123,
"minDiskGb": 123,
"httpPort": 123,
"docsUrl": "<string>"
}
],
"server": {
"cores": 123,
"ramMb": 123,
"diskGb": 123,
"ipAddress": "<string>"
}
}
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}Cloud
List installed catalogue apps
Catalogue apps installed on this server (newest first, removed ones kept as history), the installable catalogue, and the server’s size so a picker can explain why an app won’t fit. Session auth only; any team role can read it.
GET
/
v1
/
cloud
/
{id}
/
app-installs
List installed catalogue apps
curl --request GET \
--url https://my.server.express/api/v1/cloud/{id}/app-installs \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://my.server.express/api/v1/cloud/{id}/app-installs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://my.server.express/api/v1/cloud/{id}/app-installs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"installs": [
{
"id": "<string>",
"slug": "<string>",
"name": "<string>",
"icon": "<string>",
"status": "PENDING",
"attempts": 123,
"lastError": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"readyAt": "2023-11-07T05:31:56Z",
"url": "<string>",
"docsUrl": "<string>"
}
],
"catalogue": [
{
"slug": "<string>",
"name": "<string>",
"tagline": "<string>",
"description": "<string>",
"icon": "<string>",
"fields": [
{
"key": "<string>",
"label": "<string>",
"type": "text",
"required": true,
"placeholder": "<string>",
"help": "<string>",
"default": "<string>",
"options": [
{
"value": "<string>",
"label": "<string>",
"help": "<string>"
}
],
"min": 123,
"max": 123,
"group": "<string>"
}
],
"minCores": 123,
"minRamMb": 123,
"minDiskGb": 123,
"httpPort": 123,
"docsUrl": "<string>"
}
],
"server": {
"cores": 123,
"ramMb": 123,
"diskGb": 123,
"ipAddress": "<string>"
}
}
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}Authorizations
Session access token (JWT) from POST /v1/auth/login or /v1/auth/refresh. A session satisfies every API scope.
Path Parameters
Service id of the cloud server.