---
title: "Get Provider Catalog Route"
method: GET
path: "/api/v1/provider-catalog"
tags: ["providers"]
---

# Get Provider Catalog Route

`GET /api/v1/provider-catalog`

## Request

- Base URL: `https://cp.xenovia.io` (the document declares no server; this is the origin it was published from)
- URL: `https://cp.xenovia.io/api/v1/provider-catalog`
- Auth: none declared

The providers this deployment offers, for the console's provider form
(docs/provider-catalog.md). Hidden entries and runtime-only keys are left
out, and the ambient auth mode unless this deployment accepts it.

## Headers

- `Authorization` string, nullable

## Response `200`

Successful Response

- ProviderCatalogRead
  - `version` string, required
  - `providers` PublicProviderEntry[], required
    - `id` string, required
    - `name` string, required
    - `description` string, required
    - `category` 'frontier' | 'cloud' | 'inference' | 'aggregator' | 'self_hosted' | 'custom', required
    - `status` 'ga' | 'beta' | 'hidden', required
    - `base_url` string, required
    - `base_url_editable` boolean, required
    - `auth_modes` AuthMode[], required
      - `id` string, required
      - `label` string, required
      - `ambient` boolean
      - `fields` CatalogField[]
        - `name` string, required
        - `label` string, required
        - `type` 'string' | 'url' | 'secret' | 'select' | 'textarea' | 'json' | 'number', required
        - `required` boolean
        - `placeholder` string, nullable
        - `help` string, nullable
        - `hosts` string[]
        - `options` SelectOption[]
          - `value` string, required
          - `label` string, required
        - `default` string, nullable
        - `advanced` boolean
        - `allow_http` boolean
        - `pattern` string, nullable
        - `multiline` boolean
    - `fields` CatalogField[], required
      - `name` string, required
      - `label` string, required
      - `type` 'string' | 'url' | 'secret' | 'select' | 'textarea' | 'json' | 'number', required
      - `required` boolean
      - `placeholder` string, nullable
      - `help` string, nullable
      - `hosts` string[]
      - `options` SelectOption[]
        - `value` string, required
        - `label` string, required
      - `default` string, nullable
      - `advanced` boolean
      - `allow_http` boolean
      - `pattern` string, nullable
      - `multiline` boolean
    - `models` PublicModelsInfo, required: An entry's ``models`` as the console receives it.
      - `default` string
      - `suggested` string[]
      - `discovery` 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'none', required
    - `egress_hosts` string[], required
    - `docs_url` string, required
    - `logo` string, required
  - `context` ProviderCatalogContext, required
    - `aws_external_id` string, required
    - `ambient_credentials` boolean, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-04** `2f4b4b338b8f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/xenovia/apis/controlplane/changes/api/v1/provider-catalog/get.md)

---

[API](https://skmtc.dev/xenovia/apis/controlplane.md) - [All operations](https://skmtc.dev/xenovia/apis/controlplane/llms.txt) - [OpenAPI document](https://skmtc.dev/xenovia/apis/controlplane/revisions/3e25bef24f8f?raw)
