LogoLogo
  • Voltage Park
    • Introduction
    • Quickstart
  • Products
    • On Demand
    • Long-Term Compute
  • On Demand
    • Getting Started
    • Dashboard
    • Deploy GPUs
      • Virtual Machines (VMs)
      • Bare Metal
    • My Instances
      • Jupyter Notebook
    • Deploy Storage
    • Attach Storage
    • Kubernetes
    • API
  • Organization
    • Account
    • Billing
  • Support
    • Support
    • Troubleshooting
      • Ubuntu Server Crash Troubleshooting Guide
      • Common Log Files for Troubleshooting
      • Options for Mounting VAST NFS Shares
      • InfiniBand Basic Setup
      • Local Storage (Configuring an LVM Volume on Voltage Park On-Demand Bare Metal Servers)
    • FAQs
  • Legal
    • Terms of Service
    • Compute Services Agreement
    • Privacy Policy
Powered by GitBook
On this page
  1. On Demand

API

Here are our current API endpoints for our Voltage Park On Demand API.

PreviousKubernetesNextAccount

Last updated 21 days ago

Overview


Our Voltage Park On Demand API allows developers to deploy, manage, and monitor virtual machines (VMs) and bare metal instances.

Authentication


This API uses Bearer Token Authentication to authorize requests. Every request must include a valid API token in the Authorization header.

Example:

Authorization: Bearer YOUR_API_KEY

Since self-service API key generation is currently not available, API keys must be requested from our support team.

How to Obtain an API Key

  1. Contact our support team by emailing .

  2. Provide the following details in your request:

    1. The email address associated with your Voltage Park On Demand account.

    2. Your Organization ID, which can be located on your Account page.

  3. Our team will acknowledge your request and provide an API Key with the proper permissions.

Keep your API key secure! Treat it like a password and NEVER expose it in public repositories.

Endpoints

support@voltagepark.com

Details and available resources for a given HostNode

get
Authorizations
Path parameters
hostnode_idstring · uuidRequired
Responses
200
Successful Response
application/json
404
HostNode not found
422
Validation Error
application/json
get
GET /api/v1/hostnodes/{hostnode_id} HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "location_id": "123e4567-e89b-12d3-a456-426614174000",
  "available_resources": {
    "gpus": {
      "h100-sxm5-80gb": {
        "count": 8
      }
    },
    "ram_gb": 960,
    "storage_gb": 14000,
    "vcpu_count": 208
  },
  "pricing": {
    "per_gpu_hr": {
      "h100-sxm5-80gb": "3.500000"
    },
    "per_vcpu_hr": "0.000030",
    "per_gb_ram_hr": "0.000001",
    "per_gb_storage_hr": "0.000001"
  },
  "available_ports": [
    1
  ]
}

List of owned, unterminated virtual machines

get
Authorizations
Query parameters
limitinteger · min: 1 · max: 100OptionalDefault: 10
offsetintegerOptionalDefault: 0
Responses
200
Successful Response
application/json
422
Validation Error
application/json
get
GET /api/v1/virtual-machines/ HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "results": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "hostnode_id": "123e4567-e89b-12d3-a456-426614174000",
      "type": "ondem",
      "status": "Running",
      "name": "text",
      "resources": {
        "gpus": {
          "h100-sxm5-80gb": {
            "count": 1
          }
        },
        "vcpu_count": 4,
        "ram_gb": 16,
        "storage_gb": 40
      },
      "operating_system": "Ubuntu 20.04 LTS",
      "pricing": {
        "gpus_per_hr": "text",
        "vcpus_per_hr": "text",
        "ram_per_hr": "text",
        "storage_per_hr": "text",
        "total_associated_per_hr": "text",
        "total_disassociated_per_hr": "text"
      },
      "public_ip": "text",
      "port_forwards": [
        {
          "internal_port": 22,
          "external_port": 20040
        }
      ],
      "timestamp_creation": "2025-05-16T08:45:32.108Z",
      "tags": [
        "text"
      ]
    }
  ],
  "total_result_count": 1,
  "has_previous": true,
  "has_next": true
}

Details for a specific unterminated virtual machine

