Options Data for US Stocks: End-of-Day and Historical Learn more

Bulk for Live OHLCV Stock Prices API (US Exchanges Only)

This is the bulk mode of the Live OHLCV Stock Prices API. With the ex=US parameter, a single request returns the latest live OHLCV values for every ticker listed on US exchanges, instead of quoting one symbol at a time.

Scope at a glance. Coverage: US exchanges only (NYSE and NASDAQ). One ex=US request returns all US-listed tickers in a single response, currently around 18,000 rows. The ticker in the path is only a placeholder and is ignored when ex=US is set, so any US ticker works. The default response format is CSV; add fmt=json for JSON.

Quick Start

Call the Live (Real-Time) endpoint with ex=US. The path ticker is a placeholder, so AAPL.US below can be any US ticker:

GET https://eodhd.com/api/real-time/AAPL.US?ex=US

Parameters

api_token string required
Your EODHD API token
ex enum optional
Aggregates all US exchanges into a single bulk response. Allowed value: US
fmt enum optional
Response format. Allowed values: csv, json (Default: csv)

Request Example

https://eodhd.com/api/real-time/AAPL.US?ex=US&api_token=demo&fmt=json
(Sign up for free to get an API token)
curl --location "https://eodhd.com/api/real-time/AAPL.US?ex=US&api_token=demo&fmt=json"
(Sign up for free to get an API token)
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/real-time/AAPL.US?ex=US&api_token=demo&fmt=json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$data = curl_exec($curl);
curl_close($curl);

try {
    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
    var_dump($data);
} catch (Exception $e) {
    echo 'Error. '.$e->getMessage();
}
(Sign up for free to get an API token)
import requests

url = f'https://eodhd.com/api/real-time/AAPL.US?ex=US&api_token=demo&fmt=json'
data = requests.get(url).json()

print(data)
(Sign up for free to get an API token)
library(httr)
library(jsonlite)

url <- 'https://eodhd.com/api/real-time/AAPL.US?ex=US&api_token=demo&fmt=json'
response <- GET(url)

if (http_type(response) == "application/json") {
    content <- content(response, "text", encoding = "UTF-8")
    cat(content)
} else {
    cat("Error while receiving data\n")
}
(Sign up for free to get an API token)
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Response Example

JSON returns an array with one object per US-listed ticker (around 18,000 rows):

[
  {
    "code": "A.US",
    "timestamp": 1784059800,
    "gmtoffset": 0,
    "open": 133.93,
    "high": 135.8,
    "low": 132.89,
    "close": 135.2,
    "volume": 1683225,
    "previousClose": 134.04,
    "change": 1.16,
    "change_p": 0.87
  },
  {
    "code": "AAPL.US",
    "timestamp": 1784060820,
    "gmtoffset": 0,
    "open": 313.76,
    "high": 316.19,
    "low": 311.91,
    "close": 314.86,
    "volume": 34509408,
    "previousClose": 317.31,
    "change": -2.45,
    "change_p": -0.7721
  }
]

Response Fields

FieldTypeDescription
codestringTicker code, for example AAPL.US
timestampintegerQuote time as a Unix timestamp, seconds
gmtoffsetintegerOffset from GMT in seconds
opennumberOpening price of the session
highnumberSession high
lownumberSession low
closenumberLatest price
volumeintegerTraded volume
previousClosenumberPrevious session close
changenumberChange versus previous close, price units
change_pnumberChange versus previous close, percent

Sign up & Get Data

Each ex=US request consumes 100 API calls, compared with 1 call for a single-symbol quote. Poll it deliberately rather than in a tight loop.

Compare plans and find your fit
Free and paid plans for individual and commercial use
Go to Pricing
Chat