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

GET /v2/snaps/info/{name} Get snap details · Get snap information #
Ask an LLM
“Which channels and revisions are published for a snap?”
“Can I see a snap's tracks for one architecture?”
Tell an agent
Get info for snap {name} on series {series}.
Show channels of snap {name} for architecture {architecture} on series {series}.
GET /v2/snaps/find Find snaps · Find snaps #
Ask an LLM
“How do I search the Snap Store by keyword?”
“Can I find only strictly confined snaps in a category?”
Tell an agent
Find snaps matching {q} for series {series}.
Find snaps in category {category} with confinement {confinement} on series {series}.
POST /v2/snaps/refresh Check which snaps need refreshing · Refresh snaps #
Ask an LLM
“Which of my installed snaps have newer revisions available?”
“What refresh actions does the store return for my device's snaps?”
Tell an agent
Get refresh actions for installed snaps {context} on series {series}.
Run refresh actions {actions} for series {series}.
GET /api/v1/snaps/search Search snaps (legacy v1) · Snaps search (legacy v1) #
Ask an LLM
“Does the older v1 snaps search endpoint still work?”
“Can I query snaps through the legacy v1 snaps search path?”
Tell an agent
Search snaps with the legacy v1 snaps endpoint for {q} on series {series}.
Run a v1 snaps search for {q} with device series {series}.
GET /api/v1/snaps/names List snap names for autocomplete · List snap names (autocomplete; legacy v1) #
Ask an LLM
“Can I get every snap name to drive autocomplete?”
“Where do I get the full list of snap names?”
Tell an agent
List all snap names for series {series}.
Fetch snap names for autocomplete on device series {series}.
GET /api/v1/snaps/sections List store sections · List store sections (legacy v1) #
Ask an LLM
“What sections or categories does the store group snaps into?”
“Which store sections can I browse?”
Tell an agent
List the store sections.
Show all snap store sections.
POST /api/v1/snaps/auth/nonces Request a device nonce · Request a device nonce #
Ask an LLM
“How does a device get a nonce before authenticating to the store?”
“What is the first step of device authentication?”
Tell an agent
Request a device authentication nonce.
Get a fresh nonce for this device.
POST /api/v1/snaps/auth/sessions Create a device session · Create a device session #
Ask an LLM
“How does a device open an authenticated session with the store?”
“Can a registered device obtain a session macaroon?”
Tell an agent
Create a device session with the store.
Open a new authenticated device session.
POST /api/v1/snaps/auth/devices Register a device · Register a device #
Ask an LLM
“How do I register a device with the store to get its serial?”
“Where does a new device submit its serial request?”
Tell an agent
Register this device with the store.
Submit a device registration request.
POST /api/v1/snaps/auth/request-id Get an authentication request ID · Get an authentication request id #
Ask an LLM
“How does a device get a request ID for registration?”
“Do I need a request ID before registering a device?”
Tell an agent
Get an authentication request ID.
Request a new request-id for device registration.

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-snaps-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-snaps-api-openapi.yml Raw ↑
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.