get
Authorizations
Path parameters
virtual_machine_idstring · uuidRequired
Responses
200
Successful Response
application/json
404
Not Found
422
Validation Error
application/json
get
GET /api/v1/virtual-machines/{virtual_machine_id} HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "hostnode_id": "123e4567-e89b-12d3-a456-426614174000",
  "type": "ondem",
  "status": "Running",
  "name": "text",
  "resources": {
    "gpus": {
      "h100-sxm5-80gb": {
        "count": 1
      }
    },
    "vcpu_count": 4,
    "ram_gb": 16,
    "storage_gb": 40
  },
  "operating_system": "Ubuntu 20.04 LTS",
  "pricing": {
    "gpus_per_hr": "text",
    "vcpus_per_hr": "text",
    "ram_per_hr": "text",
    "storage_per_hr": "text",
    "total_associated_per_hr": "text",
    "total_disassociated_per_hr": "text"
  },
  "public_ip": "text",
  "port_forwards": [
    {
      "internal_port": 22,
      "external_port": 20040
    }
  ],
  "timestamp_creation": "2025-05-16T08:45:32.108Z",
  "tags": [
    "text"
  ]
}

Terminate an existing virtual machine

delete
Authorizations
Path parameters
virtual_machine_idstring · uuidRequired
Responses
202
Successful Response
application/json
Responseany
400
Bad Request
422
Validation Error
application/json
delete
DELETE /api/v1/virtual-machines/{virtual_machine_id} HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Get Instant Deploy Presets

get
Query parameters
availableany ofOptional
booleanOptional
or
nullOptional
Responses
200
Successful Response
application/json
422
Validation Error
application/json
get
GET /api/v1/instant-deploy-presets/ HTTP/1.1
Host: 
Accept: */*
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "resources": {
      "gpus": {
        "h100-sxm5-80gb": {
          "count": 1
        }
      },
      "vcpu_count": 4,
      "ram_gb": 16,
      "storage_gb": 40
    },
    "operating_system": "Ubuntu 20.04 LTS",
    "compute_rate_hourly": "text",
    "storage_rate_hourly": "text",
    "location_ids_with_availability": [
      "123e4567-e89b-12d3-a456-426614174000"
    ]
  }
]

Get Instant Deploy Preset

get
Path parameters
instant_deploy_preset_idstring · uuidRequired
Responses
200
Successful Response
application/json
422
Validation Error
application/json
get
GET /api/v1/instant-deploy-presets/{instant_deploy_preset_id} HTTP/1.1
Host: 
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "resources": {
    "gpus": {
      "h100-sxm5-80gb": {
        "count": 1
      }
    },
    "vcpu_count": 4,
    "ram_gb": 16,
    "storage_gb": 40
  },
  "operating_system": "Ubuntu 20.04 LTS",
  "compute_rate_hourly": "text",
  "storage_rate_hourly": "text",
  "location_ids_with_availability": [
    "123e4567-e89b-12d3-a456-426614174000"
  ]
}

List of available baremetal locations

get
Responses
200
Successful Response
application/json
get
GET /api/v1/bare-metal/locations HTTP/1.1
Host: 
Accept: */*
200

Successful Response

{
  "results": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "gpu_count_ethernet": 8,
      "gpu_price_ethernet": 2.5,
      "gpu_count_infiniband": 8,
      "gpu_price_infiniband": 2.5,
      "specs_per_node": {
        "gpu_model": "h100-sxm5-80gb",
        "gpu_count": 8,
        "cpu_model": "Intel Xeon Platinum 8470",
        "cpu_count": 4,
        "ram_gb": 16,
        "storage_gb": 40
      }
    }
  ],
  "total_result_count": 1,
  "has_previous": true,
  "has_next": true
}

List of owned, unterminated baremetal machines

