Incus Storage API

The storage API from Incus — 39 operation(s) for storage.

Operations 70

GET /1.0/storage-pools Get the storage pools #
POST /1.0/storage-pools Add a storage pool #
DELETE /1.0/storage-pools/{name}/buckets/{bucketName} Delete the storage bucket #
PATCH /1.0/storage-pools/{name}/buckets/{bucketName} Partially update the storage bucket #
PUT /1.0/storage-pools/{name}/buckets/{bucketName} Update the storage bucket #
DELETE /1.0/storage-pools/{name}/buckets/{bucketName}/keys/{keyName} Delete the storage bucket key #
PUT /1.0/storage-pools/{name}/buckets/{bucketName}/keys/{keyName} Update the storage bucket key #
GET /1.0/storage-pools/{name}/resources Get storage pool resources information #
DELETE /1.0/storage-pools/{poolName} Delete the storage pool #
GET /1.0/storage-pools/{poolName} Get the storage pool #
PATCH /1.0/storage-pools/{poolName} Partially update the storage pool #
PUT /1.0/storage-pools/{poolName} Update the storage pool #
GET /1.0/storage-pools/{poolName}/buckets Get the storage pool buckets #
POST /1.0/storage-pools/{poolName}/buckets Add a storage pool bucket #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName} Get the storage pool bucket #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups Get the storage bucket backups #
POST /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups Create a storage bucket backup #
DELETE /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName} Delete a storage bucket backup #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName} Get the storage bucket backup #
POST /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName} Rename a storage bucket backup #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName}/export Get the raw backup file #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups?recursion=1 Get the storage bucket backups #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/keys Get the storage pool bucket keys #
POST /1.0/storage-pools/{poolName}/buckets/{bucketName}/keys Add a storage pool bucket key #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/keys/{keyName} Get the storage pool bucket key #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/keys?recursion=1 Get the storage pool bucket keys #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}?recursion=1 Get the full storage pool bucket details #
GET /1.0/storage-pools/{poolName}/buckets?recursion=1 Get the storage pool buckets #
GET /1.0/storage-pools/{poolName}/buckets?recursion=2 Get the storage pool bucket details #
GET /1.0/storage-pools/{poolName}/volumes Get the storage volumes #
POST /1.0/storage-pools/{poolName}/volumes Add a storage volume #
GET /1.0/storage-pools/{poolName}/volumes/{type} Get the storage volumes #
POST /1.0/storage-pools/{poolName}/volumes/{type} Add a storage volume #
DELETE /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName} Delete the storage volume #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName} Get the storage volume #
PATCH /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName} Partially update the storage volume #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName} Rename or move/migrate a storage volume #
PUT /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName} Update the storage volume #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups Get the storage volume backups #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups Create a storage volume backup #
DELETE /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName} Delete a storage volume backup #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName} Get the storage volume backup #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName} Rename a storage volume backup #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName}/export Get the raw backup file #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups?recursion=1 Get the storage volume backups #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/bitmaps Get the storage volume dirty bitmaps #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/bitmaps Create a storage volume bitmap #
DELETE /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/bitmaps/{bitmapName} Delete a storage volume bitmap #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/bitmaps/{bitmapName} Get the storage volume dirty bitmap #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/bitmaps?recursion=1 Get the storage volume dirty bitmaps #
DELETE /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/files Delete a file #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/files Get a file #
HEAD /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/files Get metadata for a file #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/files Create or replace a file #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/nbd Get the storage volume NBD connection #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/sftp Get the storage volume SFTP connection #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots Get the storage volume snapshots #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots Create a storage volume snapshot #
DELETE /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName} Delete a storage volume snapshot #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName} Get the storage volume snapshot #
PATCH /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName} Partially update the storage volume snapshot #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName} Rename a storage volume snapshot #
PUT /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName} Update the storage volume snapshot #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots?recursion=1 Get the storage volume snapshots #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/state Get the storage volume state #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}?recursion=1 Get the full storage volume details #
GET /1.0/storage-pools/{poolName}/volumes/{type}?recursion=1 Get the storage volumes #
GET /1.0/storage-pools/{poolName}/volumes/{type}?recursion=2 Get the storage volumes with all details #
GET /1.0/storage-pools/{poolName}/volumes?recursion=1 Get the storage volumes #
GET /1.0/storage-pools?recursion=1 Get the storage pools #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/incus-storage-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

incus-storage-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: lxc-devel@lists.linuxcontainers.org
    name: Incus upstream
    url: https://github.com/lxc/incus
  description: 'This is the REST API used by all Incus clients.

    Internal endpoints aren''t included in this documentation.


    The Incus API is available over both a local unix+http and remote https API.

    Authentication for local users relies on group membership and access to the unix socket.

    For remote users, the default authentication method is TLS client

    certificates.'
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  title: Incus external REST Storage API
  version: '1.0'
tags:


# --- truncated at 32 KB (151 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/incus/refs/heads/main/openapi/incus-storage-api-openapi.yml