Barchart Scraper avatar

Barchart Scraper

Pricing

from $0.045 / financial news

Go to Apify Store
Barchart Scraper

Barchart Scraper

Run one Barchart snapshot for financial news, stock and ETF quotes, unusual options activity, options chains, or ticker option flow. Get structured rows with news details, quote fields, contract terms, trade context, and coverage.

Pricing

from $0.045 / financial news

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

📊 Barchart snapshots for market research

Investors, analysts, market researchers, and developers can run one Barchart snapshot at a time. Get structured rows for financial news, stock and ETF quotes, unusual options activity, options chains, or ticker option flow. Use the rows to review news, compare quotes, and study contract and trade data.

Try these tasks

🧾 Barchart snapshot types

Each run writes structured dataset rows for the snapshot type you choose. Financial news rows include story details and links. Stock and ETF quote rows include price, change, volume, and valuation fields when Barchart supplies them. Options rows include contract terms, prices, activity data, and trade context. Coverage fields show available and returned counts, filters, and whether the snapshot stopped early.

First saved match

If the same source item matches more than one submitted value, the Actor saves the first eligible match and ignores later matches. For a financial news row, symbol is the first submitted symbol that found the story.

▶️ Run a Barchart snapshot

Run steps

  1. Choose one target: Financial news, Stock and ETF quotes, Unusual options activity, Options chain, or Ticker option flow.
  2. Add Symbols for the symbol-based targets. Unusual options activity scans the market and ignores Symbols.
  3. Add an expiration or activity filter when you need one.
  4. Set Actor Work Limit to stop after a chosen number of records, or leave it empty to return all available results until the source is exhausted.
  5. Start the run and open the defaultDataset URL from the run output.

⚙️ Input

Input fields

FieldTypeWhat it does
targetstringSelects one snapshot type for the run.
assetClassstringFor Unusual options activity, selects stocks, ETFs, indices, or all. Other snapshot types ignore it.
expirationdate stringFor Options chain, selects one calendar date. Leave it empty to include all available expirations. Other snapshot types ignore it.
symbolsarray of stringsProvides one or more security symbols for Financial news, Stock and ETF quotes, Options chain, or Ticker option flow. Unusual options activity scans the market and ignores this field.
optionTypestringFor Unusual options activity, Options chain, or Ticker option flow, selects calls, puts, or both. Financial news and Stock and ETF quotes ignore it.
minVolumeintegerFor Unusual options activity or Options chain, keeps option records with at least this many contracts traded. Leave it empty for no volume threshold. Other snapshot types ignore it.
minPremiumnumberFor Unusual options activity or Options chain, keeps option records with at least this premium. Leave it empty for no premium threshold. Other snapshot types ignore it.
minVolumeOpenInterestRationumberFor Unusual options activity or Options chain, keeps option records with at least this volume-to-open-interest ratio. Leave it empty for no ratio threshold. Other snapshot types ignore it.
maxItemsintegerStops after this many records for any snapshot type. Leave it empty to return all available results until the source is exhausted.

Default input

The hosted default input for a successful QA run is:

{
"assetClass": "all",
"optionType": "both"
}

Choose target for every run. Add symbols for a symbol-based snapshot. Fields that do not apply to the selected snapshot type are ignored.

🧾 Output

Run output

FieldTypeWhat it does
defaultDatasetstringURL for the rows saved in the default dataset.

Each dataset row has a recordType value for its snapshot shape. The coverage object shows how many matching records were available, how many were returned, which filters were applied, and whether the run stopped before the source was exhausted.

Financial news rows

FieldTypeWhat it does
recordTypestringAlways financialNews for this shape.
symbolstringFirst submitted symbol that found this story.
storyIdstringStable Barchart ID for the story.
headlinestringHeadline of the financial news story.
publishedAtdate-time stringTime when Barchart published the story.
providerstringProvider that supplied the story.
summarystringShort story summary when Barchart supplies one.
sourceUrlstringSource page for the story.
shareUrlstringBarchart page used to share the story.
retrievedAtdate-time stringTime when this row was retrieved.
coverage.availableCountintegerMatching stories available when the snapshot was read.
coverage.returnedCountintegerMatching stories returned in this run.
coverage.truncatedbooleanTrue when the run stopped before all available stories were returned.
coverage.appliedFilters.targetstringSnapshot type used for this run.
coverage.appliedFilters.symbolsstring[]Submitted symbols used for this snapshot.
coverage.appliedFilters.assetClassstringAsset class setting recorded for this snapshot.
coverage.appliedFilters.optionTypestringOption type setting recorded for this snapshot.

