{
    "variable": [
        {
            "id": "baseUrl",
            "key": "baseUrl",
            "type": "string",
            "name": "string",
            "value": "https:\/\/skills.revenexx.ai"
        }
    ],
    "info": {
        "name": "Skill Registry API",
        "_postman_id": "ef84629c-30e7-4d82-8497-872e99e12663",
        "description": "The registry for AI agent skills (SKILL.md bundles) \u2014 browse them, download them as a zip, or install them via the revenexx CLI into any supported agent; sourced from connected Git repositories. Agent-agnostic, not Claude-only.",
        "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
    },
    "item": [
        {
            "name": "Skills",
            "description": "",
            "item": [
                {
                    "name": "List skills visible to the calling organisation.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/skills",
                            "query": [
                                {
                                    "key": "q",
                                    "value": "invoice",
                                    "description": "Optional search over name\/title\/description\/tags.",
                                    "disabled": false
                                },
                                {
                                    "key": "category",
                                    "value": "finance",
                                    "description": "Optional exact category filter.",
                                    "disabled": false
                                },
                                {
                                    "key": "tags",
                                    "value": "erp,invoice",
                                    "description": "Optional comma-separated tag filter; a skill matching any listed tag is returned.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/skills?q=invoice&category=finance&tags=erp%2Cinvoice"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Optional `?q=` filters by name\/title\/description\/tags. Visibility is scoped to\nthe caller's Zitadel organization: public skills are returned to everyone,\nprivate skills only to the owning organization."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"vendor\": \"revenexx\",\n      \"name\": \"invoice-sync\",\n      \"slug\": \"revenexx\/invoice-sync\",\n      \"title\": \"Invoice Sync\",\n      \"description\": \"Sync invoices between Business Central and the data warehouse.\",\n      \"visibility\": \"public\",\n      \"category\": \"finance\",\n      \"tags\": [\"invoice\", \"erp\"],\n      \"latest_version\": \"1.2.0\",\n      \"latest_download_url\": \"https:\/\/skills.rvnxx.test\/api\/v1\/skills\/revenexx\/skills-catalog\/invoice-sync\/versions\/1.2.0\/download\"\n    }\n  ]\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\"message\": \"Unauthenticated.\"}",
                            "name": "Missing or invalid token"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\"message\": \"Token carries no roles in the public project.\"}",
                            "name": "No role in the public plane"
                        }
                    ]
                },
                {
                    "name": "List the distinct, non-empty skill categories visible to the caller's\norganisation. Powers the category filter on the browse page.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/skills\/categories",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/skills\/categories"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\": [\"data\", \"devops\", \"finance\"]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List the distinct tags across skills visible to the caller's organisation.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/skills\/tags",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/skills\/tags"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Powers the multi-select tag filter on the browse page."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\": [\"ai\", \"cli\", \"erp\", \"invoice\"]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Show a single skill (by vendor + name) with its versions.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/skills\/:vendor\/:repo\/:name",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/skills\/:vendor\/:repo\/:name",
                            "variable": [
                                {
                                    "id": "vendor",
                                    "key": "vendor",
                                    "value": "revenexx",
                                    "description": "The skill vendor (GitHub owner)."
                                },
                                {
                                    "id": "repo",
                                    "key": "repo",
                                    "value": "skills-catalog",
                                    "description": "The repository the skill lives in."
                                },
                                {
                                    "id": "name",
                                    "key": "name",
                                    "value": "invoice-sync",
                                    "description": "The skill name."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"vendor\": \"revenexx\",\n    \"repo\": \"skills-catalog\",\n    \"name\": \"invoice-sync\",\n    \"slug\": \"revenexx\/skills-catalog\/invoice-sync\",\n    \"title\": \"Invoice Sync\",\n    \"description\": \"Sync invoices between Business Central and the data warehouse.\",\n    \"visibility\": \"public\",\n    \"category\": \"finance\",\n    \"tags\": [\"invoice\", \"erp\"],\n    \"keywords\": [\"invoice\", \"business-central\"],\n    \"authors\": [{\"name\": \"Jane Doe\", \"email\": \"jane@revenexx.com\"}],\n    \"homepage\": \"https:\/\/docs.revenexx.com\/skills\/invoice-sync\",\n    \"license\": \"MIT\",\n    \"targets\": [\"claude-code\", \"cursor\"],\n    \"allowed_tools\": [\"Bash\", \"Read\"],\n    \"latest_version\": \"1.2.0\",\n    \"readme\": \"# Invoice Sync\\n\\nSyncs invoices\u2026\",\n    \"latest_download_url\": \"https:\/\/skills.rvnxx.test\/api\/v1\/skills\/revenexx\/skills-catalog\/invoice-sync\/versions\/1.2.0\/download\",\n    \"versions\": [\n      {\n        \"version\": \"1.2.0\",\n        \"description\": \"Sync invoices between Business Central and the data warehouse.\",\n        \"artifact_hash\": \"sha256:7f3b1c9a2e4d5f6071829304a5b6c7d8e9f0a1b2c3d4e5f60718293a4b5c6d7e\",\n        \"artifact_bytes\": 20480,\n        \"registered_at\": \"2026-06-20T09:12:00Z\"\n      }\n    ]\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\": \"Not Found.\"}",
                            "name": "Skill not found or not visible to caller"
                        }
                    ]
                },
                {
                    "name": "Stream the zip artifact for a specific version of a skill.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/skills\/:vendor\/:repo\/:name\/versions\/:version\/download",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/skills\/:vendor\/:repo\/:name\/versions\/:version\/download",
                            "variable": [
                                {
                                    "id": "vendor",
                                    "key": "vendor",
                                    "value": "revenexx",
                                    "description": "The skill vendor (GitHub owner)."
                                },
                                {
                                    "id": "repo",
                                    "key": "repo",
                                    "value": "skills-catalog",
                                    "description": "The repository the skill lives in."
                                },
                                {
                                    "id": "name",
                                    "key": "name",
                                    "value": "invoice-sync",
                                    "description": "The skill name."
                                },
                                {
                                    "id": "version",
                                    "key": "version",
                                    "value": "1.2.0",
                                    "description": "The skill version to download."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Serves both the CLI install and a direct zip download for any AI chat\/agent\n(the registry is agent-agnostic, not Claude-only). The response body is the\nraw skill bundle streamed as an `application\/zip` attachment named\n`{name}-{version}.zip` \u2014 it is not a JSON document."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "Binary `application\/zip` stream (Content-Disposition: attachment; filename=\"{name}-{version}.zip\"). Not a JSON document.",
                            "name": "Skill bundle"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\": \"Not Found.\"}",
                            "name": "Skill or version not found \/ not visible to caller"
                        }
                    ]
                },
                {
                    "name": "Show a single version of a skill, including that version's README.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/skills\/:vendor\/:repo\/:name\/versions\/:version",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/skills\/:vendor\/:repo\/:name\/versions\/:version",
                            "variable": [
                                {
                                    "id": "vendor",
                                    "key": "vendor",
                                    "value": "revenexx",
                                    "description": "The skill vendor (GitHub owner)."
                                },
                                {
                                    "id": "repo",
                                    "key": "repo",
                                    "value": "skills-catalog",
                                    "description": "The repository the skill lives in."
                                },
                                {
                                    "id": "name",
                                    "key": "name",
                                    "value": "invoice-sync",
                                    "description": "The skill name."
                                },
                                {
                                    "id": "version",
                                    "key": "version",
                                    "value": "1.2.0",
                                    "description": "The skill version."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Unlike the skill detail endpoint (whose `readme` is always the latest\nversion's), this returns the README and metadata of the exact version\nrequested, plus parent-skill context (`title`, `latest_version`,\n`is_latest`) so the UI can flag when an older version is being viewed."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"version\": \"1.2.0\",\n    \"description\": \"Sync invoices between Business Central and the data warehouse.\",\n    \"readme\": \"# Invoice Sync\\n\\nSyncs invoices\u2026\",\n    \"visibility\": \"public\",\n    \"allowed_tools\": [\"Bash\", \"Read\"],\n    \"artifact_hash\": \"sha256:7f3b1c9a2e4d5f6071829304a5b6c7d8e9f0a1b2c3d4e5f60718293a4b5c6d7e\",\n    \"artifact_bytes\": 20480,\n    \"source_ref\": \"refs\/tags\/v1.2.0\",\n    \"registered_at\": \"2026-06-20T09:12:00Z\",\n    \"title\": \"Invoice Sync\",\n    \"latest_version\": \"1.2.0\",\n    \"is_latest\": true\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\": \"Not Found.\"}",
                            "name": "Skill or version not found \/ not visible to caller"
                        }
                    ]
                }
            ]
        }
    ],
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "Authorization",
                "type": "string"
            }
        ]
    }
}