Skip to main content

Crusoe Cloud API Gateway (v1)

Download OpenAPI specification:Download

The API Gateway exposes all publicly available API endpoints for Crusoe Cloud products.

VMs

Creates multiple VMs in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
count
required
integer <int64>

Number of VMs to create. If multiple locations are specified, this is the number of VMs created in each location.

crusoe_watch_agent_install_mode
string
Enum: "docker" "native"

Installation mode for the Crusoe Watch Agent: docker or native. Defaults to docker.

install_crusoe_watch_agent
boolean or null

Whether to install the Crusoe Watch Agent on the VMs. Defaults to true.

instance_group_id
string

ID of the instance group the VMs will be created in.

object (InstanceTemplatePostRequestV1 defines the specifications of VMs to be created during bulk VM creation.)
instance_template_id
string

ID of the instance template to use for creating the VMs.

Array of objects (BulkCreateLocationInfo)

Locations to create the VMs in. This overrides any location specified in the instance template.

name_prefix
required
string

Name prefix for the VMs to be created, used to derive each VM's name (e.g. "my-vm" produces "my-vm-1", "my-vm-2", and so on).

nvlink_domain_id
string

ID of the NVLink domain to create the VMs in.

object (ReservationSpecification)

Responses

Request samples

Content type
application/json
{
  • "count": 6,
  • "crusoe_watch_agent_install_mode": "docker",
  • "install_crusoe_watch_agent": true,
  • "instance_group_id": "cda562c4-6162-4565-95f3-ce06a8220c07",
  • "instance_template": {
    },
  • "instance_template_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "locations": [
    ],
  • "name_prefix": "my-vm",
  • "nvlink_domain_id": "string",
  • "reservation_specification": {
    }
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Lists all VMs in the project and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
query Parameters
ids
string
Example: ids=ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Filters results to VMs with these IDs.

names
string
Example: names=my-first-vm

Filters results to VMs with these names.

types
string
Example: types=a40.2x,a100.8x

Filters results to VMs of these types.

locations
string
Example: locations=us-east1,us-northcentral1

Filters results to VMs in these locations.

states
string
Example: states=STATE_RUNNING

Filters results to VMs in these states.

nvlink_domain_ids
string
Example: nvlink_domain_ids=550e8400-e29b-41d4-a716-446655440000

Filters results to VMs in these NVLink domains.

limit
string
Example: limit=20

Maximum number of VMs to return per page.

sort
string
Example: sort=name

Field to sort the results by.

next_token
string
Example: next_token=bXktZmlyc3Qtdm0

Token identifying the next page of results to return.

prev_token
string
Example: prev_token=bXktZmlyc3Qtdm0

Token identifying the previous page of results to return.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_page_token": "bXktbGFzdC12bQ",
  • "prev_page_token": "bXktZmlyc3Qtdm0"
}

Creates a VM in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
commitment_period
integer <int64>

commitment is no longer supported

crusoe_watch_agent_install_mode
string
Enum: "docker" "native"

Installation mode for the Crusoe Watch Agent: docker or native. Defaults to docker.

custom_image
string

ID of a custom image to use for the new VM. Either image or custom_image should be supplied, not both.

Array of objects (DiskAttachment)

Disks to attach to the new VM.

Array of objects (PartialHostChannelAdapter is used when POSTing and PATCHing VMs to assign IB Partitions.)

Host channel adapters to attach to the new VM.

image
string

Name of the OS image to use for the new VM. Either image or custom_image should be supplied, not both.

install_crusoe_watch_agent
boolean or null

Whether to install the Crusoe Watch Agent on the VM. Defaults to true.

location
required
string

Location to create the VM in.

maintenance_policy
string

Host maintenance policy to apply to the new VM: manual, stop-vm, or unspecified.

name
required
string

Name for the new VM.

Array of objects (NetworkInterface)

Network interfaces to attach to the new VM.

nvlink_domain_id
string

ID of the NVLink domain to create the VM in.

object (ReservationSpecification)
shutdown_script
string

Script to run when the VM shuts down.

ssh_public_key
required
string

SSH public key to grant access to the new VM.

startup_script
string

Script to run when the VM starts.

type
required
string

Product name of the VM type to create.

object (VirtualizationFeatures)

Responses

Request samples

Content type
application/json
{
  • "commitment_period": 0,
  • "crusoe_watch_agent_install_mode": "docker",
  • "custom_image": "string",
  • "disks": "[{disk_id: \"09ae8411-0fbb-411c-898c-2b8f19622ae1\", mode: \"read-write\", attachment_type: \"data\"},",
  • "host_channel_adapters": [
    ],
  • "image": "ubuntu:20.04",
  • "install_crusoe_watch_agent": true,
  • "location": "us-northcentral1-a",
  • "maintenance_policy": "manual,stop-vm,unspecified",
  • "name": "my-first-vm",
  • "network_interfaces": [
    ],
  • "nvlink_domain_id": "string",
  • "reservation_specification": {
    },
  • "shutdown_script": "#!/bin/bash\\necho 'goodbye'",
  • "ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D",
  • "startup_script": "#!/bin/bash\\necho 'hello'",
  • "type": "a100.2x",
  • "virtualization_features": {
    }
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Deletes a VM from the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VM.

vm_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VM.

Responses

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Returns details for a single VM in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VM.

vm_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VM.

Responses

Response samples

Content type
application/json
{
  • "billing_type": "string",
  • "commitment_end": "string",
  • "commitment_period": 0,
  • "created_at": "2021-12-03T19:58:34Z",
  • "disks": [
    ],
  • "host_channel_adapters": [
    ],
  • "id": "ca39e669-47ee-456b-968d-303234fbf99f",
  • "instance_group_id": "707749bd-ecad-4de8-aa00-1ae2fdb99e19",
  • "instance_template_id": "75c6712a-8da8-463c-a72d-fc65cf922959",
  • "location": "us-centralnorth1-a",
  • "maintenance_policy": "manual",
  • "name": "my-first-vm",
  • "network_interfaces": [
    ],
  • "nvlink_domain_id": "string",
  • "pod_id": "29d20dc4-90ad-4365-ab05-83f5f5e52d94",
  • "project_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "reservation_id": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8",
  • "state": "RUNNING",
  • "type": "a100.2x",
  • "updated_at": "2023-08-14T09:00:35Z",
  • "virtualization_features": {
    }
}

Updates a VM in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VM.

vm_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VM.

Request Body schema: application/json
required
action
required
string
Enum: "START" "STOP" "RESET" "RESERVE" "UNRESERVE" "UPDATE"

Action to perform on the VM: START, STOP, RESET, RESERVE, UNRESERVE, or UPDATE. RESERVE and UNRESERVE operations are done synchronously, and so will have succeeded with a 200 response.

commitment_period
integer <int64>

CommitmentPeriod is deprecated, please use reservationID instead

Array of objects (PartialHostChannelAdapter is used when POSTing and PATCHing VMs to assign IB Partitions.)

New set of host channel adapters for the VM.

maintenance_policy
string

New host maintenance policy for the VM: manual, stop-vm, or unspecified.

Array of objects (NetworkInterface)

New set of network interfaces for the VM.

reservation_id
string

ID of the reservation to use for the VM.

type
string

New VM type to change the VM to.

Responses

Request samples

Content type
application/json
{
  • "action": "START",
  • "commitment_period": 0,
  • "host_channel_adapters": [
    ],
  • "maintenance_policy": "manual,stop-vm,unspecified",
  • "network_interfaces": [
    ],
  • "reservation_id": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8",
  • "type": "a100.2x"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Attaches disks to a VM in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VM.

vm_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VM.

Request Body schema: application/json
required
required
Array of objects (DiskAttachment)

Disks to attach to the VM.

Array
attachment_type
required
string
Enum: "os" "data"

Role the disk plays for the VM: os or data.

disk_id
required
string

ID of the disk to attach.

mode
required
string
Enum: "read-only" "read-write"

Access mode to attach the disk with: read-only or read-write.

Responses

Request samples

Content type
application/json
{
  • "attach_disks": "[{disk_id: \"09ae8411-0fbb-411c-898c-2b8f19622ae1\", mode: \"read-write\", attachment_type: \"data\"}, {disk_id: \"b1f86d1b-42d2-490d-adb0-cc1029abf653\", mode: \"read-only\", attachment_type: \"data\"}]"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Detaches disks from a VM in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VM.

vm_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VM.

Request Body schema: application/json
required
detach_disks
required
Array of strings

Identifiers of the disks to detach from the VM.

Responses

Request samples

Content type
application/json
{
  • "detach_disks": [
    ]
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Lists all available VM types and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

VM Operations

Get status of asynchronous operations

This resource retrieves information about the status of asynchronous operations initiated by the instances resource. All operations that are either in-flight or completed but not yet queried will be returned.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
query Parameters
resource_id
string
Example: resource_id=452580d7-41d1-4b63-b4d7-4e4e21e95f96
state
Array of strings
Example: state=IN_PROGRESS
lower_time_bound
string
Example: lower_time_bound=2021-12-03T19:58:34Z

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get the status of a single asynchronous operation

This resource retrieves information about the status of an asynchronous operation initiated by the instances resource. Only information about the operation specified in the path will be returned, or an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged in user, or has expired.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
operation_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "completed_at": "2021-12-03T19:59:34Z",
  • "metadata": "{}",
  • "operation_id": "F6EF489C-086E-458D-B812-7962964A28C9",
  • "result": "{}",
  • "started_at": "2021-12-03T19:58:34Z",
  • "state": "IN_PROGRESS"
}

Images

Lists all images and returns their details.

query Parameters
product_group
string
Example: product_group=a100

Optional filter to return only images compatible with the specified product group (e.g. "a100", "h100").

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Returns details for a single image.

path Parameters
image_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the image.

Responses

Response samples

Content type
application/json
{
  • "created_at": "2023-06-29T20:03:26Z",
  • "description": "base Ubuntu 20.04 image",
  • "id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "locations": "[us-east1, us-northcentral1]",
  • "name": "ubuntu",
  • "tags": "[20.4, latest]"
}

Instance Templates

Lists all instance templates in the project and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates an instance template in the project and returns the created instance template.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
custom_image_name
string

Custom image to use for all VMs created from this instance template. Only one of Image or CustomImage should be supplied at once.

Array of objects (DiskTemplate defines a disk to create for each VM during bulk VM creation.)

Disks to attach to all VMs created from this instance template.

ib_partition_id
string

Deprecated: Use transport_partition_id instead.

image_name
string

OS Image to use for all VMs created from this instance template.

location
string

Location to use for all VMs created from this instance template. If provided, all location-specific resources must also be provided.

maintenance_policy
string

Host maintenance policy controlling how VMs created from this instance template behave during host maintenance.

nvlink_domain_id
string

NVLink domain to assign to all VMs created from this instance template.

placement_policy
string

Placement policy controlling how VMs created from this instance template are distributed across hosts: spread or unspecified.

public_ip_address_type
string

Public IP address type to use for all VMs created from this instance template. Must either be "static" or "dynamic".

reservation_id
string

Reservation to use for all VMs created from this instance template.

shutdown_script
string

Shutdown script to use for all VMs created from this instance template.

ssh_public_key
required
string

SSH public key to use for all VMs created from this instance template.

startup_script
string

Startup script to use for all VMs created from this instance template.

subnet_id
string

Subnet to use for all VMs created from this instance template. This is location-specific and must be provided if location is provided.

template_name
required
string

Name of the instance template. (This is not the name of the VMs created from this instance template.)

transport_partition_id
string

IB or RoCE partition to use for all VMs created from this instance template. Should only be provided for transport-enabled VM types. This is location-specific and must be provided if location is provided.

type
required
string

Product name of the VM type we want to create from this instance template.

object (VirtualizationFeatures)

Responses

Request samples

Content type
application/json
{
  • "custom_image_name": "ubuntu:20.04",
  • "disks": [
    ],
  • "ib_partition_id": "string",
  • "image_name": "ubuntu:20.04",
  • "location": "us-northcentral1-a",
  • "maintenance_policy": "manual,stop-vm,unspecified",
  • "nvlink_domain_id": "550e8400-e29b-41d4-a716-446655440000",
  • "placement_policy": "spread",
  • "public_ip_address_type": "static",
  • "reservation_id": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8",
  • "shutdown_script": "\"#!/bin/bash\\necho 'goodbye'\"",
  • "ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D",
  • "startup_script": "\"#!/bin/bash\\necho 'hello'\"",
  • "subnet_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "template_name": "my-instance-template",
  • "transport_partition_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "type": "a100.2x",
  • "virtualization_features": {
    }
}

Response samples

Content type
application/json
{
  • "created_at": "2024-01-01T00:00:00Z",
  • "custom_image_name": "ubuntu:20.04",
  • "disks": [
    ],
  • "ib_partition_id": "string",
  • "id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "image_name": "ubuntu:20.04",
  • "location": "us-northcentral1-a",
  • "maintenance_policy": "manual",
  • "name": "my-instance-template",
  • "nvlink_domain_id": "550e8400-e29b-41d4-a716-446655440000",
  • "placement_policy": "spread",
  • "project_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "public_ip_address_type": "static",
  • "reservation_id": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8",
  • "shutdown_script": "#!/bin/bash\\necho 'goodbye'",
  • "ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D",
  • "startup_script": "#!/bin/bash\\necho 'hello'",
  • "subnet_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "transport_partition_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "type": "a100.2x",
  • "virtualization_features": {
    }
}

Deletes an instance template from the project.

path Parameters
instance_template_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the instance template.

project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "code": "400",
  • "message": "bad_request"
}

Returns details for a single instance template in the project.

path Parameters
instance_template_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the instance template.

project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "created_at": "2024-01-01T00:00:00Z",
  • "custom_image_name": "ubuntu:20.04",
  • "disks": [
    ],
  • "ib_partition_id": "string",
  • "id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "image_name": "ubuntu:20.04",
  • "location": "us-northcentral1-a",
  • "maintenance_policy": "manual",
  • "name": "my-instance-template",
  • "nvlink_domain_id": "550e8400-e29b-41d4-a716-446655440000",
  • "placement_policy": "spread",
  • "project_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "public_ip_address_type": "static",
  • "reservation_id": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8",
  • "shutdown_script": "#!/bin/bash\\necho 'goodbye'",
  • "ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D",
  • "startup_script": "#!/bin/bash\\necho 'hello'",
  • "subnet_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "transport_partition_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "type": "a100.2x",
  • "virtualization_features": {
    }
}

Projects

Lists all projects the logged-in user belongs to or owns and returns their details.

If querying for projects within an organization, the logged-in user must be the owner of the organization.

query Parameters
org_id
string
Example: org_id=ee2a6bc3-aed5-4756-8995-9990a53d3a17

Filters results to projects in this organization.

project_name
string
Example: project_name=default

Filters results to projects with this name.

skip_loading_project_resources
boolean
Example: skip_loading_project_resources=true

Whether to skip loading the resource counts for each project.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates a project and returns the created project.

The logged-in user must have the permission to create projects within the organization. A successful response from this resource contains details of the created project.

Request Body schema: application/json
required
name
required
string

Name for the new project.

organization_id
required
string

ID of the organization that will own the new project.

Responses

Request samples

Content type
application/json
{
  • "name": "Admin",
  • "organization_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab"
}

Response samples

Content type
application/json
{
  • "project": {
    }
}

Updates a project and returns the updated project.

Requests to this resource must contain the json-encoded representation of the changes they want to make to the project. Currently only the project's name can be changed.

query Parameters
project_id
required
string
Example: project_id=f058d0db-2fa4-4cf2-8cf1-dfbcfe05a814

ID of the project.

Request Body schema: application/json
required
name
required
string

New name for the project.

Responses

Request samples

Content type
application/json
{
  • "name": "Admin"
}

Response samples

Content type
application/json
{
  • "project": {
    }
}

Deletes a project.

Delete operations cascade to VMs created under that project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "code": "401",
  • "message": "bad_credential"
}

