Canonical Snaps API
The Snaps API from Canonical — 10 operation(s) for snaps.
Operations 10
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
The Snaps API from Canonical — 10 operation(s) for snaps.
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
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/canonical:canonical-snaps-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: 3.2.0
info:
title: Canonical Snap Store Device Snaps API
description: 'Public Snap Store Device API (api.snapcraft.io) used by snap clients to
discover snaps, fetch metadata, refresh installed snaps, search the
store, and download assertions.'
version: v2
contact:
name: Canonical / Snapcraft
url: https://api.snapcraft.io/docs/
servers:
- url: https://api.snapcraft.io
tags:
- name: Snaps
paths:
/v2/snaps/info/{name}:
parameters:
- $ref: '#/components/parameters/DeviceSeries'
- in: path
name: name
required: true
schema:
type: string
description: Snap name.
get:
summary: Get snap information
description: Returns information about a snap including channels, tracks, revisions, and assertions.
parameters:
- in: query
name: fields
schema:
type: string
description: Comma-separated list of fields to return.
- in: query
name: architecture
schema:
type: string
- in: header
name: Snap-Device-Architecture
schema:
type: string
responses:
'200':
description: Snap info document.
content:
application/json:
schema:
$ref: '#/components/schemas/SnapInfo'
'404':
description: Snap not found.
tags:
- Snaps
operationId: getV2SnapsInfoByName
x-operation-id-source: derived
/v2/snaps/find:
parameters:
- $ref: '#/components/parameters/DeviceSeries'
get:
summary: Find snaps
description: Search snaps by name, keyword, or filter.
parameters:
- in: query
name: q
schema:
type: string
description: Free-text search query.
- in: query
name: name
schema:
type: string
- in: query
name: category
schema:
type: string
- in: query
name: fields
schema:
type: string
- in: query
name: confinement
schema:
type: string
enum:
- strict
- classic
- devmode
responses:
'200':
description: Find results.
content:
application/json:
schema:
$ref: '#/components/schemas/FindResults'
tags:
- Snaps
operationId: getV2SnapsFind
x-operation-id-source: derived
/v2/snaps/refresh:
parameters:
- $ref: '#/components/parameters/DeviceSeries'
post:
summary: Refresh snaps
description: Determine which snaps need to be refreshed and return refresh actions.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RefreshRequest'
responses:
'200':
description: Refresh response.
content:
application/json:
schema:
$ref: '#/components/schemas/RefreshResponse'
tags:
- Snaps
operationId: postV2SnapsRefresh
x-operation-id-source: derived
/api/v1/snaps/search:
get:
summary: Snaps search (legacy v1)
parameters:
- in: query
name: q
schema:
type: string
- $ref: '#/components/parameters/DeviceSeries'
responses:
'200':
$ref: '#/components/responses/Generic'
tags:
- Snaps
operationId: getApiV1SnapsSearch
x-operation-id-source: derived
/api/v1/snaps/names:
get:
summary: List snap names (autocomplete; legacy v1)
parameters:
- $ref: '#/components/parameters/DeviceSeries'
responses:
'200':
$ref: '#/components/responses/Generic'
tags:
- Snaps
operationId: getApiV1SnapsNames
x-operation-id-source: derived
/api/v1/snaps/sections:
get:
summary: List store sections (legacy v1)
responses:
'200':
$ref: '#/components/responses/Generic'
tags:
- Snaps
operationId: getApiV1SnapsSections
x-operation-id-source: derived
/api/v1/snaps/auth/nonces:
post:
summary: Request a device nonce
responses:
'200':
$ref: '#/components/responses/Generic'
tags:
- Snaps
operationId: postApiV1SnapsAuthNonces
x-operation-id-source: derived
/api/v1/snaps/auth/sessions:
post:
summary: Create a device session
responses:
'200':
$ref: '#/components/responses/Generic'
tags:
- Snaps
operationId: postApiV1SnapsAuthSessions
x-operation-id-source: derived
/api/v1/snaps/auth/devices:
post:
summary: Register a device
responses:
'200':
$ref: '#/components/responses/Generic'
tags:
- Snaps
operationId: postApiV1SnapsAuthDevices
x-operation-id-source: derived
/api/v1/snaps/auth/request-id:
post:
summary: Get an authentication request id
responses:
'200':
$ref: '#/components/responses/Generic'
tags:
- Snaps
operationId: postApiV1SnapsAuthRequestId
x-operation-id-source: derived
components:
schemas:
FindResults:
type: object
properties:
results:
type: array
items:
type: object
properties:
name:
type: string
snap-id:
type: string
snap:
type: object
additionalProperties: true
additionalProperties: true
RefreshResponse:
type: object
properties:
results:
type: array
items:
type: object
additionalProperties: true
additionalProperties: true
Generic:
type: object
additionalProperties: true
RefreshRequest:
type: object
properties:
context:
type: array
items:
type: object
additionalProperties: true
actions:
type: array
items:
type: object
properties:
action:
type: string
enum:
- refresh
- install
- download
instance-key:
type: string
snap-id:
type: string
name:
type: string
channel:
type: string
revision:
type: integer
additionalProperties: true
additionalProperties: true
SnapInfo:
type: object
properties:
name:
type: string
snap-id:
type: string
channel-map:
type: array
items:
type: object
additionalProperties: true
snap:
type: object
additionalProperties: true
additionalProperties: true
responses:
Generic:
description: Generic JSON response.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic'
parameters:
DeviceSeries:
in: header
name: Snap-Device-Series
required: true
schema:
type: string
default: '16'
description: Snap device series; required by the Device API.
x-generated-from: documentation
x-provenance-note: Hand-authored by API Evangelist from the publicly documented Snap Store Device API reference at https://api.snapcraft.io/docs/ — NOT harvested from a Canonical-published machine-readable contract, because Canonical publishes none for api.snapcraft.io. Marked 2026-09-05 so this file is never mistaken for a provider artifact. The specs Canonical does publish are the other thirteen documents in openapi/, each harvested verbatim.