get
Authorizations
Query parameters
limitany ofOptionalDefault: 20
integer · min: 1 · max: 100Optional
or
string · enumOptionalPossible values:
offsetintegerOptionalDefault: 0
Responses
200
Successful Response
application/json
422
Validation Error
application/json
get
GET /api/v1/bare-metal/ HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "results": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "creation_timestamp": "2022-01-01T00:00:00Z",
      "status": "Running",
      "power_status": "Running",
      "node_count": 1,
      "specs_per_node": {
        "gpu_model": "h100-sxm5-80gb",
        "gpu_count": 8,
        "cpu_model": "Intel Xeon Platinum 8470",
        "cpu_count": 4,
        "ram_gb": 16,
        "storage_gb": 40
      },
      "rate_hourly": "text",
      "network_type": "infiniband",
      "username": "text",
      "node_networking": [
        {
          "public_ip": "68.25.82.82",
          "private_ip": "192.168.0.1"
        }
      ],
      "sub_order": "text",
      "storage_id": "123e4567-e89b-12d3-a456-426614174000",
      "storage_pv": "text",
      "storage_pvc": "text",
      "k8s_cluster_id": "123e4567-e89b-12d3-a456-426614174000",
      "kubeconfig": "text",
      "tags": [
        "text"
      ]
    }
  ],
  "total_result_count": 1,
  "has_previous": true,
  "has_next": true
}

Terminate a bare-metal rental

delete
Authorizations
Path parameters
baremetal_rental_idstring · uuidRequired
Responses
202
Successful Response
application/json
Responseany
400
Bad Request
422
Validation Error
application/json
delete
DELETE /api/v1/bare-metal/{baremetal_rental_id} HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Current rate for active rentals

get
Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/billing/hourly-rate HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Successful Response

{
  "rate_hourly": "2.500000"
}

Historical organization billing log

get
Authorizations
Query parameters
limitinteger · min: 1OptionalDefault: 30
offsetintegerOptionalDefault: 0
typesany ofOptional
or
nullOptional
earliestany ofOptionalExample: 2024-10-01
string · dateOptional
or
nullOptional
latestany ofOptionalExample: 2024-10-26
string · dateOptional
or
nullOptional
Responses
200
Successful Response
application/json
422
Validation Error
application/json
get
GET /api/v1/billing/transactions HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "results": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "total_amount": "text",
      "timestamp_creation": "2025-05-16T08:45:32.108Z",
      "timestamp_completion": "2025-05-16T08:45:32.108Z",
      "details": {
        "type": "charge",
        "linked_instance": {
          "type": "virtual_machine_instance",
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "virtual_machine_id": "123e4567-e89b-12d3-a456-426614174000",
          "timestamp_creation": "2025-05-16T08:45:32.108Z",
          "timestamp_deletion": "2025-05-16T08:45:32.108Z"
        }
      },
      "period_amount": "text"
    }
  ],
  "total_result_count": 1,
  "has_previous": true,
  "has_next": true
}

Monthly billing log

get
Authorizations
Path parameters
yearintegerRequiredExample: 2024
monthintegerRequiredExample: 10
Responses
200
Successful Response
application/json
422
Validation Error
application/json
get
GET /api/v1/billing/reports/{year}/{month}/transactions HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "transactions": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "total_amount": "text",
      "timestamp_creation": "2025-05-16T08:45:32.108Z",
      "timestamp_completion": "2025-05-16T08:45:32.108Z",
      "details": {
        "type": "charge",
        "linked_instance": {
          "type": "virtual_machine_instance",
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "virtual_machine_id": "123e4567-e89b-12d3-a456-426614174000",
          "timestamp_creation": "2025-05-16T08:45:32.108Z",
          "timestamp_deletion": "2025-05-16T08:45:32.108Z"
        }
      },
      "period_amount": "text"
    }
  ],
  "balance_at_period_start": "text",
  "balance_delta_in_period": "text",
  "balance_at_period_end": "text"
}

List of SSH public keys under your organization

get

These SSH public keys can be selected by ID when deploying new rentals to quickly add SSH access for various org members.

