---
title: "Get single catalog model (basket member or retired) by key"
method: GET
path: "/v1/oracle/models/{key}"
tags: ["Oracle Public"]
---

# Get single catalog model (basket member or retired) by key

`GET /v1/oracle/models/{key}`

## Request

- Base URL: `https://api.compute.finance`
- URL: `https://api.compute.finance/v1/oracle/models/{key}`
- Auth: none declared

Only the cache and reasoning components carry a provenance mark here, because only they are read from the live catalog. The input/output pair is the manifest-attested figure for a basket member (inBasket=true) and the live-catalog figure for a retired ex-member, and this endpoint publishes it unmarked in both cases. For the catalog's own mark on a model's input and output, use /v1/oracle/catalog or /v1/oracle/resolve. Models are identified by the canonical vendor-prefixed id (openai/gpt-5.5). The key segment also accepts the bare model name; both name the same model, and the prefixed form needs the separator percent-encoded (openai%2Fgpt-5.5). An unknown vendor is a 422.

## Response `200`

- ModelResponseDto
  - `id` string, required
  - `displayName` string, required
  - `provider` object, required
    - `key` string
    - `name` string
  - `family` string, required: Provider product line (e.g. 'openai.gpt'). One family per basket slot; the latest released model in the family is the representative.
  - `weiPricePerMillion` object, required
    - `input` number
    - `output` number
  - `usdPricePerMillion` object, required
    - `input` number
    - `output` number
  - `markedUpWeiPricePerMillion` object, required
    - `input` number
    - `output` number
  - `markedUpUsdPricePerMillion` object, required
    - `input` number
    - `output` number
  - `cache` object, nullable, required
    - `cachedInput` object, nullable
      - `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
      - `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
      - `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
    - `write_multiplier_5m` number, nullable
    - `write_multiplier_1h` number, nullable
  - `reasoning` object, nullable, required
    - `reasoningOutput` object, nullable
      - `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
  - `inBasket` boolean, required: True when the model is a family representative in the latest confirmed revision; false for retired models that stay listed in the catalog.
  - `retiredAtRevision` integer, nullable, required: First confirmed revision in which the model no longer appears in the basket; null for current basket members.

## Other responses

- `404`: `not_found` — The requested resource does not exist.
- `422`: `validation_failed` — The request failed validation. A schema failure lists every issue in `error.issues[]`; a single-field failure names that field in `error.param`.
- `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)
