Skip to main content
GET
Get a token's price history

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

token_id
string | null

Outcome token id (the CLOB asset id the chart is keyed by). Required. tokenId is an accepted alias.

start
integer<int64> | null

Window start, epoch seconds, INCLUSIVE. Alone it means "up to the present", and is capped at 15 days back from now.

Pass end too when paging: a window that tracks the present keeps growing at the tip, and the 15-day cap is re-checked on every page, so a walk that starts near the cap can outlive it.

end
integer<int64> | null

Window end, epoch seconds, EXCLUSIVE. Requires start; on its own it would ask for every point ever recorded up to end.

interval
string | null

Relative window INSTEAD of start/end: max, all, 1m, 1w, 1d, 6h, 1h, matched case-sensitively. An empty interval= is a malformed value, not an absent one.

max/all serve the market's WHOLE life (back to 2022 for the oldest markets) at 12-hour buckets by default; at bucket_seconds of 10800 or 43200 the window is unbounded, while finer widths keep a 30-day window. The other intervals take a width sized to their own span when bucket_seconds is omitted (1h/6h/1d 60, 1w 300, 1m 1800), and each still floors an explicit value: 600 for max/all/1m, 300 for 1w.

bucket_seconds
integer<int64> | null

Bucket width in SECONDS (60…86400). bucketSeconds is an accepted alias.

OMIT it and the server sizes the width to the window: the finest tier grain (60, 300, 1800, 10800, 43200) that keeps the series under ~2,500 points, coarsened further if that grain no longer reaches the window's start. So a window up to a day keeps 1-minute detail, three days and a week default to 300, fifteen days and a month to 1800, and an unbounded max/all to 43200.

SEND it and it is served exactly as asked, which for a window older than that resolution's retention means an empty page rather than a silent substitution. An explicit value is also floored per interval: 600 for max/all/1m, 300 for 1w.

as_of
integer<int64> | null

Point-in-time read, epoch seconds, INCLUSIVE: the latest observation at or before this instant. Cannot be combined with a window. asOf is an accepted alias.

limit
integer<int32> | null

First-page size; defaults to the cap (10,000). Ignored when cursor is supplied (the cursor's size wins).

Required range: 0 <= x <= 10000
cursor
string | null

Opaque pagination cursor from a prior response's next_cursor.

Response

A page of the price-history series

{ data, pagination } envelope for /v2/prices-history. The terminal point (the latest observation inside the window) is part of the series and lands on the final page, so a client that wants the freshest value on a multi-page series follows the cursor to the end.

data
object[]
required

The page's rows.

pagination
object
required

Paging envelope: follow next_cursor until null.