Schwab Market Data API

Overview

Access financial data from Schwab API for real-time stock quotes and historical prices.

Authentication

Token Status: Authorized ✓

Access Token: Present
Refresh Token: Present
Last Refreshed: 3/10/2026, 9:01:04 PM

⚠️ Important: Schwab API requires re-authentication every 7 days as refresh tokens expire after this period. You'll need to re-authorize when tokens expire.

Re-Authorize with Schwab Clear Tokens & Force Re-Authorization

Available Endpoints

Stock Quotes

GET /quote?symbols=AAPL,MSFT,GOOGL

ParameterDescriptionValues
symbolsComma-separated list of symbols (required)Stock symbols (e.g., AAPL, AAPL,MSFT,GOOGL)
Also supports: indices ($DJI, $SPX), options, futures (/ESH26), forex (EUR/USD)
fieldsFilter response data by root nodesquote, fundamental, reference, extended, regular, all (default: all)
indicativeInclude indicative quotes for ETF symbolstrue, false (default: false)

Returns: Current price, bid/ask, change, volume, and other trading metrics.

Example Requests

Apple (AAPL) Microsoft (MSFT) Multiple Stocks AAPL (quote & reference) Indices ($DJI, $SPX) SPY with Indicative

Price History

GET /pricehistory?symbol=AAPL&periodType=year&period=1&frequencyType=daily

Get historical Open, High, Low, Close, and Volume for a given frequency (aggregation).

ParameterDescriptionValues
symbolStock symbol (required)Any valid equity symbol (e.g., AAPL, MSFT)
periodTypeChart period typeday, month, year, ytd
periodNumber of periodsBy periodType:
• day: 1, 2, 3, 4, 5, 10 (default: 10)
• month: 1, 2, 3, 6 (default: 1)
• year: 1, 2, 3, 5, 10, 15, 20 (default: 1)
• ytd: 1 (default: 1)
frequencyTypeTime frequency typeBy periodType:
• day: minute (default: minute)
• month: daily, weekly (default: weekly)
• year: daily, weekly, monthly (default: monthly)
• ytd: daily, weekly (default: weekly)
frequencyTime frequency durationBy frequencyType:
• minute: 1, 5, 10, 15, 30
• daily: 1
• weekly: 1
• monthly: 1
(default: 1)
startDateStart date (EPOCH ms)Integer timestamp (e.g., 1451624400000). If not specified: (endDate - period) excluding weekends/holidays
endDateEnd date (EPOCH ms)Integer timestamp (default: market close of previous business day)
needExtendedHoursDataInclude extended hours datatrue, false
needPreviousCloseInclude previous close price/datetrue, false

Returns: Candle data with open, high, low, close, volume, and datetime (EPOCH ms).

Example Requests

5-Day (5min) 10-Day (1min) 1-Day (30min) 3-Month Daily 6-Month Weekly 1-Year Weekly 5-Year Monthly Year-to-Date Daily 1-Year + Previous Close 5-Day Extended Hours

Market Movers

GET /movers/$DJI?sort=PERCENT_CHANGE_UP&frequency=0

Get top 10 securities movement for a specific index.

ParameterDescriptionValues
symbol_id (path)Index Symbol (required)$DJI, $COMPX, $SPX, NYSE, NASDAQ, OTCBB, INDEX_ALL, EQUITY_ALL, OPTION_ALL, OPTION_PUT, OPTION_CALL
sortSort by attributeVOLUME, TRADES, PERCENT_CHANGE_UP, PERCENT_CHANGE_DOWN
frequencyTime frequency (minutes)0, 1, 5, 10, 30, 60 (default: 0)

Returns: List of screeners with change, description, direction, last price, symbol, and volume.

Example Requests

Dow Jones NASDAQ Composite S&P 500 $DJI by Volume $DJI Gainers $DJI Losers

Market Hours

GET /markets?markets=equity,option

Get market hours for different markets (equity, option, bond, future, forex).

ParameterDescriptionValues
marketsComma-separated list of markets (required)equity, option, bond, future, forex
dateDate for market hoursFormat: YYYY-MM-DD (default: current day, max: 1 year from today)

Returns: Market hours including pre-market, regular market, and post-market sessions with open/close times.

Example Requests

Equity Hours Option Hours Equity & Option All Markets