For the complete documentation index, see llms.txt. This page is also available as Markdown.

Applications

Explore this section for comprehensive information on endpoints related to the deployment, management, and operation of applications within our cloud software API environment.

Get a list of applications

get
Responses
200

OK

get/api/v1/servers/applications/GetApplications
GET /api/v1/servers/applications/GetApplications HTTP/1.1
Accept: */*
{
  "items": [
    {
      "id": "text",
      "cluster": "text",
      "status": "text",
      "tenant": "text",
      "createdBy": "text",
      "privateIp": "text",
      "publicIp": "text",
      "resourcePool": "text",
      "dns": "text",
      "sshUsername": "text",
      "applicationCatalogItemName": "text",
      "applicationCatalogItemVersionName": "text",
      "hardwarePackageName": "text",
      "persistedDirectAttachedStorage": true,
      "personalSharedStorage": true,
      "tenantSharedStorage": true
    }
  ]
}

Get detailed information about a specific application

get
Query parameters
IdstringRequired

The application name

Example: my-jupyter-application
ClusterstringRequired

The cluster you're operating on

Example: Msc1
Responses
200

OK

get/api/v1/servers/applications/GetApplicationDetails
GET /api/v1/servers/applications/GetApplicationDetails?Id=my-jupyter-application&Cluster=Msc1 HTTP/1.1
Accept: */*
{
  "instanceDetails": {
    "id": "text",
    "cluster": "text",
    "status": "text",
    "statusReason": "text",
    "statusMessage": "text",
    "privateIp": "text",
    "publicIp": "text",
    "imageCmdOverride": "text",
    "environmentVariables": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    },
    "readinessWatcherPort": 1,
    "proxyPort": 1,
    "createdBy": "text",
    "tenant": "text",
    "resourcePool": "text",
    "nodeSelector": "text",
    "creationTime": "2026-01-01T00:00:00.000Z",
    "lastUpdated": "2026-01-01T00:00:00.000Z",
    "dns": "text",
    "persistedDirectAttachedStorage": true,
    "personalSharedStorage": true,
    "tenantSharedStorage": true,
    "runAsRoot": true,
    "containerUid": 1,
    "containerGid": 1
  },
  "applicationCatalogItem": {
    "name": "text",
    "applicationSourceDetailsUrl": "text",
    "applicationSourceOwner": "text",
    "type": "text",
    "versions": [
      {
        "name": "text",
        "imageUrl": "text",
        "imageLastPushDate": "2026-01-01T00:00:00.000Z",
        "platform": "text",
        "launchType": "text",
        "releaseNotesUrl": "text",
        "accelerator": "text",
        "minVramGb": 1,
        "defaultProxyPort": "text",
        "defaultEnvironmentVariables": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      }
    ]
  },
  "hardwarePackage": {
    "name": "text",
    "description": "text",
    "gpuCount": 1,
    "gpuType": "text",
    "gpuBrand": "text",
    "gpuName": "text",
    "vcpusCount": 1,
    "memoryGb": 1,
    "directAttachedStorageGb": 1,
    "pricePerHour": 1,
    "vramGb": 1,
    "clusters": [
      "text"
    ]
  },
  "servingDetails": {
    "platform": "text",
    "modelId": "text",
    "baseUrl": "text",
    "healthUrl": "text",
    "requiresAuthentication": true,
    "authScheme": "text"
  }
}

Get a list of application configurations

get
Responses
200

OK

get/api/v1/servers/applications/GetConfigurations
GET /api/v1/servers/applications/GetConfigurations HTTP/1.1
Accept: */*
{
  "items": [
    {
      "name": "text",
      "description": "text",
      "gpuCount": 1,
      "gpuType": "text",
      "gpuBrand": "text",
      "gpuName": "text",
      "vcpusCount": 1,
      "memoryGb": 1,
      "directAttachedStorageGb": 1,
      "pricePerHour": 1,
      "vramGb": 1,
      "clusters": [
        "text"
      ]
    }
  ]
}

Get detailed information on available configurations for applications

get
Query parameters
clusterstringRequiredExample: Msc1
resourcePoolstringRequiredExample: on-demand
applicationCatalogItemNamestringOptional
applicationCatalogItemVersionstringOptional
Responses
200

OK

get/api/v1/servers/applications/GetAvailability
GET /api/v1/servers/applications/GetAvailability?cluster=text&resourcePool=text HTTP/1.1
Accept: */*
{
  "items": [
    {
      "configuration": "text",
      "cluster": "text",
      "rpool": "text",
      "price": 1,
      "available": true,
      "count": 1,
      "maxCount": 1,
      "availableNodeNames": [
        "text"
      ]
    }
  ]
}

