Historical & Intraday Stock Prices API
Access historical end-of-day (EOD) stock prices and intraday 1-minute OHLCV bars through a single API endpoint. Query one or many tickers at once, control the date range or lookback period, and paginate through clean, ready-to-use price series for backtests, dashboards, and trading systems.
https://data.businessquant.com/quotes?ticker={ticker}&mode={mode}&api_key={api_key}
How this fits the Business Quant API suite: Use the Stock Screener API to build a filtered universe of tickers, then pull price history for each one here. Pair with the Financial Statements API to combine price data with fundamental metrics for valuation and factor research.
Key Capabilities
Three resolution modes in one endpoint cover every price data use case — from long-horizon historical backtesting to live intraday monitoring. All modes return the same clean OHLCV structure, paginated and filterable by date.
Historical EOD Prices
Clean, historical end-of-day OHLCV data spanning multiple years — suitable for backtesting trading rules, factor strategies, and historical performance analysis across long time horizons.
Intraday 1-Minute Bars
High-resolution intraday price series at 1-minute intervals via mode=minute-bars. Use for intraday strategy development, event-driven analysis, and session-level monitoring.
Smart Daily Mode
mode=daily returns historical EOD data and, during active market hours, automatically appends the latest live bar at the top — one endpoint for both historical and current-day data.
Multi-Ticker Support
Request multiple tickers in a single call with ticker=AAPL,MSFT. The response is a dictionary keyed by ticker — each with its own isolated metadata and data blocks — instead of a mixed flat array.
Flexible Time Filters
Use relative period strings (1d, 1mo, 1y) or explicit from_date/till_date in YYYY-MM-DD format to define the historical window for any resolution mode.
Robust Pagination
Every response's metadata.pagination object includes current_page, limit, total_records, and total_pages so you can reliably iterate through large historical price series.
Three Data Modes
The mode parameter controls the resolution and live-data behavior of the response. Choose based on whether you need historical closes, real-time augmentation, or intraday granularity.
1. Request Parameters
The Quotes endpoint uses URL query parameters to define the target securities, the data resolution (EOD vs intraday), and the historical horizon. Query one or many tickers, choose between smart daily, strictly historical EOD closes, or intraday 1-minute bars, and control how much history you retrieve using period or explicit from_date/till_date bounds.
| Parameter | Description |
|---|---|
| api_key |
Required
Your unique API key for authentication.
|
| ticker |
Required
String
A single stock ticker or a comma-separated list of tickers for a multi-ticker request.
Single:
ticker=AAPLMulti:
ticker=AAPL,MSFT |
| mode |
Optional
Data resolution and live-data behavior. Valid values: daily (default — historical EOD + live merge), eod (strictly historical closes only), minute-bars (intraday 1-minute OHLCV bars).
Default:
mode=daily |
| period |
Conditional
Relative lookback from today. Determinants: d (days), w (weeks), mo (months), y (years). Use this or explicit dates — not both.
Examples:
period=1mo · period=1y · period=5y |
| from_date |
Conditional
Start date for an explicit historical range. Use with till_date; cannot be combined with period.
Format:
from_date=2020-01-01 |
| till_date |
Conditional
End date for an explicit historical range. Use with from_date; cannot be combined with period.
Format:
till_date=2023-12-31 |
| page |
Optional
Page number for paginating through large historical series. Default is 1.
Format:
page=1 |
| limit |
Optional
Maximum records per page. Use with page to iterate through long price histories.
Format:
limit=100 |
curl -X GET "https://data.businessquant.com/quotes?ticker=AAPL&mode=daily&period=1mo&limit=100&api_key=YOUR_API_KEY"
{
"metadata": {
"cik": 320193,
"ticker": "AAPL",
"companyname": "Apple Inc.",
"companyname_short": "Apple",
"from_date": "2023-11-20",
"till_date": "2023-12-20",
"mode": "daily",
"pagination": {
"current_page": 1,
"limit": 100,
"total_records": 22,
"total_pages": 1
}
},
"data": [
{
"date": "2023-12-20 16:00:00",
"open": 196.90,
"high": 197.68,
"low": 194.83,
"close": 194.83,
"volume": 52242815
},
{
"date": "2023-12-19 16:00:00",
"open": 196.16,
"high": 196.95,
"low": 195.89,
"close": 196.94,
"volume": 40714051
},
{
"date": "2023-12-18 16:00:00",
"open": 196.09,
"high": 196.63,
"low": 194.39,
"close": 195.89,
"volume": 55751861
},
{
"date": "2023-12-15 16:00:00",
"open": 197.53,
"high": 198.40,
"low": 197.00,
"close": 197.57,
"volume": 128256749
},
{
"date": "2023-12-14 16:00:00",
"open": 198.02,
"high": 199.62,
"low": 196.16,
"close": 198.11,
"volume": 66831581
}
]
}
2. Architecture: Multi-Ticker & Smart Daily Merging
Two behaviors of this endpoint distinguish it from a standard price feed — multi-ticker dictionary wrapping and automatic live-bar injection in daily mode. Understanding both prevents integration surprises when parsing responses.
1. Multi-Ticker Output Structure
When querying multiple tickers (e.g., ticker=AAPL,MSFT), the API returns a dictionary object keyed by ticker — each containing its own isolated metadata and data blocks. This avoids mixing price series from different companies into a flat array and makes per-ticker access O(1) by key.
{
"AAPL": {
"metadata": { ... },
"data": [ ... ]
},
"MSFT": {
"metadata": { ... },
"data": [ ... ]
}
}
2. Real-Time Interim Merging (Daily Mode)
When fetching daily data during active market hours, the API queries the Interim Real-Time Engine and injects the current live trading bar at index 0 of the data array — merging historical EOD and live data into one continuous stream without a separate endpoint.
Smart EOD Lock-in
If the market has closed but EOD processing hasn't completed, the live bar locks in at 16:00:00. This guarantees you always have the latest daily close without polling a separate real-time endpoint or waiting for batch finalization.
3. Coverage & Data Details
Scope, field definitions, and update cadence for both the historical EOD and intraday 1-minute price series.
Instruments & Markets
Historical EOD and intraday 1-minute prices for US-listed equities and ETFs. Use a valid exchange ticker symbol as the identifier — the same symbol accepted by the Company Profile API and Stock Screener API.
OHLCV Fields
Every record in the data array contains six fields: date (timestamp for the period), open, high, low, close (all in the trading currency), and volume (shares traded during the interval). For EOD records the timestamp resolves to 16:00:00; for intraday minute bars it reflects the bar open time.
Historical Depth
End-of-day price history extends back many years for actively traded large-caps and ETFs — use period=all or set wide explicit dates to retrieve the full available range. Intraday 1-minute bars cover a rolling recent window; use mode=eod or mode=daily for long historical lookbacks and mode=minute-bars for high-frequency recent sessions.
Update Cadence
Intraday bars are refreshed continuously during market hours. The live bar injected by mode=daily reflects the most recent trading activity. EOD records are finalized after market close once official end-of-day processing completes — typically within minutes of the 16:00 ET session close.
Pagination for Long Histories
When pulling multi-year historical series, use limit and page together and iterate using metadata.pagination.total_pages to know when to stop. Each page is guaranteed to be consistent — the total_records count does not change between pages for the same query.
4. Endpoint Variations
Copy any of the requests below directly into your application, replacing YOUR_API_KEY with your credentials.
https://data.businessquant.com/quotes?ticker=AAPL&mode=minute-bars&period=1d&limit=500&api_key=YOUR_API_KEY
https://data.businessquant.com/quotes?ticker=AAPL&mode=eod&period=1mo&limit=100&api_key=YOUR_API_KEY
https://data.businessquant.com/quotes?ticker=AAPL,MSFT&mode=daily&from_date=2020-01-01&till_date=2023-12-31&api_key=YOUR_API_KEY
https://data.businessquant.com/quotes?ticker=AAPL&mode=eod&period=10y&limit=500&page=1&api_key=YOUR_API_KEY