---
title: "Full catalog of tracked models with current prices and index-member flag"
method: GET
path: "/v1/oracle/catalog"
tags: ["Oracle Public"]
---

# Full catalog of tracked models with current prices and index-member flag

`GET /v1/oracle/catalog`

## Request

- Base URL: `https://api.compute.finance`
- URL: `https://api.compute.finance/v1/oracle/catalog`
- Auth: none declared

Returns every tracked model, including non-latest family versions. Sourced from Model rows + the live catalog (ModelPrice); the indexMember flag is set when the model is the current family representative in the latest CONFIRMED revision's manifest. Models without a catalog price row are excluded. currentPrice is the flat rate; a model priced in context tiers also carries contextTiers — ascending input-token thresholds, each with its own input and output price — and a request above a threshold is billed at that tier rather than at currentPrice. A model that declares the context window its vendor serves carries maxInputTokens; absent means only the request-body ceiling bounds it. Every number carries its own provenance mark — currentPrice marks input and output separately, each context tier and each cache/reasoning component carries one of its own — so one model can be promotional at its flat rate and verified above a threshold. The mark weighs a number, it never changes it, and it never enters the SCU manifest. Models are identified by the canonical vendor-prefixed id (openai/gpt-5.5).

## Response `200`

- CatalogResponseDto
  - `models` object[], required
    - `modelKey` string, required
    - `displayName` string, required
    - `provider` object, required
      - `key` 'openai' | 'anthropic' | 'google' | 'xai' | 'moonshot' | 'alibaba' | 'deepseek' | 'minimax' | 'xiaomi', required
      - `name` string, required
    - `family` string, nullable, required
    - `indexMember` boolean, required: Whether this model is the current family representative in the latest confirmed SCU revision.
    - `releasedAt` string, date-time, nullable, required
    - `maxInputTokens` integer: Largest input, in tokens, this model accepts. A request estimated above it is refused with 422 before it reaches the provider. Absent means the model declares no window of its own and only the request-body ceiling applies.
    - `currentPrice` object, required
      - `inputPriceUsdPerMillion` number, required
      - `outputPriceUsdPerMillion` number, required
      - `provenance` object, required
        - `input` 'verified' | 'inferred' | 'promotional', required: How far this number has been checked. 'verified' — an operator recorded a vendor source for this number; 'inferred' — derived from a sibling number or a vendor default, with no source recorded; 'promotional' — a discounted list price that bills exactly as shown and is expected to end. Every value bills as shown; the mark says how much to trust it, not what it costs. Marks are set by hand and hold as of the operator's last pass, not as a live check against the vendor: a number that went on promotion and has not been re-marked still reads as it was.
        - `output` 'verified' | 'inferred' | 'promotional', required: How far this number has been checked. 'verified' — an operator recorded a vendor source for this number; 'inferred' — derived from a sibling number or a vendor default, with no source recorded; 'promotional' — a discounted list price that bills exactly as shown and is expected to end. Every value bills as shown; the mark says how much to trust it, not what it costs. Marks are set by hand and hold as of the operator's last pass, not as a live check against the vendor: a number that went on promotion and has not been re-marked still reads as it was.
      - `observedAt` string, date-time, required
    - `contextTiers` object[]: Long-context price ladder, ascending by fromInputTokens, present only on models that carry one. currentPrice is the flat rate below the first threshold and is the only price the SCU manifest attests; a request above a threshold is billed at that tier instead. Absent means the model costs the same at every input size.
      - `fromInputTokens` integer, required: Lowest input size, in tokens, priced at this tier. The tier is selected from the whole input side of a request — prompt plus cache reads plus cache writes — and the range is half-open, so an input landing exactly here takes this tier rather than the one below.
      - `inputPriceUsdPerMillion` number, required
      - `outputPriceUsdPerMillion` number, required
      - `provenance` 'verified' | 'inferred' | 'promotional', required: One mark for the band: a tier is quoted by the vendor as a single line, so its input and output share it. A band may be marked differently from the model's flat price.
    - `cache` object, nullable, required
      - `cachedInput` object, nullable, required
        - `usdPerMillion` number, nullable, required
        - `ratioOfInput` number, nullable, required
        - `source` string, required
        - `sourceUrl` string, nullable, required
        - `provenance` 'verified' | 'inferred' | 'promotional', required: How far this number has been checked. 'verified' — an operator recorded a vendor source for this number; 'inferred' — derived from a sibling number or a vendor default, with no source recorded; 'promotional' — a discounted list price that bills exactly as shown and is expected to end. Every value bills as shown; the mark says how much to trust it, not what it costs. Marks are set by hand and hold as of the operator's last pass, not as a live check against the vendor: a number that went on promotion and has not been re-marked still reads as it was.
        - `createdAt` string, nullable, required
      - `cacheWrite5m` object, nullable, required
        - `usdPerMillion` number, nullable, required
        - `ratioOfInput` number, nullable, required
        - `source` string, required
        - `sourceUrl` string, nullable, required
        - `provenance` 'verified' | 'inferred' | 'promotional', required: How far this number has been checked. 'verified' — an operator recorded a vendor source for this number; 'inferred' — derived from a sibling number or a vendor default, with no source recorded; 'promotional' — a discounted list price that bills exactly as shown and is expected to end. Every value bills as shown; the mark says how much to trust it, not what it costs. Marks are set by hand and hold as of the operator's last pass, not as a live check against the vendor: a number that went on promotion and has not been re-marked still reads as it was.
        - `createdAt` string, nullable, required
      - `cacheWrite1h` object, nullable, required
        - `usdPerMillion` number, nullable, required
        - `ratioOfInput` number, nullable, required
        - `source` string, required
        - `sourceUrl` string, nullable, required
        - `provenance` 'verified' | 'inferred' | 'promotional', required: How far this number has been checked. 'verified' — an operator recorded a vendor source for this number; 'inferred' — derived from a sibling number or a vendor default, with no source recorded; 'promotional' — a discounted list price that bills exactly as shown and is expected to end. Every value bills as shown; the mark says how much to trust it, not what it costs. Marks are set by hand and hold as of the operator's last pass, not as a live check against the vendor: a number that went on promotion and has not been re-marked still reads as it was.
        - `createdAt` string, nullable, required
      - `read_multiplier` number, nullable, required
      - `write_multiplier_5m` number, nullable, required
      - `write_multiplier_1h` number, nullable, required
    - `reasoning` object, nullable, required
      - `reasoningOutput` object, nullable, required
        - `usdPerMillion` number, nullable, required
        - `ratioOfInput` number, nullable, required
        - `source` string, required
        - `sourceUrl` string, nullable, required
        - `provenance` 'verified' | 'inferred' | 'promotional', required: How far this number has been checked. 'verified' — an operator recorded a vendor source for this number; 'inferred' — derived from a sibling number or a vendor default, with no source recorded; 'promotional' — a discounted list price that bills exactly as shown and is expected to end. Every value bills as shown; the mark says how much to trust it, not what it costs. Marks are set by hand and hold as of the operator's last pass, not as a live check against the vendor: a number that went on promotion and has not been re-marked still reads as it was.
        - `createdAt` string, nullable, required
  - `truncated` boolean, required
  - `generatedAt` string, date-time, required

## Other responses

- `429`: `rate_limited` — A rate or concurrency limit this request falls under was reached.
- `503`: `service_unavailable` — A dependency, a setting or the capacity this request needs is unavailable.

---

[API](https://skmtc.dev/compute/apis/compute-finance-public-api.md) · [All operations](https://skmtc.dev/compute/apis/compute-finance-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/compute/apis/compute-finance-public-api/revisions/e6b2f5f0fe85?raw)
