Skip to article
On this page
  1. Catalog calls
  2. List provider catalog
  3. List model catalog
  4. List built-in Persona catalog
  5. List built-in Skill catalog

Catalog

Catalog routes expose application-owned static definitions. They do not include workspace configuration, credentials, enablement, or effective availability.

Catalog calls

Method Path Description
GET /api/v1/catalog/providers Lists supported static provider types.
GET /api/v1/catalog/models Lists active static logical model definitions.
GET /api/v1/catalog/personas Lists packaged built-in Persona definitions.
GET /api/v1/catalog/skills Lists packaged built-in Skill definitions.

List provider catalog

GET /api/v1/catalog/providers returns provider metadata that can be used as the type of a future Linked Service. It does not return workspace credentials or configuration state.

GET /api/v1/catalog/providers
Property JSON type Description
id String Immutable provider identifier, such as openai.
name String Human-readable provider name.
description String Static provider description.
logo_url String Provider logo location.
requires_api_key Boolean Whether this provider type requires an API key.
default_base_url String or null Default endpoint for this provider type.
model_catalog_note String or null Static note about catalog support.
offerings Array Authoritative provider-owned model offerings.

Each offering includes model_id, provider_model_id, endpoint, optional context_window and max_output_tokens, optional pricing, status, and optional deprecated_at. Pricing includes input, output, cached-input, valid until, and note fields when known.

Example response (200 OK):

[
  {
    "id": "openai",
    "name": "OpenAI",
    "description": "OpenAI hosted models.",
    "logo_url": "/providers/openai.svg",
    "requires_api_key": true,
    "default_base_url": "https://api.openai.com/v1",
    "model_catalog_note": null,
    "offerings": [
      {
        "model_id": "gpt-5.6-sol",
        "provider_model_id": "gpt-5.6-sol",
        "endpoint": "responses",
        "context_window": 1050000,
        "max_output_tokens": 128000,
        "pricing": {
          "input_per_million_usd": "5.00",
          "output_per_million_usd": "30.00",
          "cached_input_per_million_usd": "0.50",
          "valid_until": null,
          "note": null
        },
        "status": "active",
        "deprecated_at": null
      }
    ]
  }
]

List model catalog

GET /api/v1/catalog/models returns active logical model metadata only. It does not identify provider routes, configured providers, or available workspace connections.

GET /api/v1/catalog/models

The response is an object with the following properties:

Property JSON type Description
items Array Active logical model definitions.
total Integer Total number of active logical model definitions.

Each items entry has the following properties:

Property JSON type Description
id String Immutable logical model identifier.
name String Human-readable model name.
vendor String Model vendor.
family String Model family.
description String Static model description.
released_at String ISO 8601 model release date.
capabilities Array of strings Catalog capability identifiers.
status String Static lifecycle status.
tags Array of strings Search and grouping tags.

Example response (200 OK):

{
  "items": [
    {
      "id": "gpt-5",
      "name": "GPT-5",
      "vendor": "OpenAI",
      "family": "GPT",
      "description": "A general-purpose model.",
      "released_at": "2026-08-07",
      "capabilities": [
        "coding",
        "text"
      ],
      "status": "active",
      "tags": [
        "general-purpose"
      ]
    }
  ],
  "total": 1
}

List built-in Persona catalog

GET /api/v1/catalog/personas returns packaged built-in Persona definitions. It does not return custom Personas, workspace enablement, or workspace action capabilities.

GET /api/v1/catalog/personas

Each array item includes its immutable id, name, description, complete instructions, applicability metadata, enabled_by_default, catalog_version, deprecated state, category, associated skill_ids, and the default_for agent roles.

Example response (200 OK):

[
  {
    "id": "builtin:persona:tech_lead",
    "name": "Tech Lead",
    "description": "Optimises for correct implementation and maintainable code.",
    "instructions": "# Persona: Tech Lead\n...",
    "metadata": {
      "applies_when": [
        "code",
        "implementation"
      ],
      "applies_to": [
        "generator",
        "reviewer"
      ]
    },
    "enabled_by_default": true,
    "catalog_version": 2,
    "deprecated": false,
    "category": "software_engineering",
    "skill_ids": [
      "builtin:skill:security"
    ],
    "default_for": [
      "generator"
    ]
  }
]

List built-in Skill catalog

GET /api/v1/catalog/skills returns packaged built-in Skill definitions. It does not return custom Skills, workspace enablement, or workspace action capabilities.

GET /api/v1/catalog/skills

Each array item includes the shared static instruction fields described for Personas, plus reviewer_default_strictness, phase, artifacts, and output when the Skill defines them.

Example response (200 OK):

[
  {
    "id": "builtin:skill:security",
    "name": "Security",
    "description": "Evaluates security risks.",
    "instructions": "# Security\n...",
    "metadata": {
      "applies_when": [
        "code",
        "implementation"
      ],
      "applies_to": [
        "reviewer"
      ]
    },
    "enabled_by_default": true,
    "catalog_version": 2,
    "deprecated": false,
    "category": "security_privacy",
    "reviewer_default_strictness": {
      "prototype": 40,
      "mvp": 65,
      "production": 85
    },
    "phase": "code_review",
    "artifacts": [
      "changed_files",
      "git_diff"
    ],
    "output": "json"
  }
]