Returns details for a single project.

path Parameters
project_id
required
string
Example: ee2a6bc3-aed5-4756-8995-9990a53d3a17

ID of the project.

Responses

Response samples

Content type
application/json
{
  • "id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "name": "Admin",
  • "organization_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "relation": "owner",
  • "resources": {
    }
}

Billing

Get the daily spend for a specified organization by project.

path Parameters
organization_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "last_updated": "string"
}

Return a CSV containing the costs for resources in a given period.

path Parameters
organization_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
query Parameters
projects
Array of strings
Example: projects=d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb
product_lines
Array of strings
Example: product_lines=persistent-ssd,a40
regions
Array of strings
Example: regions=us-east1,us-northcentral1
start_date
required
string
Example: start_date="2022-07-01"
end_date
required
string
Example: end_date="2023-08-08"

Responses

Response samples

Content type
application/json
{
  • "code": "400",
  • "message": "bad_request"
}

Retrieve data about an organizations recent Non-Reservation costs.

path Parameters
organization_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
query Parameters
start_date
string
Example: start_date="2025-05-01"
end_date
string
Example: end_date="2025-05-20"

Responses

Response samples

Content type
application/json
{
  • "end_date": "\"2023-08-08\"",
  • "product_lines": [
    ],
  • "projects": [
    ],
  • "regions": [
    ],
  • "resource_types": [
    ],
  • "start_date": "\"2022-07-01\""
}

Entities

Retrieve details about all active organizations the logged in user belongs to.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Update details for an organization that the logged in user owns.

A successful response from this resource will contain the updated organization details.

query Parameters
org_id
required
string
Example: org_id=ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
object (BillingAddress contains sensitive information related to the billing address for an entity.)
company_name
string
organization_name
string
tax_id
string
tax_id_type
string
Enum: "EIN" "VAT"

Responses

Request samples

Content type
application/json
{
  • "billing_addr": {
    },
  • "company_name": "mycompany",
  • "organization_name": "Crusoe Energy",
  • "tax_id": "51-2144346",
  • "tax_id_type": "EIN"
}

Response samples

Content type
application/json
{
  • "entity": {
    }
}

Usage

Get project-level usage for products in Crusoe Cloud.

path Parameters
org_id
required
string[^/]+

org_id is the ID of the org to fetch usage for

query Parameters
projects
Array of strings

projects is an optional list of project IDs to filter usage by; absent means all projects

resource_types
Array of strings

resource_types is an optional list of product types to filter usage by; absent means all products

regions
Array of strings

regions is an optional list of regions to filter usage by; absent means all regions

start_date
string

start_date is the optional start date (inclusive) of the usage period, formatted YYYY-MM-DD

end_date
string

end_date is the optional end date of the usage period, formatted YYYY-MM-DD

interval
string

interval controls how usage is aggregated over the period: "daily" (the default) or "monthly"

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get resource-level usage for products in Crusoe Cloud.

path Parameters
organization_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
query Parameters
projects
required
Array of strings
Example: projects=d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb
resources
required
Array of strings
Example: resources=d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb
resource_types
required
Array of strings
Example: resource_types=persistent-ssd,a40.1x
regions
required
Array of strings
Example: regions=us-east1,us-northcentral1
start_date
required
string
Example: start_date="2022-07-01"
end_date
required
string
Example: end_date="2023-08-08"

Responses

Response samples

Content type
application/json
{
  • "code": "400",
  • "message": "bad_request"
}

Get options which exist for filters for /usage and /usage/export routes.

path Parameters
organization_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "end_date": "\"2023-08-08\"",
  • "product_lines": [
    ],
  • "projects": [
    ],
  • "regions": [
    ],
  • "resource_types": [
    ],
  • "start_date": "\"2022-07-01\""
}

Quotas

List max and currently used organization quotas.

path Parameters
organization_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "quotas": [
    ]
}

List max and currently used project quotas.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "quotas": [
    ]
}

Audit Logs

Get audit logs belonging to the specified organization. User must be part of the organization.