Authorizations
Query parameters
limitinteger · min: 1 · max: 150OptionalDefault: 150
offsetintegerOptionalDefault: 0
Responses
200
Successful Response
application/json
422
Validation Error
application/json
get
GET /api/v1/organization/ssh-keys HTTP/1.1
Host: 
x-api-token: YOUR_API_KEY
Accept: */*
{
  "results": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "My-SSH-Public-Key",
      "content": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAKOgHv82A6Oi7AWLvBC9N..."
    }
  ],
  "total_result_count": 1,
  "has_previous": true,
  "has_next": true
}

Remove an SSH key from your organization

delete

Remove an SSH public key by its ID.

This will not affect any active instances, only those created after this key's removal.

Authorizations
Path parameters
ssh_key_idstring · uuidRequired

ID found on the SSH key you wish to delete

Responses
204
Successful Response
422
Validation Error
application/json
delete
DELETE /api/v1/organization/ssh-keys/{ssh_key_id} HTTP/1.1
Host: 
x-api-token: YOUR_API_KEY
Accept: */*

No content

Fetch hourly rate for storage

get
Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/storage/hourly-rate HTTP/1.1
Host: 
x-api-token: YOUR_API_KEY
Accept: */*
200

Successful Response

{
  "hourly_rate_per_gb": "0.017408"
}

List of available storage

get
Authorizations
Query parameters
limitinteger · min: 1 · max: 100OptionalDefault: 20
offsetintegerOptionalDefault: 0
Responses
200
Successful Response
application/json
422
Validation Error
application/json
get
GET /api/v1/storage/ HTTP/1.1
Host: 
x-api-token: YOUR_API_KEY
Accept: */*
{
  "results": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "size_in_gb": 100,
      "name": "My Storage Volume",
      "status": "active",
      "rate_hourly": "0.017408",
      "order_ids": [
        "e724424f-a73c-499e-b307-0a63d9b71b5b"
      ],
      "tenant_id": 123,
      "vip": "0.0.0.0"
    }
  ],
  "total_result_count": 1,
  "has_previous": true,
  "has_next": true
}

Terminate a storage volume

delete
Authorizations
Path parameters
storage_idstring · uuidRequired
Responses
204
Successful Response
400
Bad Request
422
Validation Error
application/json
delete
DELETE /api/v1/storage/{storage_id} HTTP/1.1
Host: 
x-api-token: YOUR_API_KEY
Accept: */*

No content

Get storage by id

get
Authorizations
Path parameters
storage_idstring · uuidRequired
Responses
200
Successful Response
application/json
422
Validation Error
application/json
get
GET /api/v1/storage/{storage_id} HTTP/1.1
Host: 
x-api-token: YOUR_API_KEY
Accept: */*
{
  "used_capacity_bytes": 1,
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "size_in_gb": 100,
  "name": "My Storage Volume",
  "status": "active",
  "rate_hourly": "0.017408",
  "order_ids": [
    "e724424f-a73c-499e-b307-0a63d9b71b5b"
  ],
  "tenant_id": 123,
  "vip": "0.0.0.0"
}

Convert a preconfigured virtual machine to a new virtual machine

post

Convert a instant vm so it may be used by a customer. Run custom cloud init scripts if provided. This route requires an authorization check.

Authorizations
Body
config_idstring · uuidRequired
namestringRequiredExample: My Instant Virtual Machine
passwordany ofOptionalExample: super_secret_instant_vm_password
string · min: 8Optional
or
nullOptional
organization_ssh_keysone ofOptional

Configuration for organization-associated SSH keys. Can select all, none, or select keys by ID.

Default: {"mode":"none"}
or
ssh_keysstring[]OptionalDefault: [[]]Example: ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAKOgHv82A6Oi7AWLvBC9N..."]
cloud_initany ofOptional
or
nullOptional
tagsstring[]OptionalDefault: []Example: ["tag1","tag2"]
Responses
201
Successful Response
application/json
400
Bad Request
422
Validation Error
application/json
post
POST /api/v1/virtual-machines/instant HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 492

{
  "config_id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "My Instant Virtual Machine",
  "password": "super_secret_instant_vm_password",
  "organization_ssh_keys": {
    "mode": "selective",
    "ssh_key_ids": [
      "123e4567-e89b-12d3-a456-426614174000"
    ]
  },
  "ssh_keys": [
    "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAKOgHv82A6Oi7AWLvBC9N..."
  ],
  "cloud_init": {
    "packages": [
      "text"
    ],
    "write_files": [
      {
        "encoding": "text",
        "content": "text",
        "owner": "text",
        "path": "text",
        "permissions": "text"
      }
    ],
    "runcmd": [
      "text"
    ]
  },
  "tags": [
    "tag1",
    "tag2"
  ]
}
{
  "vm_id": "123e4567-e89b-12d3-a456-426614174000"
}

