---
title: "Resolve a single model name to its canonical id, prices, and priceSource"
method: GET
path: "/v1/oracle/resolve/{key}"
tags: ["Oracle Public"]
---

# Resolve a single model name to its canonical id, prices, and priceSource

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

## Request

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

Reads the optional vendor prefix (percent-encode the separator: openai%2Fgpt-5.5), then normalizes the name (dash→dot, strips bracket annotations and trailing date suffixes) and matches against the catalog, narrowed to that vendor when one is named. resolvedKey is the canonical prefixed id. priceSource is one of: oracle-basket (current index member), oracle-catalog (priced but not a current index member), off-basket (not in catalog). Unknown models return 200 + off-basket + null prices, never 404; an unknown vendor is a 422. prices.provenance marks the input and the output separately with the catalogue's own mark for each. Accepts the model key only; never reads token or usage payload.

## Response `200`

- ResolveResponseDto
  - `inputKey` string, required
  - `resolvedKey` string, required
  - `family` string, nullable, required
  - `provider` object, nullable, required
    - `key` string
    - `name` string
  - `prices` object, nullable, required
    - `inputUsdPerMillion` number
    - `outputUsdPerMillion` number
    - `provenance` object
      - `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.
  - `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
  - `priceSource` 'oracle-basket' | 'oracle-catalog' | 'off-basket', required

## Other responses

- `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)
