Canonical · Schema
Snap
Detailed information about a single snap.
CanonicalCloudLinuxOpen SourceUbuntuContainersBare MetalCharmsIdentity
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The unique identifier for the snap. |
| name | string | The name of the snap. |
| base | string | The base snap this snap is built on. |
| channel | string | The default channel for this snap. |
| common-ids | array | |
| confinement | string | |
| contact | string | The primary contact URL or email for the developer. |
| description | string | A detailed description of the snap. |
| developer | string | The username of the snap developer. |
| devmode | boolean | If set to true, the snap needs to be installed with devmode confinement and doesn't, yet, work with strict confinement due to sandbox limitations or developer unfamiliarity. |
| download-size | integer | The size of the snap package in bytes. |
| icon | string | A URL to the snap's icon image. |
| license | string | |
| private | boolean | Whether the snap is private. |
| revision | string | The latest revision number of the snap in this channel. |
| status | string | |
| store-url | string | The URL to the snap's page in the Snap Store. |
| summary | string | A short, one-line summary of the snap. |
| title | string | |
| type | string | The type of the snap. 'os' is deprecated, and is left for compatibility with the 'core' and 'ubuntu-core' snaps. |
| version | string | The version string of the latest revision. |
| website | string | The official website for the snap or application. |
| categories | array | |
| links | object | |
| media | array | |
| publisher | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/canonical/main/json-schema/canonical-snap-schema.json",
"title": "Snap",
"description": "Detailed information about a single snap.",
"x-generated": "2026-10-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/canonical-authenticationrequired-api-openapi.yml#/components/schemas/Snap",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier for the snap."
},
"name": {
"type": "string",
"description": "The name of the snap."
},
"base": {
"type": "string",
"description": "The base snap this snap is built on."
},
"channel": {
"type": "string",
"description": "The default channel for this snap."
},
"common-ids": {
"type": "array",
"items": {
"type": "string"
}
},
"confinement": {
"type": "string",
"enum": [
"classic",
"devmode",
"strict"
]
},
"contact": {
"type": "string",
"description": "The primary contact URL or email for the developer."
},
"description": {
"type": "string",
"description": "A detailed description of the snap."
},
"developer": {
"type": "string",
"description": "The username of the snap developer."
},
"devmode": {
"type": "boolean",
"description": "If set to true, the snap needs to be installed with devmode confinement\nand doesn't, yet, work with strict confinement due to sandbox limitations\nor developer unfamiliarity."
},
"download-size": {
"type": "integer",
"format": "int64",
"description": "The size of the snap package in bytes."
},
"icon": {
"type": "string",
"format": "uri",
"description": "A URL to the snap's icon image."
},
"license": {
"type": "string"
},
"private": {
"type": "boolean",
"description": "Whether the snap is private."
},
"revision": {
"type": "string",
"description": "The latest revision number of the snap in this channel."
},
"status": {
"type": "string"
},
"store-url": {
"type": "string",
"format": "uri",
"description": "The URL to the snap's page in the Snap Store."
},
"summary": {
"type": "string",
"description": "A short, one-line summary of the snap."
},
"title": {
"type": "string"
},
"type": {
"type": "string",
"description": "The type of the snap. 'os' is deprecated, and is left for compatibility\nwith the 'core' and 'ubuntu-core' snaps.",
"enum": [
"app",
"kernel",
"os",
"gadget",
"base"
]
},
"version": {
"type": "string",
"description": "The version string of the latest revision."
},
"website": {
"type": "string",
"format": "uri",
"description": "The official website for the snap or application."
},
"categories": {
"type": "array",
"items": {
"$ref": "#/$defs/StoreCategory"
}
},
"links": {
"$ref": "#/$defs/Links"
},
"media": {
"type": "array",
"items": {
"$ref": "#/$defs/Media"
}
},
"publisher": {
"$ref": "#/$defs/Publisher"
}
},
"$defs": {
"Links": {
"type": "object",
"description": "A collection of relevant links for the snap.",
"properties": {
"contact": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
}
},
"website": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
}
}
},
"additionalProperties": {
"type": "array",
"description": "Allows for other link collections like 'issues', 'docs', etc.",
"items": {
"type": "string",
"format": "uri"
}
}
},
"Media": {
"type": "object",
"description": "A media asset for the snap, such as an icon or screenshot.",
"properties": {
"height": {
"type": "integer",
"description": "The height of the asset in pixels."
},
"type": {
"type": "string",
"enum": [
"icon",
"screenshot"
]
},
"url": {
"type": "string",
"format": "uri",
"description": "The URL of the asset."
},
"width": {
"type": "integer",
"description": "The width of the asset in pixels."
}
}
},
"Publisher": {
"type": "object",
"description": "Information about the publisher of the snap.",
"properties": {
"display-name": {
"type": "string",
"description": "The user name associated with the account."
},
"id": {
"type": "string",
"description": "The developer ID associated with the account."
},
"username": {
"type": "string"
},
"validation": {
"type": "string",
"enum": [
"verified",
"starred",
"unproven"
]
}
}
},
"StoreCategory": {
"type": "object",
"description": "A store category associated with the snap.",
"properties": {
"featured": {
"type": "boolean",
"description": "Indicates if the snap is featured in this category."
},
"name": {
"type": "string",
"description": "The name of the category."
}
}
}
}
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/canonical-snap"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.