Canonical website screenshot

Canonical

Canonical is the company behind Ubuntu, the world's most popular open source operating system for cloud, servers, desktops, IoT, and Kubernetes. Canonical publishes a broad set of developer APIs spanning the Ubuntu and Canonical ecosystem — the Snap Store and Snapcraft, the Charmhub charm marketplace, LXD system containers, MAAS bare-metal provisioning, Juju orchestration, Launchpad project hosting, Ubuntu Pro subscription services, and Landscape systems management — most of which are RESTful, open, and well documented.

9 APIs 0 Features
CloudLinuxOpen SourceUbuntuContainersBare MetalCharmsIdentity

APIs

Snap Store API

The public Snap Store Device API (api.snapcraft.io) serves information about snaps, revisions, channels, tracks, assertions, and refresh state to snap clients. The Snapcraft Das...

Charmhub API

Developer-facing REST API for Charmhub, Canonical's marketplace for charms (Kubernetes and machine operators). Supports charm discovery, publishing, release channels, and token ...

snapd REST API

The local REST API exposed by snapd over a Unix domain socket on every Ubuntu system running snaps. Enables local clients and tools to query snap state, install / refresh / remo...

LXD REST API

The REST API exposed by LXD, Canonical's system-container and VM manager. All client–daemon communication happens over HTTPS (remote) or a Unix socket (local). Provides endpoint...

MAAS API

The RESTful API for MAAS (Metal as a Service). Everything the MAAS UI can do — commissioning, allocation, deployment, DHCP/DNS, tags, zones, pools, users, machines — is availabl...

Juju Client / Controller API

Juju is Canonical's open-source orchestration engine for deploying, integrating, scaling, and managing applications on clouds, MAAS, LXD, and Kubernetes via charms. Juju clients...

Launchpad Web Services API

Launchpad exposes a RESTful Web Services API over its project hosting, bug tracking, code, builds, translations, and distribution data. The API is authenticated with OAuth; anon...

Ubuntu Pro Client API

The Ubuntu Pro client exposes a local API/CLI for managing Ubuntu Pro subscription services on a host — enabling, disabling, and inspecting Extended Security Maintenance (ESM), ...

Landscape API

Canonical Landscape is the systems-management platform for Ubuntu at scale. Its API lets operators manage and automate inventories, upgrades, patch compliance, reboots, scripts,...

Collections

Pricing Plans

Canonical Plans Pricing

3 plans

PLANS

Rate Limits

Canonical Rate Limits

5 limits

RATE LIMITS

FinOps

Resources

🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
UbuntuWebsite
UbuntuWebsite
🔗
Documentation
Documentation
👥
GitHubOrg
GitHubOrg
🔗
SnapStore
SnapStore
🔗
Charmhub
Charmhub
🔗
Launchpad
Launchpad
🔗
DiscourseForum
DiscourseForum
📜
DataPrivacy
DataPrivacy
📜
TermsOfService
TermsOfService

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Canonical Snap Store Device API
  version: v2
items:
- info:
    name: Get snap information
    type: http
  http:
    method: GET
    url: https://api.snapcraft.io/v2/snaps/info/:name
    headers:
    - name: Snap-Device-Series
      value: ''
    - name: Snap-Device-Architecture
      value: ''
    params:
    - name: name
      value: ''
      type: path
      description: Snap name.
    - name: fields
      value: ''
      type: query
      description: Comma-separated list of fields to return.
    - name: architecture
      value: ''
      type: query
  docs: Returns information about a snap including channels, tracks, revisions, and assertions.
- info:
    name: Find snaps
    type: http
  http:
    method: GET
    url: https://api.snapcraft.io/v2/snaps/find
    headers:
    - name: Snap-Device-Series
      value: ''
    params:
    - name: q
      value: ''
      type: query
      description: Free-text search query.
    - name: name
      value: ''
      type: query
    - name: category
      value: ''
      type: query
    - name: fields
      value: ''
      type: query
    - name: confinement
      value: ''
      type: query
  docs: Search snaps by name, keyword, or filter.
- info:
    name: Refresh snaps
    type: http
  http:
    method: POST
    url: https://api.snapcraft.io/v2/snaps/refresh
    headers:
    - name: Snap-Device-Series
      value: ''
    body:
      type: json
      data: '{}'
  docs: 'Determine which snaps need to be refreshed and return refresh actions.

    '
- info:
    name: Fetch an assertion
    type: http
  http:
    method: GET
    url: https://api.snapcraft.io/v2/assertions/:type/:primaryKey
    params:
    - name: type
      value: ''
      type: path
    - name: primaryKey
      value: ''
      type: path
  docs: Retrieve a signed assertion document by type and primary key.
- info:
    name: Search (legacy v1)
    type: http
  http:
    method: GET
    url: https://api.snapcraft.io/api/v1/search
    headers:
    - name: Snap-Device-Series
      value: ''
    params:
    - name: q
      value: ''
      type: query
    - name: section
      value: ''
      type: query
    - name: fields
      value: ''
      type: query
  docs: Search (legacy v1)
- info:
    name: Snaps search (legacy v1)
    type: http
  http:
    method: GET
    url: https://api.snapcraft.io/api/v1/snaps/search
    headers:
    - name: Snap-Device-Series
      value: ''
    params:
    - name: q
      value: ''
      type: query
  docs: Snaps search (legacy v1)
- info:
    name: List snap names (autocomplete; legacy v1)
    type: http
  http:
    method: GET
    url: https://api.snapcraft.io/api/v1/snaps/names
    headers:
    - name: Snap-Device-Series
      value: ''
  docs: List snap names (autocomplete; legacy v1)
- info:
    name: List store sections (legacy v1)
    type: http
  http:
    method: GET
    url: https://api.snapcraft.io/api/v1/snaps/sections
  docs: List store sections (legacy v1)
- info:
    name: Request a device nonce
    type: http
  http:
    method: POST
    url: https://api.snapcraft.io/api/v1/snaps/auth/nonces
  docs: Request a device nonce
- info:
    name: Create a device session
    type: http
  http:
    method: POST
    url: https://api.snapcraft.io/api/v1/snaps/auth/sessions
  docs: Create a device session
- info:
    name: Register a device
    type: http
  http:
    method: POST
    url: https://api.snapcraft.io/api/v1/snaps/auth/devices
  docs: Register a device
- info:
    name: Get an authentication request id
    type: http
  http:
    method: POST
    url: https://api.snapcraft.io/api/v1/snaps/auth/request-id
  docs: Get an authentication request id
bundled: true