GET
/hist/stocks/:ticker/barsgzip requiredUS 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
ParameterDescription
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 onlyReference
Result shapes by symbol stateDescription
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
StatusCodeMeaning
- 404
not_foundUnknown symbol.
{ "error": "not_found", "message": "Symbol not found."} - 400
invalid_parameterMalformed 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."} - 406
gzip_requiredHeavy endpoint called without Accept-Encoding: gzip.
{ "error": "gzip_required" }