Aquanode Snapshots API
The Snapshots API from Aquanode — 10 operation(s) for snapshots.
The Snapshots API from Aquanode — 10 operation(s) for snapshots.
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/aquanode-io:aquanode-io-snapshots-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:
version: 1.0.0
title: Aquanode Orchestrator Snapshots API
description: API documentation for the Aquanode deployment orchestrator.
servers:
- url: /api/v1
tags:
- name: Snapshots
paths:
/snapshots/deployments:
get:
summary: Get snapshot supported deployments
description: Lists all deployments that support snapshotting.
tags:
- Snapshots
security:
- BearerAuth: []
responses:
'200':
description: Supported deployments retrieved successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data:
type: array
items: {}
message:
type: string
example: Operation successful
timestamp:
type: string
example: '2026-11-09T19:02:47.265Z'
required:
- success
- data
- timestamp
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.265Z'
required:
- success
- error
- timestamp
operationId: getSnapshotsDeployments
x-operation-id-source: derived
/snapshots/history:
get:
summary: Get user snapshot history
description: Retrieves the complete snapshot history for the current user.
tags:
- Snapshots
security:
- BearerAuth: []
responses:
'200':
description: Snapshot history retrieved successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data:
type: array
items: {}
message:
type: string
example: Operation successful
timestamp:
type: string
example: '2026-11-09T19:02:47.265Z'
required:
- success
- data
- timestamp
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.265Z'
required:
- success
- error
- timestamp
operationId: getSnapshotsHistory
x-operation-id-source: derived
/snapshots/external:
post:
summary: Register an external/CLI snapshot
description: Registers a snapshot created by a standalone ogre/aq CLI run that has no Aquanode deployment, recording it as an account-owned, deployment-less backup so it lists + restores in the console /backups.
tags:
- Snapshots
security:
- BearerAuth: []
requestBody:
content:
application/json:
schema:
type: object
properties:
path:
type: string
example: /root
ogre_snapshot_id:
type: string
example: latest
name:
type: string
example: my-comfyui-env
size:
type: number
example: 1048576
required:
- path
- ogre_snapshot_id
responses:
'200':
description: External snapshot registered successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data: {}
message:
type: string
example: Operation successful
timestamp:
type: string
example: '2026-11-09T19:02:47.265Z'
required:
- success
- timestamp
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.265Z'
required:
- success
- error
- timestamp
operationId: postSnapshotsExternal
x-operation-id-source: derived
/snapshots/{deploymentId}/create:
post:
summary: Create snapshot
description: Triggers the creation of a new snapshot for a specific deployment.
tags:
- Snapshots
security:
- BearerAuth: []
parameters:
- schema:
type: string
required: true
name: deploymentId
in: path
responses:
'200':
description: Snapshot creation triggered successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data: {}
message:
type: string
example: Operation successful
timestamp:
type: string
example: '2026-11-09T19:02:47.315Z'
required:
- success
- timestamp
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.315Z'
required:
- success
- error
- timestamp
'404':
description: Deployment not found
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.316Z'
required:
- success
- error
- timestamp
operationId: postSnapshotsByDeploymentIdCreate
x-operation-id-source: derived
/snapshots/share:
post:
summary: Create a link-scoped snapshot share
description: Generates an unguessable, link-scoped share for a snapshot the caller owns (CD11). Returns the token + public deploy-from-link URL. This is the thin launch-day share loop — not a public catalog.
tags:
- Snapshots
security:
- BearerAuth: []
requestBody:
content:
application/json:
schema:
type: object
properties:
snapshot_source:
type: string
example: ext-42
name:
type: string
example: my-comfyui-env
expires_at:
type: string
format: date-time
description: Optional ISO-8601 hard expiry (#210); omit for a link that never expires
example: '2026-07-01T00:00:00.000Z'
required:
- snapshot_source
responses:
'200':
description: Snapshot share created successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data: {}
message:
type: string
example: Operation successful
timestamp:
type: string
example: '2026-11-09T19:02:47.316Z'
required:
- success
- timestamp
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.316Z'
required:
- success
- error
- timestamp
operationId: postSnapshotsShare
x-operation-id-source: derived
/snapshots/share/{token}:
get:
summary: Preview a shared snapshot (public)
description: Unauthenticated preview of a shared snapshot, driving the public deploy-from-link page. Returns only the env description (paths, size, recency) — never the owner. 404 for an unknown or revoked token.
tags:
- Snapshots
parameters:
- schema:
type: string
required: true
name: token
in: path
responses:
'200':
description: Snapshot share preview retrieved successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data: {}
message:
type: string
example: Operation successful
timestamp:
type: string
example: '2026-11-09T19:02:47.316Z'
required:
- success
- timestamp
'404':
description: Share link not found or has been revoked
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.316Z'
required:
- success
- error
- timestamp
operationId: getSnapshotsShareByToken
x-operation-id-source: derived
/snapshots/shares:
get:
summary: List the caller's snapshot shares
tags:
- Snapshots
security:
- BearerAuth: []
responses:
'200':
description: Snapshot shares retrieved successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data:
type: array
items: {}
message:
type: string
example: Operation successful
timestamp:
type: string
example: '2026-11-09T19:02:47.325Z'
required:
- success
- data
- timestamp
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.325Z'
required:
- success
- error
- timestamp
operationId: getSnapshotsShares
x-operation-id-source: derived
/snapshots/share/{token}/revoke:
post:
summary: Revoke a snapshot share
tags:
- Snapshots
security:
- BearerAuth: []
parameters:
- schema:
type: string
required: true
name: token
in: path
responses:
'200':
description: Snapshot share revoked successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data: {}
message:
type: string
example: Operation successful
timestamp:
type: string
example: '2026-11-09T19:02:47.325Z'
required:
- success
- timestamp
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.325Z'
required:
- success
- error
- timestamp
'404':
description: Share link not found
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.325Z'
required:
- success
- error
- timestamp
operationId: postSnapshotsShareByTokenRevoke
x-operation-id-source: derived
/snapshots/webhook:
post:
summary: Snapshot webhook
description: Webhook endpoint for snapshot status updates from Ogre.
tags:
- Snapshots
responses:
'200':
description: Webhook processed successfully
operationId: postSnapshotsWebhook
x-operation-id-source: derived
/snapshots/{source}/visibility:
patch:
summary: Set the visibility of a snapshot series
description: Sets private / team / public on every series behind a snapshot source (a deployment id or ext-). Requires write access; a share link does not grant it.
tags:
- Snapshots
security:
- BearerAuth: []
parameters:
- schema:
type: string
example: ext-42
required: true
name: source
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
visibility:
type: string
enum:
- private
- team
- public
required:
- visibility
responses:
'200':
description: Snapshot visibility updated successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data:
type: object
properties:
updated:
type: number
required:
- updated
message:
type: string
example: Operation successful
timestamp:
type: string
example: '2026-11-09T19:02:47.325Z'
required:
- success
- data
- timestamp
'400':
description: Invalid request data
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.325Z'
required:
- success
- error
- timestamp
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.325Z'
required:
- success
- error
- timestamp
'403':
description: You do not have permission to change this snapshot
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
timestamp:
type: string
example: '2026-11-09T19:02:47.325Z'
required:
- success
- error
- timestamp
operationId: patchSnapshotsBySourceVisibility
x-operation-id-source: derived
components:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: aq_sk_ API key
description: 'An Aquanode API key, created under API keys in the console, sent as `Authorization: Bearer aq_sk_...` (or in the `x-api-key` header). A key is scoped to the team that created it; mutating routes need a key with the `deploy` or `full` scope.'