Modify a virtual machine's details

patch
Authorizations
Path parameters
virtual_machine_idstring · uuidRequired
Body
nameany ofOptional
stringOptional
or
nullOptional
tagsany ofOptional
string[]Optional
or
nullOptional
Responses
200
Successful Response
application/json
400
Bad Request
422
Validation Error
application/json
patch
PATCH /api/v1/virtual-machines/{virtual_machine_id} HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 31

{
  "name": "text",
  "tags": [
    "text"
  ]
}
{
  "name": "text",
  "tags": [
    "text"
  ]
}

Start or stop a virtual machine

put

Stopped virtual machines will, by default, use the same billing as running ones. Disassociating resources, however, will reduce billing to only include storage costs.

Authorizations
Path parameters
virtual_machine_idstring · uuidRequired
Body
statusstring · enumRequiredPossible values:
Responses
200
Successful Response
application/json
422
Validation Error
application/json
put
PUT /api/v1/virtual-machines/{virtual_machine_id}/power-status HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 20

{
  "status": "started"
}
{
  "status": "started"
}

Provision a new bare-metal server rental

post

Deploys a bare-metal instance based on provided baremetal_config specifications and user organization. This route requires an authorization check.

An associated k8s cluster will also be created.

Authorizations
Body
location_idstring · uuidRequiredExample: a3111bd4-550a-47d0-838a-0a52bff2ae3f
gpu_countintegerRequired
namestringRequiredExample: My Baremetal Rental
organization_ssh_keysone ofOptional

Configuration for organization-associated SSH keys. Can select all, none, or select keys by ID.

Default: {"mode":"none"}
or
ssh_keysstring[]Optional

Extra SSH keys which will be added to this deploy only. To use SSH keys registered with your organization, see the organization_ssh_keys field.

Default: []Example: ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAKOgHv82A6Oi7AWLvBC9N..."]
network_typestring · enumRequired

Machine networking: 3.2 Tbps Infiniband or 100 Gbps Ethernet

Example: infinibandPossible values:
sub_orderany ofOptional

If machines are deployed with a specified sub-order, they will only have network access to other machines in the same sub-order. Not specifying a sub-order will put the machine in either the ethernet or infiniband default suborders for your account.

Example: 12345
integerOptional
or
nullOptional
storage_idany ofOptional

If a storage volume is specified, the machine will be deployed with the storage volume attached.

string · uuidOptional
or
nullOptional
tagsstring[]Optional

Tags to add to the machine.

Default: []Example: ["tag1","tag2"]
cloudinit_scriptany ofOptional
or
nullOptional
Responses
201
Successful Response
application/json
400
Bad Request
422
Validation Error
application/json
post
POST /api/v1/bare-metal/ HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 561

{
  "location_id": "a3111bd4-550a-47d0-838a-0a52bff2ae3f",
  "gpu_count": 1,
  "name": "My Baremetal Rental",
  "organization_ssh_keys": {
    "mode": "selective",
    "ssh_key_ids": [
      "123e4567-e89b-12d3-a456-426614174000"
    ]
  },
  "ssh_keys": [
    "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAKOgHv82A6Oi7AWLvBC9N..."
  ],
  "network_type": "infiniband",
  "sub_order": "12345",
  "storage_id": "123e4567-e89b-12d3-a456-426614174000",
  "tags": [
    "tag1",
    "tag2"
  ],
  "cloudinit_script": {
    "packages": [
      "text"
    ],
    "write_files": [
      {
        "encoding": "text",
        "content": "text",
        "owner": "text",
        "path": "text",
        "permissions": "text"
      }
    ],
    "runcmd": [
      "text"
    ]
  }
}
{
  "rental_id": "123e4567-e89b-12d3-a456-426614174000",
  "warning": "text"
}