Get a list of application catalog items

get
Query parameters
typesstring[]Optional
Responses
200

OK

get/api/v1/servers/applications/GetApplicationCatalogItems
GET /api/v1/servers/applications/GetApplicationCatalogItems HTTP/1.1
Accept: */*
{
  "items": [
    {
      "name": "text",
      "applicationSourceDetailsUrl": "text",
      "applicationSourceOwner": "text",
      "type": "text",
      "versions": [
        {
          "name": "text",
          "imageUrl": "text",
          "imageLastPushDate": "2026-01-01T00:00:00.000Z",
          "platform": "text",
          "launchType": "text",
          "releaseNotesUrl": "text",
          "accelerator": "text",
          "minVramGb": 1,
          "defaultProxyPort": "text",
          "defaultEnvironmentVariables": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          }
        }
      ]
    }
  ]
}

Create a new application using a pre-defined configuration and application catalog item

post

Request body examples for common catalog applications (Jupyter Notebook, vLLM Server, Ollama Server, and model applications) are available from the examples dropdown in the request body section below, along with per-application notes.

The catalog item's default environment variables are applied automatically; any variable you provide in environmentVariables takes precedence over the default. Each version's defaults are returned as defaultEnvironmentVariables by the GetApplicationCatalogItems endpoint.

Body
namestring · max: 47Required

The application name. Must be 47 characters or less.

Example: my-jupyter-notebook
clusterstring · min: 1Required

The cluster you're operating on

Example: Msc1
hardwarePackageNamestring · min: 1Required

The name or unique identifier of the application hardware configuration to use for the application.

Example: g-nvidia-1xa100-40gb-pcie-14vcpu-112gb
applicationCatalogItemNamestring · min: 1Required

The name of the application catalog item.

Example: jupyter-notebook
applicationCatalogItemVersionstring · min: 1Required

The version name of the application catalog item.

Example: python-3.11.9
resourcePoolstring · nullableOptional

The resource pool to use for the application

Example: on-demand
sshKeysstring[] · nullableOptional

The SSH keys for accessing the application

persistDirectAttachedStoragebooleanOptional

Indicates whether to persist direct attached storage (if resource pool is reserved)

Example: false
personalSharedStoragebooleanOptional

Enable personal shared storage for the application

Example: true
tenantSharedStoragebooleanOptional

Enable tenant shared storage for the application

Example: true
selectedNodestring · nullableOptional

Specific node name to target for application deployment. Used for non-on-demand resource pools to allow node-specific scheduling.

Example: yycdp-dev-k8sw03
jupyterTokenstring · nullableOptional

An authentication token for accessing Jupyter Notebook enabled applications

Example: abc123
startupCommandsstring[] · nullableOptional

List of startup commands to be executed during container initialization. Commands are executed in order and joined with semicolons. Used for custom initialization logic before the main application starts.

Example: ["pip install custom-package","python setup.py"]
proxyPortstring · nullableOptional

The port number for the application proxy service. Required to setup the proxy Used in conjunction with proxyApiKeys for authenticated access.

Example: 8000
proxyApiKeysstring[] · nullableOptional

Optional API keys for authenticating with the application proxy service. Multiple keys can be provided to support key rotation. Each key must contain only alphanumeric characters, hyphens, and underscores.

Example: ["api-key-abc123","api-key-def456"]
openWebuiAdminEmailstring · email · max: 254 · nullableOptional

Admin user email for Open WebUI initial setup. Required when creating an open-webui application.

Example: admin@example.com
openWebuiAdminPasswordstring · min: 8 · max: 128 · nullableOptional

Admin user password for Open WebUI initial setup. Required when creating an open-webui application. Minimum 8 characters.

Example: your-secure-password
Responses
202

Accepted

idstring · nullableOptional
clusterstring · nullableOptional
statusstring · nullableOptional
tenantstring · nullableOptional
createdBystring · nullableOptional
privateIpstring · nullableOptional
publicIpstring · nullableOptional
resourcePoolstring · nullableOptional
dnsstring · nullableOptional
sshUsernamestring · nullableOptional
applicationCatalogItemNamestring · nullableOptional
applicationCatalogItemVersionNamestring · nullableOptional
hardwarePackageNamestring · nullableOptional
persistedDirectAttachedStoragebooleanOptional
personalSharedStoragebooleanOptional
tenantSharedStoragebooleanOptional
post/api/v1/servers/applications/CreateCatalogApplication
POST /api/v1/servers/applications/CreateCatalogApplication HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 382

{
  "name": "my-jupyter-notebook",
  "cluster": "Msc1",
  "hardwarePackageName": "g-nvidia-1xa100-40gb-pcie-14vcpu-112gb",
  "applicationCatalogItemName": "jupyter-notebook",
  "applicationCatalogItemVersion": "python-3.11.9",
  "resourcePool": "on-demand",
  "sshKeys": [
    "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC..."
  ],
  "personalSharedStorage": true,
  "tenantSharedStorage": true,
  "jupyterToken": "your-jupyter-token"
}
{
  "id": "text",
  "cluster": "text",
  "status": "text",
  "tenant": "text",
  "createdBy": "text",
  "privateIp": "text",
  "publicIp": "text",
  "resourcePool": "text",
  "dns": "text",
  "sshUsername": "text",
  "applicationCatalogItemName": "text",
  "applicationCatalogItemVersionName": "text",
  "hardwarePackageName": "text",
  "persistedDirectAttachedStorage": true,
  "personalSharedStorage": true,
  "tenantSharedStorage": true
}

Create a new custom application using a pre-defined configuration and user-defined container image.

post

Custom applications must be deployed to a reserved resource pool; the on-demand pool is not supported for custom images.

Request body examples covering a public container image, a vLLM inference server exposed through the reverse proxy, a private registry, and persistent direct attached storage are available from the examples dropdown in the request body section below.

Body
namestring · max: 47Required

The application name. Must be 47 characters or less.

Example: my-custom-application
clusterstring · min: 1Required

The cluster you're operating on

Example: Msc1
hardwarePackageNamestring · min: 1Required

The name or unique identifier of the application hardware configuration to use for the application.

Example: g-nvidia-1xa100-40gb-pcie-14vcpu-112gb
imageUrlstring · min: 1Required

Image URL for the custom application.

Example: docker.io/{namespace}/{repository}:{tag}
imageCmdOverridestring[] · nullableOptional

Optional Image CMD override allows users to specify a custom command to run in the container. Must be a JSON array (e.g., ["python", "train.py"])

Example: ["python","train.py"]
resourcePoolstring · nullableOptional

The resource pool to use for the application. Custom applications support reserved resource pools only; on-demand is not supported.

Example: reserved-denvr
readinessWatcherPortinteger · int32 · nullableOptional

The port used for monitoring application readiness and status. Common examples:

  • 443 (JupyterLab)
  • 22 (SSH)
Example: 443
proxyPortinteger · int32 · nullableOptional

The port your application uses to receive HTTPS traffic. When set, a reverse proxy will be automatically configured in front of your application. Port 443 is reserved for the reverse proxy and cannot be used.

Example: 8888
proxyApiKeysstring[] · nullableOptional

API keys for authenticating with the reverse proxy service. Optional, but requires proxyPort to be set for the reverse proxy to be configured. Each key must:

  • Contain only alphanumeric characters, hyphens, and underscores
  • Not exceed 512 characters
  • Not be null or whitespace Maximum 10 keys allowed.
Example: ["key_user1","key_user2"]
persistDirectAttachedStoragebooleanOptional

Indicates whether to persist direct attached storage (if resource pool is reserved)

Example: false
personalSharedStoragebooleanOptional

Enable personal shared storage for the application

Example: true
tenantSharedStoragebooleanOptional

Enable tenant shared storage for the application

Example: true
selectedNodestring · nullableOptional

Specific node name to target for application deployment. Used for non-on-demand resource pools to allow node-specific scheduling.

Example: yycdp-dev-k8sw03
Responses
202

Accepted

idstring · nullableOptional
clusterstring · nullableOptional
statusstring · nullableOptional
tenantstring · nullableOptional
createdBystring · nullableOptional
privateIpstring · nullableOptional
publicIpstring · nullableOptional
resourcePoolstring · nullableOptional
dnsstring · nullableOptional
sshUsernamestring · nullableOptional
applicationCatalogItemNamestring · nullableOptional
applicationCatalogItemVersionNamestring · nullableOptional
hardwarePackageNamestring · nullableOptional
persistedDirectAttachedStoragebooleanOptional
personalSharedStoragebooleanOptional
tenantSharedStoragebooleanOptional
post/api/v1/servers/applications/CreateCustomApplication
POST /api/v1/servers/applications/CreateCustomApplication HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 359

{
  "name": "my-custom-app",
  "cluster": "Msc1",
  "hardwarePackageName": "g-nvidia-1xa100-40gb-pcie-14vcpu-112gb",
  "imageUrl": "docker.io/your-namespace/your-app:latest",
  "imageCmdOverride": [
    "python",
    "train.py"
  ],
  "resourcePool": "reserved-denvr",
  "readinessWatcherPort": 8888,
  "environmentVariables": {
    "LOG_LEVEL": "info"
  },
  "personalSharedStorage": true,
  "tenantSharedStorage": true
}
{
  "id": "text",
  "cluster": "text",
  "status": "text",
  "tenant": "text",
  "createdBy": "text",
  "privateIp": "text",
  "publicIp": "text",
  "resourcePool": "text",
  "dns": "text",
  "sshUsername": "text",
  "applicationCatalogItemName": "text",
  "applicationCatalogItemVersionName": "text",
  "hardwarePackageName": "text",
  "persistedDirectAttachedStorage": true,
  "personalSharedStorage": true,
  "tenantSharedStorage": true
}

Start an application that has been previously set up and provisioned, but is currently OFFLINE

post
Body
idstring · min: 1Required

The application name

Example: my-jupyter-application
clusterstring · min: 1Required

The cluster you're operating on

Example: Msc1
Responses
202

Accepted

idstring · min: 1Required

The application name

Example: my-jupyter-application
clusterstring · min: 1Required

The cluster you're operating on

Example: Msc1
post/api/v1/servers/applications/StartApplication
POST /api/v1/servers/applications/StartApplication HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 48

{
  "id": "my-jupyter-application",
  "cluster": "Msc1"
}
{
  "id": "my-jupyter-application",
  "cluster": "Msc1"
}

Stop an application that has been previously set up and provisioned, but is currently ONLINE

post
Body
idstring · min: 1Required

The application name

Example: my-jupyter-application
clusterstring · min: 1Required

The cluster you're operating on

Example: Msc1
Responses
202

Accepted

idstring · min: 1Required

The application name

Example: my-jupyter-application
clusterstring · min: 1Required

The cluster you're operating on

Example: Msc1
post/api/v1/servers/applications/StopApplication
POST /api/v1/servers/applications/StopApplication HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 48

{
  "id": "my-jupyter-application",
  "cluster": "Msc1"
}
{
  "id": "my-jupyter-application",
  "cluster": "Msc1"
}

Permanently delete a specified application, effectively wiping all its data and freeing up resources for other uses

delete
Query parameters
IdstringRequired

The application name

Example: my-jupyter-application
ClusterstringRequired

The cluster you're operating on

Example: Msc1
Responses
202

Accepted

idstring · min: 1Required

The application name

Example: my-jupyter-application
clusterstring · min: 1Required

The cluster you're operating on

Example: Msc1
delete/api/v1/servers/applications/DestroyApplication
DELETE /api/v1/servers/applications/DestroyApplication?Id=my-jupyter-application&Cluster=Msc1 HTTP/1.1
Accept: */*
{
  "id": "my-jupyter-application",
  "cluster": "Msc1"
}

Get runtime logs for a specified application

get
Query parameters
IdstringRequired

The name of the application

Example: my-application
ClusterstringRequired

The cluster where the application is running

Example: Hou1
Limitinteger · int32 · min: 1 · max: 10000Required

The maximum number of log entries to return.

Example: 2000
Responses
200

OK

idstring · nullableOptional

The name of the application

clusterstring · nullableOptional

The cluster where the application is running

logsstring · nullableOptional

The runtime logs content

get/api/v1/servers/applications/GetApplicationRuntimeLogs
GET /api/v1/servers/applications/GetApplicationRuntimeLogs?Id=my-application&Cluster=Hou1&Limit=2000 HTTP/1.1
Accept: */*
{
  "id": "text",
  "cluster": "text",
  "logs": "text"
}

Last updated