API

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

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 [email protected].

  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.

Endpoints

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
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
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
      ]
    }
  ]
}

Details and available resources for a given HostNode

get
Authorizations
Path parameters
hostnode_idstring · uuidRequired
Responses
200
Successful Response
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
  ]
}

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
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"
}

List of owned, unterminated virtual machines

get
Authorizations
Query parameters
limitinteger · min: 1 · max: 100OptionalDefault: 10
offsetintegerOptionalDefault: 0
Responses
200
Successful Response
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-06-27T11:56:31.995Z",
      "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
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-06-27T11:56:31.995Z",
  "tags": [
    "text"
  ]
}

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
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"
  ]
}

Terminate an existing virtual machine

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

No content

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
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"
}

Get Instant Deploy Presets

get
Query parameters
availableany ofOptional
booleanOptional
or
nullOptional
Responses
200
Successful Response
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
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
}

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
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"
}

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
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
}

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
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

Terminate a bare-metal rental

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

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
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
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

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
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-06-27T11:56:31.995Z",
      "timestamp_completion": "2025-06-27T11:56:31.995Z",
      "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-06-27T11:56:31.995Z",
          "timestamp_deletion": "2025-06-27T11:56:31.995Z"
        }
      },
      "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
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-06-27T11:56:31.995Z",
      "timestamp_completion": "2025-06-27T11:56:31.995Z",
      "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-06-27T11:56:31.995Z",
          "timestamp_deletion": "2025-06-27T11:56:31.995Z"
        }
      },
      "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
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
}

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
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..."
}

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
delete
DELETE /api/v1/organization/ssh-keys/{ssh_key_id} HTTP/1.1
Host: 
x-api-token: YOUR_API_KEY
Accept: */*

No content

validate a cloud init script

post
Body
typestring · enumRequiredPossible values:
contentany ofRequired
stringOptional
or
objectOptional
Responses
200
Successful Response
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"
}

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"
}

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
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"
}

List of available storage

get
Authorizations
Query parameters
limitinteger · min: 1 · max: 100OptionalDefault: 20
offsetintegerOptionalDefault: 0
Responses
200
Successful Response
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
delete
DELETE /api/v1/storage/{storage_id} HTTP/1.1
Host: 
x-api-token: YOUR_API_KEY
Accept: */*

No content

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
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"
}

Get storage by id

get
Authorizations
Path parameters
storage_idstring · uuidRequired
Responses
200
Successful Response
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"
}

Last updated