ESC to close

Stock Quotes (Prices)

Access high-quality End-of-Day (EOD) historical pricing and intraday minute-by-minute bar data. Query single or multiple tickers simultaneously with custom lookback periods and dynamic pagination.

GET https://data.businessquant.com/quotes?ticker={ticker}&mode={mode}&api_key={api_key}

Supported Data Modes

The API supports three distinct resolution modes to power everything from long-term backtesting to live-market dashboards:

  • daily (Dynamic Daily): The default. Returns historical End-of-Day data, but seamlessly merges the latest ongoing live quote at the very top during active market hours.
  • eod (Strictly End of Day): Returns only fully completed, historical daily closes. No live market data is appended.
  • minute-bars (Intraday): High-resolution, 1-minute interval quotes for granular intraday charting and analysis.

Parameters

The Quotes endpoint uses URL query parameters to define the target securities, the data resolution, and the time horizon. It supports querying multiple tickers in a single request for optimized data fetching.

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.
Format: ticker=AAPL,MSFT
mode
Optional
The resolution of the pricing data. Valid options are daily (default), eod, or minute-bars.
Format: mode=daily
period
Conditional
Lookback period to fetch data relative to today. Valid determinants are d (days), w (weeks), mo (months), and y (years).
Format: period=1mo
from_date
Conditional
Start date for a custom range. Must be in YYYY-MM-DD format.
Format: from_date=2023-01-01
till_date
Conditional
End date for a custom range. Must be in YYYY-MM-DD format.
Format: till_date=2023-12-31
page
Optional
The page number for pagination. Default is 1.
Format: page=1
limit
Optional
The maximum number of records to return per page.
Format: limit=100
Example cURL Request (Single Ticker)
curl -X GET "https://data.businessquant.com/quotes?ticker=AAPL&mode=daily&period=1mo&limit=100&api_key=YOUR_API_KEY"
Sample Response (Single Ticker)
{
    "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
        }
    ]
}

Architecture: Multi-Ticker Payload & Real-Time Merging

The Quotes endpoint is uniquely designed to optimize bulk data fetching and provide the freshest data possible. Here is how the API handles complex requests:

1. Multi-Ticker Output Wrapping:

When you query multiple tickers simultaneously (e.g., ticker=AAPL,MSFT), the API intelligently avoids mixing the data. Instead of a flat array, it returns a Dictionary Object where the exact ticker strings act as the parent keys, each containing its own isolated metadata and data blocks.

Multi-Ticker Dictionary Structure
{
  "AAPL": {
    "metadata": { ... },
    "data": [ ... ]
  },
  "MSFT": {
    "metadata": { ... },
    "data": [ ... ]
  }
}

2. Real-Time Interim Merging (Daily Mode):

When fetching daily data while the market is actively open, waiting for End-of-Day processing isn't viable. The API automatically queries our Interim Real-Time Engine and dynamically injects the current live trading bar at the very top of your data array (Index 0), seamlessly merging historical and live data into one continuous stream.

Smart Behavior

If the market has closed but EOD processing hasn't finished, the API will update the live bar to lock in at 16:00:00. This guarantees you always have the latest daily close without needing a separate endpoint.

Endpoint Variations

Below are the distinct ways to format your request for high-frequency or custom time-series data.

1. Fetch Intraday (Minute-Bars) Data
https://data.businessquant.com/quotes?ticker=AAPL&mode=minute-bars&period=1d&limit=500&api_key=YOUR_API_KEY
2. Fetch Strictly Historical EOD (No Live Data)
https://data.businessquant.com/quotes?ticker=AAPL&mode=eod&period=1mo&limit=100&api_key=YOUR_API_KEY
3. Fetch Custom Date Range (Multi-Ticker)
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