Canonical · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Canonical Assertions API
9 actions
9 updates
phrasing
extends
openapi/canonical-assertions-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Canonical's API. It is a proposal applied on top of the contract, not a document Canonical publishes.
What the actions change
x-apievangelist-phrasing
Targets 9
$.info
$.paths['/v2/assertions/{type}/{primaryKey}'].get
$.paths['/v2/assertions'].get
$.paths['/v2/assertions'].post
$.paths['/v2/assertions/{assertion-type}'].get
$.paths['/v2/model'].get
$.paths['/v2/model'].post
$.paths['/v2/model/serial'].get
$.paths['/v2/model/serial'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Canonical Assertions API
version: 1.0.0
extends: openapi/canonical-assertions-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 8
- target: $.paths['/v2/assertions/{type}/{primaryKey}'].get
update:
x-apievangelist-phrasing:
intent: Fetch one assertion by its primary key
effect: read
questions:
- Can I fetch a single signed assertion if I know its type and primary key?
- Where do I get one specific account-key assertion by its key?
instructions:
- text: Fetch the {type} assertion with primary key {primary_key}.
slots:
type: path.type
primary_key: path.primaryKey
- text: Get the single signed assertion of type {type} keyed {primary_key}.
slots:
type: path.type
primary_key: path.primaryKey
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/assertions'].get
update:
x-apievangelist-phrasing:
intent: List known assertion types
effect: read
questions:
- Which assertion types does snapd know about?
- What kinds of signed assertions can the system database hold?
instructions:
- text: List every assertion type the system supports.
- text: Show me the names of all known assertion types.
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/assertions'].post
update:
x-apievangelist-phrasing:
intent: Add or replace a signed assertion
effect: write
questions:
- How do I add a signed assertion to the system's assertion database?
- What signature does an assertion need before snapd will accept it?
instructions:
- text: Add this signed assertion to the system database.
- text: Replace the existing assertion with this newer signed version.
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/assertions/{assertion-type}'].get
update:
x-apievangelist-phrasing:
intent: Get assertions of a given type
effect: read
questions:
- How do I fetch all assertions of one type, such as account-key?
- Can I pull assertions from the store and get them back as JSON?
instructions:
- text: Get all assertions of type {assertion_type}.
slots:
assertion_type: path.assertion-type
- text: Fetch {assertion_type} assertions from the store with remote {remote} as JSON {json}.
slots:
assertion_type: path.assertion-type
remote: query.remote
json: query.json
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/model'].get
update:
x-apievangelist-phrasing:
intent: Get the device's model assertion
effect: read
questions:
- Which model assertion describes this snap-based device?
- What brand and model is this Ubuntu Core device running as?
instructions:
- text: Show the active model assertion.
- text: Tell me the model this device is configured as.
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/model'].post
update:
x-apievangelist-phrasing:
intent: Remodel the device with a new model assertion
effect: write
questions:
- How do I remodel a device by supplying a new model assertion?
- Can a remodel be done offline, with the snaps provided alongside?
instructions:
- text: Replace the model assertion with {assertion}.
slots:
assertion: requestBody.assertion
- text: Remodel this device using new model assertion {assertion}.
slots:
assertion: requestBody.assertion
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/model/serial'].get
update:
x-apievangelist-phrasing:
intent: Get the device's serial assertion
effect: read
questions:
- What serial assertion binds this device's identity to its key?
- Has this device been registered and issued a serial by the store?
instructions:
- text: Show the current serial assertion.
- text: Get this device's serial identity assertion.
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/model/serial'].post
update:
x-apievangelist-phrasing:
intent: Forget the device's serial registration
effect: destructive
questions:
- How do I make a device forget its serial and register again?
- Can I stop re-registration from happening until the next reboot?
instructions:
- text: Run serial action {action} to unregister this device.
slots:
action: requestBody.action
- text: 'Forget the serial with action {action} and hold registration until reboot: {hold}.'
slots:
action: requestBody.action
hold: requestBody.no-registration-until-reboot
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay 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 openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.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.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/canonical-assertions-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.