Skip to content
    ↑↓ to choose · Enter to open

    · 11 min read

    Barchart Stock Quotes Scraper: 22 Data Fields per Record (2026)

    By CrawlerBros Engineering Team

    Each record carries 22 output fields, including last price, price change, volume, market cap, and dividend yield. Pass any list of stock or ETF tickers to retrieve current valuation ratios and trading metrics directly from Barchart.com. Quotes are fetched via a standard, publicly-accessible browser session without requiring an account or API key. The free-plan price is $5.00 per 1,000 results, and the Actor can be tried free using Apify's monthly platform allowance. This tool is built for analysts and dashboard builders tracking equities and ETFs; it is not for high-frequency trading systems requiring zero-latency streaming or tick-level order book records.

    Try it: open Barchart Stock Quotes Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try Barchart Stock Quotes Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Barchart Stock Quotes Scraper a month, before run-start charges and platform usage.

    The example request further down caps maxItems at 100, so a first run returns at most 100 results and costs at most $0.50 in result charges. That is enough to see the real shape of the data before deciding anything.

    Barchart Stock Quotes Scraper was last updated on 2026-08-05. It is one of 1,725 Actors CrawlerBros publishes on Apify, which together have 680,173 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run Barchart Stock Quotes Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    The symbols array directly dictates run cost because result charges apply to each record written to the dataset. Setting maxItems establishes a safety ceiling between 1 and 500 to prevent accidental overages. To validate field coverage cheaply before spending, test with a single-ticker array like ["AAPL"] capped at 1 item.

    How do you run Barchart Stock Quotes Scraper from the API?

    The schema marks 1 of its 2 controls as required: symbols. Every value in the payload below comes from the published schema's own prefills, which means you can paste it, swap the token, and get a real result.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~barchart-quotes-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"symbols":["AAPL","MSFT","TSLA"],"maxItems":100}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "symbols": [
        "AAPL",
        "MSFT",
        "TSLA"
      ],
      "maxItems": 100
    }
    
    run = client.actor("crawlerbros~barchart-quotes-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "symbols": [
        "AAPL",
        "MSFT",
        "TSLA"
      ],
      "maxItems": 100
    }
    
    const run = await client.actor('crawlerbros~barchart-quotes-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    That endpoint blocks until the run completes. Fine while you are testing a handful of records, risky once a run takes minutes: a dropped connection loses the response even though the run itself finished. Switch to an asynchronous start with polling or a webhook before you schedule anything.

    Which Barchart Stock Quotes Scraper inputs matter, and which can you skip?

    The symbols control is the single required input, accepting an array of ticker strings such as AAPL, MSFT, or SPY. The only optional control is maxItems, which defaults to 100 and caps emitted records up to 500. Leave maxItems at its default on initial runs and focus strictly on passing clean, comma-separated ticker strings.

    • symbols (array): Stock/ETF ticker symbols to fetch quotes for, e.g. AAPL, MSFT, SPY.
    • maxItems (integer): Hard cap on emitted records (also capped by the number of symbols provided). Default: 100.

    What does Barchart Stock Quotes Scraper return?

    Output items provide a clean snapshot of end-of-day or delayed equity metrics, covering valuation multiples, volume stats, and dividend rates alongside the source quoteUrl. Empty fields are omitted, and unresolvable tickers output distinct error records with error: "invalidSymbol". The Actor does not return historical price series, corporate actions histories, or intraday tick logs.

    • symbol, symbolName, exchange
    • lastPrice, priceChange, percentChange
    • volume, averageVolume20d
    • marketCap, peRatio, eps
    • dividendYieldPercent, dividendRate
    • tradeTime - exchange-local time of the last trade
    • quoteUrl - direct Barchart quote page URL
    • recordType: "quote", scrapedAt
    • symbol, error: "invalidSymbol", errorMessage, quoteUrl, recordType: "invalidSymbol"

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open Barchart Stock Quotes Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Run the Actor once with symbols set to ["AAPL"] and maxItems left at 100.
    2. Inspect the dataset item to ensure recordType is "quote" and fields like lastPrice, volume, and tradeTime are populated.
    3. Supply your target ticker list to the symbols control, keeping the count at or below the maxItems limit of 500.
    4. Verify the output records against your input list, isolating any items where recordType is "invalidSymbol".
    5. Inspect the errorMessage and symbol fields on any returned error records to correct typos in your source watchlist.
    6. Schedule periodic runs via Apify tasks to refresh metrics like peRatio and dividendYieldPercent on your target cadence.

    How do you apply it? Three worked playbooks

    These are Barchart Stock Quotes Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Portfolio monitoring

    Outcome: Pull live price/change for a watchlist of stocks and ETFs on a schedule

    Configure: Set symbols to ["AAPL", "MSFT", "SPY", "QQQ"] and maxItems to 100.

    Working method: Execute an initial run with your core equity and ETF tickers to establish a baseline snapshot. Schedule recurring runs across market hours, comparing priceChange and percentChange against previous dataset items.

    Deliverable: A structured dataset of recurring price and change records tracking your specific portfolio symbols over time.

    Stop condition: The dataset returns recordType "invalidSymbol" for tickers that are actively listed, signaling an unresolved ticker identifier.

    Use case 2: Trading dashboards

    Outcome: Feed volume, P/E, and dividend data into an internal dashboard

    Configure: Set symbols to ["SPY", "VOO", "VTI", "NVDA", "AMZN"] and maxItems to 100.

    Working method: Direct the Actor run into a fresh Apify dataset post-market close. Extract volume, averageVolume20d, peRatio, eps, and dividendYieldPercent to refresh dashboard metric cards.

    Deliverable: A daily JSON or CSV export containing trading volumes, valuation multiples, and dividend yields ready for dashboard ingestion.

    Stop condition: Output records consistently return omitted or null values for volume and peRatio on standard US equities.

    Use case 3: Screening & research

    Outcome: Batch-fetch fundamentals for a basket of tickers before deeper analysis

    Configure: Set symbols to an array of up to 500 candidate tickers and maxItems to 500.

    Working method: Populate symbols with an entire sector list or candidate universe. Filter dataset results by marketCap, peRatio, and eps to isolate stocks matching your quantitative thresholds before conducting qualitative research.

    Deliverable: A consolidated fundamentals table containing current valuation metrics and market capitalizations for up to 500 symbols.

    Stop condition: The number of emitted records stops short of the provided symbols count without corresponding typed error records.

    What breaks, and how do you design around it?

    Hard output caps restrict a single run to at most 500 records via maxItems. When tracking watchlists larger than 500 symbols, partition your ticker universe across multiple scheduled runs. For tickers returning recordType "invalidSymbol", inspect the symbol spelling against Barchart.com's URL slugs to rectify ticker naming discrepancies.

    When should you not use Barchart Stock Quotes Scraper?

    Do not use this Actor if you require historical tick-level data, open-high-low-close bars, or corporate split history. Barchart's public quote feed is real-time-delayed, commonly by 15 to 20 minutes for US equities, making it unsuitable for automated real-time trade execution. When you need deep historical price bars across custom timeframes, use US Stock Price Scraper to download historical OHLCV data from Yahoo Finance. If your workflow requires comprehensive multi-criteria equity screening across sector and industry filters rather than querying known symbols, run Finviz Stock Screener Scraper instead.

    What should you check before trusting the output?

    • Check that recordType equals "quote" rather than "invalidSymbol" across expected valid tickers.
    • Confirm lastPrice is present and non-null on every record marked with recordType "quote".
    • Halt downstream ingestion if more than 5% of queried symbols yield error: "invalidSymbol".
    • Verify tradeTime reflects a timestamp consistent with exchange operating hours rather than an empty string.
    • Check that volume and averageVolume20d parse as positive integers for active equities.

    None of this proves a record is correct. It gives a scheduled Barchart Stock Quotes Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    What is the cost of running Barchart Stock Quotes Scraper?

    Each result costs $0.005, which is $5.00 per 1000 results on the free plan. The run-start charge applies to every run that starts, whether or not it returns results, and result charges apply only to results written to the dataset. Apify's free plan includes $5.00 of monthly prepaid platform usage and requires no credit card, covering up to 1000 results before run-start charges.

    How are unresolvable or invalid tickers handled?

    Unresolvable symbols are returned as typed error records instead of being silently dropped. The resulting dataset item contains symbol, error: "invalidSymbol", errorMessage, quoteUrl, and recordType: "invalidSymbol". This allows downstream data pipelines to identify invalid inputs without suffering missing rows.

    How delayed are the stock quotes from Barchart.com?

    Barchart's public quote feed is real-time-delayed (typically by exchange-mandated delay windows, commonly 15-20 minutes for US equities). The Actor returns the tradeTime field reflecting the exchange-local time of the last trade recorded by Barchart.com.

    Can I fetch more than 500 quotes in one execution?

    No. The maxItems input control enforces a hard cap between 1 and 500 emitted records per run. To collect quotes for a universe larger than 500 symbols, divide your ticker list into distinct batches and execute separate runs.

    Do I need a paid Barchart subscription or API key?

    No Barchart account, subscription, or API key is required. Quotes are fetched via a standard, publicly-accessible browser session, bootstrapping a public CSRF session cookie the same way a browser does without accessing a paywall.

    Where to go next

    When you are ready to run it, open Barchart Stock Quotes Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the Barchart Stock Quotes Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    • Investing.com Quotes Scraper: Scrape real-time quote data from Investing.com - stocks, indices, currency pairs, commodities, crypto, and ETFs.
    • Morningstar Scraper: Scrape Morningstar - stock and ETF quotes with intraday and yearly price data, market cap, volume, pre/post-market prices, plus top gainers/losers/actives.
    • Finviz Stock Screener Scraper: Scrape Finviz stock screener - filter stocks by exchange, sector, industry, market cap, P/E ratio, and 50+ other criteria.
    • US Stock Price Scraper: Download historical stock price data (OHLCV) for US stocks, ETFs, and indices from Yahoo Finance.

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-26.

    • Actor last updated by its maintainers on 2026-08-05.

    • Run outcome figures cover the 30 day public window ending 2026-09-26.

    • Barchart Stock Quotes Scraper on Apify

    Featured actors

    Barchart Stock Quotes Scraper

    Fetch real-time-delayed stock/ETF quotes from Barchart.com by ticker symbol - last price, change, percent change, volume, market cap, P/E ratio, EPS, dividend yield, and more. No login required.

    Run on Apify ↗