path Parameters
organization_id
required
string
Example: de8f27fe-8438-45e7-a2c2-a2767660625f
query Parameters
project_ids
Array of strings
Example: project_ids=f934fbdb-7e3a-4b92-b7d2-da0f91d768e8,8c29f3f3-830f-4a44-9b6b-a51fcf6a6b5d
start_time
string
Example: start_time=2022-09-01T14:25:36-07:00
end_time
string
Example: end_time=2022-09-06T14:25:36-07:00
actions
Array of strings
Example: actions=Create,Update
actor_ids
Array of strings
Example: actor_ids=f934fbdb-7e3a-4b92-b7d2-da0f91d768e8,8c29f3f3-830f-4a44-9b6b-a51fcf6a6b5d
actor_emails
Array of strings
Example: [email protected],[email protected], only support filter by user email, not by crusoe admin email.
actor_types
Array of strings
Example: actor_types=User,Crusoe Admin, please ensure URL encoding for values with space.
target_ids
Array of strings
Example: target_ids=f934fbdb-7e3a-4b92-b7d2-da0f91d768e8,8c29f3f3-830f-4a44-9b6b-a51fcf6a6b5d
target_types
Array of strings
Example: target_types=VM,KubernetesCluster
target_names
Array of strings
Example: target_names=my_vm1,my_vm2
locations
Array of strings
Example: locations=us-east1,us-northcentral1-a
results
Array of strings
Example: results=OK,Bad Request
results_not
Array of strings
Example: results_not=OK,Bad Request
surfaces
Array of strings
Example: surfaces=Browser,Crusoe Terraform/v0.5.21 please make sure the values are URL encoded.
limit
string
Example: limit=20
next_token
string
Example: next_token=bXktZmlyc3Qtdm0
prev_token
string
Example: prev_token=bXktZmlyc3Qtdm0

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_page_token": "bXktbGFzdC12bQ",
  • "prev_page_token": "bXktZmlyc3Qtdm0"
}

SCIM

List SCIM integrations for an organization.

path Parameters
org_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "integrations": [
    ]
}

Create a new SCIM integration for an organization.

path Parameters
org_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
identity_provider
required
string
name
required
string
object (CreateSCIMTokenRequestBody is the JSON request body for creating a SCIM integration token.)

Responses

Request samples

Content type
application/json
{
  • "identity_provider": "okta",
  • "name": "Okta SCIM Integration",
  • "token": {
    }
}

Response samples

Content type
application/json
{
  • "api_key_info": {
    },
  • "integration": {
    }
}

Delete a SCIM integration.

path Parameters
org_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
integration_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "code": "401",
  • "message": "bad_credential"
}

Get a SCIM integration by ID.

path Parameters
org_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
integration_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "created_at": "2024-01-01T00:00:00Z",
  • "created_by": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "identity_provider": "okta",
  • "last_activity_at": "2024-01-01T00:00:00Z",
  • "name": "Okta SCIM Integration",
  • "organization_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "status": "active",
  • "token_ids": [
    ],
  • "updated_at": "2024-01-01T00:00:00Z",
  • "user_count": 0
}

Update a SCIM integration.

path Parameters
org_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
integration_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
status
string

The new status for the integration.

Responses

Request samples

Content type
application/json
{
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "created_at": "2024-01-01T00:00:00Z",
  • "created_by": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "identity_provider": "okta",
  • "last_activity_at": "2024-01-01T00:00:00Z",
  • "name": "Okta SCIM Integration",
  • "organization_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "status": "active",
  • "token_ids": [
    ],
  • "updated_at": "2024-01-01T00:00:00Z",
  • "user_count": 0
}

List the tokens for a SCIM integration.

path Parameters
org_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
integration_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Create a token for a SCIM integration.

path Parameters
org_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
integration_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
alias
required
string
expires_at
required
string

Responses

Request samples

Content type
application/json
{
  • "alias": "my-scim-token",
  • "expires_at": "2025-12-03T19:58:34Z"
}

Response samples

Content type
application/json
{
  • "api_key_info": {
    }
}

Delete a token from a SCIM integration.

path Parameters
org_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
integration_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
access_key_id
required
string
Example: R7p5XctCQMuGlpVBmVdqzA

Responses

Response samples

Content type
application/json
{
  • "code": "400",
  • "message": "bad_request"
}

Identities

Retrieve user details for the logged in user.

Responses

Response samples

Content type
application/json
{
  • "credentials": [
    ],
  • "credentials_map": {
    },
  • "identity": {
    }
}

Update user details for the logged in user.

A successful response from this resource wil contain the updated user details.

Request Body schema: application/json
required
name
required
string
role
string

Responses

Request samples

Content type
application/json
{
  • "name": "John Doe",
  • "role": "Admin"
}

Response samples

Content type
application/json
{
  • "credentials": [
    ],
  • "credentials_map": {
    },
  • "identity": {
    }
}

SSH Keys

Delete an SSH public key registered to the logged in user.

query Parameters
id
required
string
Example: id=6e28cad3-98e6-47a9-a9fc-1cd83a7f25c1

Responses

Response samples

Content type
application/json
{
  • "code": "400",
  • "message": "bad_request"
}

Retrieve the list of SSH public keys registered to the logged in user.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Register a new SSH public key to the logged in user.

A successful response from this resource wil contain the created SSH key details.

Request Body schema: application/json
required
name
required
string
public_key
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "John Doe",
  • "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICpuH/fqCFLbAConChyVH6rZzSaxlnHSwQk6qvtPsf5E"
}

Response samples

Content type
application/json
{
  • "ssh_key": {
    }
}

Tokens

Delete an API token owned by the logged in user.

query Parameters
access_key
required
string
Example: access_key=WTUzcGibQ82y9_01h4MCdQ

Responses

Response samples

Content type
application/json
{
  • "code": "401",
  • "message": "bad_credential"
}

Retrieve all active/expired API tokens for the logged in user.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Create a new token owned by the logged in user.

A successful response from this resource will contain json-encoded details of API token. This is the only time the customer will be able to view the secret key associated with the token.

Request Body schema: application/json
required
alias
string
expires_at
required
string

Responses

Request samples

Content type
application/json
{
  • "alias": "token1",
  • "expires_at": "2021-12-03T19:58:34Z"
}

Response samples

Content type
application/json
{
  • "token": {
    }
}

Disks

Lists all disks in the project and returns their details.

Size of disks will be in gibibytes (GiB)

path Parameters
project_id
required
string

ID of the project that owns the disks.

query Parameters
disk_ids
Array of strings

Filters results to disks with these IDs.

location
string

Filters results to disks in this location.

disk_names
Array of strings

Filters results to disks with these names.

exclude_os
boolean

Excludes OS disks from the results when true.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates a disk in the project and returns the async operation.

Requires either a disk snapshot ID, or size and location, where size of disk should be in gibibytes (GiB) or tebibytes (TiB) in the format [Size][Unit]. E.g. 10GiB. Disk type must be one of: DISK_TYPE_PERSISTENT_SSD. A successful response from this resource will contain the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
block_size
integer <int64>

Block size for the new disk, in bytes: 512 or 4096.

location
string

Location to create the disk in.

name
required
string

Name for the new disk.

size
string

Storage capacity for the new disk, given as a size and unit in the format [Size][Unit], for example 100GiB or 1TiB.

snapshot_id
string

ID of a disk snapshot to create the disk from.

type
string
Default: "persistent-ssd"
Enum: "persistent-ssd" "shared-volume"

Type of disk to create: persistent-ssd or shared-volume. Defaults to persistent-ssd.

Responses

Request samples

