---
title: "Preview Catalog Refresh"
method: GET
path: "/api/v1/hosted-providers/refresh/preview"
tags: ["hosted-providers"]
---

# Preview Catalog Refresh

`GET /api/v1/hosted-providers/refresh/preview`

## Request

- The document declares no server URL.
- Auth: one of:
  - API key in header `Otari-Key`
  - API key in header `x-api-key`

What a catalog sweep would remove, without removing it.

A GET, and a truthful one: it writes nothing. It does dial every enabled
provider, as ``available-models`` does, because a model the provider still
lists would survive the sweep and previewing it as doomed would be a lie.

## Response `200`

Successful Response

- HostedCatalogRefreshPublic: What a catalog sweep did, or would do. ``removed`` is a sample and ``removed_count`` the total, so a deployment that has never been swept does not answer one button press with a few thousand strings. ``orphaned_rosters`` names the providers that still have a model list but nothing defining them, such as a removed ``config.yml`` entry: nothing serves them, and an apply deletes their model lists.
  - `kept` HostedCatalogKeptGroupPublic[], required
    - `count` integer, required
    - `models` string[], required
    - `reason` string, required
  - `orphaned_rosters` string[]
  - `providers` HostedCatalogProviderRefreshPublic[], required
    - `added` string[], required
    - `credential_unreadable` boolean
    - `discovery_unsupported` boolean
    - `error` string, nullable
    - `provider` string, required
    - `repriced` string[]
    - `source` 'database' | 'config'
  - `removed` string[], required
  - `removed_count` integer, required
  - `removed_override_rows` integer, required
  - `removed_price_rows` integer, required

## Changes

- **2026-10-16** `1c433ac914dc`: 2 info
  - added the optional property `orphaned_rosters` to the response with the `200` status
  - added the optional property `providers/items/source` to the response with the `200` status
- **2026-10-16** `cde937c0ea7e`: 2 warning
  - removed the optional property `orphaned_rosters` from the response with the `200` status
  - removed the optional property `providers/items/source` from the response with the `200` status
- **2026-10-16** `6e67fc94c224`: 2 info
  - added the optional property `orphaned_rosters` to the response with the `200` status
  - added the optional property `providers/items/source` to the response with the `200` status
- **2026-10-16** `b53c45c6d0fc`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/mozilla-ai/apis/otari/changes/api/v1/hosted-providers/refresh/preview/get.md)

---

[API](https://skmtc.dev/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.dev/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc.dev/mozilla-ai/apis/otari/revisions/2c95b115b0a8?raw)