Start or stop the nodes in a baremetal rental

put
Authorizations
Path parameters
baremetal_rental_idstring · uuidRequired
Body
statusstring · enumRequiredPossible values:
Responses
200
Successful Response
application/json
Responseany
422
Validation Error
application/json
put
PUT /api/v1/bare-metal/{baremetal_rental_id}/power-status HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 20

{
  "status": "started"
}

No content

Modify baremetal rental details

patch
Authorizations
Path parameters
baremetal_rental_idstring · uuidRequired
Body
nameany ofOptional
stringOptional
or
nullOptional
tagsany ofOptional
string[]Optional
or
nullOptional
Responses
200
Successful Response
application/json
400
Bad Request
422
Validation Error
application/json
patch
PATCH /api/v1/bare-metal/{baremetal_rental_id} HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 31

{
  "name": "text",
  "tags": [
    "text"
  ]
}
{
  "name": "text",
  "tags": [
    "text"
  ]
}

Reboot specific nodes in a baremetal rental.

post

Reboot nodes in a baremetal rental, by providing a list of their public ips. This will cause the status of your rental to become Pending.

Authorizations
Path parameters
baremetal_rental_idstring · uuidRequired
Body
public_ipsstring[]Required
Responses
201
Successful Response
application/json
Responseany
400
Bad Request
422
Validation Error
application/json
post
POST /api/v1/bare-metal/{baremetal_rental_id}/reboot HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 23

{
  "public_ips": [
    "text"
  ]
}

No content

Add new SSH public key to your organization

post

Add new SSH public keys, registered under unique names, to your organization. These can be selected when deploying new rentals to quickly add access for various org members.

This will not affect active deployments, only those created afterwards.

Authorizations
Body
namestring · min: 3 · max: 64Required

Label to be associated with this SSH public key. Up to 64 characters, and can only include alphanumeric values, hyphens, or spaces.

Example: My-SSH-Public-Key
contentstringRequired

The SSH public key contents.

Example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAKOgHv82A6Oi7AWLvBC9N...
Responses
201
Successful Response
application/json
422
Validation Error
application/json
post
POST /api/v1/organization/ssh-keys HTTP/1.1
Host: 
x-api-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 104

{
  "name": "My-SSH-Public-Key",
  "content": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAKOgHv82A6Oi7AWLvBC9N..."
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "My-SSH-Public-Key",
  "content": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAKOgHv82A6Oi7AWLvBC9N..."
}

validate a cloud init script

post
Body
typestring · enumRequiredPossible values:
contentany ofRequired
stringOptional
or
objectOptional
Responses
200
Successful Response
application/json
422
Validation Error
application/json
post
POST /api/v1/validate/cloudinit HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "type": "instant-vm",
  "content": "text"
}
{
  "error": true,
  "message": "text"
}

Create shared storage volume

post
Authorizations
Body
size_in_gbinteger · min: 1Required

Number of gigabytes to allocate for the storage volume

Example: 100
namestringRequiredExample: My Storage Volume
order_idsstring · uuid[]OptionalDefault: []Example: ["19793722-5ca1-4791-a412-86a3b9c8050c"]
Responses
201
Successful Response
application/json
400
Bad Request
422
Validation Error
application/json
post
POST /api/v1/storage/ HTTP/1.1
Host: 
x-api-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 98

{
  "size_in_gb": 100,
  "name": "My Storage Volume",
  "order_ids": [
    "19793722-5ca1-4791-a412-86a3b9c8050c"
  ]
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "size_in_gb": 100,
  "name": "My Storage Volume",
  "status": "active",
  "rate_hourly": "0.017408",
  "order_ids": [
    "e724424f-a73c-499e-b307-0a63d9b71b5b"
  ],
  "tenant_id": 123,
  "vip": "0.0.0.0"
}

Update storage volume

patch
Authorizations
Path parameters
storage_idstring · uuidRequired
Body
size_in_gbany ofOptional
integerOptional
or
nullOptional
nameany ofOptional
stringOptional
or
nullOptional
order_idsany ofOptional
string · uuid[]Optional
or
nullOptional
Responses
200
Successful Response
application/json
400
Bad Request
422
Validation Error
application/json
patch
PATCH /api/v1/storage/{storage_id} HTTP/1.1
Host: 
x-api-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 83

