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.
openapi: 3.2.0
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.
info:
title: Canonical Snap Store Device Assertions Search 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. Endpoints come from the publicly
documented snap store reference (https://api.snapcraft.io/docs/).
Most endpoints are open / unauthenticated. Authenticated endpoints under
/api/v1/snaps/auth/ use Ubuntu One macaroons and require the
Snap-Device-Series header.
This specification is a best-effort, hand-authored representation. The
Charmhub API (api.charmhub.io), Snapcraft Dashboard API, snapd local
REST API, LXD REST API, MAAS API, Juju, Launchpad, Ubuntu Pro Client,
and Landscape APIs are not modeled here — see apis.yml for those
surfaces and their respective Canonical documentation.
'
version: v2
contact:
name: Canonical / Snapcraft
url: https://api.snapcraft.io/docs/
servers:
- url: https://api.snapcraft.io
tags:
- name: Search
paths:
/api/v1/search:
get:
summary: Search (legacy v1)
parameters:
- in: query
name: q
schema:
type: string
- in: query
name: section
schema:
type: string
- in: query
name: fields
schema:
type: string
- $ref: '#/components/parameters/DeviceSeries'
responses:
'200':
$ref: '#/components/responses/Generic'
tags:
- Search
components:
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.
schemas:
Generic:
type: object
additionalProperties: true