Skip to content

Instance Snapshots API Reference

Reference · Updated Sep 2026

Coming from another cloud?

▸AWS·Amazon Machine Images (AMIs)

Amazon Machine Images (AMIs)high

  • Managed via EC2 APIs, not Glance.
  • Region-specific with cross-region copy.
  • Marketplace AMIs may charge hourly fees.
  • Includes block device mapping in AMI.
AWS docs ↗
▸Azure·Compute Gallery image definitions and versions

Azure Compute Gallery image definitions and versionshigh

  • Organized in galleries with image definitions and versioned images (Microsoft.Compute/galleries/images/versions), more structured than flat Glance images.
  • Supports global replication to regions with replicas (up to 100), ZRS storage, unlike OpenStack's store-only model.
  • Sharing via RBAC, community galleries, or direct share; requires gallery setup vs simple OpenStack image sharing.
  • New features like Trusted Launch only in Gallery, legacy managed images deprecated.
Azure docs ↗
▸DigitalOcean·API

DigitalOcean APIhigh

  • Uses REST API over HTTPS with Bearer token authentication via personal access tokens, not OpenStack's Keystone token-based auth.
  • Base URL https://api.digitalocean.com/v2, incompatible with OpenStack APIs like Nova/Neutron.
  • Scoped permissions tied to granular API scopes based on team roles, unlike OpenStack role/project assignments.
  • Rate limits: 5000/hour, 250/minute.
DigitalOcean docs ↗
▸Google Cloud·Machine Images (full VM state capture)

OS imageshigh

  • Public images shareable across projects (e.g. debian-cloud); OpenStack typically tenant-private.
  • Image families point to latest version; no OpenStack equivalent.
  • Custom images stored in Cloud Storage with licensing fees for premium OS.
Google Cloud docs ↗
▸Hetzner·Cloud API

Cloud APIhigh

  • Proprietary REST API over HTTPS with Bearer token auth, not OpenStack Identity API (keystone) endpoints or mechanisms.
  • Base URL https://api.hetzner.cloud/v1/ with resource-specific endpoints (e.g., /servers) vs OpenStack service endpoints (nova, cinder).
  • No multi-project handling in single auth; separate per-project tokens vs keystone scopes/projects.
  • Missing identity/catalog endpoints; no service discovery via API.
Hetzner docs ↗

Instance snapshots API reference

See the upstream Compute (Nova) API reference and Image (Glance) API reference.

Creating an instance snapshot spans two OpenStack services. Nova triggers the snapshot, and the result is a Glance image. Quake AI instances are boot-from-volume, so createImage produces a Cinder volume snapshot plus a thin Glance image that references it. After creation, you list, show, update, download, or delete the snapshot through the Image API.

In these methods, {server_id} is the UUID of the instance you snapshot, and {image_id} is the UUID of the snapshot image.

Service base URLs#

Two services back these endpoints. Prefix each path with the base URL for its service:

OperationServiceBase URL
Trigger snapshotNova (Compute)https://compute.{region}.rumble.cloud/v2.1
List, show, update, download, delete snapshot imagesGlance (Image)https://image.{region}.rumble.cloud

Replace {region} with your region. Currently only us-east-1 is available. Discover both endpoints from the service catalog:

bash
openstack catalog show compute
openstack catalog show image

The examples below write these base URLs as {nova_base} and {glance_base}.

Create instance snapshot (Nova)#

bash
POST {nova_base}/servers/{server_id}/action

Request body:

JSON
{
  "createImage": {
    "name": "Snapshot Name",
    "metadata": {
      "key": "value"
    }
  }
}

Nova returns the new image UUID in the Location response header. Poll the image status (see Show image details) until it reaches active.

List images including snapshots (Glance)#

bash
GET {glance_base}/v2/images

Show image details (Glance)#

bash
GET {glance_base}/v2/images/{image_id}

Update image metadata (Glance)#

bash
PATCH {glance_base}/v2/images/{image_id}

Request body (replace the snapshot name):

JSON
[
  { "op": "replace", "path": "/name", "value": "New Snapshot Name" }
]

Other common operations:

JSON
[
  { "op": "add", "path": "/protected", "value": true },
  { "op": "remove", "path": "/tags" }
]

Delete image (Glance)#

bash
DELETE {glance_base}/v2/images/{image_id}

Download image data (Glance)#

bash
GET {glance_base}/v2/images/{image_id}/file

Quick answers

Was this page helpful?