· 15 min read
Finviz Stock Screener Scraper: Up to 1,000 Free Results a Month (2026)
Each record from this stock screener carries 23 fields, including ticker, industry, average daily volume, short float, analyst recommendation, and five separate performance periods. A thousand results costs $5.00 on Apify's free plan, making it highly economical to build custom equity screens. This data collector is built for quantitative researchers, portfolio managers, and analysts who need fundamental or technical filters but want to avoid writing complex browser automation. It is not for teams who require real-time tick-by-tick order book updates, which are not published in these records.
Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 1,000 results at $0.005 each before platform usage. Open Finviz Stock Screener Scraper on Apify and run the prefilled example.
How reliable is Finviz Stock Screener Scraper in production?
Across the last 30 days of public runs on the Apify platform, Finviz Stock Screener Scraper recorded 63 runs with the following outcomes.
| Outcome | Runs | Share |
|---|---|---|
| Succeeded | 28 | 44.4% |
| Failed | 0 | 0.0% |
| Aborted by the user | 35 | 55.6% |
| Timed out | 0 | 0.0% |
| Total | 63 | 100.0% |
No run failed or timed out in the last 30 days; the 35 that did not finish were stopped by the people who started them. Keep a retry and an alert on scheduled runs all the same: a clean month is a record, not a guarantee.
What does it cost to run Finviz Stock Screener 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 |
Worked example: collecting 10,000 results costs $50.00 in result charges before run-start fees and platform usage. No run failed or timed out in the last 30 days, so the list price is a fair budget; keep a retry in place all the same.
The number of results written to your dataset is the primary cost driver, meaning you can directly control your bill by adjusting the maxItems parameter. Activating includeExtendedMetrics enriches your rows with forty-five extra fundamental and valuation fields but does not increase your per-record charge. For a first run, the example input caps maxItems at 10, ensuring you can validate the integration for at most $0.05.
How do you run Finviz Stock Screener Scraper from the API?
The schema marks 2 of its 88 controls as required: mode, proxyConfiguration. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Finviz Stock Screener Scraper, so the request works once your token is in place.
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~finviz-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"screener","ticker":"AAPL","sector":"Technology","maxItems":10,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "screener",
"ticker": "AAPL",
"sector": "Technology",
"maxItems": 10,
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}
run = client.actor("crawlerbros~finviz-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 = {
"mode": "screener",
"ticker": "AAPL",
"sector": "Technology",
"maxItems": 10,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}
const run = await client.actor('crawlerbros~finviz-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.
Which Finviz Stock Screener Scraper inputs matter, and which can you skip?
The input schema exposes 88 controls, but only 2 of them are required to initiate a scraping run: the mode and the proxy configuration. Most developers can leave advanced options like dividendGrowthFilter or patternFilter blank for their initial queries. The mode selector is the critical switch, determining whether you retrieve broader screener cohorts or a comprehensive snapshot for a specific ticker symbol.
mode(string): What to scrape. Default:"screener".proxyConfiguration(object): Finviz blocks Apify's datacenter IPs, so Apify Proxy (residential) is used by default to reliably fetch pages. Default:{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}.ticker(string): Stock ticker symbol (e.g. AAPL, TSLA). Required for modes stockOverview and newsForTicker.sector(string): Filter by market sector (screener mode). Default:"".maxItems(integer): Maximum number of records to return. Default:50.exchange(string): Filter by stock exchange (screener mode). Default:"".industry(string): Filter by specific industry sub-classification (screener mode). More granular than Sector. Default:"".index(string): Filter by stock market index membership (screener mode). Default:"".signal(string): Screen by a technical/fundamental event signal instead of (or in addition to) the filters above (screener mode). Default:"".marketCap(string): Filter by market capitalization range. Default:"".country(string): Filter by country of incorporation (screener mode). Default:"".priceFilter(string): Filter by share price range (screener mode). Default:"".
The other 76 controls, with their defaults, are listed in the input schema on Finviz Stock Screener Scraper on Apify.
Fixed-choice controls: mode accepts screener (Stock Screener - filter and list stocks), stockOverview (detailed data for one ticker), newsForTicker (latest news articles for a stock), insiderTrading (latest market-wide insider transactions), groupPerformance (sector/industry/country/market-cap aggregate stats); exchange accepts "" (Any exchange), AMEX, CBOE, NASDAQ, NYSE; sector accepts 12 values (default ""), including Technology, "" (Any sector), Basic Materials, Communication Services; industry accepts 152 values (default ""), including "" (Any industry), stocksonly (ex-Funds), stocksonlyspac (Stocks only (ex-Funds & Shell Companies)), exchangetradedfund (Exchange Traded Fund); index accepts "" (Any index), sp500 (S&P 500), ndx (NASDAQ 100), dji (DJIA), rut (Russell 2000); signal accepts 34 values (default ""), including "" (None (all stocks)), ta_topgainers (Top Gainers), ta_toplosers (Top Losers), ta_newhigh (New High); marketCap accepts "" (Any market cap), mega ($200B+), large ($10B - $200B), mid ($2B - $10B), small ($300M - $2B), micro ($50M - $300M), nano (Under $50M); country accepts 63 values (default ""), including "" (Any country), Argentina, Asia, Australia; priceFilter accepts 40 values (default ""), including "" (Any price), u1 (Under $1), u2 (Under $2), u3 (Under $3).
What does Finviz Stock Screener Scraper return?
The output datasets cleanly segregate fields according to your chosen execution mode. Screener records provide standardized lines of stock data, whereas ticker overview runs supply a comprehensive snapshot containing up to 80 financial variables. The scraped data is ideal for building custom quantitative dashboards, though it conspicuously excludes real-time market-depth metrics.
Output: per stock (mode = screener)
ticker,companysector,industry,countrymarketCap,peRatio,price,change,volumeavgVolume,float,short,analystperformanceWeek,performanceMonth,performanceQuarter,performanceYear,performanceYTDearningsDatefinvizUrl- link to the stock's Finviz pagerecordType: "stock",scrapedAt
Output: per article (mode = newsForTicker)
tickerheadlinesourceurlpublishedAtrecordType: "news",scrapedAt
Output: per transaction (mode = insiderTrading)
ticker,finvizUrlcompanyowner- name of the insiderrelationship- e.g. CEO, Director, 10% OwnertransactionDatetransactionType- Buy / Sale / Option ExercisecostPerSharesharesvaluesharesTotal- post-transaction holdingsecFormUrl- link to the official SEC filingsecFormFiledAtrecordType: "insiderTrading",scrapedAt
Output: per group (mode = groupPerformance)
groupName,groupBy,viewstocksCount- Fields present depend on the chosen
groupView: recordType: "groupPerformance",scrapedAt
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 Finviz Stock Screener 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.
- Set the mode control to screener to fetch a filtered list of equities, or switch it to stockOverview to pull detailed metrics for a single company.
- For ticker-specific operations, input a valid symbol into the ticker control, leaving it blank if you are running a wider market screen.
- Decide whether to toggle includeExtendedMetrics to true to enrich each row with forty-five extra fields, keeping in mind that this increases the volume of page requests.
- Set the maxItems limit to a low number like 10 on your first run to stay within the recommended limit and inspect the output schema.
- Configure proxyConfiguration to use residential proxies, which is necessary because the target platform blocks standard datacenter IPs.
- Initiate the execution and inspect the run logs in the Apify Console to verify that the crawler is operating correctly.
- Open the resulting dataset and check that fields like ticker and price are populated with valid data before scheduling larger runs.
How do you apply it? Three worked playbooks
These are Finviz Stock Screener Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Investment research
Outcome: Build custom screens combining valuation, growth, ownership, and technical criteria
Configure: Set mode to "screener", marketCap to "large", peFilter to "low", roeFilter to "verypos", and maxItems to 50.
Working method: Execute the run to isolate high-return, low-multiple businesses. Download the dataset as a JSON file and verify that the return on equity for each stock is above thirty percent. Compare the trailing P/E ratios across the resulting cohort to find the most discounted opportunities.
Deliverable: A structured spreadsheet of large-cap stocks matching specific value and quality parameters.
Stop condition: The execution returns zero items because the combination of filters is mathematically impossible for the current market.
Use case 2: Portfolio monitoring
Outcome: Track live performance and technical metrics for a watchlist
Configure: Set mode to "stockOverview", ticker to "AAPL", and proxyConfiguration to use residential proxies.
Working method: Execute the run for your target symbol to fetch its complete financial profile. Inspect the technical markers in the output, specifically tracking the proximity of the current price to the fifty-day simple moving average. Repeat this process for other tickers in your portfolio to update your monitoring database.
Deliverable: A comprehensive fundamental profile record containing eighty plus technical and valuation fields for your watchlist ticker.
Stop condition: The returned record does not contain the price or change field, indicating a structural page layout change on the source site.
Use case 3: Quantitative screening
Outcome: Feed screener output into algorithmic trading or backtesting pipelines
Configure: Set mode to "screener", signal to "ta_topgainers", includeExtendedMetrics to true, and maxItems to 100.
Working method: Launch the scraper to grab the day's top momentum stocks along with forty-five extra technical indicators. Read the dataset programmatically via Apify's API and parse the RSI and Average True Range values. Pipe these variables directly into your backtesting model to assess momentum persistence.
Deliverable: A highly enriched data payload of high-momentum stocks equipped with advanced volatility and trend indicators.
Stop condition: The scraper fails to return the extended indicators such as atr or rsi because includeExtendedMetrics was accidentally disabled.
What breaks, and how do you design around it?
- Over the last 30 days, 0.0% of public runs failed and 0.0% timed out. Build retries and alerting around those rates rather than assuming every run completes.
The scraper relies on publicly visible web data and cannot bypass the standard 15-minute quote delay enforced by the target site. If your strategy requires historical end-of-day price bars, you should combine this tool with a specialized historical quote scraper. To avoid running into pagination limits on huge screens, subdivide your requests by granular industry sub-classifications.
When should you not use Finviz Stock Screener Scraper?
Do not use this scraper if you must have instantaneous, real-time tick data for high-frequency execution, as the source website only displays delayed quotes. If your database requires real-time-delayed quotes specifically from Barchart, use Barchart Stock Quotes Scraper instead. For strategies dependent on Morningstar's proprietary analytical data or mutual fund profiles, select Morningstar Scraper. If you need deep historical price bars, dividend payment histories, or stock splits, US Stock Price Scraper is the correct choice. Finally, do not try to adapt this equity-focused collector for cryptocurrency trading; use CryptoCompare Market Data Scraper to download digital asset metrics.
What should you check before trusting the output?
- Verify that the ticker field is populated with the correct uppercase symbol and is never null.
- Confirm that the scrapedAt field contains a valid ISO timestamp to ensure you can trace when the metrics were retrieved.
- Check that the recordType field exists and exactly matches the chosen operation, such as stockOverview or insiderTrading.
- Validate that high-interest metrics like shortRatio are numerical and are omitted entirely if the source does not publish them, rather than returning placeholder text.
- Monitor the dataset for empty rows and verify that at least ticker and company fields are present on every record.
None of this proves a record is correct. It gives a scheduled Finviz Stock Screener Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
How much does it cost to scrape 10,000 stock rows?
Scraping 10,000 stock rows costs $50.00 in result charges on the free tier, which is billed at $5.00 per 1,000 results. If you are on a paid Apify plan, you will pay less per result. Please note that Apify also bills the platform computing usage consumed by the run on top of these raw result charges.
Is this scraper reliable enough for automated daily monitoring?
Yes. The platform telemetry shows high execution stability with 0 failed runs and 0 timeouts over the last 30 days. To ensure your automated scheduled runs never trigger security blocks, you must use the prefilled residential proxy configuration.
Why does this scraper require residential proxies?
The source website blocks standard datacenter IP ranges to protect its public web services. Apify's residential proxies route your scraper traffic through legitimate residential connection networks, allowing you to load screener tables and ticker profiles without triggering CAPTCHAs.
What metrics are added when enabling includeExtendedMetrics?
The standard screener mode returns 23 fields including basic identifiers and prices. Turning on includeExtendedMetrics crawls additional tables, adding forty-five extra fields like debt-to-equity ratios, return on assets, long-term EPS growth estimates, and five-year performance figures to each row.
Can I fetch international stock data using this tool?
No. This tool only covers US-listed equities and ETFs traded on the NYSE, NASDAQ, AMEX, and CBOE exchanges as published on the target platform. For international listings or alternative assets, you must use other specialized scrapers.
Where to go next
When you are ready to run it, open Finviz Stock Screener Scraper on Apify; the free plan covers up to 1,000 results a month.
Start with the Finviz Stock Screener Scraper Actor page for the current input schema, pricing tier, and run history.
Other Actors we maintain for related data:
- 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.
- 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.
- CryptoCompare Market Data Scraper: Scrape live and historical cryptocurrency market data from CryptoCompare - top coins by market cap/volume, historical OHLCV price series, exchange rankings, and coin metadata.
- US Stock Price Scraper: Download historical stock price data (OHLCV) for US stocks, ETFs, and indices from Yahoo Finance.
Related guides:
- Barchart Stock Quotes Scraper: 22 Data Fields per Record (2026)
- Zacks Stock & Mutual Fund Rank Scraper: $5.00 per 1,000 Results (2026)
- Morningstar Scraper: $5.00 per 1,000 results (2026)
- CoinPaprika Scraper: Up to 1,000 Free Results a Month (2026)
- CryptoCompare Market Data Scraper: Up to 1,000 Free Results a Month
- East Money Scraper: 48 Data Fields, Up to 1,000 Free Results/Month
- SGX Company Announcements Scraper: 19 Data Fields per Record (2026)
- Zillow Market Trends Scraper: 3 Practical Use Cases
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-06.
Actor last updated by its maintainers on 2026-08-10.
Run outcome figures cover the 30 day public window ending 2026-10-06.
Featured actors
Finviz Stock Screener Scraper
Scrape Finviz stock screener - filter stocks by exchange, sector, industry, market cap, P/E ratio, and 50+ other criteria. Get overview data and news for specific tickers.
Run on Apify ↗