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

/api/v1/public/rates/{id}/candlesGET
OHLC of published rate levels on the 0-100 scale, 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 rate returns 404. A rate 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 · Rate 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/rates/<id>/candles"