Canonical Instances API

The instances API from Canonical — 29 operation(s) for instances.

Operations 58

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/instances List Anbox instances as endpoint URLs · Get a list of instances #
Ask an LLM
“How do I get the URLs of every Anbox instance in AMS?”
“Can I page through AMS instance links using limit and offset?”
Tell an agent
List the endpoint URLs of AMS instances running app {app_name}.
Get AMS instance URLs on node {node}, {limit} at a time.
POST /1.0/instances Launch a new Anbox instance from an app or image · Create a new instance #
Ask an LLM
“How do I launch a new Android instance in AMS from an application?”
“Can I create an Anbox instance from a raw image instead of an app?”
Tell an agent
Create an AMS instance of app {app_id} version {app_version}.
Launch an AMS instance from image {image_id} on node {node} without starting it: {no_start}.
DELETE /1.0/instances Delete several Anbox instances at once · Delete multiple instances #
Ask an LLM
“Can I delete a batch of AMS instances by their IDs in one call?”
“What happens to a bulk AMS delete if one instance fails to delete?”
Tell an agent destructive · confirm first
Delete the AMS instances {ids}.
Force-delete AMS instances {ids} even if they are running.
PUT /1.0/instances Change the running state of all instances · Bulk instance state update #
Ask an LLM
“Can I stop every instance at once instead of one by one?”
“What bulk call starts all the instances in a project together?”
Tell an agent
Set every instance in project {project} to state {state}.
Start all of my instances in one bulk request.
GET /1.0/instances/{id_or_name} Get details of one Anbox instance · Get information about a specific instance instance #
Ask an LLM
“How can I look up a single AMS instance by its ID or name?”
“What details does AMS return about one Anbox instance?”
Tell an agent
Show me the AMS instance {id_or_name}.
Look up Anbox instance {id_or_name} and tell me its status.
DELETE /1.0/instances/{id_or_name} Delete one Anbox instance · Delete a specific instance #
Ask an LLM
“How do I remove a single Anbox instance from AMS?”
“Is deleting an AMS instance asynchronous, and how do I track it?”
Tell an agent destructive · confirm first
Delete AMS instance {id_or_name}.
Force the deletion of Anbox instance {id_or_name}.
PATCH /1.0/instances/{id_or_name} Start or stop one Anbox instance · Update the state of a specific instance instance #
Ask an LLM
“How do I stop a single Anbox instance without deleting it?”
“Can I change the desired status of one AMS instance?”
Tell an agent
Set AMS instance {id_or_name} to desired status {desired_status}.
Stop Anbox instance {id_or_name}.
POST /1.0/instances/{id_or_name}/exec Run a command inside an Anbox instance · Execute a command in a instance #
Ask an LLM
“Can I run a shell command inside an Android instance managed by AMS?”
“Does AMS exec support an interactive session with a terminal size?”
Tell an agent
Run {command} inside AMS instance {id_or_name}.
Open an interactive shell in Anbox instance {id_or_name} with environment {environment}.
GET /1.0/instances/{id_or_name}/logs List collected logs for an Anbox instance · Get a list of collected log files for the instance #
Ask an LLM
“Where can I find the logs AMS collected when an instance went into error?”
“Which log files are stored for a failed Anbox instance?”
Tell an agent
List the collected log files for AMS instance {id_or_name}.
Show what logs AMS gathered from errored instance {id_or_name}.
GET /1.0/instances/{id_or_name}/logs/{name} Download one collected Anbox instance log · Retrieve a specific log file stored for the instance #
Ask an LLM
“How do I download a specific raw log file AMS stored for an instance?”
“Can I read one collected log from a crashed Anbox instance?”
Tell an agent
Download log {name} from AMS instance {id_or_name}.
Fetch the raw {name} log collected for Anbox instance {id_or_name}.
GET /1.0/instances?recursion=1 List Anbox instances with full details · Get a list of instances #
Ask an LLM
“How do I list AMS instances with their full records instead of just URLs?”
“Can I get every Anbox instance's details filtered by status in one call?”
Tell an agent
List full records of AMS instances with status {status}.
Give me detailed AMS instances built from image {image_id}.
DELETE /1.0/instances/{name} Delete an LXD instance and its snapshots · Delete an instance #
Ask an LLM
“Does deleting an LXD instance also remove its snapshots and backups?”
“How do I permanently remove an LXD container or VM?”
Tell an agent destructive · confirm first
Delete the LXD instance in project {project}, including its snapshots and backups.
Force-delete the LXD instance {instance}.
GET /1.0/instances/{name} Get an LXD instance's basic configuration · Get the instance #
Ask an LLM
“How do I look up an LXD instance's configuration by name?”
“What does the basic LXD instance record include without state?”
Tell an agent
Show the basic config of my LXD instance in project {project}.
Get the LXD record of instance {instance} without its runtime state.
PATCH /1.0/instances/{name} Change some settings of an LXD instance · Partially update the instance #
Ask an LLM
“Can I change just one config key on an LXD instance without resending everything?”
“How do I add a device to an existing LXD instance?”
Tell an agent
Merge config {config} into the existing settings of LXD instance {instance}.
Add devices {devices} to the LXD instance, keeping the rest unchanged.
POST /1.0/instances/{name} Rename, move or migrate an LXD instance · Rename or move/migrate an instance #
Ask an LLM
“How do I rename an LXD instance?”
“Can I live-migrate an LXD instance to another cluster member?”
Tell an agent
Rename LXD instance {instance} to {new_name}.
Live-migrate the LXD instance to cluster member {target}.
PUT /1.0/instances/{name} Replace an LXD instance's configuration · Update the instance #
Ask an LLM
“How do I replace the whole configuration of an LXD instance?”
“Can I restore an LXD instance from one of its snapshots?”
Tell an agent
Replace the config of LXD instance {instance} with {config} and profiles {profiles}.
Restore the LXD instance to snapshot {restore}.
GET /1.0/instances/{name}/backups List an LXD instance's backup URLs · Get the backups #
Ask an LLM
“Which backups exist for my LXD instance?”
“How do I get links to all backups of an instance?”
Tell an agent
List backup URLs for the LXD instance in project {project}.
Show the links to the backups of instance {instance}.
POST /1.0/instances/{name}/backups Create a backup of an LXD instance · Create a backup #
Ask an LLM
“How do I back up an LXD instance?”
“Can an LXD backup skip snapshots and set an expiry date?”
Tell an agent
Back up LXD instance {instance} as {backup_name}, expiring at {expires_at}.
Create an instance-only backup compressed with {compression_algorithm}.
DELETE /1.0/instances/{name}/backups/{backup} Delete an LXD instance backup · Delete a backup #
Ask an LLM
“How do I delete an old instance backup?”
“Can I remove one backup while keeping the others?”
Tell an agent destructive · confirm first
Delete backup {backup} of the LXD instance {instance}.
Remove the instance backup from project {project}.
GET /1.0/instances/{name}/backups/{backup} Get one backup of an LXD instance · Get the backup #
Ask an LLM
“How can I see the details of a single instance backup?”
“When does a particular LXD backup expire?”
Tell an agent
Show the details of this LXD instance backup in project {project}.
Look up backup {backup} of instance {instance} and report its expiry.
POST /1.0/instances/{name}/backups/{backup} Rename an LXD instance backup · Rename a backup #
Ask an LLM
“Can I rename an existing instance backup?”
“How do I give an LXD backup a clearer name?”
Tell an agent
Rename backup {backup} of instance {instance} to {new_name}.
Change this LXD backup's name to {name} in project {project}.
GET /1.0/instances/{name}/backups/{backup}/export Download an LXD instance backup file · Get the raw backup file(s) #
Ask an LLM
“How do I download the raw backup tarball of an instance?”
“Can I export an LXD backup off the server?”
Tell an agent
Download the raw file of backup {backup} for instance {instance}.
Export the instance backup file from project {project}.
GET /1.0/instances/{name}/backups?recursion=1 List an LXD instance's backups with details · Get the backups #
Ask an LLM
“Can I list every instance backup with its full details, not just links?”
“What are the expiry dates of all my instance's backups?”
Tell an agent
List all backups of instance {instance} as full records.
Give me detailed backup entries for my instance in project {project}.
DELETE /1.0/instances/{name}/console Clear an LXD instance's console log · Clear the console log #
Ask an LLM
“How do I wipe the console log buffer of an instance?”
“Can I reset the saved console output before a reboot?”
Tell an agent destructive · confirm first
Clear the console log buffer of instance {instance}.
Empty the instance console log in project {project}.
GET /1.0/instances/{name}/console Read an LXD instance's console log · Get console log #
Ask an LLM
“How do I see the boot console output of an LXD instance?”
“Where can I read what an instance printed to its console?”
Tell an agent
Show the console log of LXD instance {instance}.
Fetch the instance console output in project {project}.
POST /1.0/instances/{name}/console Attach to an LXD instance console · Connect to console #
Ask an LLM
“Can I attach to the live console of a running instance?”
“Does LXD offer a graphical VGA console as well as a text one?”
Tell an agent
Connect to the {type} console of instance {instance}.
Open a console session sized {width} by {height}.
POST /1.0/instances/{name}/exec Run a command inside an LXD instance · Run a command #
Ask an LLM
“How do I run a command inside an LXD container as a specific user?”
“Can LXD record the output of a command I execute in an instance?”
Tell an agent
Run {command} in the LXD instance as user {user} from directory {cwd}.
Execute {command} in instance {instance} and record its output.
DELETE /1.0/instances/{name}/files Delete a file inside an instance · Delete a file #
Ask an LLM
“How do I remove a file from inside a container without a shell?”
“Can I delete a path in an instance's filesystem through the API?”
Tell an agent destructive · confirm first
Delete {path} from the filesystem of instance {instance}.
Remove the file {path} in project {project}'s instance.
GET /1.0/instances/{name}/files Read a file or folder inside an instance · Get a file #
Ask an LLM
“How do I read a file from inside an LXD instance?”
“Can I list the contents of a directory in a container?”
Tell an agent
Read the file at {path} inside instance {instance}.
List the directory {path} in the instance.
HEAD /1.0/instances/{name}/files Check a file's metadata inside an instance · Get metadata for a file #
Ask an LLM
“Can I check whether a file exists in an instance without downloading it?”
“How do I get the owner and mode of a path inside a container?”
Tell an agent
Check the metadata of {path} inside instance {instance}.
Tell me if {path} is a file or directory in the instance.
POST /1.0/instances/{name}/files Push a file into an instance · Create or replace a file #
Ask an LLM
“How do I upload a file into a running container?”
“Can I set the owner and permissions of a file I push to an instance?”
Tell an agent
Write a file to {path} inside instance {instance}.
Create {path} in the instance owned by uid {uid} with mode {mode}.
GET /1.0/instances/{name}/logs List an LXD instance's log files · Get the log files #
Ask an LLM
“Which log files does LXD keep for an instance?”
“How do I find the names of an instance's LXD log files?”
Tell an agent
List the LXD log file URLs for instance {instance}.
Show which LXD logs exist for the instance in project {project}.
GET /1.0/instances/{name}/logs/{filename} Read one LXD instance log file · Get the log file #
Ask an LLM
“How do I read the lxc.log of an instance?”
“Can I download a single LXD log file for a container?”
Tell an agent
Show me the contents of LXD log file {filename} for instance {instance}.
Download that LXD instance log from project {project}.
GET /1.0/instances/{name}/logs/exec-output List recorded command output files · Get the exec record-output files #
Ask an LLM
“Where are the recorded outputs of commands I ran in an instance?”
“Which exec record-output files exist for my instance?”
Tell an agent
List the recorded exec output files for instance {instance}.
Show exec record-output files in project {project}.
DELETE /1.0/instances/{name}/logs/exec-output/{filename} Delete a recorded command output file · Delete the exec record-output file #
Ask an LLM
“How do I clean up recorded exec output files?”
“Can I delete one saved command output from an instance?”
Tell an agent destructive · confirm first
Delete recorded exec output file {filename} from instance {instance}.
Remove the saved command output from project {project}.
GET /1.0/instances/{name}/logs/exec-output/{filename} Read one recorded command output file · Get the exec-output log file #
Ask an LLM
“How do I read the saved stdout of a command I executed earlier?”
“Can I fetch a specific exec-output file from an instance?”
Tell an agent
Show the contents of recorded exec output file {filename} from instance {instance}.
Fetch the saved command output from the instance in project {project}.
GET /1.0/instances/{name}/metadata Get an instance's image metadata · Get the instance image metadata #
Ask an LLM
“How do I see the image metadata an instance was built with?”
“What templates and properties are in my instance's metadata.yaml?”
Tell an agent
Show the image metadata of instance {instance}.
Get the instance image metadata in project {project}.
PATCH /1.0/instances/{name}/metadata Update part of an instance's image metadata · Partially update the image metadata #
Ask an LLM
“Can I change a single property in an instance's image metadata?”
“How do I set a new expiry date on instance metadata without resending it all?”
Tell an agent
Merge properties {properties} into the instance image metadata.
Patch the metadata expiry date of instance {instance} to {expiry_date}.
PUT /1.0/instances/{name}/metadata Replace an instance's image metadata · Update the image metadata #
Ask an LLM
“Can I overwrite all of an instance's image metadata?”
“How do I replace the templates list in instance metadata?”
Tell an agent
Replace the instance image metadata with properties {properties} and templates {templates}.
Overwrite the metadata architecture of instance {instance} with {architecture}.
DELETE /1.0/instances/{name}/metadata/templates Delete an instance template file · Delete a template file #
Ask an LLM
“How do I remove an image template file from an instance?”
“Can I drop a template I no longer need?”
Tell an agent destructive · confirm first
Delete the template file {path} from instance {instance}.
Remove template {path} in project {project}.
GET /1.0/instances/{name}/metadata/templates List or read instance template files · Get the template file names or a specific #
Ask an LLM
“Which image template files does my instance have?”
“How do I read the content of one template file on an instance?”
Tell an agent
List the image template file names of instance {instance}.
Show the template file {path}.
POST /1.0/instances/{name}/metadata/templates Upload an instance template file · Create or replace a template file #
Ask an LLM
“How do I add a new image template file to an instance?”
“Can I replace an existing template file on an instance?”
Tell an agent
Upload template file {path} to instance {instance}.
Replace the template {path} in project {project}.
POST /1.0/instances/{name}/rebuild Rebuild an instance from a new image · Rebuild an instance #
Ask an LLM
“Can I reinstall an instance from a different image while keeping its name?”
“How do I wipe an instance and rebuild it empty?”
Tell an agent destructive · confirm first
Rebuild instance {instance} from source {source}.
Rebuild the instance as empty in project {project}.
GET /1.0/instances/{name}/sftp Open an SFTP connection to an instance · Get the instance SFTP connection #
Ask an LLM
“Can I browse an instance's filesystem over SFTP?”
“How do I get SFTP access to a container's files?”
Tell an agent
Open an SFTP connection to the filesystem of instance {instance}.
Upgrade to SFTP so I can transfer files with the instance.
GET /1.0/instances/{name}/snapshots List an instance's snapshot URLs · Get the snapshots #
Ask an LLM
“Which snapshots exist for my instance?”
“How do I get links to every snapshot of a container?”
Tell an agent
List the snapshot URLs of instance {instance}.
Show links to instance snapshots in project {project}.
POST /1.0/instances/{name}/snapshots Take a snapshot of an instance · Create a snapshot #
Ask an LLM
“How do I snapshot an instance before an upgrade?”
“Can a snapshot include the running memory state?”
Tell an agent
Snapshot instance {instance} as {snapshot_name}, expiring at {expires_at}.
Take a stateful snapshot named {name}.
DELETE /1.0/instances/{name}/snapshots/{snapshot} Delete an instance snapshot · Delete a snapshot #
Ask an LLM
“How do I delete an old snapshot to free up space?”
“Can I remove a snapshot along with its disk volume snapshots?”
Tell an agent destructive · confirm first
Delete snapshot {snapshot} of instance {instance}.
Delete the snapshot and its disk volumes using mode {disk_volumes}.
GET /1.0/instances/{name}/snapshots/{snapshot} Get one instance snapshot · Get the snapshot #
Ask an LLM
“How do I see the details of one snapshot?”
“When was a particular instance snapshot created?”
Tell an agent
Show the details of snapshot {snapshot} of instance {instance}.
Get the snapshot record from project {project}.
PATCH /1.0/instances/{name}/snapshots/{snapshot} Change a snapshot's expiry date · Partially update snapshot #
Ask an LLM
“Can I extend when a snapshot expires?”
“How do I update just one field of a snapshot's config?”
Tell an agent
Push the expiry of snapshot {snapshot} on instance {instance} out to {expires_at}.
Partially update the snapshot in project {project}.
POST /1.0/instances/{name}/snapshots/{snapshot} Rename or migrate an instance snapshot · Rename or move/migrate a snapshot #
Ask an LLM
“How do I rename a snapshot?”
“Can I migrate a single snapshot to another server?”
Tell an agent
Rename snapshot {snapshot} of instance {instance} to {new_name}.
Migrate the snapshot to {target}.
PUT /1.0/instances/{name}/snapshots/{snapshot} Replace a snapshot's configuration · Update snapshot #
Ask an LLM
“Can I replace the full config of an existing snapshot?”
“How do I overwrite a snapshot's settings with a new expiry?”
Tell an agent
Replace the config of snapshot {snapshot} on instance {instance}, setting expiry to {expires_at}.
Overwrite the snapshot configuration in project {project}.
GET /1.0/instances/{name}/snapshots?recursion=1 List an instance's snapshots with details · Get the snapshots #
Ask an LLM
“Can I see all snapshots with their creation and expiry dates in one call?”
“What are the full details of every snapshot on my instance?”
Tell an agent
List all snapshots of instance {instance} as full records.
Give me detailed snapshot entries in project {project}.
GET /1.0/instances/{name}/state Get an instance's runtime state and usage · Get the runtime state #
Ask an LLM
“How do I see an instance's CPU, memory and network usage right now?”
“What IP addresses does my running container have?”
Tell an agent
Show the runtime state and resource usage of instance {instance}.
Get the live network info of the instance in project {project}.
PUT /1.0/instances/{name}/state Start, stop, restart or freeze an instance · Change the state #
Ask an LLM
“How do I restart a single LXD instance?”
“Can I force-stop an instance that won't shut down within a timeout?”
Tell an agent
Apply action {action} to instance {instance}.
Force-stop the instance after {timeout} seconds.
GET /1.0/instances/{name}/uefi-vars Read a VM's UEFI variables · Get the instance's UEFI variables #
Ask an LLM
“How do I view the UEFI variables of a virtual machine?”
“Can I check a VM's secure boot variables?”
Tell an agent
Show the UEFI variables of VM {instance}.
Get the VM's UEFI variables in project {project}.
PUT /1.0/instances/{name}/uefi-vars Set a VM's UEFI variables · Set the instance's UEFI variables #
Ask an LLM
“Can I change the UEFI variables of a virtual machine?”
“How do I write new firmware variables to a VM?”
Tell an agent
Set the UEFI variables of VM {instance} to {variables}.
Write UEFI variables {variables} for the VM in project {project}.
GET /1.0/instances/{name}?recursion=1 Get an instance with state, snapshots and backups · Get the instance #
Ask an LLM
“Can I fetch an instance together with its state, snapshots and backups at once?”
“How do I get the full struct of a single LXD instance?”
Tell an agent
Get the full record of instance {instance} including snapshots and backups.
Fetch the instance with selective recursion {recursion}.
GET /1.0/instances?recursion=2 List LXD instances with state and snapshots · Get the instances #
Ask an LLM
“How do I list all LXD instances with their state and snapshots in one call?”
“Can I list instances across all projects with a filter?”
Tell an agent
List every LXD instance with full state, filtered by {filter}.
List full LXD instance records across all projects.

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-instances-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-instances-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canonical Instances API
  version: '1.0'
  description: 'Operations tagged instances 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 (140 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canonical/refs/heads/main/openapi/canonical-instances-api-openapi.yml