Content type
application/json
{
  • "block_size": 4096,
  • "location": "us-northcentral1-a",
  • "name": "my-disk",
  • "size": "10GiB",
  • "snapshot_id": "123e4567-e89b-12d3-a456-426614174000",
  • "type": "persistent-ssd"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Deletes a disk from the project and returns the async operation.

A successful response from this resource will contain the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the disk.

disk_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the disk.

Responses

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Returns details for a single disk in the project.

Size of disk will be in gibibytes (GiB)

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the disk.

disk_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the disk.

Responses

Response samples

Content type
application/json
{
  • "attached_to": [
    ],
  • "block_size": 4096,
  • "created_at": "2021-12-03T19:58:34Z",
  • "dns_name": "nfs.crusoecloudcompute.com",
  • "id": "123e4567-e89b-12d3-a456-426614174000",
  • "location": "us-northcentral1-a",
  • "name": "my-disk",
  • "serial_number": "96FD14FDBCF7E21E8EC",
  • "size": "10GiB",
  • "type": "persistent-ssd",
  • "updated_at": "2021-12-03T19:58:34Z",
  • "vips": [
    ]
}

Resizes a disk in the project and returns the async operation.

Size should be in gibibytes (GiB) or tebibytes (TiB) in the format [Size][Unit]. E.g. 10GiB A successful response from this resource will contain the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the disk.

disk_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the disk.

Request Body schema: application/json
required
size
required
string

New storage capacity for the disk, given as a size and unit in the format [Size][Unit], for example 100GiB or 1TiB.

Responses

Request samples

Content type
application/json
{
  • "size": "10GiB"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Disk Operations

Get status of asynchronous operations

This resource retrieves information about the status of asynchronous operations initiated by the disks resource. All operations that are either in-flight or completed but not yet queried will be returned.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
query Parameters
resource_id
string
Example: resource_id=452580d7-41d1-4b63-b4d7-4e4e21e95f96
state
Array of strings
Example: state=IN_PROGRESS

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get status of a single asynchronous operation

This resource retrieves information about the status of an asynchronous operation initiated by the disks resource. Only information about the operation specified in the path will be returned, or an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged in user, or has expired.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
operation_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "completed_at": "2021-12-03T19:59:34Z",
  • "metadata": "{}",
  • "operation_id": "F6EF489C-086E-458D-B812-7962964A28C9",
  • "result": "{}",
  • "started_at": "2021-12-03T19:58:34Z",
  • "state": "IN_PROGRESS"
}

Snapshots

Lists all disk snapshots in the project and returns their details.

Size of snapshots will be in bytes.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates a disk snapshot in the project and returns the async operation.

A successful response from this resource will contain the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
disk_id
required
string

ID of the disk to snapshot.

name
required
string

Name for the new disk snapshot.

Responses

Request samples

Content type
application/json
{
  • "disk_id": "123e4567-e89b-12d3-a456-426614174000",
  • "name": "my-snapshot-1"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Deletes a disk snapshot from the project and returns the async operation.

A successful response from this resource will contain the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the disk snapshot.

snapshot_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the disk snapshot.

Responses

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Returns details for a single disk snapshot in the project.

Size of snapshot will be in bytes.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the disk snapshot.

snapshot_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the disk snapshot.

Responses

Response samples

Content type
application/json
{
  • "block_size": 4096,
  • "created_at": "2021-12-03T19:58:34Z",
  • "created_from": "123e4567-e89b-12d3-a456-426614174000",
  • "id": "123e4567-e89b-12d3-a456-426614174000",
  • "name": "my-snapshot",
  • "size": "10457 bytes",
  • "updated_at": "2021-12-03T19:58:34Z"
}

Renames a disk snapshot in the project and returns the updated snapshot.

A successful response from this resource will contain the updated snapshot.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the disk snapshot.

snapshot_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the disk snapshot.

Request Body schema: application/json
required
name
required
string

New name for the disk snapshot.

Responses

Request samples

Content type
application/json
{
  • "name": "my-snapshot"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Snapshot Operations

Get status of asynchronous operations

This resource retrieves information about the status of asynchronous operations initiated by the snapshots resource. All operations that are either in-flight or completed but not yet queried will be returned.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
query Parameters
resource_id
string
Example: resource_id=452580d7-41d1-4b63-b4d7-4e4e21e95f96
state
Array of strings
Example: state=IN_PROGRESS

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get status of a single asynchronous operation

This resource retrieves information about the status of an asynchronous operation initiated by the snapshots resource. Only information about the operation specified in the path will be returned, or an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged in user, or has expired.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
operation_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "completed_at": "2021-12-03T19:59:34Z",
  • "metadata": "{}",
  • "operation_id": "F6EF489C-086E-458D-B812-7962964A28C9",
  • "result": "{}",
  • "started_at": "2021-12-03T19:58:34Z",
  • "state": "IN_PROGRESS"
}

S3Buckets

Lists all S3 buckets in the project and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the buckets.

query Parameters
next_page_token
string
Example: next_page_token=bXktZmlyc3Qtdm0

Token that returns the next page of results.

prev_page_token
string
Example: prev_page_token=bXktZmlyc3Qtdm0

Token that returns the previous page of results.

page_size
integer <int32>
Default: 20
Example: page_size=10

Maximum number of buckets to return per page.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_page_token": "string",
  • "prev_page_token": "string"
}

Creates an S3 bucket in the project and returns the created bucket.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project to create the bucket in.

Request Body schema: application/json
required
location
required
string

Location to create the bucket in.

name
required
string

Name for the new bucket. Must be DNS-compliant: 3-63 characters, using lowercase letters, numbers, and hyphens.

object_lock_enabled
boolean

Whether to enable object lock on the new bucket. Requires versioning to be enabled and cannot be disabled once enabled.

retention_period
integer <int32>

Length of the object lock retention period, in the unit given by retention_period_unit.

retention_period_unit
string (Unit of measurement for an object lock retention period: days or years.)

enum: days,years

object

Tags to apply to the new bucket as key-value pairs.

versioning_state
string (Versioning state of an S3 bucket: disabled, enabled, or suspended.)

enum: disabled,enabled,suspended

Responses

Request samples

Content type
application/json
{
  • "location": "us-eaststaging1-a",
  • "name": "my-new-bucket",
  • "object_lock_enabled": false,
  • "retention_period": 30,
  • "retention_period_unit": "string",
  • "tags": {
    },
  • "versioning_state": "string"
}

Response samples

Content type
application/json
{
  • "archived_at": "2021-12-03T19:58:34Z",
  • "bucket_size": 2.42,
  • "created_at": "2021-12-03T19:58:34Z",
  • "location": "us-eaststaging1-a",
  • "name": "my-awesome-bucket",
  • "object_lock_enabled": false,
  • "project_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "retention_mode": "string",
  • "retention_period": 30,
  • "retention_period_unit": "string",
  • "tags": {
    },
  • "updated_at": "2021-12-03T19:58:34Z",
  • "user_id": "S3U_...",
  • "versioning_state": "string"
}

Returns the number of S3 buckets in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the buckets.

Responses

Response samples

Content type
application/json
{
  • "code": "401",
  • "message": "bad_credential"
}

Returns the S3 bucket quota information for the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the buckets.

Responses

Response samples

Content type
application/json
{
  • "ActualUsed": 0,
  • "LimitReached": true,
  • "QuotaLimit": 0
}

Deletes an S3 bucket from the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the bucket.

bucket_name
required
string
Example: my-awesome-bucket

Name of the bucket.

Responses

Response samples

Content type
application/json
{
  • "code": "401",
  • "message": "bad_credential"
}

Returns details for a single S3 bucket in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the bucket.

bucket_name
required
string
Example: my-awesome-bucket

Name of the bucket.

Responses

Response samples

Content type
application/json
{
  • "archived_at": "2021-12-03T19:58:34Z",
  • "bucket_size": 2.42,
  • "created_at": "2021-12-03T19:58:34Z",
  • "location": "us-eaststaging1-a",
  • "name": "my-awesome-bucket",
  • "object_lock_enabled": false,
  • "project_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "retention_mode": "string",
  • "retention_period": 30,
  • "retention_period_unit": "string",
  • "tags": {
    },
  • "updated_at": "2021-12-03T19:58:34Z",
  • "user_id": "S3U_...",
  • "versioning_state": "string"
}

Replaces the tags on an S3 bucket and returns the updated bucket.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the bucket.

bucket_name
required
string
Example: my-awesome-bucket

Name of the bucket.

Request Body schema: application/json
required
required
object

New set of tags for the bucket, as key-value pairs. Replaces all existing tags.

property name*
additional property
string

Responses

Request samples

Content type
application/json
{
  • "tags": {
    }
}

Response samples

Content type
application/json
{
  • "archived_at": "2021-12-03T19:58:34Z",
  • "bucket_size": 2.42,
  • "created_at": "2021-12-03T19:58:34Z",
  • "location": "us-eaststaging1-a",
  • "name": "my-awesome-bucket",
  • "object_lock_enabled": false,
  • "project_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "retention_mode": "string",
  • "retention_period": 30,
  • "retention_period_unit": "string",
  • "tags": {
    },
  • "updated_at": "2021-12-03T19:58:34Z",
  • "user_id": "S3U_...",
  • "versioning_state": "string"
}

Enables object lock on an S3 bucket and returns the updated bucket. Requires versioning to be enabled and cannot be disabled once enabled.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the bucket.

bucket_name
required
string
Example: my-awesome-bucket

Name of the bucket.

Request Body schema: application/json
retention_period
integer <int32>

Length of the object lock retention period, in the unit given by retention_period_unit.

retention_period_unit
string (Unit of measurement for an object lock retention period: days or years.)

enum: days,years

Responses

Request samples

Content type
application/json
{
  • "retention_period": 30,
  • "retention_period_unit": "string"
}

Response samples

Content type
application/json
{
  • "archived_at": "2021-12-03T19:58:34Z",
  • "bucket_size": 2.42,
  • "created_at": "2021-12-03T19:58:34Z",
  • "location": "us-eaststaging1-a",
  • "name": "my-awesome-bucket",
  • "object_lock_enabled": false,
  • "project_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "retention_mode": "string",
  • "retention_period": 30,
  • "retention_period_unit": "string",
  • "tags": {
    },
  • "updated_at": "2021-12-03T19:58:34Z",
  • "user_id": "S3U_...",
  • "versioning_state": "string"
}

Enables versioning on an S3 bucket and returns the updated bucket. Versioning cannot be disabled once enabled.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the bucket.

bucket_name
required
string
Example: my-awesome-bucket

Name of the bucket.

Responses

Response samples

Content type
application/json
{
  • "archived_at": "2021-12-03T19:58:34Z",
  • "bucket_size": 2.42,
  • "created_at": "2021-12-03T19:58:34Z",
  • "location": "us-eaststaging1-a",
  • "name": "my-awesome-bucket",
  • "object_lock_enabled": false,
  • "project_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "retention_mode": "string",
  • "retention_period": 30,
  • "retention_period_unit": "string",
  • "tags": {
    },
  • "updated_at": "2021-12-03T19:58:34Z",
  • "user_id": "S3U_...",
  • "versioning_state": "string"
}

Lists all locations where object storage (S3) is available.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

VPC Firewall Rules

Lists all VPC firewall rules in the project and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates a VPC firewall rule in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
action
required
string
Enum: "allow" "deny"

Action applied to traffic that matches the rule: allow or deny.

destination_ports
Array of strings

Destination ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).

required
Array of objects (FirewallRuleObject specifies the source or destination of a firewall rule.)

Destinations the rule matches, given as CIDR blocks or resource IDs.

direction
required
string
Enum: "ingress" "egress"

Direction of traffic the rule applies to: ingress (inbound) or egress (outbound).

name
required
string

Name for the new firewall rule.

protocols
required
Array of strings

Network protocols the rule matches (for example, tcp, udp).

source_ports
Array of strings

Source ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).

required
Array of objects (FirewallRuleObject specifies the source or destination of a firewall rule.)

Sources the rule matches, given as CIDR blocks or resource IDs.

vpc_network_id
required
string

ID of the VPC network to create the rule in.

Responses

Request samples

Content type
application/json
{
  • "action": "allow",
  • "destination_ports": "[80, 443, 3000-8080]",
  • "destinations": [
    ],
  • "direction": "ingress",
  • "name": "my-firewall-rule",
  • "protocols": "[tcp, udp]",
  • "source_ports": "[80, 443, 3000-8080]",
  • "sources": [
    ],
  • "vpc_network_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Deletes a VPC firewall rule from the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VPC firewall rule.

vpc_firewall_rule_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VPC firewall rule.

Responses

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Returns details for a single VPC firewall rule in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VPC firewall rule.

vpc_firewall_rule_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VPC firewall rule.

Responses

Response samples

Content type
application/json
{
  • "action": "allow",
  • "destination_ports": "[80, 443, 3000-8080]",
  • "destinations": [
    ],
  • "direction": "ingress",
  • "id": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc",
  • "name": "my-firewall-rule",
  • "protocols": "[tcp, udp]",
  • "source_ports": "[80, 443, 3000-8080]",
  • "sources": [
    ],
  • "state": "active",
  • "vpc_network_id": "74927f69-f6f6-43f4-bc0d-7bb2e864250e"
}

Updates a VPC firewall rule in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VPC firewall rule.

vpc_firewall_rule_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VPC firewall rule.

Request Body schema: application/json
required
destination_ports
Array of strings

Destination ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).

Array of objects (FirewallRuleObject specifies the source or destination of a firewall rule.)

Destinations the rule matches, given as CIDR blocks or resource IDs.

name
string

New name for the firewall rule.

protocols
Array of strings

Network protocols the rule matches (for example, tcp, udp).

source_ports
Array of strings

Source ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).

Array of objects (FirewallRuleObject specifies the source or destination of a firewall rule.)

Sources the rule matches, given as CIDR blocks or resource IDs.

Responses

Request samples

