SKILL.md file is a Notion page. Supporting files and folders can be attached through its Files property.
For one example of how to use the API, see the notion-skills-github-sync sample repo, which sets up a recurring script that syncs skills from Notion into a GitHub plugin marketplace, which can further be synced into Claude, ChatGPT, or other agents.
List plugins
List available plugins
Get a plugin
Download a single plugin
Get a skill
Download a single skill
Requirements
- You have a connection token or personal access token with the Read content capability.
- The connection has access to the skill databases you expect to see. Skills not shared with the connection are omitted.
- Requests send
Notion-Version: 2026-03-11.
Sync workflow
Here is an example of a common usage pattern for this API: syncing all plugins from a workspace to a local directory.1
List plugins
Call List plugins and page through the results. Each entry has an The first result is a tagged plugin holding every skill tagged Engineering. The second is an untagged skill, which becomes a plugin of its own.
id, name, description, and version_id.cURL
Response
2
Compare version_id values
Compare each plugin’s
version_id against the value you stored the last time
you downloaded it. Equal values mean the plugin has not changed and you can
skip it. Only after all pages have been fetched successfully, remove local
directories for plugin IDs missing from the complete list. An incomplete or
failed listing must not delete local plugins.3
Fetch changed plugin directories
For each plugin whose
version_id changed, call Get a plugin directory to receive a signed URL.cURL
Response
4
Download and extract the archive
Set
SIGNED_URL to the url from the previous response, then download and extract the gzipped tar archive into your plugins directory.cURL