sifting/io
GET/hist/stocks/:ticker/barsgzip required

US equities bars

Paginated OHLCV bars for a US-listed security, from 1-minute intraday through monthly. Each bar carries t (Unix epoch milliseconds, marking the bucket's open time, same convention as live ticks), o/h/l/c as float prices, and v as integer share volume. Coverage is regular US trading hours (09:30–16:00 ET, Mon–Fri, excluding US market holidays); half-day sessions emit fewer intraday bars; closed sessions emit none.

Parameters

Parameter
tickerrequiredstring · path
Symbol. Case-insensitive. 1–10 characters, uppercase letters, digits, dots, hyphens. Wide enough for share classes (BRK.A, BRK.B), warrants (TSLA.WS), units (SOFIU), and 6-character tickers.
startstring · query
Inclusive lower bound on bar time. Accepts YYYY-MM-DD or full RFC3339. Date-only values are interpreted in US Eastern time (America/New_York); RFC3339 values are read as UTC.
endstring · query
Inclusive upper bound on bar time. Same shape as start. Defaults to now.
intervalstring · query
Bar size. One of: 1m, 5m, 15m, 30m, 1h, 1d, 1w, 1mo. Default 1m.
limitinteger · query
Bars per page. Default 1000, max 2000.
cursorstring · query
Pagination token. Opaque. Pass back the value of meta.next_cursor from the previous response verbatim. Omit on the first request.
Accept-Encodingrequiredstring · header
Must include gzip; otherwise the endpoint returns 406 gzip_required.

Example

request · shell
curl -H "X-API-Key: $KEY" -H "Accept-Encoding: gzip" --compressed \
  "https://api.sifting.io/v1/hist/stocks/AAPL/bars?start=2026-05-09&end=2026-05-09&interval=1m"
200OKapplication/json (gzip)
{  "data": [    {      "t": 1746793800000,      "o": 198.41,      "h": 198.55,      "l": 198.36,      "c": 198.50,      "v": 12340    },    {      "t": 1746793860000,      "o": 198.50,      "h": 198.62,      "l": 198.45,      "c": 198.58,      "v": 9821    }  ],  "meta": {    "symbol": "AAPL",    "interval": "1m",    "as_of": "2026-05-09T20:00:03Z",    "next_cursor": "eyJvIjoxMDAwfQ"  }}
Loading runner…
First load only

Reference

Result shapes by symbol state
Known symbol, bars in range
200 OK with a populated data array.
Known symbol, empty window
200 OK with data: [].
Halted or delisted symbol (still in registry)
200 OK, shaped like an empty window.
Unknown symbol
404 not_found.

Error responses

  • 404not_found

    Unknown symbol.

    {  "error": "not_found",  "message": "Symbol not found."}
  • 400invalid_parameter

    Malformed start/end, unsupported interval, or out-of-range limit.

    {  "error": "invalid_parameter",  "message": "interval must be one of: 1m, 5m, 15m, 30m, 1h, 1d, 1w, 1mo."}
  • 406gzip_required

    Heavy endpoint called without Accept-Encoding: gzip.

    { "error": "gzip_required" }

More in Historical OHLCV

See all