Canonical Images API

The images API from Canonical — 19 operation(s) for images.

Operations 31

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /1.0/images List images in the Anbox cluster · Get a list of images #
Ask an LLM
“Which Android images are available in my AMS cluster?”
“Can I get just the image names from Anbox Management Service without full details?”
Tell an agent
List the images stored in my AMS cluster.
Show AMS cluster images with recursion level {recursion}.
POST /1.0/images Import an image from an image server into AMS · Import an image #
Ask an LLM
“How do I pull an Anbox image into AMS from an image server by name?”
“Can an imported AMS image be made the default image right away?”
Tell an agent
Import image {name} into AMS from the image server.
Import AMS image {name} from the image server and mark it as the default image.
POST /1.0/images/ Upload a package to create a new AMS image · Upload a package to create an image #
Ask an LLM
“How do I create an Anbox image in AMS by uploading a gzip, bzip2 or xz package?”
“What compression formats does AMS accept when I upload a brand-new image package?”
Tell an agent
Upload this image package to AMS to create a new image using request metadata {request}.
Create an AMS image from the uploaded package with fingerprint {fingerprint} and request {request}.
GET /1.0/images/{id_or_name} Get details of an AMS image by id or name · Get information about an image #
Ask an LLM
“Can I look up an AMS image using either its id or its name?”
“What versions and status does a specific image stored in AMS have?”
Tell an agent
Show the AMS image {image}.
Get details of AMS image {image} of type {type}.
DELETE /1.0/images/{id} Delete an image stored in AMS · Delete an image #
Ask an LLM
“Is there a way to remove an Android image from my AMS cluster entirely?”
“Can I force-delete an AMS image that is still in use?”
Tell an agent destructive · confirm first
Delete AMS image {id} with all its versions.
Force-delete AMS image {id}.
PATCH /1.0/images/{id} Upload a new package version to an existing AMS image · Update an image with a new package to upload #
Ask an LLM
“How do I push a new package version to an image that already exists in AMS?”
“Does uploading an updated package to an AMS image create a new image version?”
Tell an agent
Upload a new package to existing AMS image {id} with request metadata {request}.
Add a new package version to AMS image {id}, fingerprint {fingerprint}, request {request}.
PATCH /1.0/images/{id}/ Update an AMS image's metadata · Update an image's metadata #
Ask an LLM
“Can I change an AMS image's settings without re-uploading its package?”
“How do I make an existing AMS image the default or force a resync to nodes?”
Tell an agent
Make AMS image {id} the default image.
Force AMS image {id} metadata to sync across the cluster.
DELETE /1.0/images/{id}/{version} Delete one version of an AMS image · Delete an image version #
Ask an LLM
“How do I delete a single old version of an AMS image and keep the rest?”
“Can I roll back an AMS image by removing its latest version?”
Tell an agent destructive · confirm first
Delete version {version} of AMS image {id}.
Remove image version {version} from AMS image {id}, keeping other versions.
GET /1.0/images?recursion=1 List AMS images with full details · Get the list of images expanded #
Ask an LLM
“Can I get every AMS image with its full details in one call?”
“Can I see the expanded records for all images in my Anbox cluster at once?”
Tell an agent
List all AMS cluster images expanded with their full details.
Get the expanded AMS image list with recursion {recursion}.
DELETE /1.0/images/{fingerprint} Delete an LXD image from the image store · Delete the image #
Ask an LLM
“What's the way to remove an image from the LXD image store?”
“Can I delete an LXD image that lives in a specific project?”
Tell an agent destructive · confirm first
Delete LXD image {fingerprint} from the image store.
Remove the LXD image from project {project}.
GET /1.0/images/{fingerprint} Get an LXD image by fingerprint · Get the image #
Ask an LLM
“How do I see the properties of one LXD image by its fingerprint?”
“What aliases and expiry does a specific image in an LXD project have?”
Tell an agent
Show the LXD image with fingerprint {fingerprint}.
Get the LXD image details in project {project}.
PATCH /1.0/images/{fingerprint} Partially update an LXD image · Partially update the image #
Ask an LLM
“Can I change just one field of an LXD image, like its expiry, without resending everything?”
“How do I turn on auto-update for a single LXD image?”
Tell an agent
Patch LXD image {fingerprint} to set only its expiry date to {expires_at}.
Patch just the auto-update flag of the LXD image to {auto_update}.
PUT /1.0/images/{fingerprint} Replace an LXD image's full definition · Update the image #
Ask an LLM
“How do I overwrite all of an LXD image's properties in one request?”
“Can I replace an LXD image's profiles, properties and public flag together?”
Tell an agent
Replace the whole definition of LXD image {fingerprint}, setting public to {public} and profiles to {profiles}.
Overwrite the LXD image definition with auto-update {auto_update} and expiry {expires_at}.
GET /1.0/images/{fingerprint}/export Download the raw files of an LXD image · Get the raw image file(s) #
Ask an LLM
“Where do I download the raw file of an LXD image I have access to?”
“What happens when I export a split-format LXD image?”
Tell an agent
Download the raw files of LXD image {fingerprint}.
Export the raw image file from LXD project {project}.
POST /1.0/images/{fingerprint}/export Push an LXD image to a remote server · Make LXD push the image to a remote server #
Ask an LLM
“Can LXD push one of my images directly to another remote server?”
“What do I need to give LXD to copy an image to a remote target?”
Tell an agent
Push LXD image {fingerprint} to remote server {target} using secret {secret}.
Have LXD push the image to {target} with aliases {aliases}.
GET /1.0/images/{fingerprint}/export?public Download a public LXD image's raw files · Get the raw image file(s) #
Ask an LLM
“Can an untrusted client download a public LXD image without authenticating?”
“How do I fetch a public image file from LXD using a one-time secret?”
Tell an agent
Download the files of public LXD image {fingerprint} using secret {secret}.
Fetch the raw files of the public image from LXD without trusted credentials.
POST /1.0/images/{fingerprint}/refresh Refresh an LXD image from its source server · Refresh an image #
Ask an LLM
“How do I make LXD check an image's source for a newer version?”
“Can I force an LXD image to update to the latest upstream copy now?”
Tell an agent
Refresh LXD image {fingerprint} from its source server.
Check the source for an updated image and refresh the local copy in project {project}.
POST /1.0/images/{fingerprint}/secret Generate a one-time secret to fetch an LXD image · Generate secret for retrieval of the image by an untrusted client #
Ask an LLM
“How do I let an untrusted client download a private LXD image once?”
“Where does the one-time image retrieval secret show up in LXD?”
Tell an agent
Generate a one-time retrieval secret for LXD image {fingerprint}.
Create an image download secret for an untrusted client in project {project}.
GET /1.0/images/{fingerprint}?public Get a public LXD image's details · Get the public image #
Ask an LLM
“Can I read the details of a public LXD image without being a trusted client?”
“What does an unauthenticated caller see about a public image in LXD?”
Tell an agent
Show the public LXD image {fingerprint} using secret {secret}.
Get the public image record from LXD as an untrusted client.
GET /1.0/images/aliases List LXD image aliases as URLs · Get the image aliases #
Ask an LLM
“Which image aliases exist in my LXD server?”
“Can I list image alias URLs for one LXD project?”
Tell an agent
List the URLs of all LXD image aliases.
List image alias URLs in LXD project {project}.
POST /1.0/images/aliases Create an LXD image alias · Add an image alias #
Ask an LLM
“Can I give an LXD image a friendly alias name?”
“Can I point a new LXD alias at an image fingerprint with a description?”
Tell an agent
Create image alias {name} pointing to fingerprint {target}.
Add LXD alias {name} for image {target} described as {description}.
DELETE /1.0/images/aliases/{name} Delete an LXD image alias · Delete the image alias #
Ask an LLM
“How do I delete an LXD image alias without deleting the image?”
“Can I remove an alias from a specific LXD project?”
Tell an agent destructive · confirm first
Delete LXD image alias {alias}.
Drop this alias name from LXD project {project}, keeping its image.
GET /1.0/images/aliases/{name} Get an LXD image alias · Get the image alias #
Ask an LLM
“Which image fingerprint does a given LXD alias point to?”
“What description does one LXD image alias carry?”
Tell an agent
Show LXD image alias {alias} and its target fingerprint.
Look up which fingerprint this alias targets in LXD project {project}.
PATCH /1.0/images/aliases/{name} Partially update an LXD image alias · Partially update the image alias #
Ask an LLM
“Can I change only an LXD alias's description and leave its target alone?”
“Which fields of an image alias can I patch individually?”
Tell an agent
Patch the description of LXD alias {alias} to {description}.
Patch only the alias target to fingerprint {target}.
POST /1.0/images/aliases/{name} Rename an LXD image alias · Rename the image alias #
Ask an LLM
“Is it possible to rename an existing LXD image alias?”
“Can I change an alias name without touching the image it points to?”
Tell an agent
Rename LXD image alias {alias} to {new_name}.
Give the image alias the new name {name} in project {project}.
PUT /1.0/images/aliases/{name} Replace an LXD image alias configuration · Update the image alias #
Ask an LLM
“How do I repoint an LXD alias and reset its description in one request?”
“Can I replace an LXD image alias's whole configuration?”
Tell an agent
Replace the LXD alias config so it targets {target} with description {description}.
Overwrite image alias {alias} to point at fingerprint {target}.
GET /1.0/images/aliases/{name}?public Get a public LXD image alias · Get the public image alias #
Ask an LLM
“Can an unauthenticated client resolve an alias that points to a public LXD image?”
“Why does the public alias lookup fail for aliases on private images?”
Tell an agent
Resolve the public LXD alias {alias} as an untrusted client.
Look up the public image alias in project {project} without credentials.
GET /1.0/images/aliases?recursion=1 List LXD image aliases with full details · Get the image aliases #
Ask an LLM
“How do I get every LXD alias along with its target and description in one call?”
“Can I list full image alias objects rather than just URLs?”
Tell an agent
List all LXD image aliases as full objects with targets.
Get expanded image alias records for project {project}.
GET /1.0/images?public List public LXD images as URLs · Get the public images #
Ask an LLM
“Which images does this LXD server publish publicly?”
“Can I filter the public LXD image URL list across all projects?”
Tell an agent
List URLs of the public images on this LXD server.
List public LXD image URLs matching filter {filter}.
POST /1.0/images?public Push an image to a target LXD image server · Add an image #
Ask an LLM
“How does one LXD server hand an image over to another LXD server?”
“Can I set aliases and expiry when preparing an image on the target server?”
Tell an agent
Prepare a new image entry on the target LXD server named {filename}.
Add an image on the target server from source {source} with aliases {aliases}.
GET /1.0/images?public&recursion=1 List public LXD images with full details · Get the public images #
Ask an LLM
“How do I get full records for every public image on an LXD server?”
“Can I see public image properties across all projects in one call?”
Tell an agent
List all public LXD images as full objects.
Get expanded public image records matching filter {filter}.

Documentation

Specifications

Schemas & Data

Other Resources

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/canonical:canonical-images-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

canonical-images-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canonical Images API
  version: '1.0'
  description: 'Operations tagged images across 2 of this provider''s published API definitions: canonical-anbox-cloud-ams-api-openapi.json, canonical-lxd-rest-api-openapi.yml. Each path carries the servers of the definition it was published in.'
tags:


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