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 RapidAPI

Real-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&region=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