Discover/Barchart API
live

Barchart APIbarchart.com

Access Barchart market data via API: stock quotes, options chains with Greeks, gamma exposure, historical OHLCV, top stocks by weighted alpha, and futures prices.

Endpoint health
verified 7d ago
get_options_chain
get_gamma_exposure
get_top_stocks
get_stock_quotes
get_historical_data
6/6 passing latest checkself-healing
Endpoints
6
Updated
21d ago

What is the Barchart API?

The Barchart API exposes 6 endpoints covering equities, options, and futures market data from Barchart.com. You can retrieve real-time stock quotes with price change and percent change fields, full options chains including Greeks and open interest via get_options_chain, gamma exposure grouped by strike price, daily and 5-minute OHLCV history, ranked top stocks by weighted alpha, and full futures contract ladders for roots like CL, GC, and ES.

Try it
Comma-separated list of stock or ETF symbols (e.g. 'AAPL,MSFT,SPY')
api.parse.bot/scraper/1cda4487-4915-4e6a-b0de-627d66a03c5a/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/1cda4487-4915-4e6a-b0de-627d66a03c5a/get_stock_quotes?symbols=AAPL%2CMSFT' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace barchart-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Barchart Market Data SDK — bounded, re-runnable; every call capped."""
from parse_apis.barchart_market_data_api import Barchart, Interval, SymbolNotFound

client = Barchart()

# Fetch real-time quotes for a basket of symbols.
for quote in client.quotes.list(symbols="AAPL,MSFT,SPY", limit=5):
    print(quote.symbol, quote.symbol_name, quote.last_price, quote.price_change)

# Top-performing stocks ranked by weighted alpha.
top = client.quotes.top(limit=3).first()
if top:
    print(top.symbol, top.symbol_name, top.weighted_alpha, top.percent_change_1y)

# Drill into a single stock: options chain and price history.
aapl = client.stock("AAPL")

for option in aapl.options(limit=3):
    print(option.symbol, option.strike_price, option.delta, option.volume)

for candle in aapl.history(interval=Interval.DAILY, max_records=5, limit=5):
    print(candle.date, candle.open, candle.high, candle.low, candle.close)

# Gamma exposure — non-paginated, returns a single structured object.
gamma = aapl.gamma_exposure()
print(gamma.count, gamma.total)

# Futures contracts for a commodity root symbol.
try:
    gold = client.futures.get(root_symbol="GC")
    print(gold.root_symbol, gold.total_contracts)
    for contract in gold.contracts[:3]:
        print(contract.symbol, contract.contract_name, contract.last_price)
except SymbolNotFound as exc:
    print(f"symbol not found: {exc.symbol}")

print("exercised: quotes.list / quotes.top / stock.options / stock.history / stock.gamma_exposure / futures.get")
All endpoints · 6 totalmissing one? ·

Get current quotes for a list of stock symbols. Returns real-time price data including last price, price change, percent change, and symbol metadata. Accepts up to ~25 symbols per call. Each quote includes both formatted display strings and raw numeric values.

Input
ParamTypeDescription
symbolsrequiredstringComma-separated list of stock or ETF symbols (e.g. 'AAPL,MSFT,SPY')
Response
{
  "type": "object",
  "fields": {
    "data": "array of quote objects with symbol, symbolName, lastPrice, priceChange, percentChange, symbolCode, symbolType, and raw numeric values",
    "count": "integer total items returned",
    "total": "integer total items available"
  },
  "sample": {
    "data": {
      "data": [
        {
          "raw": {
            "symbol": "AAPL",
            "lastPrice": 291.58,
            "symbolCode": "STK",
            "symbolName": "Apple Inc",
            "symbolType": 1,
            "priceChange": 1.03,
            "percentChange": 0.0035
          },
          "symbol": "AAPL",
          "lastPrice": "291.58",
          "symbolCode": "STK",
          "symbolName": "Apple Inc",
          "symbolType": 1,
          "priceChange": "+1.03",
          "percentChange": "+0.35%"
        },
        {
          "raw": {
            "symbol": "MSFT",
            "lastPrice": 397.36,
            "symbolCode": "STK",
            "symbolName": "Microsoft Corp",
            "symbolType": 1,
            "priceChange": -6.05,
            "percentChange": -0.015
          },
          "symbol": "MSFT",
          "lastPrice": "397.36",
          "symbolCode": "STK",
          "symbolName": "Microsoft Corp",
          "symbolType": 1,
          "priceChange": "-6.05",
          "percentChange": "-1.50%"
        }
      ],
      "count": 2,
      "total": 2
    },
    "status": "success"
  }
}

About the Barchart API

Quotes, Options, and Greeks

The get_stock_quotes endpoint accepts a comma-separated symbols parameter (e.g. AAPL,MSFT,SPY) and returns per-symbol objects containing lastPrice, priceChange, percentChange, symbolName, symbolCode, and symbolType. The response also includes count and total integers for pagination awareness. The get_options_chain endpoint takes a required symbol and an optional expiration date in YYYY-MM-DD format; omitting the date defaults to the nearest available expiration. Each contract in the returned array includes strikePrice, expirationDate, bidPrice, askPrice, volume, openInterest, and symbolType distinguishing calls from puts.

Gamma Exposure and Historical Data

