Canonical Applications API

The applications API from Canonical — 20 operation(s) for applications.

Operations 45

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/applications List Android applications in AMS · Get a list of applications #
Ask an LLM
“Which Android applications are stored in my Anbox Management Service?”
“Can I filter AMS applications by instance type or publication status?”
Tell an agent
List the AMS applications named {name}.
Show AMS applications with status {status}, {limit} at a time.
POST /1.0/applications Create an application from a package · Create a new application #
Ask an LLM
“How do I upload a new Android app package with a manifest.yaml to AMS?”
“Can a new Anbox application be created as a virtual machine instead of a container?”
Tell an agent
Create a new AMS application from the package {upfile}.
Upload {upfile} as a new Anbox application that runs as a VM ({vm}).
DELETE /1.0/applications Delete several applications at once · Delete multiple applications #
Ask an LLM
“Can I remove a batch of AMS applications in one request?”
“What happens if one application fails to delete during a bulk delete in Anbox?”
Tell an agent destructive · confirm first
Bulk delete the AMS applications {ids}.
Force-delete applications {ids} from AMS in a single call even if they are in use ({force}).
GET /1.0/applications/{id} Get details of one AMS application · Get information about an application #
Ask an LLM
“Where can I see the details stored for a single Anbox application?”
“What status and versions does one of my AMS applications have?”
Tell an agent
Show the AMS application {id}.
Get the current details of Anbox application {id}.
DELETE /1.0/applications/{id} Delete an application and all its versions · Delete an application #
Ask an LLM
“How do I remove a single Anbox application along with every version of it?”
“Does deleting an AMS application also delete its versions?”
Tell an agent destructive · confirm first
Delete AMS application {id} and all of its versions.
Remove the Anbox application {id} entirely.
PATCH /1.0/applications/{id} Replace an application's package · Update an application with a new package #
Ask an LLM
“Can I push a new bzip2 or zip package to an existing AMS application?”
“How do I ship an updated APK bundle for an app that already exists in Anbox?”
Tell an agent
Upload the new package {upfile} to AMS application {id}.
Replace the package of Anbox application {id} with {upfile}.
PATCH /1.0/applications/{id}/ Update an application's metadata only · Update an applications's metadata #
Ask an LLM
“Which AMS application metadata changes create a new application version?”
“Can I change an Anbox app's tags or resources without uploading a new package?”
Tell an agent
Set the tags of AMS application {id} to {tags} without changing its package.
Change the instance type of Anbox application {id} to {instance_type}.
GET /1.0/applications/{id}/manifest Download an application's latest manifest · Get an application's manifest #
Ask an LLM
“Can I download the latest manifest.yaml of an AMS application?”
“Where do I get the current manifest file an Anbox app was built from?”
Tell an agent
Download the latest manifest of AMS application {id}.
Fetch the current manifest.yaml for Anbox application {id}.
GET /1.0/applications/{id}/{version} Get one version of an application · Get information about an application's specific version #
Ask an LLM
“What information does AMS keep about a specific version of an application?”
“Can I look up an older version of an Anbox application?”
Tell an agent
Show version {version} of AMS application {id}.
Get the details of Anbox application {id} at version {version}.
DELETE /1.0/applications/{id}/{version} Delete one version of an application · Delete a version of an application #
Ask an LLM
“How do I remove only one version of an AMS application and keep the rest?”
“Can I force-delete an Anbox application version that is still in use?”
Tell an agent destructive · confirm first
Delete version {version} of AMS application {id}.
Force-remove version {version} of Anbox application {id} ({force}).
PATCH /1.0/applications/{id}/{version} Publish or unpublish an application version · Update a specific version of an application #
Ask an LLM
“Can I mark a specific version of an AMS application as published?”
“Which version of an Anbox app is available to launch, and can I change that?”
Tell an agent
Set the published flag of version {version} of AMS application {id} to {published}.
Unpublish version {version} of Anbox application {id}.
GET /1.0/applications/{id}/{version}/manifest Download the manifest of an application version · Get the manifest for a specific version of an application #
Ask an LLM
“Can I get the manifest file used by an older version of an AMS application?”
“Where do I download the manifest.yaml for one specific Anbox app version?”
Tell an agent
Download the manifest for version {version} of AMS application {id}.
Fetch manifest.yaml of Anbox application {id}, version {version}.
GET /1.0/applications?recursion=1 List applications with full details · Get a list of applications with expanded object definitions #
Ask an LLM
“Can I list every AMS application with its full definition instead of just URLs?”
“Which Anbox call returns the expanded application objects in one response?”
Tell an agent
List all AMS applications with their full definitions expanded.
Show the expanded records of Anbox applications with status {status}.
GET /api/v1/applications/foxglove/dashboards/ List Foxglove dashboards · List Foxglove dashboards #
Ask an LLM
“Which Foxglove dashboards are configured in my Canonical Observability stack?”
“What Foxglove dashboards are registered and what attributes do they have?”
Tell an agent
List all Foxglove dashboards.
Show every registered Foxglove dashboard with its attributes.
POST /api/v1/applications/foxglove/dashboards/ Add a Foxglove dashboard · Add a Foxglove dashboard #
Ask an LLM
“How do I register a new Foxglove dashboard layout?”
“Can I upload Foxglove dashboard JSON under my own ID?”
Tell an agent
Add a Foxglove dashboard with ID {uid} using the layout {dashboard}.
Register Foxglove dashboard {uid}.
GET /api/v1/applications/foxglove/dashboards/{uid}/ Download a Foxglove dashboard JSON file · Download Foxglove dashboard JSON file #
Ask an LLM
“Can I download the JSON of one Foxglove dashboard as a file?”
“Where do I export a Foxglove dashboard layout I already added?”
Tell an agent
Download the Foxglove dashboard {uid} as JSON.
Export Foxglove dashboard {uid}.
PUT /api/v1/applications/foxglove/dashboards/{uid}/ Replace a Foxglove dashboard · Update a Foxglove dashboard completely #
Ask an LLM
“How do I overwrite every field of an existing Foxglove dashboard?”
“Can I swap in a whole new layout for a Foxglove dashboard I already have?”
Tell an agent
Replace Foxglove dashboard {uid} entirely with {dashboard}.
Overwrite all fields of Foxglove dashboard {uid}, keeping ID {new_uid}.
PATCH /api/v1/applications/foxglove/dashboards/{uid}/ Patch fields of a Foxglove dashboard · Update a Foxglove dashboard partially #
Ask an LLM
“Can I change just the layout JSON of a Foxglove dashboard without resending everything?”
“Is a partial update possible on a Foxglove dashboard?”
Tell an agent
Patch only the layout of Foxglove dashboard {uid} to {dashboard}.
Change the ID of Foxglove dashboard {uid} to {new_uid}, leaving the layout alone.
DELETE /api/v1/applications/foxglove/dashboards/{uid}/ Delete a Foxglove dashboard · Delete a Foxglove dashboard #
Ask an LLM
“How do I remove a Foxglove dashboard I no longer need?”
“Can a Foxglove dashboard be deleted by its ID?”
Tell an agent destructive · confirm first
Delete Foxglove dashboard {uid}.
Remove the Foxglove dashboard with ID {uid}.
GET /api/v1/applications/grafana/dashboards/ List Grafana dashboards · List Grafana dashboards #
Ask an LLM
“Which Grafana dashboards are configured for my devices?”
“What Grafana dashboards are registered and what attributes do they have?”
Tell an agent
List all Grafana dashboards.
Show every registered Grafana dashboard with its attributes.
POST /api/v1/applications/grafana/dashboards/ Add a Grafana dashboard · Add a Grafana dashboard #
Ask an LLM
“How do I register a new Grafana dashboard definition?”
“Can I upload Grafana dashboard JSON under my own ID?”
Tell an agent
Add a Grafana dashboard with ID {uid} using the definition {dashboard}.
Register Grafana dashboard {uid}.
GET /api/v1/applications/grafana/dashboards/{uid}/ Download a Grafana dashboard JSON file · Download Grafana dashboard JSON file #
Ask an LLM
“Can I download the JSON of one Grafana dashboard as a file?”
“Where do I export a Grafana dashboard definition I already added?”
Tell an agent
Download the Grafana dashboard {uid} as JSON.
Export Grafana dashboard {uid}.
PUT /api/v1/applications/grafana/dashboards/{uid}/ Replace a Grafana dashboard · Update a Grafana dashboard completely #
Ask an LLM
“How do I overwrite every field of an existing Grafana dashboard?”
“Can I swap in a whole new definition for a Grafana dashboard I already have?”
Tell an agent
Replace Grafana dashboard {uid} entirely with {dashboard}.
Overwrite all fields of Grafana dashboard {uid}, keeping ID {new_uid}.
PATCH /api/v1/applications/grafana/dashboards/{uid}/ Patch fields of a Grafana dashboard · Update a Grafana dashboard partially #
Ask an LLM
“Can I change just the JSON definition of a Grafana dashboard without resending everything?”
“Is a partial update possible on a Grafana dashboard?”
Tell an agent
Patch only the definition of Grafana dashboard {uid} to {dashboard}.
Change the ID of Grafana dashboard {uid} to {new_uid}, leaving the definition alone.
DELETE /api/v1/applications/grafana/dashboards/{uid}/ Delete a Grafana dashboard · Delete a Grafana dashboard #
Ask an LLM
“How do I remove a Grafana dashboard I no longer need?”
“Can a Grafana dashboard be deleted by its ID?”
Tell an agent destructive · confirm first
Delete Grafana dashboard {uid}.
Remove the Grafana dashboard with ID {uid}.
GET /api/v1/applications/loki/alert_rules/ List Loki alert rule files · List Loki alert rule file #
Ask an LLM
“Which Loki alert rule files are configured, including templated ones rendered per device?”
“What log alerting rules are set up for my devices in Loki?”
Tell an agent
List all Loki alert rule files.
Show every Loki alert rule, with templated rules rendered for their devices.
POST /api/v1/applications/loki/alert_rules/ Add a Loki alert rule file · Add a Loki alert rule file #
Ask an LLM
“How do I add a new Loki alert rule file?”
“Can a Loki alert rule file be marked as a template for devices to render?”
Tell an agent
Add Loki alert rule file {uid} with rules {rules}.
Create templated Loki alert rule file {uid} with rules {rules} (template {template}).
GET /api/v1/applications/loki/alert_rules/{uid}/ Download one Loki alert rule file · Download Loki alert rule file #
Ask an LLM
“Can I download a single Loki alert rule file as it was written, without template rendering?”
“Where do I get the raw rules of one Loki alert rule file?”
Tell an agent
Download Loki alert rule file {uid}.
Fetch the unrendered rules in Loki rule file {uid}.
PUT /api/v1/applications/loki/alert_rules/{uid}/ Replace a Loki alert rule file · Update a Loki alert rule file completely #
Ask an LLM
“How do I overwrite all the rules in an existing Loki alert rule file?”
“Can I replace a Loki rule file wholesale, template flag included?”
Tell an agent
Replace Loki alert rule file {uid} completely with rules {rules}.
Overwrite Loki rule file {uid} as ID {new_uid} with rules {rules} and template {template}.
PATCH /api/v1/applications/loki/alert_rules/{uid}/ Patch fields of a Loki alert rule file · Update a Loki alert rule file partially #
Ask an LLM
“Can I change only the rules of a Loki alert rule file and leave the rest alone?”
“Is it possible to toggle the template flag on an existing Loki rule file?”
Tell an agent
Patch only the rules of Loki alert rule file {uid} to {rules}.
Set the template flag of Loki rule file {uid} to {template}.
DELETE /api/v1/applications/loki/alert_rules/{uid}/ Delete a Loki alert rule file · Delete a Loki alert rule file #
Ask an LLM
“How do I remove a Loki alert rule file?”
“Can I stop a set of Loki log alerts by deleting their rule file?”
Tell an agent destructive · confirm first
Delete Loki alert rule file {uid}.
Remove the Loki rule file with ID {uid}.
GET /api/v1/applications/prometheus/alert_rules/ List Prometheus alert rule files · List Prometheus alert rule file #
Ask an LLM
“Can I see all Prometheus alerting rules, with device templates already filled in?”
“What metric alerting rules are set up for my devices in Prometheus?”
Tell an agent
List all Prometheus alert rule files.
Show every Prometheus alert rule, with templated rules rendered for their devices.
POST /api/v1/applications/prometheus/alert_rules/ Add a Prometheus alert rule file · Add a Prometheus alert rule file #
Ask an LLM
“How do I add a new Prometheus alert rule file?”
“Is it possible to upload Prometheus rules that each device renders from a template?”
Tell an agent
Add Prometheus alert rule file {uid} with rules {rules}.
Create templated Prometheus alert rule file {uid} with rules {rules} (template {template}).
GET /api/v1/applications/prometheus/alert_rules/{uid}/ Download one Prometheus alert rule file · Download Prometheus alert rule file #
Ask an LLM
“How can I export one Prometheus rules file exactly as uploaded?”
“Which endpoint returns a single Prometheus rule file with templates left unrendered?”
Tell an agent
Download Prometheus alert rule file {uid}.
Fetch the unrendered rules in Prometheus rule file {uid}.
PUT /api/v1/applications/prometheus/alert_rules/{uid}/ Replace a Prometheus alert rule file · Update a Prometheus alert rule file completely #
Ask an LLM
“Can I fully replace a Prometheus rules file I uploaded earlier?”
“Can I replace a Prometheus rule file wholesale, template flag included?”
Tell an agent
Replace Prometheus alert rule file {uid} completely with rules {rules}.
Overwrite Prometheus rule file {uid} as ID {new_uid} with rules {rules} and template {template}.
PATCH /api/v1/applications/prometheus/alert_rules/{uid}/ Patch fields of a Prometheus alert rule file · Update a Prometheus alert rule file partially #
Ask an LLM
“Is a partial edit supported for Prometheus alerting rules, sending just the changed field?”
“Can I switch an existing Prometheus rules file between templated and plain?”
Tell an agent
Patch only the rules of Prometheus alert rule file {uid} to {rules}.
Set the template flag of Prometheus rule file {uid} to {template}.
DELETE /api/v1/applications/prometheus/alert_rules/{uid}/ Delete a Prometheus alert rule file · Delete a Prometheus alert rule file #
Ask an LLM
“How do I remove a Prometheus alert rule file?”
“Can I stop a set of Prometheus metric alerts by deleting their rule file?”
Tell an agent destructive · confirm first
Delete Prometheus alert rule file {uid}.
Remove the Prometheus rule file with ID {uid}.
GET /v1/applications List API client applications · Get Applications #
Ask an LLM
“Which client applications have API keys for the test observer service?”
“What API-key applications are registered and what permissions do they hold?”
Tell an agent
List all registered API client applications.
Show every application that has an API key, with its permissions.
POST /v1/applications Register an API client application · Create Application #
Ask an LLM
“How do I create a new application that gets its own API key?”
“Can I choose which permissions a new API client application receives?”
Tell an agent
Create an API client application named {name} with permissions {permissions}.
Register the application {name} and issue it an API key with {permissions}.
POST /v1/applications/me/rotate Rotate the calling application's API key · Rotate Own Api Key #
Ask an LLM
“Can my application rotate its own API key without an admin?”
“How do I get a fresh API key for the application I'm authenticated as?”
Tell an agent
Rotate the API key of the application I'm signed in as.
Issue a new API key for my own application and invalidate the old one.
POST /v1/applications/{application_id}/rotate Rotate another application's API key · Rotate Api Key #
Ask an LLM
“Can an admin rotate the API key of a specific client application?”
“What do I do if a particular application's API key has leaked?”
Tell an agent
Rotate the API key of application {application_id}.
Replace the leaked API key for client application {application_id}.
GET /v1/applications/me Show the currently authenticated application · Get Authenticated Application #
Ask an LLM
“Which application does my current API key belong to?”
“Can I check the permissions of the application I'm calling as?”
Tell an agent
Show the application tied to my current API key.
Tell me which client application I'm authenticated as and its permissions.
GET /v1/applications/{application_id} Get an API client application · Get Application #
Ask an LLM
“Where can I see the permissions of one specific client application?”
“Can I look up a registered API application by its ID?”
Tell an agent
Show client application {application_id}.
Get the permissions granted to application {application_id}.
DELETE /v1/applications/{application_id} Delete an API client application · Delete Application #
Ask an LLM
“How do I revoke access for a client application completely?”
“Does deleting a registered application remove its API key too?”
Tell an agent destructive · confirm first
Delete client application {application_id}.
Remove API application {application_id} so its key stops working.
PATCH /v1/applications/{application_id} Change an application's permissions · Update Application #
Ask an LLM
“Can I grant or remove permissions on an existing API client application?”
“How do I narrow what a registered application's API key is allowed to do?”
Tell an agent
Set the permissions of application {application_id} to {permissions}.
Update client application {application_id} with permissions {permissions}.

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-applications-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-applications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canonical Applications API
  version: '1.0'
  description: 'Operations tagged applications across 3 of this provider''s published API definitions: canonical-anbox-cloud-ams-api-openapi.json, canonical-cos-registration-server-api-openapi.yml, canonical-test-observer-api-openapi.json. Each path carries the servers of the definition it was published in.'
tags:


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