---
title: "Per-model input/output price history (JSON or CSV via Accept header)"
method: GET
path: "/v1/oracle/models/{key}/price-history"
tags: ["Oracle Public"]
---

# Per-model input/output price history (JSON or CSV via Accept header)

`GET /v1/oracle/models/{key}/price-history`

## Request

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

Returns one time series of input/output USD prices for any tracked model; every point is resolved with the same rule as price-at and carries its own source, so a single series mixes provenance. Instants where the confirmed revision in force attests the model are manifest-sourced (source=manifest, cross-linking revisionVersion, methodologyVersion and metadataHash); every other instant falls back to the live catalog's temporal history (source=catalog). Consecutive points repeating the same source and prices are collapsed; granularity defaults to per-revision, daily and weekly carry forward the last observed price, and catchup revisions whose manifest is unavailable are surfaced via unavailableRevisions. Models with neither an attested appearance nor a catalog price return 404. 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`

Per-model price history series.

- ModelPriceHistoryResponseDto
  - `from` string, required
  - `to` string, required
  - `granularity` 'per-revision' | 'daily' | 'weekly', required
  - `count` integer, required
  - `truncated` boolean, required
  - `modelKey` string, required
  - `manifestKey` string
  - `family` string, nullable, required
  - `unavailableRevisions` integer[], required
  - `data` object[], required
    - `date` string, required
    - `inputPriceUsdPerMillion` number, required
    - `outputPriceUsdPerMillion` number, required
    - `source` 'manifest' | 'catalog', required
    - `revisionVersion` integer
    - `methodologyVersion` integer
    - `metadataHash` string

## 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.

---

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