Content type
application/json
{
  • "destination_ports": "[80, 443, 3000-8080]",
  • "destinations": [
    ],
  • "name": "my-firewall-rule",
  • "protocols": "[tcp, udp]",
  • "source_ports": "[80, 443, 3000-8080]",
  • "sources": [
    ]
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

VPC Firewall Rule Operations

Get status of asynchronous operations

This resource retrieves information about the status of asynchronous operations initiated by the snapshots resource. All operations that are either in-flight or completed but not yet queried will be returned.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
query Parameters
resource_id
string
Example: resource_id=452580d7-41d1-4b63-b4d7-4e4e21e95f96
state
Array of strings
Example: state=IN_PROGRESS

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get status of a single asynchronous operation

This resource retrieves information about the status of an asynchronous operation initiated by the snapshots resource. Only information about the operation specified in the path will be returned, or an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged in user, or has expired.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
operation_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "completed_at": "2021-12-03T19:59:34Z",
  • "metadata": "{}",
  • "operation_id": "F6EF489C-086E-458D-B812-7962964A28C9",
  • "result": "{}",
  • "started_at": "2021-12-03T19:58:34Z",
  • "state": "IN_PROGRESS"
}

VPC Networks

Lists all VPC networks in the project and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates a VPC network in the project and returns the created network.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
cidr
required
string

Address range for the VPC network, in CIDR notation (for example, 172.27.0.0/16).

name
required
string

Name for the new VPC network.

Responses

Request samples

Content type
application/json
{
  • "cidr": "172.27.0.0/16",
  • "name": "my-cool-vpc-network"
}

Response samples

Content type
application/json
{
  • "network": {
    }
}

Deletes a VPC network from the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VPC network.

vpc_network_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VPC network.

Responses

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Returns details for a single VPC network in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VPC network.

vpc_network_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VPC network.

Responses

Response samples

Content type
application/json
{
  • "cidr": "121.0.0.0/20",
  • "gateway": "11bf5b4c-e0e5-4017-bdb8-3861f3acedc1",
  • "id": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc",
  • "name": "default-ethernet",
  • "subnets": "[1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc]"
}

Updates a VPC network in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VPC network.

vpc_network_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VPC network.

Request Body schema: application/json
required
name
required
string

New name for the VPC network.

Responses

Request samples

