{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"710347c3-a519-4b3c-905b-23a68604083e","name":"Xelon HQ Public API Documentation","description":"## Overview\n\nThe Xelon HQ API is a RESTful interface that provides predictable URLs for accessing resources and retrieving HTTP responses. Our API accepts JSON-formatted content for both requests and responses, including errors.\n\nEach request must be authenticated and should not exceed the [rate limit](https://www.xelon.ch/docs/errors-formats-and-limits). Learn more about our API fundamentals [here](https://www.xelon.ch/docs/xelon-api-101).\n\n> Please note that folders and endpoints marked with a \\[-\\] prefix may not work correctly. We're doing our best to fix that asap. \n  \n\n## Base URL\n\nBase URL of all API requests is `https://hq.xelon.ch`.\n\n## Authorization\n\nWithin Xelon HQ API, to make authorized calls, you must provide an authorization header with the Bearer token, which stands for Service Token within the platform. You can learn how to obtain it [here](https://www.xelon.ch/docs/xelon-api-101#authorize-youself).\n\n## Key ID parameters\n\n| **Parameter** | **Description** | **Where to find** |\n| --- | --- | --- |\n| `cloudId` | An ID of a specific Cloud. | You can use our public clouds: Public Cloud CH Rümlang – `1`, or Public Cloud CH Lupfig – `6`. |\n| `tenant_id` | An ID of a specific organization. (Sometimes referred to as TENANT ID / TENANT_ID) | **Organization** **\\>** `GET` **List of all organizations** **\\>** `id`. |\n| `localvmid` | An ID of a specific device, often referred to as in endpoint URLs. | **Devices and Servers > Device and Server Actions >** **`GET`** **Get list of devices** > `localvmid`. |\n| `networkId` | An ID of a specific network, either shared, LAN, or WAN. | **WAN, LAN, and Shared Networks >** **`GET`** **Get list of networks >** **`id`**. |\n| `kubernetes_id` | An ID of a specific K8s Cluster. | **Kubernetes Clusters >** **`GET`** **List of all Clusters >** `id`**.** |\n| `hv_system_id` | ID of a specific Cloud. |  |\n| `hv_type` | Type of your Cloud. Can be either `private` or `public`. | See `GET`  <br>**List of organization's clouds** for more info. |\n| `diskvalue` | Disk size number in gigabytes. 1GB to 2048GB for SSD. 50GB to 2048GB for HDD |  |\n| `backupId` | A backup frequency value that corresponds to a specific period. Learn more in [Backups](https://documenter.getpostman.com/view/19092098/UVeMGNTf#314444df-8c3a-4a5a-9ed6-820f3fa2b72f) folder. | **Backups** folder description. |\n\n## Permissions\n\nXelon HQ permissions array consists of three parameters:\n\n- `id` – a unique ID of a permission.\n    \n- **Technical name** – a more jargon name of a permission (`name`).\n    \n- **General name** – a more plain and clear name of a permission (`label`).\n    \n\n| `id` | `name` | `label` |\n| --- | --- | --- |\n| 1 | allow_manage_disaster_recovery | Allow disaster recovery management |\n| 2 | allow_manage_web_application_firewall | Allow manage web application firewall |\n| 3 | allow_view_virtual_machines | Allow view virtual machines |\n| 4 | allow_create_virtual_machine | Allow create virtual machine |\n| 5 | allow_view_virtual_machine | Allow view virtual machine |\n| 6 | allow_view_virtual_machine_reports | Allow view virtual machine reports |\n| 7 | allow_manage_virtual_machine_status | Allow manage virtual machine status |\n| 8 | allow_delete_virtual_machine | Allow delete virtual machine |\n| 9 | allow_manage_virtual_machine_backups | Allow manage virtual machine backups |\n| 10 | allow_manage_virtual_machine_resources | Allow manage virtual machine resources |\n| 11 | allow_manage_virtual_machine_snapshots | Allow manage virtual machine snapshots |\n| 12 | allow_manage_virtual_machine_scripts | Allow manage virtual machine scripts |\n| 13 | allow_manage_virtual_machine_monitoring | Allow manage virtual machine monitoring |\n| 14 | allow_manage_virtual_machine_info | Allow manage virtual machine info |\n| 15 | allow_view_networking | Allow view networking |\n| 16 | allow_view_network | Allow view network |\n| 17 | allow_create_network | Allow create network |\n| 18 | allow_manage_network | Allow manage network |\n| 19 | allow_view_templates | Allow view templates |\n| 20 | allow_manage_templates | Allow manage templates |\n| 21 | allow_create_templates | Allow create templates |\n| 22 | allow_view_organizations | Allow view organizations |\n| 23 | allow_create_organizations | Allow create organizations |\n| 24 | allow_manage_service_tokens | Allow manage service tokens |\n| 25 | allow_create_users | Allow create users |\n| 26 | allow_delete_users | Allow delete users |\n| 27 | allow_manage_users | Allow manage users |\n| 28 | allow_manage_users_permissions | Allow manage users permissions |\n| 29 | allow_delete_organizations | Allow delete organizations |\n| 30 | allow_disable_organizations | Allow disable organizations |\n| 31 | allow_view_organization_invoices | Allow view organization invoices |\n| 32 | allow_view_invoice_details | Allow view invoice details |\n| 33 | allow_view_credits_info | Allow view credits info |\n| 34 | allow_manage_payment_methods | Allow manage payment methods |\n| 35 | allow_view_usage_overview | Allow get usage overview |\n| 36 | allow_view_usage_reports | Allow view usage reports |\n| 37 | allow_view_organization_reports | Allow view organization reports |\n| 213 | allow_manage_virtual_machine_replications | Allows to see and operate VM Replication functionality |\n|  | allow_create_stretched_network | Allows users to create and manage Stretched networks. |\n\n### Rate limits\n\n500 API calls per minute for `POST` requests. Need extension? Contact our support, we're happy to help!\n\n### Formatting\n\nAll date entries should follow the [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format: `YYYY-MM-DD.`\n\n- Example: `\"startDate\": \"2022-12-24\"`\n    \n\n## Changelog\n\n2025-11-25\n\n- Added whole new [S3 Object Storage](https://developers.xelon.ch/#8099e980-de43-4f98-825b-fe38e4862068) section\n    \n\n2025-10-06\n\n- **Removed**: `monitoring` property deprecated across VM endpoints:\n    \n    - `GET /api/service/device` response no longer includes `monitoring` under `device.localvmdetails`\n        \n    - `POST /api/service/vmlist/create` request body no longer accepts `monitoring` parameter\n        \n    - `POST /api/service/vmlist/create` response no longer includes `monitoring` under `device` object\n        \n\n2025-03-27\n\n- The **`GET`** **/api/service/device** endpoint now includes a `labels` array.\n    \n\n2025-02-20\n\n- For `tenants/{tenantIdentifier}/networksToShare`, added new optional parameter `owner_tenant_id`\n    \n- The `GET /user/device` now includes a new boolean property `isConnected` under each network listed in the device.networks array.\n    \n- Endpoint for deleting a script has changed:\n    \n    - Old: `DELETE /{tenantIdentifier}/templates/deletescript`\n        \n    - New: `DELETE /{tenantIdentifier}/scripts/{scriptId}`\n        \n\n2024-12-05\n\n- GET /service/device now returns a new property under the `device` array:\n    \n    - `cpuCoresPerSocket` (integer)\n        \n\n2024-09-28\n\n- The `GET /services/device` now includes the following new boolean properties in the request:\n    \n    - `cpuHotAdd`\n        \n    - `cpuHotRemove`\n        \n    - `ramHotAdd`\n        \n        - These indicate support for hot-adding or removing CPU and RAM on the VM.\n            \n- The `PUT /service/{tenantIdentifier}/vmlist/{vmId}/update/{networkId}/{unit}` now supports two new boolean properties in the request body:\n    \n- `connectOnPowerOn`\n    \n- `isConnected`\n    \n- For the **Create LAN network and Create WAN network endpoints** added new integer type property called `\"networkSpeed\"`\n    \n- `/user/vmlist/create` request payload has two new boolean fields: `connectOnPowerOn` (connect VM to network on power-on) and `hostnameVM` name.\n    \n- The `GET /service/{tenantIdentifier}/vmlist/{vmId}/editserver` response now includes two new boolean properties under each `networkInterface.network` object:\n    \n    - `isConnected`\n        \n    - `startConnected`\n        \n\n2024-09-03\n\n- For `api/service/{tenantIdentifier}/networks/{networkId}/show` endpoint, added optional response property `hvSystemId`\n    \n- For the **Get firewall info** endpoint, added a new string type property called `\"state\"` that can be either `\"ready\"` or `\"provisioning\"`.\n    \n\n2024-06-17\n\n- `/service/{tenantIdentifier}/users/restore` now requires an `allow_delete_users` permission\n    \n- Added new `/tenants/{tenantIdentifier}/children-with-parent` and `/tenants/{tenantIdentifier}/users/permissions` endpoints.\n    \n- `/service/tenants/{tenantIdentifier}/users/roles`endpoint is split into 3 separate endpoints: `/roles`, `/children-with-parent`, and `/permissions`\n    \n\n2023-12-9\n\n- `GET` List of subtenants endpoint can now retrieve deleted subtenants as well. To see them, add the `?isDeleted=true` query to the request.\n    \n\n2023-08-6\n\n- We’re streamlining the **Get list of networks** endpoint by removing the `stretched_network` parameter.\n    \n    - Renamed the `hv_system` array to `hv_systems`.\n        \n    - In instances where a network is stretched and connected to multiple clouds, now the list of clouds goes in a numbered array called `hv_systems`.\n        \n- We’ve also introduced improved security with Client ID: To ensure the utmost security and authenticity of your requests, we highly recommend including the Client ID in the header of your API requests.  \n    \\- Simply go to My Organization > Service Tokens block > Client ID button. For all your API requests, please remember to include the following header: `X-User-Id:` .\n    \n- Bonus: we added more flexibility for Service Tokens. From now on, one IP address can have multiple Service Tokens associated with it. This enhancement offers greater flexibility and control over token management. Additionally, we now support IPv4/IPv6 ranges in pattern format (e.g., 192.168..) and CIDR/subnet format (e.g., 192.168.0.0/16), giving you more options to work with.\n    \n\n2022-09-1\n\n- Within the `POST` **Usage report \\[Tenant view\\]**, the `total` parameter now represents the total resource hours.\n    \n- The `GET` **Get list of devices** endpoint response now has the following parameters removed:\n    \n\n```\nupdated_at\ndeleted_at\niso_mounted\nserviceuser_status\nserviceuser_lastchecked\nuser_id\nservice_id\nmonitoring\nnotes\nservice_cluster_type\n\n ```\n\n2022-07-11\n\n- Due to the multiple finance emails functionality, the `financeemail` parameter is now an array. Example: `\"financeemail\": [\"address1@xelon.ch\",\"address2@xelon.ch\"]`","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"19092098","team":477374,"collectionId":"710347c3-a519-4b3c-905b-23a68604083e","publishedId":"UVeMGNTf","public":true,"publicUrl":"https://developers.xelon.ch","privateUrl":"https://go.postman.co/documentation/19092098-710347c3-a519-4b3c-905b-23a68604083e","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"007bff"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2022-05-20T10:07:10.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/45f259f5b3d8fbe22d9cc7906699920d6462428af5597971787744b8f0623067","favicon":"https://res.cloudinary.com/postman/image/upload/v1620289021/team/mem209dhxxs0wveuxfy3.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://developers.xelon.ch/view/metadata/UVeMGNTf"}