What intraday data is available
Intraday coverage is deliberately narrow and stated exactly. Requests that ask for something outside it fail with a clear error rather than an empty page.
| Interval or option | Stocks and ETFs |
|---|---|
5m | Collected. The base series |
1h | Rolled up from the 5-minute bars on request |
1m | Not collected; returns 422 unsupported-interval |
session=regular | Required. 9:30 to 16:00 New York time |
| Pre-market and after-hours | Not available; session=all returns 422 unsupported-session |
| Retention | About 30 days of recent sessions |
| Freshness | Delayed at least 15 minutes, never real-time |
On October 3, 2026 the earliest 5-minute bar available for XNAS:AAPL opened at 2026-09-03 13:30 UTC, which matches the 30-day window.
Timestamps and how hourly bars are built
datetime is the UTC instant the bar opens. A bar stamped 13:30:00Z during U.S. daylight saving time is the 9:30 to 9:35 New York bar; in winter the same bar is stamped 14:30:00Z. Convert to America/New_York before grouping by local time. from and to take exchange-local trading dates, so from=2026-09-03&to=2026-09-03 returns exactly that session.
Hourly bars start at the open, not on the clock hour: 9:30, 10:30, 11:30 and so on, with the 15:30 bar running only to the close. Each takes the first open, the last close, the extreme high and low, and the summed volume of its 5-minute bars.
Adjustments and point in time
adjustment accepts raw (default), split and total_return, using the same factor sets as daily bars. Within a 30-day window this rarely matters, but if a split executes inside the window, split keeps the series continuous. as_of sets a knowledge cutoff for reproducible pulls.
Cross-asset bars
GET /v1/bars serves the same intraday data in a unified shape with window_start, window_end, interval and session on every row, alongside interval=1d from end-of-day prices. Use it if you want one bar format across daily and intraday series. Weekly and monthly bars are not served; build them from daily bars.
import os, requests
r = requests.get(
"https://api.ohlc.io/v1/intraday",
params={"symbols": "XNAS:AAPL,ARCX:SPY", "interval": "1h",
"session": "regular", "from": "2026-10-01", "to": "2026-10-02"},
headers={"Authorization": f"Bearer {os.environ['OHLC_API_KEY']}"},
)
for bar in r.json()["data"]:
print(bar["symbol"], bar["datetime"], bar["close"])Keeping intraday history beyond 30 days
Bars older than about 30 days are not retained, and there is no archive to backfill from later. If you need a longer intraday record, store it as you go: a job after each close that requests the previous session for your symbols captures 78 five-minute bars per symbol on a full trading day. Batch up to 100 symbols per request and follow meta.next_cursor until it is null. Store the instrument_id with each bar so ticker changes do not split your history.
Common uses
- Plotting the last few weeks of price action on an hourly or 5-minute chart
- Computing technical indicators such as RSI or MACD on 5-minute or hourly bars
- Measuring intraday ranges and volume profiles around earnings or other events
- Checking how a stock traded into the close on a specific recent day
Plans and credits
Intraday bars need the intraday.read capability, included on Pro, Commercial and Scale. Each request costs 25 credits per symbol, with up to 100 symbols per request and 500 rows per page. Free and Developer include daily bars and delayed quotes but not intraday bars.
Intraday bars are delayed 15 minutes or more and cover the regular session only. OHLC does not offer real-time or 1-minute stock bars. For individual trades, `/v1/trades` returns a U.S. session's consolidated-tape prints from the next day.
Five-minute bars for Apple
curl 'https://api.ohlc.io/v1/intraday?symbols=XNAS:AAPL&interval=5m&session=regular&from=2026-09-03&to=2026-09-03' \
-H "Authorization: Bearer $OHLC_API_KEY"{
"data": [
{
"datetime": "2026-09-03T13:30:00.000000Z",
"security_id": "01M35H2KE2ZJHXFY5C3E7FPC66",
"instrument_id": "01M35H2KE2ZJHXFY5C3E7FPC66",
"symbol": "XNAS:AAPL",
"exchange_mic": "XNAS",
"currency_code": "USD",
"open": "324.9477",
"high": "327.5",
"low": "324.25",
"close": "325.62",
"volume": "1747712",
"trade_count": null
}
],
"meta": {
"timezone": "UTC",
"as_of": "2026-10-03T15:04:45Z",
"next_cursor": "AZbwAX7a..."
}
}Prices delayed 15 minutes · Illustrative sample data