openapi: 3.0.1 info: title: Compass Action Items Servers API version: '2023-05-30T22:28:43Z' description: HorizonIQ Compass REST API - manage bare metal and cloud infrastructure resources (servers, devices, managed firewalls, OS images, SSL certificates, billing, users, support cases, and action items) on the HorizonIQ (formerly INAP) Compass platform. Assembled from the per-endpoint OpenAPI fragments published at https://compass-horizoniq.readme.io/reference; operationIds and the documented Bearer securityScheme added by API Evangelist. servers: - url: https://api.compass.horizoniq.com/{basePath} variables: basePath: default: v1 security: - bearerAuth: [] tags: - name: Servers description: Endpoints related to Servers paths: /servers/{serverUUID}/action-items/inactive: get: description: Retrieves a JSON object containing a list of inactive action items for a system / server. parameters: - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: limits the number of returned systems in: query name: limit schema: type: string - description: Name of key on which to sort object list. in: query name: sortby schema: type: string - description: Designates the start index of the object list. in: query name: offset schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ActionItemsListModel' description: server list '400': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 400 response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 404 response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 500 response summary: List Inactive Server Action Items tags: - Servers operationId: getServersByServerUUIDActionItemsInactive /servers/{serverUUID}/action-items: get: description: Retrieves a JSON object containing a list of action items for a system / server. parameters: - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: limits the number of returned systems in: query name: limit schema: type: string - description: Name of key on which to sort object list. in: query name: sortby schema: type: string - description: Designates the start index of the object list. in: query name: offset schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ActionItemsListModel' description: server list '400': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 400 response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 404 response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 500 response summary: List Server Action Items tags: - Servers operationId: getServersByServerUUIDActionItems /servers/{serverUUID}/images: get: description: Retrieves a JSON object containing a list of images by serverUUID available for server reinstall. parameters: - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: limits the number of returned systems in: query name: limit schema: type: string - description: Designates the start index of the object list. in: query name: offset schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string - description: Object list sort direction. in: query name: direction schema: type: string - description: Name of key on which to sort object list. in: query name: sortby schema: type: string - description: Name of filter, currently active is only filter supported. in: query name: filter schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ImageListModel' description: server list '404': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 404 response '501': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 501 response summary: List Server Reinstall Images tags: - Servers operationId: getServersByServerUUIDImages /servers/{serverUUID}/install-progress: get: description: Retrieves a JSON object containing the progress of server install by UUID. This UUID can be retrieved from /servers. parameters: - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/InstallProgressResponseModel' description: server list '400': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 400 response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 404 response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 500 response summary: Get Server Install Progress tags: - Servers operationId: getServersByServerUUIDInstallProgress /servers/{serverUUID}/networks: get: description: Retrieves a JSON object containing the server public and private networks by UUID. This UUID can be retrieved from /servers. parameters: - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ServerNetworksGetModel' description: server list '500': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 500 response summary: Get Server Networks tags: - Servers operationId: getServersByServerUUIDNetworks /servers/{serverUUID}/rdns: get: description: Retrieves a JSON object containing the server reverse DNS configuration. This UUID can be retrieved from /servers. parameters: - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: limits the number of returned systems in: query name: limit schema: type: string - description: Designates the start index of the object list. in: query name: offset schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string - description: Object list sort direction. in: query name: direction schema: type: string - description: Name of key on which to sort object list. in: query name: sortby schema: type: string - description: "Filter on object property.
**Example: ?filters[objectPropertyName]=objectPropertyValue**
\n[block:callout] { \"type\": \"info\", \"title\": \"Regular Expression Filtering.\", \"body\": \"The property value can be a valid regular expression to better define list results. The regex must contain valid delimiters such as /.\" } [/block]\n" in: query name: filters schema: type: object style: deepObject explode: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ServerReverseDNSGetModel' description: server list '500': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 500 response summary: Get Server Reverse DNS tags: - Servers operationId: getServersByServerUUIDRdns /servers/{serverUUID}/root-password: get: description: Retrieves a JSON object containing the server root passowrd by server UUID. This UUID can be retrieved from /servers. parameters: - description: 'TOTP AuthorizationKey. Required if user has enabled 2FA. (i.e. X-Additional-Authorization: Totp XXXXXX)' in: header name: X-Additional-Authorization schema: type: string - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/RootPasswordGetModel' description: server list '500': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 500 response summary: Get Root Password tags: - Servers operationId: getServersByServerUUIDRootPassword patch: description: "Updates root password in portal to the value set on the server by serverUUID. This UUID can be retrieved from /servers.

\n[block:callout] { \"type\": \"danger\", \"title\": \"Warning:\", \"body\": \"This operation does not set the actual password on the server. After changing your root password on your server, update here to keep in sync.\" } [/block]\n" parameters: - description: 'TOTP AuthorizationKey. Required if user has enabled 2FA. (i.e. X-Additional-Authorization: Totp XXXXXX)' in: header name: X-Additional-Authorization schema: type: string - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RootPasswordPatchModel' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RootPasswordGetModel' description: 200 response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 500 response summary: Update Root Password tags: - Servers operationId: updateServersByServerUUIDRootPassword /servers/{serverUUID}: get: description: Retrieves a JSON object containing a single server by serverUUID. parameters: - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ServerGetModel' description: server list '404': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 404 response summary: Get Server tags: - Servers operationId: getServersByServerUUID /servers: get: description: Retrieves a JSON object containing a list of servers currently provisioned in inventory. parameters: - description: Object list sort direction. in: query name: direction schema: type: string - description: limits the number of returned systems in: query name: limit schema: type: string - description: Name of key on which to sort object list. in: query name: sortby schema: type: string - description: Designates the start index of the object list. in: query name: offset schema: type: string - description: "Filter on object property.
**Example: ?filters[objectPropertyName]=objectPropertyValue**
\n[block:callout] { \"type\": \"info\", \"title\": \"Regular Expression Filtering.\", \"body\": \"The property value can be a valid regular expression to better define list results. The regex must contain valid delimiters such as /.\" } [/block]\n" in: query name: filters schema: type: object style: deepObject explode: true - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ServerListModel' description: server list summary: List Servers tags: - Servers operationId: getServers /servers/maintenance: patch: description: "Activate / deactivate maintenance mode for one or more servers. Activating maintenance mode suppresses alerts for the server(s).

\n[block:callout] { \"type\": \"info\", \"title\": \"Information.\", \"body\": \"This operation is only for monitored servers.\" } [/block]\n" parameters: - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ServersMaintenancePatchModel' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ServerMaintenanceRespModel' description: 200 response '207': content: application/json: schema: $ref: '#/components/schemas/ServerMaintenanceRespModel' description: 207 response summary: Server Maintenance tags: - Servers operationId: updateServersMaintenance /servers/{serverUUID}/rdns/{rdnsRecUUID}: patch: description: Apply new FQDN to reverse DNS record. parameters: - description: The UUID of the reverse DNS record, can be retrieved from the /servers/{serverUUID}/rdns endpoint. in: path name: rdnsRecUUID required: true schema: type: string - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ServerRdnsFqdnPatchModel' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SuccessModel' description: 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 400 response summary: Update Reverse DNS Record tags: - Servers operationId: updateServersByServerUUIDRdnsByRdnsRecUUID /servers/{serverUUID}/reboot: post: description: 'Requests the reboot of a server by serverUUID. A simple JSON object containing success: true | false is returned.' parameters: - description: Options include soft (proper reboot) or hard (force reboot). in: query name: rebootType schema: type: string - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SuccessModel' description: 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 400 response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 404 response '409': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 409 response '501': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 501 response summary: Reboot Server tags: - Servers operationId: createServersByServerUUIDReboot /servers/{serverUUID}/reinstall: post: description: Start a server re-installation parameters: - description: 'TOTP AuthorizationKey. Required if user has enabled 2FA. (i.e. X-Additional-Authorization: Totp XXXXXX)' in: header name: X-Additional-Authorization schema: type: string - description: The UUID of the server, can be retrieved from the **[List Servers](./get_servers)** endpoint. in: path name: serverUUID required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ReinstallPostModel' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ReinstallModel' description: 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 400 response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 404 response '409': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 409 response '501': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 501 response summary: Reinstall Server tags: - Servers operationId: createServersByServerUUIDReinstall components: schemas: RootPasswordGetModel: type: object properties: password: type: string ServerNetworksGetModel: type: object properties: private: type: array items: type: object properties: netmask: type: string prefix: type: string primary_ip: type: string cidr: type: string id: type: string created_date: type: string object_id: type: string gateway: type: string dc: type: string usable_ips: type: array items: type: string public: type: array items: type: object properties: netmask: type: string prefix: type: string primary_ip: type: string justification_request_id: type: string cidr: type: string id: type: string updated_date: type: string is_sub_assignment: type: boolean object_id: type: string gateway: type: string dc: type: string usable_ips: type: array items: type: string ServersMaintenancePatchModel: type: object properties: values: type: array items: $ref: '#/components/schemas/ServerMaintenanceObjectModel' ErrorModel: type: object properties: error: type: object properties: code: type: integer message: type: string ServerReverseDNSGetModel: type: object properties: total: type: integer offset: type: integer values: type: array items: type: object properties: fqdn: type: string ipAddress: type: string uuid: type: string limit: type: integer sortBy: type: string totalUnfiltered: type: integer filters: type: array direction: type: integer ActionItemsListModel: type: object properties: total: type: integer offset: type: integer limit: type: integer sortBy: type: string list: type: array items: $ref: '#/components/schemas/ActionItemsGetModel' direction: type: string ServerMaintenanceRespModel: type: object properties: values: type: array items: $ref: '#/components/schemas/ServerMaintenanceObjectModel' errors: type: array items: type: string ServerListModel: type: object properties: total: type: integer offset: type: integer values: type: array items: $ref: '#/components/schemas/ServerGetModel' limit: type: integer sortBy: type: string direction: type: integer RootPasswordPatchModel: type: object properties: password: type: string InstallProgressResponseModel: type: object properties: progress: type: string step: type: string position: type: string uuid: type: string steps: type: object properties: stopped: type: string adding: type: string reboot1: type: string rebooted1: type: string format: type: string install: type: string postinstall: type: string reboot2: type: string rebooted2: type: string upgrade: type: string post-upgrade: type: string finished: type: string ActionItemsGetModel: type: object properties: sub_source: type: string metadata: type: object properties: alertImpact: type: string alertSubType: type: string resourceId: type: string alertType: type: string resource: type: object properties: resourceHealthValue: type: integer dpcAdapter: type: object properties: vcenterHostname: type: string createdDate: type: number name: type: string uuid: type: string createdDate: type: number resourceHealth: type: string name: type: string uuid: type: string adapterUuid: type: string resourceType: type: string alertLevel: type: string suspendUntilDate: type: number updatedDate: type: number uuid: type: string controlState: type: string symptoms: type: array items: type: object properties: symptomDefinition: type: object properties: resourceKindKey: type: string adapterKindKey: type: string cancelCycles: type: integer conditionSeverity: type: string conditionThresholdType: type: string conditionTargetKey: type: string conditionEventType: type: string conditionOperatorSymbol: type: string waitCycles: type: integer symptomDefinitionIdKey: type: string conditionKey: type: string conditionIsInstanced: type: boolean conditionOperator: type: string name: type: string conditionValue: type: string conditionFaultKey: type: string conditionType: type: string metrics: type: object properties: conditionMetric: type: object properties: dataType2: type: string unit: type: string defaultMonitored: type: boolean instanceType: type: string name: type: string property: type: boolean description: type: string rollupType: type: string monitoring: type: boolean key: type: string conditionTargetMetric: type: object properties: dataType2: type: string defaultMonitored: type: boolean instanceType: type: string name: type: string property: type: boolean description: type: string rollupType: type: string monitoring: type: boolean key: type: string conditionValueType: type: string conditionFaultEvents: type: string message: type: string createdDate: type: number alertDefinitionId: type: string alertDefinitionName: type: string status: type: string monitor_id: type: string active_action_items_id: type: string created_at: type: string source: type: string type: type: string uuid: type: string distinct_type: type: string deactivate_message: type: array items: type: string last_recovered_at: type: number formula_id: type: string threshold_value_unit: type: string snooze: type: array items: type: integer severity: type: integer last_updated: type: string company_id: type: string object_type: type: string count: type: integer active: type: boolean server_id: type: string object_id: type: string current_value: type: string current_value_unit: type: string threshold_value: type: string threshold_operator: type: string category: type: string ImageListModel: type: object properties: total: type: integer offset: type: integer values: type: array items: type: object properties: skip_upgrade: type: boolean os: type: string service_price: type: number min_disk: type: integer service_plan: type: string region_id: type: string includes_cpanel: type: string cloud_init: type: boolean type: type: string uuid: type: string version: type: string client_id: type: string hourly_per_gb: type: number ready: type: boolean price: type: number name: type: string gb_on_disk: type: number is_custom: type: string id: type: integer arch: type: string cloud_id: type: string cpanel_price: type: number min_ram: type: integer region_code: type: string limit: type: integer sortBy: type: string direction: type: string ServerMaintenanceObjectModel: type: object properties: uuid: type: string maintenance: type: boolean ReinstallModel: type: object properties: password: type: string success: type: boolean message: type: string ServerGetModel: type: object properties: company_uuid: type: string memory: type: string external_id: type: string os_release: type: string source: type: string storage: type: string type: type: string uuid: type: string hostname: type: string legacy_managed: type: boolean auto_patch: type: boolean mac_address: type: string managed: type: boolean monitoring_tier: type: integer plan_start_date: type: number plan_update_date: type: number os: type: string kernel: type: string ip: type: string os_arch: type: string cpu: type: string active: type: boolean network_interfaces: type: object properties: private: type: array items: type: object properties: netmask: type: string prefix: type: string name: type: string active: type: boolean cidr: type: string datacenter: type: string id: type: string ip4: type: string type: type: string ip6: type: string gateway: type: string public: type: array items: type: object properties: netmask: type: string prefix: type: string name: type: string active: type: boolean cidr: type: string datacenter: type: string id: type: string ip4: type: string type: type: string ip6: type: string gateway: type: string name: type: string location: type: string created_date: type: number updated_date: type: number maintenance: type: boolean status: type: string ReinstallPostModel: required: - auto - imageId type: object properties: auto: type: boolean description: Set to **true** for automatic reinstall, set to **false** for technician reinstall. default: true imageId: type: string description: Retrieve valid image ID for server from **[List Server Reinstall Images](./get_servers-serveruuid-images)** endpoint. partitioning: type: string description: "Defines the disk layout for the installation. Specify a comma-separated list of partition definitions using: `mountpoint=size[:filesystem][:drivenumber]`\n\n- **mountpoint** — Target mount location (e.g., `/`, `/var`, `/data`). Use `none` to create an unformatted partition. \n- **size** — Either a size in megabytes (e.g., `102400`), a percentage of total disk space (e.g., `50%`), or `rest` to consume remaining space. \n- **filesystem** (optional) — Defaults to `ext3` (ext2 for /boot) if omitted. Supported filesystems include `ext2`, `ext3`, `ext4`, `xfs`, and `jfs`. Use `none` for unformatted partitions. \n- **drivenumber** (optional) — Target disk number (e.g., `1`, `2`). Starts at disk `1`. If omitted, the primary disk is used. \n\nExamples\n- One Drive Partitions String: `/=102400,/var=204800,/data=rest`\n - Drive 1 has a 100GB root (/) partition, a 200GB /var partition, and a /data partition using the remainder of the space on the drive, all with ext3 formatting\n- Multiple Drives Partitions String: `/=102400:ext4:1,/var=204800:ext4:1,/data=rest:ext4:1,/backup=rest:xfs:2,/tmp=102400:ext4:3,none=rest:none:3`\n - Drive 1 has a 100GB root (/) partition, a 200GB /var partition, and a /data partition using the remainder of the space on the drive, all with ext4 formatting\n - Drive 2 has a single /backup partition formatted in XFS using the entire drive\n - Drive 3 has a /tmp partition using 100GB formatted in ext4, with the remainder of the space on the drive in an unformatted partition\n\nSoftware RAID can be configured using the partitions string with the following format: `raid=size:raidlevel:drivenumber,raid=size:raidlevel:drivenumber,mountpoint=rest[:filesystem]:raid`\n- **size** — Functions as before, with `rest` being the recommended value to consume the full drive for RAID usage\n- **drivenumber** — Functions as before and is used to indicate which drives are participating in the RAID\n- **raidlevel** — The requested RAID level. Supported are `1` (mirroring) and `0` (striping)\n- **mountpoint** — Functions as before, except that `raid` is used instead of drive number for any partitions intended for the RAID\n\nExamples\n- RAID 1 partitions string: `raid=rest:1:1,raid=rest:1:2,/=102400:ext4:raid,/data=rest:xfs:raid`\n - RAID 1 has both drives allocated fully with a 100GB root (/) partition formatted with ext4 and the remainder in the `/data` partition formatted with XFS\n- RAID 0 partitions string: `raid=rest:0:1,raid=rest:0:2,/=102400:ext4:raid,/data=rest:xfs:raid`\n - RAID 0 has both drives striped with a 100GB root (/) partition formatted with ext4 and the remainder in the `/data` partition formatted with XFS" lvm: type: boolean description: Logical volume manager enabled. gpt: type: boolean description: GUID partition table enabled. instructions: type: string description: Instructions for technician reinstall ServerRdnsFqdnPatchModel: type: object properties: fqdn: type: string SuccessModel: type: object properties: success: type: boolean securitySchemes: bearerAuth: type: http scheme: bearer description: 'API token issued from the Compass portal (Profile > API Tokens). Sent as `Authorization: Bearer `. See https://compass-horizoniq.readme.io/reference/authentication'