Canonical Snaps API
The Snaps API from Canonical — 10 operation(s) for snaps.
The Snaps API from Canonical — 10 operation(s) for snaps.
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-snaps-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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:
Generic:
type: object
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
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
RefreshResponse:
type: object
properties:
results:
type: array
items:
type: object
additionalProperties: true
additionalProperties: true
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
parameters:
DeviceSeries:
in: header
name: Snap-Device-Series
required: true
schema:
type: string
default: '16'
description: Snap device series; required by the Device API.
responses:
Generic:
description: Generic JSON response.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic'
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.