Stock price API for live quotes and price history
These examples use Yahoo Finance Turbo, a Yahoo Finance data API on RapidAPI. One endpoint returns the current price for up to 20 tickers. Another returns historical OHLCV bars for one ticker.
Get a key on RapidAPIReal-time stock price for up to 20 tickers
GET /market/v2/get-quotes takes a comma-separated symbols list. Each result carries the last price, the day’s change, volume, the 52-week range and market cap.
curl --request GET \
--url 'https://yahoo-finance-turbo.p.rapidapi.com/market/v2/get-quotes?region=US&symbols=AAPL,MSFT,NVDA' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: yahoo-finance-turbo.p.rapidapi.com'import requests
HEADERS = {
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
"X-RapidAPI-Host": "yahoo-finance-turbo.p.rapidapi.com",
}
resp = requests.get(
"https://yahoo-finance-turbo.p.rapidapi.com/market/v2/get-quotes",
params={"region": "US", "symbols": "AAPL,MSFT,NVDA"},
headers=HEADERS,
timeout=30,
)
resp.raise_for_status()
for q in resp.json()["quoteResponse"]["result"]:
print(q["symbol"], q["regularMarketPrice"], q["regularMarketChangePercent"])const url = new URL('https://yahoo-finance-turbo.p.rapidapi.com/market/v2/get-quotes');
url.search = new URLSearchParams({ region: 'US', symbols: 'AAPL,MSFT,NVDA' });
const res = await fetch(url, {
headers: {
'X-RapidAPI-Key': process.env.RAPIDAPI_KEY,
'X-RapidAPI-Host': 'yahoo-finance-turbo.p.rapidapi.com',
},
});
const { quoteResponse } = await res.json();
for (const q of quoteResponse.result) console.log(q.symbol, q.regularMarketPrice);Part of a real response for AAPL, recorded 2026-10-27. regularMarketTime is a Unix timestamp in seconds.
{
"quoteResponse": {
"result": [
{
"symbol": "AAPL",
"shortName": "Apple Inc.",
"currency": "USD",
"fullExchangeName": "NasdaqGS",
"regularMarketPrice": 343.91,
"regularMarketChange": -3.815,
"regularMarketChangePercent": -1.09713,
"regularMarketVolume": 42263954,
"regularMarketTime": 1793044801,
"fiftyTwoWeekRange": "243.42 - 351.73",
"marketCap": 5019084521472
}
],
"error": null
}
}Historical stock prices
GET /stock/v3/get-chart returns open, high, low, close and volume for one ticker. Set the bar size with interval and the window with range.
curl --request GET \
--url 'https://yahoo-finance-turbo.p.rapidapi.com/stock/v3/get-chart?symbol=AAPL&interval=1d&range=1mo®ion=US' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: yahoo-finance-turbo.p.rapidapi.com'import requests
resp = requests.get(
"https://yahoo-finance-turbo.p.rapidapi.com/stock/v3/get-chart",
params={"symbol": "AAPL", "interval": "1d", "range": "1mo", "region": "US"},
headers={
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
"X-RapidAPI-Host": "yahoo-finance-turbo.p.rapidapi.com",
},
timeout=30,
)
resp.raise_for_status()
print(resp.json())const url = new URL('https://yahoo-finance-turbo.p.rapidapi.com/stock/v3/get-chart');
url.search = new URLSearchParams({ symbol: 'AAPL', interval: '1d', range: '1mo', region: 'US' });
const res = await fetch(url, {
headers: {
'X-RapidAPI-Key': process.env.RAPIDAPI_KEY,
'X-RapidAPI-Host': 'yahoo-finance-turbo.p.rapidapi.com',
},
});
console.log(await res.json());Errors and stale data
An invalid parameter returns HTTP 400 with an error naming the parameter. If the upstream source fails, you get the last good response with the header x-data-stale: true.
Fundamentals, options, holders, screeners and news are covered by the other endpoints listed on the Yahoo Finance API page.
Get Yahoo Finance Turbo on RapidAPI