Example financial news row

{
"recordType": "financialNews",
"symbol": "AAPL",
"storyId": "4340050",
"headline": "Apple Was Always 1 Step Behind in AI. In Chipmaking, It’s Now 1 Step Ahead.",
"publishedAt": "2026-08-29T20:30:02.000Z",
"provider": "Barchart",
"sourceUrl": "https://barchartjson.websol.barchart.com/?module=jsonBCNews&storyid=4340050",
"shareUrl": "https://www.barchart.com/share/news/4340050",
"retrievedAt": "2026-08-30T08:15:36.606Z",
"summary": "Apple beat rivals to a 2nm chip with the M6, betting AI's future runs on your device rather than the cloud.",
"coverage": {
"availableCount": 5,
"returnedCount": 1,
"truncated": false,
"appliedFilters": {
"target": "financial-news",
"symbols": [
"AAPL"
],
"assetClass": "all",
"optionType": "both"
}
}
}

Stock and ETF quote rows

FieldTypeWhat it does
recordTypestringAlways stockEtfQuote for this shape.
symbolstringSecurity symbol for the quote.
assetClassstringUnderlying group, such as stocks or ETFs.
namestringName of the stock or ETF.
exchangestringExchange where the stock or ETF is listed.
lastPricenumberLatest quoted price.
priceChangenumberChange from the prior quote.
priceChangePercentnumberPercent change from the prior quote.
volumeintegerNumber of shares traded.
averageVolumeintegerAverage number of shares traded.
marketCapnumberMarket capitalization.
peRationumberPrice-to-earnings ratio.
priceToBooknumberPrice-to-book ratio.
priceToSalesnumberPrice-to-sales ratio.
dividendRatenumberYearly dividend amount per share.
dividendYieldnumberDividend yield.
tradeTimedate-time stringTime of the quote.
sourceUrlstringDirect source quote page.
coverage.availableCountintegerMatching quotes available when the snapshot was read.
coverage.returnedCountintegerMatching quotes returned in this run.
coverage.truncatedbooleanTrue when the run stopped before all available quotes were returned.
coverage.appliedFilters.targetstringSnapshot type used for this run.
coverage.appliedFilters.symbolsstring[]Submitted symbols used for this snapshot.
coverage.appliedFilters.assetClassstringAsset class setting recorded for this snapshot.
coverage.appliedFilters.optionTypestringOption type setting recorded for this snapshot.

Example stock and ETF quote row

{
"recordType": "stockEtfQuote",
"symbol": "AAPL",
"assetClass": "stocks",
"name": "Apple Inc",
"exchange": "NASDAQ",
"lastPrice": 319.7,
"priceChange": 5.12,
"priceChangePercent": 0.0163,
"volume": 38649398,
"tradeTime": "2026-08-28T22:55:00.000Z",
"sourceUrl": "https://www.barchart.com/stocks/quotes/AAPL/overview",
"averageVolume": 43058270,
"marketCap": 4665759360000,
"peRatio": 36.54,
"priceToBook": 42.700001,
"priceToSales": 11.03187,
"dividendRate": 1.08,
"dividendYield": 0.0034,
"coverage": {
"availableCount": 1,
"returnedCount": 1,
"truncated": false,
"appliedFilters": {
"target": "stock-etf-quote",
"symbols": [
"AAPL"
],
"assetClass": "all",
"optionType": "both"
}
}
}

Unusual options activity rows