Content type
application/json
{
  • "name": "my-cool-vpc-network"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

VPC Subnets

Lists all VPC subnets in the project and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates a VPC subnet in the project and returns the created subnet.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
cidr
required
string

Address range for the VPC subnet, in CIDR notation (for example, 172.27.0.0/16).

location
required
string

Location to create the subnet in.

name
required
string

Name for the new VPC subnet.

nat_gateway_enabled
required
boolean

Whether to create a NAT gateway for the subnet.

vpc_network_id
required
string

ID of the VPC network to create the subnet in.

Responses

Request samples

Content type
application/json
{
  • "cidr": "172.27.0.0/16",
  • "location": "us-east",
  • "name": "my-cool-vpc-subnet",
  • "nat_gateway_enabled": true,
  • "vpc_network_id": "36c0b0d9-8b68-4869-addb-227b06b64ee0"
}

Response samples

Content type
application/json
{
  • "subnet": {
    }
}

Deletes a VPC subnet from the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VPC subnet.

vpc_subnet_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VPC subnet.

Responses

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Returns details for a single VPC subnet in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VPC subnet.

vpc_subnet_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VPC subnet.

Responses

Response samples

Content type
application/json
{
  • "cidr": "121.0.0.0/24",
  • "id": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc",
  • "location": "us-northcentraleast1-a",
  • "name": "my-subnet",
  • "nat_gateways": [
    ],
  • "vpc_network_id": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc"
}

Updates a VPC subnet in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the VPC subnet.

vpc_subnet_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the VPC subnet.

Request Body schema: application/json
required
name
required
string

New name for the VPC subnet.

nat_gateway_action
string
Enum: "enable" "disable"

Action to take on the subnet's NAT gateway. "enable" creates a NAT gateway if one does not exist; "disable" deletes the NAT gateway if one exists. If omitted, the subnet's NAT gateway is left unchanged. enable NATGatewayActionEnable disable NATGatewayActionDisable

Responses

Request samples

Content type
application/json
{
  • "name": "my-cool-vpc-subnet",
  • "nat_gateway_action": "enable"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

IB Partitions

Lists all InfiniBand partitions in the project and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates an InfiniBand partition in the project and returns the created InfiniBand partition.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
Request Body schema: application/json
required
ib_network_id
required
string

ID of the InfiniBand network to create the partition in.

name
required
string

Name for the new InfiniBand partition.

Responses

Request samples

Content type
application/json
{
  • "ib_network_id": "36c0b0d9-8b68-4869-addb-227b06b64ee0",
  • "name": "my-ib-partition"
}

Response samples

Content type
application/json
{
  • "ib_network_id": "36c0b0d9-8b68-4869-addb-227b06b64ee0",
  • "id": "44701f9e-845c-4005-9240-adee6401b8d3",
  • "name": "my-ib-partition"
}

Deletes an InfiniBand partition from the project and returns an empty response.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the InfiniBand partition.

ib_partition_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the InfiniBand partition.

Responses

Response samples

Content type
application/json
{
  • "code": "400",
  • "message": "bad_request"
}

Returns details for a single InfiniBand partition in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the InfiniBand partition.

ib_partition_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the InfiniBand partition.

Responses

Response samples

Content type
application/json
{
  • "ib_network_id": "36c0b0d9-8b68-4869-addb-227b06b64ee0",
  • "id": "44701f9e-845c-4005-9240-adee6401b8d3",
  • "name": "my-ib-partition"
}

Load Balancers

Lists all external load balancers in the project and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the external load balancers.

query Parameters
location
string
Example: location=us-east1

Filters results to external load balancers in this location.

vpc_network_id
string
Example: vpc_network_id=ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Filters results to external load balancers in this VPC network.

name
string
Example: name=my-loadbalancer-test

Filters results to external load balancers with this name.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates an external load balancer in the project and returns the async operation.

This endpoint creates a new external load balancer in the specified project. The request must include the VPC ID, name, location, and at least one listen port with its associated backends.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

The project ID to which the external load balancer belongs.

Request Body schema: application/json
required

Request body for creating the external load balancer.

object (HealthCheckOptionsExternalLB defines the health check configuration.)
required
Array of objects (ListenPortAndBackend defines a mapping of listen ports to backend configurations.)

Listen ports and associated backends configuration.

location
required
string

Location of the External Load Balancer.

name
required
string

Name of the External Load Balancer.

protocol
required
string

The protocol of the External Load Balancer.

vpc_id
required
string

ID of the VPC network this External Load Balancer belongs to.

Responses

Request samples

Content type
application/json
{
  • "health_check_options": {
    },
  • "listen_ports_and_backends": [
    ],
  • "location": "us-east1",
  • "name": "my-external-load-balancer",
  • "protocol": "LOAD_BALANCER_PROTOCOL_TCP",
  • "vpc_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Deletes an external load balancer from the project and returns the async operation.

This endpoint deletes an external load balancer identified by its ID within the specified project. No request body or query parameters are required.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

The project ID to which the external load balancer belongs.

load_balancer_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

The ID of the external load balancer to delete.

Responses

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Returns details for a single external load balancer in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the external load balancer.

load_balancer_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the external load balancer.

Responses

Response samples

Content type
application/json
{
  • "health_check_options": {
    },
  • "id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "listen_ports_and_backends": [
    ],
  • "location": "us-northcentral1-a",
  • "name": "my-external-load-balancer",
  • "project_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "protocol": "tcp",
  • "vip": "192.168.1.1",
  • "vpc_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab"
}

Updates an external load balancer in the project and returns the async operation.

This endpoint updates the configuration of an existing external load balancer. The request must include the load balancer ID and optionally the health check options and/or listen ports and associated backends.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

The project ID to which the external load balancer belongs.

load_balancer_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

The ID of the external load balancer to update.

Request Body schema: application/json
required

Request body for updating the external load balancer.

object (HealthCheckOptionsExternalLB defines the health check configuration.)
required
Array of objects (ListenPortAndBackend defines a mapping of listen ports to backend configurations.)

Listen ports and associated backends configuration.

Responses

Request samples

Content type
application/json
{
  • "health_check_options": {
    },
  • "listen_ports_and_backends": [
    ]
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Kubernetes Clusters

Lists all Kubernetes clusters in the project and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the clusters.

query Parameters
cluster_id
string
Example: cluster_id=ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Filters results to the cluster with this ID.

cluster_name
string
Example: cluster_name=my-first-cluster

Filters results to the cluster with this name.

cluster_search_names
Array of strings
Example: cluster_search_names=a40.2x,a100.8x

Filters results to clusters whose name matches one of these search names.

locations
Array of strings
Example: locations=us-east1,us-northcentral1

Filters results to clusters in these locations.

states
Array of strings
Example: states=STATE_RUNNING

Filters results to clusters in these states.

versions
Array of strings
Example: versions=1.30

Filters results to clusters running these versions.

sort
string
Example: sort=name, -name

Field to sort results by; prefix with '-' for descending order.

show_inactive
boolean
Example: show_inactive=true

Whether to include inactive clusters in the results.

next_token
string
Example: next_token=bXktZmlyc3Qtdm0

Base64-encoded token for the next page of results.

prev_token
string
Example: prev_token=bXktZmlyc3Qtdm0

Base64-encoded token for the previous page of results.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates a Kubernetes cluster in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project to create the cluster in.

Request Body schema: application/json
required
add_ons
Array of strings

List of add-ons to include in the new cluster.

object

Extra arguments to pass to the kube-apiserver control plane component.

object (KubernetesClusterAuthConfig defines authentication configuration for the cluster.)

This configures how users authenticate to the Kubernetes API server. example: {"oidc": {"issuer_url": "https://oauth2.example.com", "client_id": "kubernetes"}}

cluster_cidr
string

Range of IP addresses allocated to pods scheduled on worker nodes, in CIDR notation.

configuration
string
Value: "ha"

Configuration setting is deprecated, defaults to HA configuration.

object

Extra arguments to pass to the kube-controller-manager control plane component.

object

Arguments for the kubectl oidc-login plugin.

location
required
string

Location to create the Kubernetes cluster in.

name
required
string

Name of the Kubernetes cluster.

node_cidr_mask_size
integer <int32>

Mask size for the cluster CIDR.

private
boolean

Whether the cluster is private (without a public IP). Defaults to false.

object

Extra arguments to pass to the kube-scheduler control plane component.

service_cluster_ip_range
string

Range of IP addresses allocated to Kubernetes services, in CIDR notation.

subnet_id
string

ID of the subnet to create the cluster in. Must be in the location specified. If not provided, the default subnet for the location is used, if there is one.

version
required
string

Version of the Crusoe Kubernetes image to create the cluster with.

Responses

Request samples

Content type
application/json
{
  • "add_ons": [
    ],
  • "apiserver_extra_args": {
    },
  • "auth_config": {
    },
  • "cluster_cidr": "10.233.0.0/18",
  • "configuration": "ha",
  • "controller_manager_extra_args": {
    },
  • "kubelogin_args": {
    },
  • "location": "us-northcentral1-a",
  • "name": "my-kubernetes-cluster",
  • "node_cidr_mask_size": 24,
  • "private": true,
  • "scheduler_extra_args": {
    },
  • "service_cluster_ip_range": "10.233.0.0/18",
  • "subnet_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "version": "1.29.5-crusoe.0"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Deletes a Kubernetes cluster from the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the cluster.

cluster_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the cluster.

Responses

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Returns details for a single Kubernetes cluster in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the cluster.

cluster_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the cluster.

Responses

Response samples

Content type
application/json
{
  • "add_ons": [
    ],
  • "apiserver_extra_args": {
    },
  • "auth_config": {
    },
  • "cluster_cidr": "10.233.0.0/18",
  • "configuration": "ha",
  • "controller_manager_extra_args": {
    },
  • "created_at": "2021-12-03T19:58:34Z",
  • "dns_name": "my-kubernetes-cluster.crusoecloudcompute.com",
  • "id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "kubelogin_args": {
    },
  • "location": "us-northcentral1-a",
  • "name": "my-kubernetes-cluster",
  • "node_cidr_mask_size": 24,
  • "node_pools": [
    ],
  • "private": true,
  • "project_id": "9c8b7d6e-5f4a-3b2c-1e0f-2a3b4c5d6e7f",
  • "scheduler_extra_args": {
    },
  • "service_cluster_ip_range": "10.233.0.0/18",
  • "state": "STATE_RUNNING",
  • "subnet_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "updated_at": "2021-12-03T19:58:34Z",
  • "version": "1.29.5-crusoe.0"
}

Updates a Kubernetes cluster in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the cluster.

cluster_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the cluster.

Request Body schema: application/json
required
object

New extra arguments to pass to the kube-apiserver control plane component. If absent, existing args are preserved. If present but empty, args are cleared.

configuration
string
Value: "ha"

Configuration setting is deprecated, defaults to HA configuration.

object

New extra arguments to pass to the kube-controller-manager control plane component. If absent, existing args are preserved. If present but empty, args are cleared.

required
object

New arguments for the kubectl oidc-login plugin.

object

New extra arguments to pass to the kube-scheduler control plane component. If absent, existing args are preserved. If present but empty, args are cleared.

Responses

Request samples

Content type
application/json
{
  • "apiserver_extra_args": {
    },
  • "configuration": "ha",
  • "controller_manager_extra_args": {
    },
  • "kubelogin_args": {
    },
  • "scheduler_extra_args": {
    }
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Returns credentials for the user to authenticate to the cluster.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the cluster.

cluster_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the cluster.

query Parameters
auth_type
string
Enum: "oidc" "admin_cert"

Type of credentials to return: oidc or admin_cert.

Responses

Response samples

Content type
application/json
{
  • "cluster_address": "string",
  • "cluster_ca_certificate": "string",
  • "cluster_name": "string",
  • "kube_config": "string",
  • "user_client_certificate": "string",
  • "user_client_key": "string",
  • "user_name": "string"
}

Kubernetes Cluster Operations

Get status of asynchronous operations

This resource retrieves information about the status of an asynchronous operation initiated by the Kubernetes Cluster resource. Only information about the operation specified in the path will be returned, or an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged in user, or has expired.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
query Parameters
resource_id
string
Example: resource_id=452580d7-41d1-4b63-b4d7-4e4e21e95f96
state
Array of strings
Example: state=IN_PROGRESS

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get status of a single asynchronous operation

This resource retrieves information about the status of an asynchronous operation initiated by the Kubernetes Cluster resource. Only information about the operation specified in the path will be returned, or an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged in user, or has expired.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
operation_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "completed_at": "2021-12-03T19:59:34Z",
  • "metadata": "{}",
  • "operation_id": "F6EF489C-086E-458D-B812-7962964A28C9",
  • "result": "{}",
  • "started_at": "2021-12-03T19:58:34Z",
  • "state": "IN_PROGRESS"
}

Kubernetes Node Pools

Lists all Kubernetes node pools in the project and returns their details.

Results can be narrowed to a single cluster with the cluster_id query parameter.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the node pools.

query Parameters
cluster_id
string
Example: cluster_id=ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Filters results to node pools in this cluster.

sort
string
Example: sort=created_at, -created_at

Field to sort results by; prefix with '-' for descending order.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates a Kubernetes node pool in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project to create the node pool in.

Request Body schema: application/json
required
cluster_id
required
string

ID of the cluster the new node pool belongs to.

count
required
integer <int64>

Number of nodes to create.

ephemeral_storage_for_containerd
boolean

Whether the first local ephemeral NVMe disk is used for containerd storage.

ib_partition_id
string

Deprecated: Use transport_partition_id instead.

name
required
string

Name of the Kubernetes node pool.

object

Labels to assign to nodes in the new node pool.

node_pool_version
string

Version of the Kubernetes node pool.

Array of objects (KubernetesNodeTaint represents a Kubernetes node taint.)

Taints applied to nodes in the node pool. Each (key, effect) pair must be unique within the list. The list may contain at most 50 taints.

nvlink_domain_id
string

NVLink domain ID to assign to nodes in the new node pool.

placement_policy
string
Default: "unspecified"
Enum: "spread" "unspecified"

Placement policy for VMs in the node pool: spread or unspecified. Ignored for GPU node types (one VM per host is already enforced for GPUs).

product_name
required
string

Product name of the VM type to create within the new node pool.

public_ip_type
string
Default: "dynamic"

Public IP type for the node pool's nodes: dynamic, static, or none.

object (ReservationSpecification)
ssh_public_key
string

SSH public key to use for all VMs created from the new node pool.

subnet_id
string

ID of the subnet to create the node pool in. Must be in the location of the cluster if specified. If not provided, the default subnet for the location is used, if there is one.

transport_partition_id
string

ID of the InfiniBand or RoCE partition to create the node pool in. Must be in the location of the cluster if specified.

Responses

Request samples

Content type
application/json
{
  • "cluster_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "count": 4,
  • "ephemeral_storage_for_containerd": true,
  • "ib_partition_id": "string",
  • "name": "my-kubernetes-node-pool",
  • "node_labels": {
    },
  • "node_pool_version": "1.30",
  • "node_taints": [
    ],
  • "nvlink_domain_id": "550e8400-e29b-41d4-a716-446655440000",
  • "placement_policy": "spread",
  • "product_name": "a100.2x",
  • "public_ip_type": "dynamic",
  • "reservation_specification": {
    },
  • "ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8",
  • "subnet_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "transport_partition_id": "b1f86d1b-42d2-490d-adb0-cc1029abf653"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Deletes a Kubernetes node pool from the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the node pool.

node_pool_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the node pool.

Responses

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Returns details for a single Kubernetes node pool in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the node pool.

node_pool_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the node pool.

Responses

Response samples

Content type
application/json
{
  • "cluster_id": "9c8b7d6e-5f4a-3b2c-1e0f-2a3b4c5d6e7f",
  • "count": 4,
  • "created_at": "2021-12-03T19:58:34Z",
  • "ephemeral_storage_for_containerd": true,
  • "id": "0a1b3c2d-5e6f-8b9c-4d7e-1a2b3c4d5e6f",
  • "image_id": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab",
  • "instance_details": [
    ],
  • "instance_ids": [
    ],
  • "name": "crusoe-node-pool",
  • "node_labels": {
    },
  • "node_taints": [
    ],
  • "nvlink_domain_id": "550e8400-e29b-41d4-a716-446655440000",
  • "project_id": "9c8b7d6e-5f4a-3b2c-1e0f-2a3b4c5d6e7f",
  • "public_ip_type": "dynamic",
  • "reservation_id": "ca39e669-47ee-456b-968d-303234fbf99f",
  • "state": "STATE_RUNNING",
  • "subnet_id": "09ae8411-0fbb-411c-898c-2b8f19622ae1",
  • "type": "a100.2x",
  • "updated_at": "2021-12-03T19:58:34Z"
}

Updates a Kubernetes node pool in the project and returns the async operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the node pool.

node_pool_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the node pool.

Request Body schema: application/json
required
action
required
string
Default: "UPDATE"
Enum: "RESERVE" "UNRESERVE" "UPDATE"

Action to perform on the node pool: RESERVE, UNRESERVE, or UPDATE. RESERVE and UNRESERVE operations are done synchronously, and so will have succeeded with a 200 response. Defaults to UPDATE if no action is specified.

count
required
integer <int64>

New number of nodes in the node pool.

ephemeral_storage_for_containerd
required
boolean

Whether the first local ephemeral NVMe disk is used for containerd storage.

required
object

New labels for the node pool. Labels provided in the PATCH request do not modify existing nodes, but apply to any newly created nodes.

node_pool_version
required
string

New Kubernetes node pool version for newly created VMs.

required
Array of objects (KubernetesNodeTaint represents a Kubernetes node taint.)

New taints for nodes in this node pool. Taints provided in the PATCH request do not modify existing nodes, but apply to any newly created nodes. This field has three behaviors: Omitted (null): existing taints are left unchanged. Empty array ([]): all existing taints are cleared. Non-empty array: existing taints are fully replaced by the provided list. Each (key, effect) pair in the list must be unique. Up to 50 taints are allowed. See KubernetesNodeTaint for per-field format rules.

reservation_id
required
string

New reservation ID for the node pool.

ssh_public_key
required
string

New SSH public key to use for all VMs created from this node pool.

Responses

Request samples

Content type
application/json
{
  • "action": "UPDATE",
  • "count": 4,
  • "ephemeral_storage_for_containerd": true,
  • "node_labels": {
    },
  • "node_pool_version": "1.30",
  • "node_taints": [
    ],
  • "reservation_id": "ca39e669-47ee-456b-968d-303234fbf99f",
  • "ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Cancels an in-progress rotation of a Kubernetes node pool in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the node pool.

node_pool_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the node pool.

Responses

Response samples

Content type
application/json
{
  • "no_rotate_in_progress": true
}

Returns the rotation status of a Kubernetes node pool in the project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the node pool.

node_pool_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the node pool.

Responses

Response samples

Content type
application/json
{
  • "out_of_sync_instances": [
    ],
  • "state": "string"
}

Starts a rotation of a Kubernetes node pool in the project and returns the async operation.

A successful response returns an async operation you can poll.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the node pool.

node_pool_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the node pool.

Request Body schema: application/json
required
count
required
integer <int64>

Number of nodes to replace at a time when the strategy is 'count'.

percentage
required
integer <int64>

Percentage of nodes to replace at a time when the strategy is 'percentage'.

strategy
required
string
Enum: "count" "percentage"

Strategy for the rotation to perform: count or percentage.

Responses

Request samples

Content type
application/json
{
  • "count": 2,
  • "percentage": 20,
  • "strategy": "count"
}

Response samples

Content type
application/json
{
  • "operation": {
    }
}

Lists all VMs in a Kubernetes node pool and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project that owns the node pool.

node_pool_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the node pool.

query Parameters
limit
string
Example: limit=20

Maximum number of results to return per page.

sort
string
Example: sort=name

Field to sort results by; prefix with '-' for descending order.

next_token
string
Example: next_token=bXktZmlyc3Qtdm0

Base64-encoded token for the next page of results.

prev_token
string
Example: prev_token=bXktZmlyc3Qtdm0

Base64-encoded token for the previous page of results.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_token": "bXktbGFzdC12bQ",
  • "prev_token": "bXktZmlyc3Qtdm0"
}

Kubernetes Node Pool Operations

Get status of asynchronous operations

This resource retrieves information about the status of an asynchronous operation initiated by the Kubernetes Node Pool resource. Only information about the operation specified in the path will be returned, or an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged in user, or has expired.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get status of a single asynchronous operation

This resource retrieves information about the status of an asynchronous operation initiated by the Kubernetes Node Pool resource. Only information about the operation specified in the path will be returned, or an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged in user, or has expired.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
operation_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "completed_at": "2021-12-03T19:59:34Z",
  • "metadata": "{}",
  • "operation_id": "F6EF489C-086E-458D-B812-7962964A28C9",
  • "result": "{}",
  • "started_at": "2021-12-03T19:58:34Z",
  • "state": "IN_PROGRESS"
}

Kubernetes Versions

Lists all available Kubernetes versions in the project and returns their details.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

ID of the project to list versions for.

query Parameters
show_deprecated
boolean
Example: show_deprecated=true

Whether to include deprecated versions in the results.

product_name
string
Example: product_name=a100.2x

Filters results to versions available for this VM product.

Responses

Response samples

Content type
application/json
{
  • "kubernetes_cluster_versions": [
    ],
  • "kubernetes_node_pool_versions": [
    ]
}

AutoClusters

Retrieve the AutoClusters configuration for a specific cluster.

Returns the cluster's Autoclusters configuration including alert handling defaults and any customer overrides.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Project ID

cluster_id
required
string
Example: e384a1de-81f8-4cb2-b312-a7d88a9bf9cb

Cluster ID

Responses

Response samples

Content type
application/json
{
  • "fallback_to_project_reservations": false,
  • "remediation_configs": [
    ],
  • "updated_at": "2025-01-15T10:30:00Z"
}

Update the AutoClusters configuration for a specific cluster.

Allows setting or removing remediation overrides and configuring project reservation fallback.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Project ID

cluster_id
required
string
Example: e384a1de-81f8-4cb2-b312-a7d88a9bf9cb

Cluster ID

Request Body schema: application/json
required

Request body

fallback_to_project_reservations
required
boolean

Whether to use project's unused reservations as fallback. If not set, existing value is preserved.

remove_remediation_overrides
Array of strings

Remediation overrides to remove (revert to system defaults).

Array of objects (RemediationOverrideRequest represents a remediation override in the API request.)

Remediation overrides to add or update. These will override the system defaults.

Responses

Request samples

Content type
application/json
{
  • "fallback_to_project_reservations": true,
  • "remove_remediation_overrides": [
    ],
  • "set_remediation_overrides": [
    ]
}

Response samples

Content type
application/json
{
  • "fallback_to_project_reservations": false,
  • "remediation_configs": [
    ],
  • "updated_at": "2025-01-15T10:30:00Z"
}

Trigger VM remediation.

Trigger remediation for a VM within a Kubernetes cluster with AutoClusters add-on enabled. This creates an AutoClusters operation and returns an asynchronous operation handle. Currently, this defaults to performing a replace node operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
cluster_id
required
string
Example: e384a1de-81f8-4cb2-b312-a7d88a9bf9cb
vm_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Responses

Response samples

Content type
application/json
{
  • "operation": {
    }
}

AutoCluster Operations

Retrieve information about AutoCluster operations for a project.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab

Project ID

query Parameters
cluster_id
string
Example: cluster_id=e384a1de-81f8-4cb2-b312-a7d88a9bf9cb
operation_id
string
Example: operation_id=5f9c5d6a-2d15-4a2c-8a2a-9b0f4e1d3b21
state
string
Example: state=IN_PROGRESS
operation_type
string
Example: operation_type=RESET_VM
remediation_state
string
Example: remediation_state=PREPARED
lower_bound
string
Example: lower_bound=2025-10-01T00:00:00Z
upper_bound
string
Example: upper_bound=2025-10-31T23:59:59Z

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Retrieve information about a specific AutoCluster operation.

path Parameters
project_id
required
string
Example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
operation_id
required
string
Example: e384a1de-81f8-4cb2-b312-a7d88a9bf9cb

Responses

Response samples

Content type
application/json
{
  • "completed_at": "2021-12-03T19:59:34Z",
  • "metadata": "{}",
  • "operation_id": "F6EF489C-086E-458D-B812-7962964A28C9",
  • "result": "{}",
  • "started_at": "2021-12-03T19:58:34Z",
  • "state": "IN_PROGRESS"
}

Locations

Lists all Crusoe Cloud locations usable for resource hosting.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Capacities

Lists available Crusoe Cloud capacity with optional filters on location and product name.

query Parameters
product_name
Array of strings
Example: product_name=[a100.1x, a100.2x]
location
Array of strings
Example: location=[us-northcentral1-a, us-northcentral1-b]

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Container Registry

Lists the locations where container registry repositories can be hosted.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Lists the upstream registry providers supported for pull-through-cache repositories.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates a limited-scope token for authenticating to the container registry and returns it.

Request Body schema: application/json
alias
string

Alias for the new token, used to identify it.

expires_at
string

Expiration timestamp of the token, in RFC3339 format.

Responses

Request samples

Content type
application/json
{
  • "alias": "my-token",
  • "expires_at": "2026-12-03T19:58:34Z"
}

Response samples

Content type
application/json
{
  • "token": "string"
}

Lists all container registry repositories in the project and returns their details.

path Parameters
project_id
required
string

ID of the project that owns the repositories.

query Parameters
page
integer <int32>

Page number of results to return.

page_size
integer <int32>

Number of results to return per page.

sort_by
string

Field to sort the results by.

sort_order
string

Order to sort the results in.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Creates a container registry repository in the project and returns the created repository.

path Parameters
project_id
required
string

ID of the project to create the repository in.

Request Body schema: application/json
location
string

Location to create the repository in.

max_size_bytes
string

Maximum total size for the new repository, in bytes.

mode
string

Mode for the new repository, which determines how images are stored and served.

name
string

Name for the new repository.

object (UpstreamRegistry)

Responses

Request samples

Content type
application/json
{
  • "location": "us-east1",
  • "max_size_bytes": "10737418240",
  • "mode": "string",
  • "name": "my-repository",
  • "upstream_registry": {
    }
}

Response samples

Content type
application/json
{
  • "created_at": "2021-12-03T19:58:34Z",
  • "id": "ca39e669-47ee-456b-968d-303234fbf99f",
  • "location": "us-east1",
  • "max_size_bytes": "10737418240",
  • "mode": "string",
  • "name": "my-repository",
  • "state": "string",
  • "upstream_registry": {
    },
  • "url": "string"
}

Deletes a container registry repository from the project.

path Parameters
project_id
required
string

ID of the project that owns the repository.

repository_id
required
string

ID of the repository.

query Parameters
location
string

Location the repository is hosted in.

Responses

Response samples

Content type
application/json
{
  • "code": "400",
  • "message": "bad_request"
}

Returns details for a single container registry repository in the project.

path Parameters
project_id
required
string

ID of the project that owns the repository.

repository_id
required
string

ID of the repository.

query Parameters
location
string

Location the repository is hosted in.

Responses

Response samples

Content type
application/json
{
  • "created_at": "2021-12-03T19:58:34Z",
  • "id": "ca39e669-47ee-456b-968d-303234fbf99f",
  • "location": "us-east1",
  • "max_size_bytes": "10737418240",
  • "mode": "string",
  • "name": "my-repository",
  • "state": "string",
  • "upstream_registry": {
    },
  • "url": "string"
}

Updates the upstream registry credentials for a repository in the project.

Updates the username and password credentials for the upstream registry of a pull-through-cache repository.

path Parameters
project_id
required
string

ID of the project that owns the repository.

repository_id
required
string

ID of the repository.

Request Body schema: application/json
password
string

Password used to authenticate to the upstream registry.

username
string

Username used to authenticate to the upstream registry.

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "username": "my-registry-user"
}

Response samples

Content type
application/json
{
  • "code": "400",
  • "message": "bad_request"
}

Deletes an image from a container registry repository in the project.

path Parameters
project_id
required
string

ID of the project that owns the repository.

repository_id
required
string

ID of the repository that contains the image.

query Parameters
image_id
required
string

ID of the image to delete.

location
string

Location the repository is hosted in.

Responses

Response samples

Content type
application/json
{
  • "code": "400",
  • "message": "bad_request"
}

Lists all images in a container registry repository in the project and returns their details.

path Parameters
project_id
required
string

ID of the project that owns the repository.

repository_id
required
string

ID of the repository that contains the images.

query Parameters
location
string

Location the repository is hosted in.

page
integer <int32>

Page number of results to return.

page_size
integer <int32>

Number of results to return per page.

sort_by
string

Field to sort the results by.

sort_order
string

Order to sort the results in.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Deletes a manifest from an image in a container registry repository in the project.

path Parameters
project_id
required
string

ID of the project that owns the repository.

repository_id
required
string

ID of the repository that contains the image.

query Parameters
image_id
required
string

ID of the image that contains the manifest.

tag
string

Tag that points to the manifest to delete. Either tag or digest must be provided, but not both.

digest
string

Digest of the manifest to delete. Either tag or digest must be provided, but not both.

location
string

Location the repository is hosted in.

Responses

Response samples

Content type
application/json
{
  • "code": "400",
  • "message": "bad_request"
}

Lists all manifests for an image in a container registry repository in the project and returns their details.

path Parameters
project_id
required
string

ID of the project that owns the repository.

repository_id
required
string

ID of the repository that contains the image.

query Parameters
image_id
required
string

ID of the image whose manifests are listed.

tag_contains
string

Filters results to manifests with a tag that contains this substring.

location
string

Location the repository is hosted in.

page
integer <int32>

Page number of results to return.

page_size
integer <int32>

Number of results to return per page.

sort_by
string

Field to sort the results by.

sort_order
string

Order to sort the results in.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Returns usage data for a single container registry repository in the project.

path Parameters
project_id
required
string

ID of the project that owns the repository.

repository_id
required
string

ID of the repository.

query Parameters
location
string

Location the repository is hosted in.

Responses

Response samples

Content type
application/json
{
  • "last_requested_timestamp_utc": "2021-12-03T19:58:34Z",
  • "max_size_bytes": "10737418240",
  • "used_size_bytes": "5368709120"
}

Foundry

Lists the credentials in the project.

path Parameters
project_id
required
string

ID of the project.

Responses

Response samples

Content type
application/json
{
  • "credentials": [
    ]
}

Creates a credential in the project.

path Parameters
project_id
required
string

ID of the project.

Request Body schema: application/json
required
object (CredentialSecrets holds the secret material for a credential.)
description
string

Optional human-readable description.

name
required
string

Name of the credential.

Responses

Request samples

Content type
application/json
{
  • "credentials": {
    },
  • "description": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "credentials": {
    },
  • "description": "string",
  • "id": "string",
  • "name": "string",
  • "org_id": "string",
  • "project_id": "string",
  • "updated_at": "string",
  • "vendor": "string"
}

Deletes a credential from the project.

path Parameters
project_id
required
string

ID of the project.

id
required
string

ID of the credential.

Responses

Response samples

Content type
application/json
{
  • "code": "401",
  • "message": "bad_credential"
}

Returns a single credential in the project.

path Parameters
project_id
required
string

ID of the project.

id
required
string

ID of the credential.

query Parameters
reveal
boolean

When true, include the secret material in the response.

Responses

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "credentials": {
    },
  • "description": "string",
  • "id": "string",
  • "name": "string",
  • "org_id": "string",
  • "project_id": "string",
  • "updated_at": "string",
  • "vendor": "string"
}

Updates a credential's description in the project.

path Parameters
project_id
required
string

ID of the project.

id
required
string

ID of the credential.

Request Body schema: application/json
description
string

Updated description.

Responses

Request samples

Content type
application/json
{
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "credentials": {
    },
  • "description": "string",
  • "id": "string",
  • "name": "string",
  • "org_id": "string",
  • "project_id": "string",
  • "updated_at": "string",
  • "vendor": "string"
}

Lists the models deployed and available for inference in the project.

path Parameters
project_id
required
string

ID of the project.

Responses

Response samples

Content type
application/json
{
  • "deployments": [
    ]
}

Returns the activity feed for the project's deployed models.

path Parameters
project_id
required
string

ID of the project.

Responses

Response samples

Content type
application/json
{
  • "events": [
    ],
  • "next_cursor": "string"
}

Returns deployment progress for the project's deployed models.

path Parameters
project_id
required
string

ID of the project.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "percent": 0,
  • "updated_at": "string"
}

