Crusoe Disks API
The Disks API from Crusoe — 2 operation(s) for disks.
The Disks API from Crusoe — 2 operation(s) for disks.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/crusoe:crusoe-disks-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: The API Gateway exposes all publicly available API endpoints for Crusoe Cloud products.
title: Crusoe Cloud API Gateway Disks API
version: v1
servers:
- url: https://api.cloud.crusoe.ai/v1
tags:
- name: Disks
paths:
/projects/{project_id}/storage/disks:
get:
description: Size of disks will be in gibibytes (GiB)
operationId: listDisks
parameters:
- description: ID of the project that owns the disks.
in: path
name: project_id
required: true
x-go-name: ProjectID
schema:
type: string
- description: Filters results to disks with these IDs.
in: query
name: disk_ids
x-go-name: DiskIds
schema:
type: array
items:
type: string
- description: Filters results to disks in this location.
in: query
name: location
x-go-name: Location
schema:
type: string
- description: Filters results to disks with these names.
in: query
name: disk_names
x-go-name: DiskNames
schema:
type: array
items:
type: string
- description: Excludes OS disks from the results when true.
in: query
name: exclude_os
x-go-name: ExcludeOs
schema:
type: boolean
responses:
'200':
$ref: '#/components/responses/listDisksResponse'
'401':
$ref: '#/components/responses/authError'
'403':
$ref: '#/components/responses/permissionsError'
'500':
$ref: '#/components/responses/serverError'
summary: Lists all disks in the project and returns their details
tags:
- Disks
post:
description: '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.'
operationId: createDisk
parameters:
- example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
in: path
name: project_id
required: true
x-go-name: ProjectID
schema:
type: string
responses:
'200':
$ref: '#/components/responses/asyncOperationResponse'
'400':
$ref: '#/components/responses/badReqError'
'401':
$ref: '#/components/responses/authError'
'403':
$ref: '#/components/responses/permissionsError'
'500':
$ref: '#/components/responses/serverError'
summary: Creates a disk in the project and returns the async operation
tags:
- Disks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DisksPostRequestV1'
required: true
/projects/{project_id}/storage/disks/{disk_id}:
delete:
description: A successful response from this resource will contain the async operation.
operationId: deleteDisk
parameters:
- description: ID of the project that owns the disk.
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
in: path
name: project_id
required: true
x-go-name: ProjectID
schema:
type: string
- description: ID of the disk.
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
in: path
name: disk_id
required: true
x-go-name: DiskID
schema:
type: string
responses:
'200':
$ref: '#/components/responses/asyncOperationResponse'
'401':
$ref: '#/components/responses/authError'
'403':
$ref: '#/components/responses/permissionsError'
'500':
$ref: '#/components/responses/serverError'
summary: Deletes a disk from the project and returns the async operation
tags:
- Disks
get:
description: Size of disk will be in gibibytes (GiB)
operationId: getDisk
parameters:
- description: ID of the project that owns the disk.
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
in: path
name: project_id
required: true
x-go-name: ProjectID
schema:
type: string
- description: ID of the disk.
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
in: path
name: disk_id
required: true
x-go-name: DiskID
schema:
type: string
responses:
'200':
$ref: '#/components/responses/getDiskResponse'
'401':
$ref: '#/components/responses/authError'
'403':
$ref: '#/components/responses/permissionsError'
'500':
$ref: '#/components/responses/serverError'
summary: Returns details for a single disk in the project
tags:
- Disks
patch:
description: '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.'
operationId: resizeDisk
parameters:
- description: ID of the project that owns the disk.
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
in: path
name: project_id
required: true
x-go-name: ProjectID
schema:
type: string
- description: ID of the disk.
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
in: path
name: disk_id
required: true
x-go-name: DiskID
schema:
type: string
responses:
'200':
$ref: '#/components/responses/asyncOperationResponse'
'400':
$ref: '#/components/responses/badReqError'
'401':
$ref: '#/components/responses/authError'
'403':
$ref: '#/components/responses/permissionsError'
'500':
$ref: '#/components/responses/serverError'
summary: Resizes a disk in the project and returns the async operation
tags:
- Disks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DisksPatchRequest'
required: true
components:
schemas:
VMAttachmentV1:
properties:
attachment_type:
$ref: '#/components/schemas/VMAttachmentType'
mode:
$ref: '#/components/schemas/DiskModeType'
vm_id:
description: ID of the VM the disk is attached to.
example: 123e4567-e89b-12d3-a456-426614174000
type: string
x-go-name: VMID
required:
- vm_id
- attachment_type
type: object
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
DisksPatchRequest:
properties:
size:
description: New storage capacity for the disk, given as a size and unit in the format [Size][Unit], for example 100GiB or 1TiB.
example: 10GiB
type: string
x-go-name: Size
required:
- size
type: object
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
ListDisksResponseV1:
properties:
items:
items:
$ref: '#/components/schemas/DiskV1'
type: array
x-go-name: Items
required:
- items
title: ListDisksResponseV1 is the response type for GET requests to the disks endpoint.
type: object
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
DiskModeType:
type: string
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
VMAttachmentType:
type: string
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
Operation:
description: 'Individual resources that use Operations should populate the `metadata` field
with resource-specific information.'
properties:
completed_at:
example: '2021-12-03T19:59:34Z'
type: string
x-go-name: CompletedAt
metadata:
example: '{}'
x-go-name: Metadata
operation_id:
example: F6EF489C-086E-458D-B812-7962964A28C9
type: string
x-go-name: ID
result:
example: '{}'
x-go-name: Result
started_at:
example: '2021-12-03T19:58:34Z'
type: string
x-go-name: StartedAt
state:
enum:
- IN_PROGRESS
- SUCCEEDED
- FAILED
example: IN_PROGRESS
type: string
x-go-name: State
required:
- operation_id
- state
- metadata
- started_at
- completed_at
title: Operation contains the common fields for all Operation API objects.
type: object
x-go-package: gitlab.com/crusoeenergy/schemas/utils/fetch
AsyncOperationResponse:
properties:
operation:
$ref: '#/components/schemas/Operation'
required:
- operation
title: AsyncOperationResponse is the response type for endpoints which return async operations.
type: object
x-go-package: gitlab.com/crusoeenergy/schemas/utils/fetch
DisksPostRequestV1:
properties:
block_size:
description: 'Block size for the new disk, in bytes: 512 or 4096.'
example: 4096
format: int64
type: integer
x-go-name: BlockSize
location:
description: Location to create the disk in.
example: us-northcentral1-a
type: string
x-go-name: Location
name:
description: Name for the new disk.
example: my-disk
type: string
x-go-name: Name
size:
description: Storage capacity for the new disk, given as a size and unit in the format [Size][Unit], for example 100GiB or 1TiB.
example: 10GiB
type: string
x-go-name: Size
snapshot_id:
description: ID of a disk snapshot to create the disk from.
example: 123e4567-e89b-12d3-a456-426614174000
type: string
x-go-name: DiskSnapshotID
type:
default: persistent-ssd
description: 'Type of disk to create: persistent-ssd or shared-volume. Defaults to persistent-ssd.'
enum:
- persistent-ssd
- shared-volume
example: persistent-ssd
type: string
x-go-name: Type
required:
- name
type: object
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
DiskV1:
properties:
attached_to:
description: VMs the disk is currently attached to.
items:
$ref: '#/components/schemas/VMAttachmentV1'
type: array
x-go-name: AttachedTo
block_size:
description: 'Block size of the disk, in bytes: 512 or 4096.'
example: 4096
format: int64
type: integer
x-go-name: BlockSize
created_at:
description: Creation timestamp of the disk, in RFC3339 format.
example: '2021-12-03T19:58:34Z'
type: string
x-go-name: CreatedAt
dns_name:
description: DNS name used to mount the disk. Populated only for shared-volume disks.
example: nfs.crusoecloudcompute.com
type: string
x-go-name: DNSName
id:
description: ID of the disk.
example: 123e4567-e89b-12d3-a456-426614174000
type: string
x-go-name: ID
location:
description: Location where the disk is provisioned.
example: us-northcentral1-a
type: string
x-go-name: Location
name:
description: Name of the disk.
example: my-disk
type: string
x-go-name: Name
serial_number:
description: Serial number assigned to the disk.
example: 96FD14FDBCF7E21E8EC
type: string
x-go-name: SerialNumber
size:
description: Storage capacity of the disk, given as a size and unit in the format [Size][Unit], for example 100GiB or 1TiB.
example: 10GiB
type: string
x-go-name: Size
type:
description: 'Type of the disk: persistent-ssd or shared-volume.'
example: persistent-ssd
type: string
x-go-name: Type
updated_at:
description: Last update timestamp of the disk, in RFC3339 format.
example: '2021-12-03T19:58:34Z'
type: string
x-go-name: UpdatedAt
vips:
description: Virtual IP addresses used to mount the disk. Populated only for shared-volume disks.
example:
- 1.2.3.4
- 1.2.3.8
items:
type: string
type: array
x-go-name: VIPAddrs
required:
- id
- name
- type
- size
- location
- block_size
- created_at
- updated_at
- serial_number
- attached_to
type: object
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
responses:
getDiskResponse:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/DiskV1'
authError:
description: Error Authentication Failed
content:
application/json:
schema:
properties:
code:
example: '401'
type: string
x-go-name: Code
message:
example: bad_credential
type: string
x-go-name: Message
required:
- code
- message
type: object
listDisksResponse:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ListDisksResponseV1'
serverError:
description: Error Internal Server
content:
application/json:
schema:
properties:
code:
example: '500'
type: string
x-go-name: Code
message:
example: internal_error
type: string
x-go-name: Message
required:
- code
- message
type: object
permissionsError:
description: Error Permissions
content:
application/json:
schema:
properties:
code:
example: '403'
type: string
x-go-name: Code
message:
example: unauthorized
type: string
x-go-name: Message
required:
- code
- message
type: object
badReqError:
description: Error Bad Request
content:
application/json:
schema:
properties:
code:
example: '400'
type: string
x-go-name: Code
message:
example: bad_request
type: string
x-go-name: Message
required:
- code
- message
type: object
asyncOperationResponse:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncOperationResponse'
x-tagGroups:
- name: Compute
tags:
- VMs
- VM Operations
- Images
- Instance Templates
- name: Organizations
tags:
- Projects
- Billing
- Entities
- Prospects
- Usage
- Quotas
- Audit Logs
- SCIM
- name: Users
tags:
- Identities
- SSH Keys
- Tokens
- name: Storage
tags:
- Disks
- Disk Operations
- Snapshots
- Snapshot Operations
- S3Buckets
- S3Users
- name: Networking
tags:
- VPC Firewall Rules
- VPC Firewall Rule Operations
- VPC Networks
- VPC Subnets
- IB Partitions
- Load Balancers
- NVLink Domains
- name: Orchestration
tags:
- Kubernetes Clusters
- Kubernetes Cluster Operations
- Kubernetes Node Pools
- Kubernetes Node Pool Operations
- Kubernetes Versions
- AutoClusters
- AutoCluster Operations
- name: Locations
tags:
- Locations
- name: Capacities
tags:
- Capacities
- name: Container Registry
tags:
- Container Registry
- name: Foundry
tags:
- Foundry
x-provenance:
method: harvested
publisher: Crusoe
source: https://docs.crusoecloud.com/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)