FieldTypeWhat it does
recordTypestringAlways unusualOptionsActivity for this shape.
symbolstringSecurity symbol for the activity.
assetClassstringUnderlying group: stocks, ETFs, or indices.
contractSymbolstringStable symbol for the option contract.
expirationDatedate stringDate when the contract expires.
strikePricenumberPrice at which the option can be exercised.
optionTypestringCall or put.
bidnumberCurrent bid price.
asknumberCurrent ask price.
lastPricenumberLatest quoted or traded price.
volumeintegerNumber of option contracts traded.
openInterestintegerNumber of open option contracts.
premiumnumberTotal premium value tied to the activity.
volumeOpenInterestRationumberVolume divided by open interest.
impliedVolatilitynumberImplied volatility value.
weightedVolatilitynumberWeighted volatility value.
deltanumberOption delta reported by Barchart.
moneynessstringIn-the-money, at-the-money, or out-of-the-money state.
underlyingPricenumberLatest price of the underlying security.
sentimentstringOption sentiment when Barchart provides it.
retrievedAtdate-time stringTime when this row was retrieved.
coverage.availableCountintegerMatching contracts available when the snapshot was read.
coverage.returnedCountintegerContracts returned in this run.
coverage.truncatedbooleanTrue when the run stopped before all available contracts were returned.
coverage.appliedFilters.targetstringSnapshot type used for this run.
coverage.appliedFilters.assetClassstringAsset class filter used for this snapshot.
coverage.appliedFilters.optionTypestringCall, put, or both setting used for this snapshot.
coverage.appliedFilters.minVolumeintegerMinimum volume filter used for this snapshot.
coverage.appliedFilters.minPremiumnumberMinimum premium filter used for this snapshot.
coverage.appliedFilters.minVolumeOpenInterestRationumberMinimum volume-to-open-interest ratio filter used for this snapshot.

Options chain rows

FieldTypeWhat it does
recordTypestringAlways optionsChain for this shape.
symbolstringSecurity symbol for the contract.
assetClassstringUnderlying group: stocks, ETFs, or indices.
contractSymbolstringStable symbol for the option contract.
expirationDatedate stringDate when the contract expires.
strikePricenumberPrice at which the option can be exercised.
optionTypestringCall or put.
bidnumberCurrent bid price.
asknumberCurrent ask price.
lastPricenumberLatest quoted or traded price.
volumeintegerNumber of option contracts traded.
openInterestintegerNumber of open option contracts.
premiumnumberTotal premium value tied to the contract.
volumeOpenInterestRationumberVolume divided by open interest.
impliedVolatilitynumberImplied volatility value.
weightedVolatilitynumberWeighted volatility value.
deltanumberOption delta reported by Barchart.
moneynessstringIn-the-money, at-the-money, or out-of-the-money state.
underlyingPricenumberLatest price of the underlying security.
sentimentstringOption sentiment when Barchart provides it.
retrievedAtdate-time stringTime when this row was retrieved.
coverage.availableCountintegerMatching contracts available when the snapshot was read.
coverage.returnedCountintegerContracts returned in this run.
coverage.truncatedbooleanTrue when the run stopped before all available contracts were returned.
coverage.appliedFilters.targetstringSnapshot type used for this run.
coverage.appliedFilters.symbolsstring[]Submitted symbols used for this snapshot.
coverage.appliedFilters.assetClassstringAsset class setting recorded for this snapshot.
coverage.appliedFilters.optionTypestringCall, put, or both setting used for this snapshot.
coverage.appliedFilters.expirationDatedate stringOptional expiration filter used for this snapshot.
coverage.appliedFilters.minVolumeintegerMinimum volume filter used for this snapshot.
coverage.appliedFilters.minPremiumnumberMinimum premium filter used for this snapshot.
coverage.appliedFilters.minVolumeOpenInterestRationumberMinimum volume-to-open-interest ratio filter used for this snapshot.

Ticker option-flow rows

