What an OHLC bar contains in this API
Every bar carries open, high, low, close and volume as decimal strings, so nothing is rounded on the way to you. Alongside them come the exchange-qualified symbol (such as XNAS:AAPL), the exchange_mic, the currency_code and a stable instrument_id that survives ticker changes. trade_count is included where the source reports it and is otherwise null.
The time field depends on the endpoint. Daily bars carry a single date: the exchange-local trading date. Intraday bars carry datetime, the UTC instant the bar opens, so the first regular-session bar of a New York trading day in October is 13:30:00Z. Cross-asset bars carry window_start and window_end plus interval and session.
| Endpoint | Bars | Time field | Credits | Plans |
|---|---|---|---|---|
/v1/eod | One daily bar per exchange-local trading date | date | 5 per symbol; 500 for a whole-market date | All plans (Free: AAPL, NVDA, JNJ, PEP, MSFT, SPY, QQQ) |
/v1/intraday | 5-minute regular-session bars, 1h rolled up from them, kept about 30 days | datetime | 25 per symbol | Pro and above |
/v1/bars | 1d from the daily bars, 5m and 1h from the intraday bars, and 1m for crypto and currency pairs; stocks, ETFs, crypto and currency pairs, indices and bonds | window_start | 5 per symbol, 25 for intraday intervals | Pro and above |
Parameters that shape the bars
interval(intraday and cross-asset):5mor1hfor exchange listings.1mis not collected for them and returns 422unsupported-intervalrather than an empty page./v1/barsalso takes1d. Weekly and monthly bars are not served; build them from daily bars.session:regularfor exchange listings, which have regular-session bars only. Crypto pairs trade around the clock in one session, soallselects the same bars.adjustment:raw(the default),splitortotal_return. See adjusted stock prices for how each is built.fromandto: exchange-local trading dates asYYYY-MM-DD, both inclusive, sofromequal totoselects one session. A timestamp returns 422invalid-date.order,limit(1 to 500, default 100) andcursor: copymeta.next_cursorinto the next request until it is null.as_ofandsymbol_at: a knowledge cutoff for point-in-time reads, and the date at which a ticker is resolved to a listing.
Batch requests and whole-market date queries
symbols takes a comma-separated list of up to 100 symbols. Bare tickers resolve to the listing that holds them, and every requested symbol appears either in data or in meta.errors with a code such as symbol-not-resolved or no-data, so a batch never fails silently. Credits are charged per distinct symbol.
For a market-wide snapshot of one session, pass date instead of from and to and omit symbols. /v1/eod returns one raw bar for every listing in your entitled markets that traded that day, in symbol order, optionally limited with exchanges. The request costs 500 credits and pages like any other.
curl 'https://api.ohlc.io/v1/eod?date=2026-10-02&exchanges=XNYS,XNAS&limit=500' \
-H "Authorization: Bearer $OHLC_API_KEY"Formats: JSON, CSV, files and AI assistants
- Call the REST endpoints for JSON envelopes of
{ data, meta }, with ETags for conditional requests. - Add
format=csvto load the same rows into Excel or Google Sheets. The next cursor moves to theX-Next-Cursorheader. - On Pro and above, download nightly flat files of every daily bar instead of paging through the market.
- Ask Claude or another MCP client:
get_eod_prices,get_intraday_barsandget_barsare the same endpoints as tools.
Looking for how far back prices go rather than the bar format? Historical stock prices covers history depth by plan. Nothing here is real-time: daily bars are end-of-day, and intraday bars and quotes are delayed at least 15 minutes.
Daily OHLCV bars for two symbols
curl 'https://api.ohlc.io/v1/eod?symbols=XNAS:AAPL,XNYS:JNJ&from=2026-10-02&to=2026-10-02' \
-H "Authorization: Bearer $OHLC_API_KEY"{
"data": [
{
"date": "2026-10-02",
"security_id": "01M35H2KE2ZJHXFY5C3E7FPC66",
"instrument_id": "01M35H2KE2ZJHXFY5C3E7FPC66",
"symbol": "XNAS:AAPL",
"exchange_mic": "XNAS",
"currency_code": "USD",
"open": "333.205",
"high": "334.54",
"low": "330.61",
"close": "333.69",
"volume": "31878433",
"trade_count": 628338
},
{
"date": "2026-10-02",
"security_id": "01M35XSMJQGQD66XDX1R38FJDM",
"instrument_id": "01M35XSMJQGQD66XDX1R38FJDM",
"symbol": "XNYS:JNJ",
"exchange_mic": "XNYS",
"currency_code": "USD",
"open": "259.38",
"high": "259.38",
"low": "255.12",
"close": "256.03",
"volume": "10939967",
"trade_count": 166129
}
],
"meta": {
"timezone": "UTC",
"as_of": "2026-10-03T15:08:26.944354Z",
"next_cursor": null
}
}Prices delayed 15 minutes · Illustrative sample data