---
title: "Per-outcome price history (v2)"
method: GET
path: "/v2/pairs/{market_id}/history"
tags: ["data"]
---

# Per-outcome price history (v2)

`GET /v2/pairs/{market_id}/history`

## Request

- Base URL: `https://api.dino.markets`
- URL: `https://api.dino.markets/v2/pairs/{market_id}/history`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/dino/apis/dino-markets-api/docs/v2/pairs/:market_id/history/get.ts> (a function with typed inputs; its response is checked against the schema)

Per-outcome Kalshi/Polymarket ask history for one pair, oldest->newest, for the /live/[id] chart.

Accepts `dino_<uuid>`, a bare UUID, or a persisted poly_slug. Empty `series` when the sampler
hasn't captured this pair yet (a brand-new pair, or one seen only within the current sample
bucket) — never a 404 for that.

§131b: trims trailing points newer than now - REST_DELAY_S (same uniform delay as every other REST
price surface — a chart must not show the price ~2min ahead of what /v2/markets/pairs serve for the
same pair). The sampler buckets at _PH_BUCKET_S (60s), so this drops at most ceil(delay/60)+1 points
(~2 points at the 120s default).

## Path parameters

- `market_id` string, required

## Headers

- `authorization` string

## Response `200`

Successful Response

- unknown

## Other responses

- `401`: Missing or invalid API key
- `402`: Subscription inactive
- `404`: Pair not found
- `422`: Validation Error
- `429`: Rate limit exceeded
- `503`: Auth admission gate full (transient) — retry shortly, see retry_after

---

[API](https://skmtc.dev/dino/apis/dino-markets-api.md) - [All operations](https://skmtc.dev/dino/apis/dino-markets-api/llms.txt) - [OpenAPI document](https://skmtc.dev/dino/apis/dino-markets-api/revisions/8cbe8774824f?raw)
