Sign Up

Volumes

List volumes

GET
/volumes

Authorization

headerAuthorizationBearer <token>

Bearer project API key.

Scope: read:volumes

Query Parameters

limit?integer

Maximum number of items to return, 1–200 (default 100)

Formatint64
Range1 <= value <= 200
Default100
cursor?string

Opaque continuation token returned as next_cursor by a previous request

Response Body

The page of volumes

application/json
  1. response

Response envelope for GET /volumes.

next_cursor?|

The opaque continuation token, or null on the last page.

volumes*array<>

The volumes in this page.

curl -X GET 'https://example.com/volumes'
{  "next_cursor": "string",  "volumes": [    {      "created_at": "2019-08-24T14:15:22Z",      "error": "string",      "id": "string",      "last_used_at": "2019-08-24T14:15:22Z",      "name": "string",      "options": {},      "size_gib": 0,      "status": "ready",      "type": "disk",      "updated_at": "2019-08-24T14:15:22Z",      "used_bytes": 0,      "used_bytes_at": "2019-08-24T14:15:22Z"    }  ]}

Create a volume

POST
/volumes

Authorization

headerAuthorizationBearer <token>

Bearer project API key.

Scope: write:volumes

Request Body

application/json
  1. body
bucket?|

Settings for an existing bucket. Omit them to create a managed bucket.

name*string

The project-unique volume name.

size_gib?|

Scratch size in GiB. Defaults to 100. Disk volumes only — supplying it on a bucket volume is a 400.

Formatint32
type?|

The volume type. Defaults to disk.

Response Body

The created volume

application/json
  1. response

A volume available to the project.

created_at*string

When the volume was created.

Formatdate-time
error?|

The failure detail, or null when the volume has not failed.

id*string

The volume ID.

last_used_at?|

When the volume was last attached, or null when it has not been used.

Formatdate-time
name*string

The project-unique volume name.

options?

Type-specific options. Disk volumes use an empty object; bucket volumes include their bucket settings and credential secret names.

size_gib?|

Scratch capacity in GiB. Disk volumes only — a bucket volume has no capacity of its own and reports null.

Formatint32
status*VolumeStatus

The volume status.

Value in"ready""deleting""deleted""error"
type*VolumeType

The volume type.

Value in"disk""bucket"
updated_at*string

When the volume metadata last changed.

Formatdate-time
used_bytes?|

Logical file usage in bytes, or null before the first usage report.

Formatint64
used_bytes_at?|

When used_bytes was observed, or null when usage is unknown.

Formatdate-time
curl -X POST 'https://example.com/volumes' \  -H 'Content-Type: application/json' \  -d '{  "name": "string"}'
{  "created_at": "2019-08-24T14:15:22Z",  "error": "string",  "id": "string",  "last_used_at": "2019-08-24T14:15:22Z",  "name": "string",  "options": {},  "size_gib": 0,  "status": "ready",  "type": "disk",  "updated_at": "2019-08-24T14:15:22Z",  "used_bytes": 0,  "used_bytes_at": "2019-08-24T14:15:22Z"}

Get a volume

GET
/volumes/{id}

Authorization

headerAuthorizationBearer <token>

Bearer project API key.

Scope: read:volumes

Path Parameters

id*string

The volume ID or name

Query Parameters

id_only?boolean

Resolve the path value strictly as an ID, without a name fallback.

Response Body

The volume

application/json
  1. response

A volume available to the project.

created_at*string

When the volume was created.

Formatdate-time
error?|

The failure detail, or null when the volume has not failed.

id*string

The volume ID.

last_used_at?|

When the volume was last attached, or null when it has not been used.

Formatdate-time
name*string

The project-unique volume name.

options?

Type-specific options. Disk volumes use an empty object; bucket volumes include their bucket settings and credential secret names.

size_gib?|

Scratch capacity in GiB. Disk volumes only — a bucket volume has no capacity of its own and reports null.

Formatint32
status*VolumeStatus

The volume status.

Value in"ready""deleting""deleted""error"
type*VolumeType

The volume type.

Value in"disk""bucket"
updated_at*string

When the volume metadata last changed.

Formatdate-time
used_bytes?|

Logical file usage in bytes, or null before the first usage report.

Formatint64
used_bytes_at?|

When used_bytes was observed, or null when usage is unknown.

Formatdate-time
curl -X GET 'https://example.com/volumes/string'
{  "created_at": "2019-08-24T14:15:22Z",  "error": "string",  "id": "string",  "last_used_at": "2019-08-24T14:15:22Z",  "name": "string",  "options": {},  "size_gib": 0,  "status": "ready",  "type": "disk",  "updated_at": "2019-08-24T14:15:22Z",  "used_bytes": 0,  "used_bytes_at": "2019-08-24T14:15:22Z"}

Delete a volume

DELETE
/volumes/{id}

Deletion is asynchronous. Repeating the request after the deletion completes confirms it without starting another.

Authorization

headerAuthorizationBearer <token>

Bearer project API key.

Scope: delete:volumes

Path Parameters

id*string

The volume ID or name

Query Parameters

id_only?boolean

Resolve the path value strictly as an ID, without a name fallback.

Response Body

Accepted: the volume deletion

application/json
  1. response

An accepted asynchronous operation.

id*string

The ID of the resource the operation acts on.

status*string

The resource's lifecycle status at acceptance.

curl -X DELETE 'https://example.com/volumes/string'
{  "id": "string",  "status": "string"}