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 index candles

/api/v1/public/indices/{id}/candlesGET
OHLC of published index levels, ending 15 minutes ago. timestamp is the end of the bucket, UTC. One hourly level at 12:00Z is the candle that ends at 13:00Z. A bucket with no level is omitted. interval defaults to 1hour (30-day window). 1d covers 90 days. A 1hour candle is that hour's published level. A 1d candle in the last 30 days is the open, high, low, and close of the hourly levels on that US Eastern day. An older day in the 90-day window is that day's published level. from is inclusive and to is exclusive, and both are clipped to the window. An unknown index returns 404. An index with no levels in the window returns an empty list.
Query Parameters
interval?"1hour" | "1d"
1hour (30-day window) or 1d (90-day window). daily and 1day are aliases of 1d.
Default: "1hour"
from?string
Inclusive lower bound on the candle timestamp, ISO-8601 or YYYY-MM-DD. A date with no time is that UTC midnight. Clipped to the interval window.
to?string
Exclusive upper bound on the candle timestamp, ISO-8601 or YYYY-MM-DD. A date with no time is that UTC midnight. Capped at the 15-minute snapshot.
page?integer
1-based page number.
Default: 1Min: 1
per_page?integer
Candles in this response (1-500).
Default: 100Min: 1Max: 500
order?"asc" | "desc"
Sort by candle timestamp. desc is newest first.
Default: "desc"
Response
200 · Candles in the requested window, newest first unless `order=asc`.
data *object[]
Show item properties
timestamp *string (date-time)
End of the bucket, UTC. A 1min, 5min, or 1hour bucket ends on a UTC boundary. A 1d bucket ends at the next midnight in US Eastern time. A level printed on a boundary belongs to the bucket that starts there.
open *number
First published level in the bucket. An index level uses the index's published units. A rate level is on the 0-100 scale.
high *number
Highest published level in the bucket, in the same units as open.
low *number
Lowest published level in the bucket, in the same units as open.
close *number
Last published level in the bucket, in the same units as open. A bucket with one level has open, high, low, and close equal to that level.
meta *object
Show properties
total?integernull
Total number of records matching the request across every page, not just the current one. null on an uncounted list; page using has_next. A relevance-ranked search is uncounted, and a searched events list stays uncounted even with sort. A searched markets list with sort returns a total over the best 1,000 matches. A match outside that set is omitted.
page?integer
The 1-based page number this response covers.
per_page?integer
Maximum number of items on a page. The last page may hold fewer.
total_pages?integernull
Total number of pages available at the current per_page. null whenever total is null; page using has_next.
has_next?boolean
True when a page exists after this one.
has_prev?boolean
True when this is not the first page.
total_capped?boolean
True when total and total_pages reflect the server's counting ceiling rather than the exact matched count: the real set is at least total large. Render such totals as a lower bound (for example "10,000+"). Omitted when the count is exact. A sorted markets search that fills the 10,000-candidate ceiling sets this flag.
400 · Invalid interval, page, or bound.
error?string
Stable, machine-readable code identifying the failure; branch on this rather than on message. One of bad_request, unauthorized, forbidden, not_found, conflict, service_unavailable, upstream_error, service_error, or internal_error.
message?string
Human-readable explanation, safe to show to a user. For client errors it names the specific problem; for server-side failures it is a generic notice and the underlying detail is deliberately withheld.
404 · Index not found
error?string
Stable, machine-readable code identifying the failure; branch on this rather than on message. One of bad_request, unauthorized, forbidden, not_found, conflict, service_unavailable, upstream_error, service_error, or internal_error.
message?string
Human-readable explanation, safe to show to a user. For client errors it names the specific problem; for server-side failures it is a generic notice and the underlying detail is deliberately withheld.
Request example
curl -X GET "https://api.adjacent.markets/api/v1/public/indices/<id>/candles"