Streams deployment progress for the project's deployed models as server-sent events.

The response is a text/event-stream of progress updates.

path Parameters
project_id
required
string

ID of the project.

Responses

Response samples

Content type
application/json
{
  • "code": "401",
  • "message": "bad_credential"
}

Renames a deployed model's alias.

path Parameters
project_id
required
string

ID of the project.

Request Body schema: application/json
model_alias
required
string

Current alias of the model.

new_alias
required
string

New alias for the model.

Responses

Request samples

Content type
application/json
{
  • "model_alias": "string",
  • "new_alias": "string"
}

Response samples

Content type
application/json
{
  • "endpoint_id": "string",
  • "model_alias": "string"
}

Updates the HuggingFace source behind a deployed model's alias.

path Parameters
project_id
required
string

ID of the project.

Request Body schema: application/json
model_alias
required
string

Customer-facing alias of the model to update.

new_hugging_face_model
required
string

New HuggingFace model to point the alias at.

region
string

Region in which to perform the update. If omitted, all regions are updated.

run_candidate_test
boolean

Whether to run a candidate health-check before switching the source.

Responses

Request samples

Content type
application/json
{
  • "model_alias": "string",
  • "new_hugging_face_model": "string",
  • "region": "string",
  • "run_candidate_test": true
}