FieldTypeWhat it does
recordTypestringAlways tickerOptionFlow for this shape.
symbolstringSecurity symbol for the trade.
assetClassstringUnderlying group: stocks, ETFs, or indices.
contractSymbolstringStable symbol for the option contract.
expirationDatedate stringDate when the contract expires.
strikePricenumberPrice at which the option can be exercised.
optionTypestringCall or put.
tradePricenumberPrice of the option-flow trade.
bidnumberBid price at the trade time.
asknumberAsk price at the trade time.
volumeintegerNumber of option contracts traded.
openInterestintegerNumber of open option contracts.
premiumnumberTotal premium value tied to the trade.
tradeTimedate-time stringTime of the option-flow trade.
tradeConditionCodesstring[]Source codes that describe the trade.
underlyingPricenumberLatest price of the security behind the option.
underlyingChangenumberPrice change of the security behind the option.
underlyingChangePercentnumberPercent change of the security behind the option.
deltanumberOption delta when Barchart provides it.
sentimentstringOption sentiment when Barchart provides it.
retrievedAtdate-time stringTime when this row was retrieved.
coverage.availableCountintegerMatching trades available when the snapshot was read.
coverage.returnedCountintegerTrades returned in this run.
coverage.truncatedbooleanTrue when the run stopped before all available trades were returned.
coverage.appliedFilters.targetstringSnapshot type used for this run.
coverage.appliedFilters.symbolsstring[]Submitted symbols used for this snapshot.
coverage.appliedFilters.assetClassstringAsset class setting recorded for this snapshot.
coverage.appliedFilters.optionTypestringCall, put, or both setting used for this snapshot.

💳 Pricing

How charges work

Pricing is per snapshot event, not per returned row. Check the pricing panel for the current tier and price.

Snapshot typeBuyer-facing eventPrice
Financial newsFinancial news$0.045
Stock and ETF quotesStock/ETF quote$0.0045 to $0.0027 by tier
Unusual options activityUnusual activity$1.35
Options chainOptions chain$1.35
Ticker option flowOption flow$1.35

🔌 Integrations

Dataset access

Open the defaultDataset URL after a run, export the structured rows as JSON, CSV, or another supported dataset format, or read them through the Apify API. Use the dataset rows in your review or code workflow.

❓ FAQ

Can I get stock and ETF quotes from this Actor?

Yes. Choose Stock and ETF quotes, then add one or more symbols. Quote rows include price, change, volume, trade time, source URL, and available valuation or dividend fields.

How do I scan unusual options activity?

Choose Unusual options activity and select an asset class. You can also choose calls, puts, or both and set volume, premium, or volume-to-open-interest-ratio filters. Symbols are ignored for this market-wide scan.

What happens when I leave Actor Work Limit empty?

The Actor returns all available results until the source is exhausted. A set limit can stop the run earlier, and coverage.truncated shows when it stopped before all available results were returned.

What if I need more than one snapshot type?

Choose one target per run. Start another run for a different snapshot type.

How can I tell if a snapshot was complete?

Check coverage.availableCount, coverage.returnedCount, coverage.truncated, and coverage.appliedFilters in the dataset rows.

What happens if the same story matches more than one symbol?

The Actor saves the first eligible match and ignores later matches. For a financial news row, symbol shows the first submitted symbol that found the story.

Why can a field be missing?

Barchart may not supply every optional field for every result. The Actor leaves unavailable source values out instead of making them up.

Is the quote data exchange real time?

Quote timing follows Barchart's available public feed, which can be delayed. This Actor does not promise exchange-real-time data.

Do I need Barchart credentials or an API key?

No. The Actor does not ask for buyer-supplied Barchart login credentials or API keys. It reads publicly reachable Barchart data.

Does this provide historical backfills or trading advice?

No. Each run is a point-in-time snapshot. The Actor returns source data for analysis and does not give investment advice or place trades.

Does this replace a stock screener?

No. This Actor focuses on Barchart financial news, stock and ETF quotes, and options snapshots, not a general stock screener.

📝 Changelog

0.1: Stock and ETF quote snapshots

  • Add stock and ETF quote snapshots with price, change, volume, valuation, and dividend details, alongside improved option snapshot filtering.

v0.0

  • Pull financial news and market-wide or symbol-specific options snapshots from Barchart, including unusual options activity, options chains, stock options flow, and unusual call activity, with structured dataset output for analysis.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré