Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.

Get public market price history

/api/v1/public/markets/{id}/pricesGET
Delayed market price series in cents (0-100). On 1d, a window with no completed day's trade returns recorded daily closes: one sample per day over the requested window (up to 90 days), repeating the last sample across days with no new price. Days before the first recorded sample are empty. The last sample is the last completed US Eastern day in that window.
Query Parameters
interval?"1hour" | "1d"
1hour (30d window) or 1d (90d window). On 1d, a window with no completed day's trade returns recorded daily closes, one sample per day, repeating the last sample on quiet days.
Default: "1hour"
per_page?integer
Rows returned in this response (1-1000).
Default: 1000Min: 1Max: 1000
start?string
Optional ISO-8601 or YYYY-MM-DD lower bound. Clipped to the lookback before end (30d for 1hour, 90d for 1d).
end?string
Optional ISO-8601 or YYYY-MM-DD upper bound, capped at the snapshot pin. The interval window is lookback before this instant.
order?"asc" | "desc"
Sort direction.
Default: "desc"
Response
200 ยท Price points
data *object[]
Show item properties
timestamp?string (date-time)
Start of the aggregation bucket this point covers, in UTC. Daily buckets are anchored to midnight US Eastern, so a 1d point's timestamp is 04:00 or 05:00 UTC depending on daylight saving.
price?number
Value of the series for this bucket: the last price recorded within it. Equals ohlc.close on the same point where OHLC is returned, and is the same statistic the previous_close_* baselines are measured against. Markets and rates are 0-100. Political indices (UPFI and related families) are roughly 50-150. Team indices (nti, bti) and their composites are a NAV level from base 1000 (quote_convention is points). implied_level is the published level from its sleeve prints (Misery is the U-3 + CPI sum). kpi_tr is a total return from a base of 1000. ace is a price return from a base of 1000.
price_raw?numbernull
Not currently reachable on any tier, and always absent. The unsmoothed value exists only on the un-bucketed series, but every accepted interval (and the default) maps to a bucketed one, so no request can return it.
volume?numbernull
Not currently populated on any price series, on any tier, and always absent. Reserved: use the market volume fields for traded volume.
ohlc?object | null
Open, high, low and close for the bucket, on the same 0-100 scale as price. Returned on the market and rate price series only (index series omit it), and on a daily series a gap-filled day repeats the previous day's values rather than reporting new trading.
spread?numbernull
Dispersion across the source markets behind a reference-rate value: the highest source price minus the lowest, in the same 0-100 points as price. Meaningful only on rate series, and currently not populated on any price-series response, so it is always absent.
sources?objectnull
Provenance for a reference-rate value: the blending method used, plus the per-source prices and weights behind it. Currently not populated on any price-series response, so it is always absent; use constituents for the per-source breakdown.
constituents?arraynull
The source markets behind a reference-rate value at this timestamp, each with its probability (0-100) and its weight renormalized to sum to 1 across the markets listed. Returned on the authenticated rate price series only, covering markets that were active at the timestamp and traded in that bucket; pass sources=false to omit it.
meta *object
Request example
curl -X GET "https://api.adjacent.markets/api/v1/public/markets/<id>/prices"
Response example
{ "data": [ { "timestamp": "2026-07-29T02:04:00Z", "price": 58 }, { "timestamp": "2026-07-28T04:00:00Z", "price": 58 } ], "meta": { "total": 2, "page": 1, "per_page": 2, "total_pages": 1, "has_next": false, "has_prev": false } }