get_gamma_exposure returns a nested structure keyed by strike price, where each key maps to an array of option contracts carrying gamma, delta, openInterest, lastPrice, and symbolType. This layout makes it straightforward to aggregate net gamma across strikes. The get_historical_data endpoint supports both daily and 5min intervals via the interval parameter and a max_records cap. Each OHLCV candle object includes date, open, high, low, close, and volume as strings. The symbol field accepts standard equity tickers as well as futures notation like GC*0 for front-month Gold.

Top Stocks and Futures

get_top_stocks requires no input and returns a ranked list of equities sorted by weightedAlpha, alongside percentChange1y for year-over-year context. The get_futures_prices endpoint takes a required root_symbol (e.g. CL, GC, ES) and an optional timeframe. Each contract in the contracts array includes contractName, lastPrice, priceChange, percentChange, settlementPrice, volume, openInterest, and high/low prices. The response also returns the cleaned rootSymbol string and a totalContracts count.

Reliability & maintenanceVerified

The Barchart API is a managed, monitored endpoint for barchart.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when barchart.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official barchart.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
7d ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a multi-symbol watchlist dashboard using get_stock_quotes with live lastPrice and percentChange fields
  • Construct options flow scanners by pulling full chains via get_options_chain and filtering by volume or openInterest
  • Visualize net gamma exposure by strike for SPY or AAPL using get_gamma_exposure delta and gamma fields
  • Backtest trading strategies by loading daily or 5-minute OHLCV series from get_historical_data with a max_records limit
  • Screen for momentum stocks by ranking weightedAlpha and percentChange1y data from get_top_stocks
  • Track full futures contract ladders for crude oil or gold using get_futures_prices with roots like CL or GC
  • Monitor settlement prices and open interest shifts across futures expirations using the settlementPrice and openInterest fields
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Barchart have an official developer API?+
Yes. Barchart operates an official market data platform called Barchart OnDemand, documented at https://www.barchart.com/ondemand/api. It requires a commercial agreement and API key. This Parse API provides access to a subset of Barchart data without requiring a separate OnDemand contract.
What does `get_options_chain` return, and how do I target a specific expiration?+
It returns an array of option contracts for the given symbol, each with strikePrice, expirationDate, bidPrice, askPrice, volume, openInterest, and symbolType (call or put). Pass a date string in YYYY-MM-DD format as the expiration parameter to target a specific expiration. Omitting it defaults to the nearest available date.
Does the historical data endpoint support intraday intervals other than 5 minutes?+
Currently, get_historical_data supports daily and 5min as the two available interval values. Other intraday resolutions such as 1-minute or hourly bars are not exposed. You can fork this API on Parse and revise it to add endpoints for additional intervals if your use case requires them.
Does the API cover earnings estimates, analyst ratings, or fundamental data for stocks?+
Not currently. The endpoints cover quotes, options chains, gamma exposure, historical OHLCV, top stocks by weighted alpha, and futures prices. Fundamental fields like EPS estimates or analyst price targets are not included. You can fork this API on Parse and revise it to add an endpoint targeting that data.
How fresh is the quote data returned by `get_stock_quotes`?+
The get_stock_quotes endpoint returns current quote data reflecting Barchart's live feed, but Barchart's own display rules apply delays (typically 15–20 minutes for non-subscribers on US equities). Real-time values depend on the data entitlements associated with the underlying source. The response fields lastPrice, priceChange, and percentChange reflect whatever the current feed provides.
Page content last updated . Spec covers 6 endpoints from barchart.com.
Related APIs in FinanceSee all →
chartink.com API
Access real-time and historical stock market data from Indian exchanges (NSE/BSE) to analyze fundamentals, technical indicators, and OHLCV metrics, plus run custom stock screeners to find investment opportunities. Search for specific stocks and browse all listed symbols to build data-driven trading strategies and investment research.
nasdaq.com API
Track real-time and historical stock prices, ETF and mutual fund quotes, cryptocurrency data, and comprehensive company financials including earnings, dividends, and SEC filings all from one source. Research market trends with institutional holdings, short interest data, retail trading activity, and market movers to make informed investment decisions.
optioncharts.io API
Access real-time options trading data including full option chains, strike prices, expiration dates, and market flow analytics for any ticker symbol. Analyze trending options, get detailed ticker overviews, and monitor the most active options to make informed trading decisions.
yahoofinance.com API
Access live stock quotes, historical price data, company profiles, and financial news for any ticker symbol. Supports real-time market data, OHLCV history across configurable intervals, detailed company fundamentals, and news aggregation across global exchanges.
bloomberg.com API
Track stock indices, commodities, currencies, and bonds in real-time, while monitoring market movers and staying updated with the latest financial news. Get comprehensive Bloomberg market data to make informed investment decisions across multiple asset classes.
benzinga.com API
Access real-time stock quotes, company fundamentals, financial news, and analyst ratings all in one place to make informed investment decisions. Track market movements and research companies with up-to-date pricing, ratings, and news coverage.
stockanalysis.com API
Access comprehensive stock market data including real-time financials, income statements, statistics, and IPO calendars to research individual stocks and identify market movers. Search stocks, view detailed overviews, and monitor premarket activity all in structured, easy-to-use format.
alphavantage.co API
Track stock prices, forex rates, and cryptocurrency values with real-time and historical market data, while accessing company financials, earnings reports, and technical indicators. Search tickers, monitor economic indicators, analyze news sentiment, and get global quotes all in one place.