{
  "size_in_gb": 1,
  "name": "text",
  "order_ids": [
    "123e4567-e89b-12d3-a456-426614174000"
  ]
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "size_in_gb": 100,
  "name": "My Storage Volume",
  "status": "active",
  "rate_hourly": "0.017408",
  "order_ids": [
    "e724424f-a73c-499e-b307-0a63d9b71b5b"
  ],
  "tenant_id": 123,
  "vip": "0.0.0.0"
}

List of available locations and available HostNodes

get
Authorizations
Query parameters
limitinteger · min: 1 · max: 15OptionalDefault: 3
offsetintegerOptionalDefault: 0
Responses
200
Successful Response
application/json
422
Validation Error
application/json
get
GET /api/v1/locations/ HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "results": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "city": "text",
      "region": "text",
      "country": "text",
      "hostnodes": [
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "location_id": "123e4567-e89b-12d3-a456-426614174000",
          "available_resources": {
            "gpus": {
              "h100-sxm5-80gb": {
                "count": 8
              }
            },
            "ram_gb": 960,
            "storage_gb": 14000,
            "vcpu_count": 208
          },
          "pricing": {
            "per_gpu_hr": {
              "h100-sxm5-80gb": "3.500000"
            },
            "per_vcpu_hr": "0.000030",
            "per_gb_ram_hr": "0.000001",
            "per_gb_storage_hr": "0.000001"
          },
          "available_ports": [
            1
          ]
        }
      ]
    }
  ],
  "total_result_count": 1,
  "has_previous": true,
  "has_next": true
}

Details for a given location by ID

get
Authorizations
Path parameters
location_idstring · uuidRequired
Responses
200
Successful Response
application/json
422
Validation Error
application/json
get
GET /api/v1/locations/{location_id} HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "city": "text",
  "region": "text",
  "country": "text",
  "hostnodes": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "location_id": "123e4567-e89b-12d3-a456-426614174000",
      "available_resources": {
        "gpus": {
          "h100-sxm5-80gb": {
            "count": 8
          }
        },
        "ram_gb": 960,
        "storage_gb": 14000,
        "vcpu_count": 208
      },
      "pricing": {
        "per_gpu_hr": {
          "h100-sxm5-80gb": "3.500000"
        },
        "per_vcpu_hr": "0.000030",
        "per_gb_ram_hr": "0.000001",
        "per_gb_storage_hr": "0.000001"
      },
      "available_ports": [
        1
      ]
    }
  ]
}
  • Overview
  • Authentication
  • How to Obtain an API Key
  • Endpoints
  • GETList of available locations and available HostNodes
  • GETDetails for a given location by ID
  • GETDetails and available resources for a given HostNode
  • POSTConvert a preconfigured virtual machine to a new virtual machine
  • GETList of owned, unterminated virtual machines
  • GETDetails for a specific unterminated virtual machine
  • PATCHModify a virtual machine's details
  • DELETETerminate an existing virtual machine
  • PUTStart or stop a virtual machine
  • GETGet Instant Deploy Presets
  • GETGet Instant Deploy Preset
  • GETList of available baremetal locations
  • POSTProvision a new bare-metal server rental
  • GETList of owned, unterminated baremetal machines
  • PUTStart or stop the nodes in a baremetal rental
  • DELETETerminate a bare-metal rental
  • PATCHModify baremetal rental details
  • POSTReboot specific nodes in a baremetal rental.
  • GETCurrent rate for active rentals
  • GETHistorical organization billing log
  • GETMonthly billing log
  • GETList of SSH public keys under your organization
  • POSTAdd new SSH public key to your organization
  • DELETERemove an SSH key from your organization
  • POSTvalidate a cloud init script
  • GETFetch hourly rate for storage
  • POSTCreate shared storage volume
  • GETList of available storage
  • DELETETerminate a storage volume
  • PATCHUpdate storage volume
  • GETGet storage by id