Response samples

Content type
application/json
{
  • "workflows": [
    ]
}

Lists the LoRA adapter deployments in the project.

path Parameters
project_id
required
string

ID of the project that owns the deployments.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Deploys a LoRA adapter (a fine-tuned model) onto its parent base model in the project.

The deployment is asynchronous: the response returns the deployment record in a pending state, which is reconciled to ready once the adapter is loaded.

path Parameters
project_id
required
string

ID of the project to deploy the adapter in.

Request Body schema: application/json
model_id
required
string

ID of the fine-tuned model (LoRA adapter) to deploy, as registered in the model registry.

Responses

Request samples

Content type
application/json
{
  • "model_id": "string"
}

Response samples

Content type
application/json
{
  • "cluster_name": "string",
  • "created_at": "string",
  • "endpoint_alias": "string",
  • "evolution_uri": "string",
  • "finetuning_job_id": "string",
  • "id": "string",
  • "last_error": "string",
  • "loader_service": "string",
  • "model_id": "string",
  • "parent_model_name": "string",
  • "project_id": "string",
  • "rank": 0,
  • "serving_endpoint_name": "string",
  • "status": "string",
  • "updated_at": "string"
}

Removes a LoRA adapter deployment from the project.

The teardown is asynchronous: the adapter is unloaded from the serving cluster in the background.

path Parameters
project_id
required
string

ID of the project that owns the deployment.

id
required
string

ID of the LoRA adapter deployment.

Responses

Response samples

Content type
application/json
{
  • "code": "401",
  • "message": "bad_credential"
}

Returns a single LoRA adapter deployment in the project.

path Parameters
project_id
required
string

ID of the project that owns the deployment.

id
required
string

ID of the LoRA adapter deployment.

Responses

Response samples

Content type
application/json
{
  • "cluster_name": "string",
  • "created_at": "string",
  • "endpoint_alias": "string",
  • "evolution_uri": "string",
  • "finetuning_job_id": "string",
  • "id": "string",
  • "last_error": "string",
  • "loader_service": "string",
  • "model_id": "string",
  • "parent_model_name": "string",
  • "project_id": "string",
  • "rank": 0,
  • "serving_endpoint_name": "string",
  • "status": "string",
  • "updated_at": "string"
}

Lists the self-serve deployments in the project.

path Parameters
project_id
required
string

ID of the project.

Responses

Response samples

Content type
application/json
{
  • "deployments": [
    ]
}

Creates a self-serve deployment in the project.

Asynchronous: returns the accepted deployment ID and status.

path Parameters
project_id
required
string

ID of the project.

Request Body schema: application/json
deployment_name
required
string

User-chosen deployment name.

fine_tuned_model
required
string

The fine-tuned model to deploy.

flavor_id
required
string

ID of the flavor (hardware/model shape) to deploy on.

replicas
integer <int32>

Number of replicas to run.

Responses

Request samples

Content type
application/json
{
  • "deployment_name": "string",
  • "fine_tuned_model": "string",
  • "flavor_id": "string",
  • "replicas": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "status": "string"
}

Deletes a self-serve deployment from the project.

path Parameters
project_id
required
string

ID of the project.

id
required
string

ID of the deployment.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "status": "string"
}

Returns a single self-serve deployment in the project.

path Parameters
project_id
required
string

ID of the project.

id
required
string

ID of the deployment.

Responses

Response samples

Content type
application/json
{
  • "available_replicas": 0,
  • "context_length": 0,
  • "created_at": "string",
  • "created_by": "string",
  • "deployment_name": "string",
  • "fine_tuned_model": "string",
  • "flavor_type": "string",
  • "gpu_type": "string",
  • "gpus_per_replica": 0,
  • "hourly_cost": "string",
  • "id": "string",
  • "model": "string",
  • "provider": "string",
  • "quantization": "string",
  • "status": "string",
  • "target_replicas": 0
}

Updates a self-serve deployment (name and/or replica count) in the project.

path Parameters
project_id
required
string

ID of the project.

id
required
string

ID of the deployment.

Request Body schema: application/json
deployment_name
string

Updated deployment name.

replicas
integer <int32>

Updated replica count.

Responses

Request samples

Content type
application/json
{
  • "deployment_name": "string",
  • "replicas": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "status": "string"
}

Returns the activity feed for a self-serve deployment.

path Parameters
project_id
required
string

ID of the project.

id
required
string

ID of the deployment.

Responses

Response samples

Content type
application/json
{
  • "events": [
    ],
  • "next_cursor": "string"
}

Returns deployment progress for a self-serve deployment.

path Parameters
project_id
required
string

ID of the project.

id
required
string

ID of the deployment.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "percent": 0,
  • "updated_at": "string"
}

Streams progress for a self-serve deployment as server-sent events.

The response is a text/event-stream of progress updates.

path Parameters
project_id
required
string

ID of the project.

id
required
string

ID of the deployment.

Responses

Response samples

Content type
application/json
{
  • "code": "401",
  • "message": "bad_credential"
}

Lists the self-serve deployment flavors available to the project.

path Parameters
project_id
required
string

ID of the project.

Responses

Response samples

Content type
application/json
{
  • "flavors": [
    ]
}