FinViz Stock Screener
Pricing
from $20.00 / 1,000 results
FinViz Stock Screener
Screen US stocks and ETFs from FinViz. Stocks: 68 fields each (valuation, fundamentals, technicals, performance, ownership), 110 with analyst targets, plus optional 10-year financials, revenue breakdown, insiders and top holders. ETFs: ~6,100 funds with expense ratio, AUM and flows.
Pricing
from $20.00 / 1,000 results
Rating
0.0
(0)
Developer
Sheshinmcfly
Maintained by CommunityActor stats
2
Bookmarked
180
Total users
27
Monthly active users
6 days ago
Last modified
Categories
Share
📈 FinViz Stock Screener
Screen the US market and get up to 108 data points per stock — or screen ~6,100 ETFs by expense ratio, assets, fund flows and returns. No API key, no login, no CSV wrangling.
FinViz is the screener traders open every morning. This actor turns any of its screens into clean JSON or CSV: pick a signal (top gainers, unusual volume, oversold…) or a chart pattern (channels, wedges, head & shoulders), narrow by sector, market cap, country or theme, and get back a full fundamental and technical snapshot per ticker — not just the overview row. Switch to ETF mode to screen every US-listed ETF by category, issuer, expense ratio, fund flows, total return or tracked index.
| ⚡ Fast | ~12s for 200 stocks; the full ETF list in about 20s. |
| 📊 Deep | 66 fields from 6 merged FinViz views, plus 42 optional analyst/valuation/growth fields. |
| 🧺 ETF screener | ~6,100 ETFs: expense ratio, AUM, holdings, fund flows (1M/3M/YTD), returns (1/3/5Y). |
| 🎯 26 signals | 9 market screens + 17 chart-pattern scans, all verified to return live data. |
| 📋 Or your own list | Skip the screener entirely and pass a watchlist of stock or ETF tickers. |
| ✅ Complete | Every row is validated before it ships — no half-filled records, no silent gaps. |
| 🔓 No credentials | Nothing to sign up for. Point it at a screener and run. |
What data does it extract?
Core: ticker, company, sector, industry, country, marketCap, price, changePercent, volume, website
Valuation: pe, forwardPe, peg, ps, pb, pc, pfcf, epsThisY, epsNextY, epsPast5Y, epsNext5Y, salesPast5Y
Financial: dividend, roa, roe, roic, currentRatio, quickRatio, debtEq, ltDebtEq, grossMargin, operMargin, profitMargin, earningsDate
Technical: beta, atr, sma20, sma50, sma200, high52w, low52w, rsi, gap, changeFromOpen
Performance: perfWeek, perfMonth, perfQuarter, perfHalf, perfYtd, perfYear, perf3Y, perf5Y, perf10Y, volatilityWeek, volatilityMonth, avgVolume, relVolume
Ownership: sharesOutstanding, float, insiderOwn, insiderTrans (6-month change), instOwn, instTrans (3-month change), shortFloat, shortRatio
Each stock comes as a single record covering FinViz's Overview, Valuation, Financial, Technical, Performance and Ownership data.
Optional: analyst ratings & company data
Turn on Add analyst ratings & company data to append 42 more fields per stock that no screener table exposes:
Analyst coverage: analystRecom (1=Buy … 5=Sell), analystRecomLabel, targetPrice, targetUpsidePercent
Company profile: employees, ipoDate, optionable, shortable, indexMembership, exchange
Growth: epsPast3Y, salesPast3Y, dividendGrowth1Y, dividendGrowth3Y, dividendGrowth5Y
Today's price action: open, dayHigh, dayLow, prevClose, high50d, low50d (distance from the 50-day high/low)
Enterprise valuation: enterpriseValue, evEbitda, evSales, bookPerShare, cashPerShare, income, sales
Dividend detail: dividendEst, dividendTtm, dividendExDate, payoutRatio
Earnings detail: epsTtm, epsNextQ, epsQoQ, salesQoQ, epsYoYTtm, salesYoYTtm, earningsSurprisePercent, salesSurprisePercent. The field epsNextYEstimate is present in the output for compatibility but is not currently populated — FinViz publishes next year's EPS growth rate rather than the dollar estimate, and this actor does not compute a figure and present it as a reported one.
Short interest: shortInterest
It adds no extra time. ETFs and newly listed tickers legitimately lack some of these (no analyst coverage, no employee count, no dividend history), in which case the field comes back null rather than guessed.
Optional: financial history, revenue breakdown, insiders & top holders
Turn on Add financial history, revenue breakdown, insiders & top holders (includeDeepData) to attach, per stock:
| Field | What it holds |
|---|---|
fundamentalsAnnual, fundamentalsQuarterly | Up to 10 years + TTM and 9 quarters of eps (GAAP), salesMillions and sharesOutstandingMillions |
incomeStatement | Latest fiscal years: totalRevenue, grossProfit, operatingIncome, netIncome, researchAndDevelopment, interestExpense, incomeTaxes… (incomeStatementUnit: millions, incomeStatementCurrency) |
revenueByProduct, revenueByRegion, revenueBySegment | Revenue per product line, geography and business segment, by fiscal year |
insiderActivity, insiderNetValue13m | 13 months of insider buying and selling (value and number of transactions) and the net total |
topInstitutionalHolders, topFundHolders | Top 10 investment managers and top 10 funds with their ownership % |
{"ticker": "AAPL","fundamentalsAnnual": [{ "period": "2025", "eps": 7.465, "salesMillions": 416161, "sharesOutstandingMillions": 14773.26 }],"incomeStatement": [{ "period": "2025FY", "totalRevenue": 416161, "grossProfit": 195201, "operatingIncome": 133050, "netIncome": 112010 }],"revenueByProduct": [{ "name": "iPhone", "fiscalYear": "2025", "revenue": 209586000000 }],"insiderNetValue13m": -265820817,"topInstitutionalHolders": [{ "name": "BlackRock, Inc.", "percent": 7.92 }]}
It adds about 7 seconds for 10 stocks and 15 seconds for 40. Not every company publishes every block (many have no segment breakdown), so missing parts come back as empty lists.
ETF screener
Set What to screen to ETFs ("mode": "etfs") to screen ~6,100 US-listed ETFs instead of stocks. Each ETF comes back with:
Fund: ticker, name, category, assetType, tags, trackedIndex, expenseRatio (%), totalHoldings, aum (assets under management, USD), website
Fund flows: netFlows1M, netFlows3M, netFlowsYtd (USD) and the same as % of assets: netFlows1MPercent, netFlows3MPercent, netFlowsYtdPercent
Returns: return1Y, return3Y, return5Y (total return, %)
Market data: price, changePercent, volume, avgVolume, relVolume, dividendYield, perfWeek … perf5Y, sma20, sma50, sma200, rsi, high52w, low52w, beta, atr
ETF values are plain numbers (0.03 means an expense ratio of 0.03%), ready for sorting and math.
Filters (all combine): category, asset type, max expense ratio, fund flows, total return, dividend yield, issuer (e.g. Vanguard, iShares, SPDR), tag (e.g. semiconductors, covered-call, bitcoin, or a stock ticker like NVDA) and tracked index (e.g. S&P 500 Index). Issuer, tag and index are typed as plain text and matched against FinViz's official lists — a name that matches nothing stops the run with suggestions instead of quietly returning every ETF.
Sort by: assets (default), expense ratio, fund flows, 1/3/5-year return, dividend yield, today's % change (top gainers or losers), volume or relative volume.
Available screeners
26 signals, all verified to return live results. Combine as many as you like in one run.
Market signals
| Screener | Description |
|---|---|
ta_topgainers | Stocks with the highest % gain today |
ta_toplosers | Stocks with the highest % loss today |
ta_newhigh | Stocks hitting 52-week highs |
ta_newlow | Stocks hitting 52-week lows |
ta_mostactive | Highest trading volume stocks |
ta_unusualvolume | Stocks with unusual volume spikes |
ta_mostvolatile | Most volatile stocks today |
ta_overbought | Stocks with RSI > 70 |
ta_oversold | Stocks with RSI < 30 |
Chart-pattern scans
FinViz's own technical pattern recognition — screen for setups instead of raw movers.
| Screener | Pattern |
|---|---|
ta_p_channelup / ta_p_channeldown / ta_p_channel | Ascending, descending or horizontal channel |
ta_p_wedgeup / ta_p_wedgedown / ta_p_wedge | Rising, falling or symmetrical wedge |
ta_p_wedgeresistance / ta_p_wedgesupport | Ascending / descending triangle |
ta_p_doubletop / ta_p_doublebottom | Double top / double bottom reversal |
ta_p_multipletop / ta_p_multiplebottom | Multiple top / multiple bottom |
ta_p_headandshoulders / ta_p_headandshouldersinv | Head & shoulders, and its inverse |
ta_p_horizontal | Horizontal support / resistance |
ta_p_tlresistance / ta_p_tlsupport | Trendline resistance / support |
Who uses this, and for what
| Who | What they run it for |
|---|---|
| 📈 Day traders | Catch top movers and unusual volume before the close |
| 🔄 Swing traders | Find overbought/oversold setups for entries and exits |
| 🤖 Algo & bot builders | Feed live fundamentals and technicals into systematic strategies |
| 🧮 Quant researchers | Pull value/momentum/quality factors across a screened universe |
| 📰 Newsletters & finance media | Generate screened tables for daily market commentary |
| 💼 Portfolio managers | Watch holdings hitting 52-week highs, lows or analyst target changes |
| 🎓 Students & educators | Build coursework datasets without paying for a market-data API |
Quick start — copy an input and run
Today's biggest movers (fastest, good first run)
{ "screeners": ["ta_topgainers"], "maxResults": 50 }
Undervalued large-cap tech, with analyst targets
{"screeners": ["ta_mostactive"],"sector": "technology","marketCap": "large","includeQuoteData": true,"maxResults": 100}
Oversold S&P 500 names (mean-reversion candidates)
{ "screeners": ["ta_oversold"], "index": "sp500", "maxResults": 50 }
Breakout setups by chart pattern (ascending triangles and upward channels)
{ "screeners": ["ta_p_wedgeresistance", "ta_p_channelup"], "maxResults": 50 }
Your own watchlist — skip the screener and name the tickers
{ "tickers": ["AAPL", "MSFT", "NVDA", "TSLA"], "includeQuoteData": true }
AI-theme stocks — any FinViz filter code works via customFilters
{ "screeners": ["ta_mostactive"], "customFilters": "theme_artificialintelligence" }
Cheapest corporate-bond ETFs
{ "mode": "etfs", "etfCategory": "bondscorporate", "etfMaxExpense": "u01", "etfSort": "expenseRatio" }
Where the money is going — ETFs with the largest inflows this year
{ "mode": "etfs", "etfSort": "flowsYtd", "maxResults": 50 }
Every Vanguard ETF, or the whole ETF universe
{ "mode": "etfs", "etfSponsor": "Vanguard", "maxResults": 10000 }
Semiconductor ETFs up more than 10% over a year
{ "mode": "etfs", "etfTag": "semiconductors", "etfReturn": "1yo10", "etfSort": "return1Y" }
Run it every morning
A screener is most useful on a schedule. Set one up once and the data is waiting for you before the open:
- Run the actor once with the input you want.
- On the run page, select Actions → Schedule.
- Pick a time — most users go with a weekday run shortly before the market opens.
Common setups:
| What you want | How |
|---|---|
| 🌅 Daily movers before the open | ta_topgainers + ta_toplosers, scheduled on weekdays |
| 👀 Your portfolio, every morning | watchlist mode with your tickers + Add analyst ratings on |
| 📉 Oversold watch | ta_oversold, filtered by sector or market cap |
| 🔔 Pattern scans | any of the 17 chart-pattern screeners, weekly |
| 🧺 ETF fund-flow tracker | ETF mode sorted by fund flows, weekly — see where money moves |
Each run writes to its own dataset, so you build a history you can compare over time, and you can pull any run straight from the API.
How to use
- Open the actor and configure:
- What to screen: Stocks (default) or ETFs
- Screeners: Select one or more technical screener filters (top gainers, oversold, etc.) — stocks only
- Max results: Cap the number of stocks per screener, or of ETFs
- Sector / Industry / Market Cap / Country / Index (optional): narrow the stock universe before screening
- ETF screener section (optional): category, asset type, expense ratio, fund flows, return, dividend yield, issuer, tag, tracked index and sort order
- Custom FinViz filters (advanced, optional): paste any raw FinViz filter code — e.g.
theme_artificialintelligenceto screen by Theme (AI, EV, Crypto, Cloud, etc.), oran_recom_buyfor analyst recommendation. Combines with the filters above.
- Click Start
- Download results as JSON, CSV, or Excel
Input filters reference
| Field | Type | Example | Notes |
|---|---|---|---|
mode | select | stocks | stocks (default) or etfs |
screeners | array | ["ta_topgainers"] | One or more technical screener signals (stocks) |
tickers | array | ["AAPL","MSFT"] | Watchlist mode — fetch these exact symbols (stocks, or ETFs in ETF mode) and ignore the screener/filters |
maxResults | integer | 100 | Stocks: max per screener (up to 500). ETFs: max ETFs (up to the full ~6,100) |
sector | select | technology | 11 FinViz sectors |
industry | text | semiconductors | Any FinViz industry slug |
marketCap | select | large | mega / large / mid / small / micro / nano |
country | select | usa | usa / notusa |
index | select | sp500 | sp500 / ndx / dji / rut |
customFilters | text | theme_artificialintelligence | Advanced — any raw FinViz filter code(s), comma-separated (ETF codes in ETF mode, checked before use) |
includeQuoteData | boolean | false | Append 42 analyst/company/valuation/growth fields (adds ~10s per 100 stocks) |
etfCategory | select | bondscorporate | ETF mode — 34 categories |
etfAssetType | select | equitiesstocks | ETF mode — 28 asset types |
etfMaxExpense | select | u02 | ETF mode — net expense ratio under 0.1% … 1.0% |
etfFundFlows | select | ytdo10 | ETF mode — net flows over/under a % for 1M, 3M, YTD or 1Y |
etfReturn | select | 3yo10 | ETF mode — total return over/under a % for 1, 3, 5, 10 years or since inception |
etfDividendYield | select | o3 | ETF mode — yield threshold |
etfSponsor | text | Vanguard | ETF mode — issuer name |
etfTag | text | covered-call | ETF mode — one theme tag or stock ticker |
etfTrackedIndex | text | Nasdaq 100 Index | ETF mode — index the fund tracks |
etfSort | select | flowsYtd | ETF mode — sort order (default: largest assets first) |
Agent-ready via x402: AI agents can run this actor directly with USDC on Base — no Apify account needed. See x402 protocol docs.
Example output (JSON)
{"screener": "ta_topgainers","ticker": "AAPL","company": "Apple Inc","sector": "Technology","industry": "Consumer Electronics","country": "USA","marketCap": "3.12T","price": 185.42,"changePercent": 5.21,"volume": 52341800,"pe": 32.5,"forwardPe": 28.1,"peg": 2.4,"ps": 8.2,"pb": 45.3,"roe": "147.40%","profitMargin": "25.30%","debtEq": 1.95,"beta": 1.29,"rsi": 58.4,"sma200": "12.30%","perfYear": "40.20%","perfYtd": "18.30%","instOwn": "60.50%","instTrans": "0.25%","shortFloat": "0.65%","website": "http://www.apple.com","url": "https://finviz.com/stock?t=AAPL","extractedAt": "2026-06-11T12:00:00.000Z"}
ETF mode (one row, abridged)
{"screener": "etf","ticker": "VOO","name": "Vanguard S&P 500 ETF","category": "US Equities - Broad Market & Size","assetType": "Equities (Stocks)","trackedIndex": "S&P 500 Index","expenseRatio": 0.03,"totalHoldings": 517,"aum": 1053558099623,"price": 707.52,"dividendYield": 1.05,"netFlowsYtd": 114841576368,"netFlowsYtdPercent": 12.23,"return1Y": 15.24,"return3Y": 23.08,"return5Y": 12.91,"perfYear": 12.3,"url": "https://finviz.com/stock?t=VOO"}
Performance
Measured runs:
| Request | Stocks | Time |
|---|---|---|
| Top gainers, default | 100 | ~6 s |
| 2 screeners × 40, with analyst data | 80 | ~5 s |
| Most volatile, with analyst data | 200 | ~6 s |
| 3 chart-pattern screeners, with analyst data | 177 | ~8 s |
| 10 tickers with financial history & holders | 10 | ~13 s |
| Top gainers 40, analyst data + financial history & holders | 40 | ~20 s |
Analyst & company data adds no time; financial history & holders adds a few seconds per 10 stocks.
ETF mode: filtered runs and up to 1,000 ETFs typically finish in under 10 seconds; the full list of ~6,100 ETFs in about 20 seconds.
Times vary run to run depending on live site conditions. Every result you receive is complete and validated — no partial or silently-missing fields.
Pricing
Pay-per-event: $20.00 per 1,000 results ($0.02 per stock or ETF returned) + $0.00005 per Actor start. Extracting 100 stocks costs approximately $2.00 USD. Set Max results to control spend — you are only charged for rows actually returned.
Related actors
- SEC EDGAR Scraper — company filings, Form 4 insider trades, XBRL financials and 13F fund holdings.
- Dividend & ETF Scraper — full dividend history and ETF holdings, expense ratio and yield by ticker.
- Financial Calendar Scraper — earnings, dividends, splits and IPO calendars from Nasdaq.
- Zacks Rank Stock Scraper — Zacks Rank (1-5 rating) plus a full quote snapshot for any US stock ticker.
- Yahoo Finance Scraper — quotes, financial statements, options with greeks, ETF holdings and news by ticker.
- StockTwits Scraper — retail sentiment scores, messages and trending tickers.
- Etherscan Top Holders — top token holders and balances on Ethereum.
- Numbeo Cost of Living Scraper — cost-of-living and economic indicators by city and country.
- Portal Inmobiliario Scraper — real-estate listings with prices and details.
- Congressional Stock Trades Scraper — every House member stock trade disclosed under the STOCK Act, with disclosure-delay signals.
FAQ
Do I need a FinViz account or API key? No. This actor extracts publicly available screener data — no login, subscription, or API key required.
Which screeners can I scrape? 26 stock screeners — 9 market signals (top gainers, top losers, new highs, new lows, most active, unusual volume, most volatile, overbought, oversold) and 17 chart-pattern scans — plus the ETF screener. Select one or more per run.
Can it screen ETFs? Yes. Set What to screen to ETFs to get ~6,100 US-listed ETFs with expense ratio, assets under management, holdings count, fund flows and 1/3/5-year returns, filtered by category, issuer, tag, tracked index and more, and sorted however you like.
How fresh is the data? It reflects FinViz at the moment of the run — effectively real-time intraday market data.
Can I extract more than 100 stocks? Yes. Each screener signal holds up to 200 stocks and you get all of them with Max results 200; a ticker list can hold up to 1,000 symbols; ETF mode goes up to the full list. You are only charged for rows actually returned — never for repeats.
Do I need proxies? No setup needed — keep the default proxy settings.
What export formats are available? JSON, CSV, and Excel — download from the run's dataset or pull via the Apify API.
Keywords
finviz stock screener, stock market scraper, top gainers losers, unusual volume stocks, stock screener data, day trading scanner, market movers, NYSE NASDAQ stocks, overbought oversold stocks, finviz scraper, etf screener, etf data, etf expense ratio, etf fund flows, etf list
Changelog
- v1.9 (2026-10-29) — Much faster, new financial history option, and no more repeated rows. A 100-stock run now takes about 6 seconds instead of ~50, and analyst & company data no longer adds time. New option Add financial history, revenue breakdown, insiders & top holders: 10 years and 9 quarters of EPS, sales and shares outstanding, income statements, revenue by product/region/segment, 13 months of insider activity and the top 10 institutional and fund holders. Ticker lists now accept up to 1,000 symbols. Fixed: asking for more stocks than a screener holds could return some stocks twice — every stock now appears once per screener. All existing fields keep exactly the same format.
- v1.8 (2026-10-27) — New ETF screener, and 16 more fields per stock. Set What to screen to ETFs to screen ~6,100 US-listed ETFs by category, asset type, issuer, expense ratio, fund flows, total return, dividend yield, tag or tracked index — with expense ratio, assets under management, holdings count, fund flows (1M/3M/YTD) and 1/3/5-year returns per fund; the full list takes about 20 seconds. Every stock now also includes its website, change from the open, and insider and institutional transactions; with Add analyst ratings & company data on you additionally get exchange, 3-year EPS and sales growth, 1/3/5-year dividend growth, today's open/high/low, previous close and distance from the 50-day high/low. All existing fields keep exactly the same format. The README now states the actual price per result ($0.02), which has not changed.
- v1.7 (2026-10-25) — Adapted to FinViz's redesigned website. FinViz rolled out a new site in October, and runs started during the rollout could finish without returning stocks. Results are back to full coverage — all screener views plus the optional analyst and company data — and every field keeps exactly the format earlier versions published, so existing integrations need no changes. The
urlfield now points to FinViz's new stock page address. - v1.6 (2026-10-06) — Analyst and company data now arrives on every stock, and far faster. With Add analyst ratings & company data turned on, a 200-stock request previously returned those extra fields for only part of the list on a bad run; it now covers the whole list and takes about a quarter as long. A full 500-result request with the extra data finished in 73 seconds in testing, down from 241. Dates and the dividend fields keep exactly the format earlier versions published. One field,
epsNextYEstimate, is no longer populated — see Earnings detail above for why. - v1.5 (2026-10-05) — Complete screener data on large requests, and faster. Requests for several hundred results now return every screener field for every stock — previously a handful of rows could come back missing their valuation, financial, performance or ownership figures. The largest requests also finish in roughly half the time. No change to pricing or to the fields you get.
- v1.4 (2026-08-18) — Analyst coverage and company data, plus watchlist mode. Turn on Add analyst ratings & company data to append 30 fields no screener table carries: analyst consensus and mean target price, enterprise value and EV/EBITDA, employees, IPO date, short interest, earnings-surprise history and the full dividend block — up to 92 fields per stock. You can also skip the screener entirely and pass your own list of tickers. Screener presets went from 9 to 26, adding 17 chart-pattern scans (channels, wedges, triangles, double tops and bottoms, head & shoulders, trendlines).
- v1.3 (2026-07-09) — Reliability + speed improvements: fixed an issue where requests for more than ~20 results could return fewer items than requested. Larger requests (100+ results) are now both significantly faster and guaranteed complete.
- v1.2 (2026-07-09) — New pre-filters: narrow the universe by Sector, Industry, Market Cap, Country, or Theme (Artificial Intelligence, Cloud Computing, Electric Vehicles, Cybersecurity, Robotics, Semiconductors — a filter no other FinViz actor offers) before running a screener — plus an advanced "Custom FinViz filters" field to use any FinViz filter code directly. Same ~60-field output, same price.
- v1.1 (2026-06-11) — Much richer data: each stock now includes ~50 fields — valuation ratios (Forward P/E, PEG, P/S, P/B), financial fundamentals (ROE, ROA, margins, debt), technicals (Beta, RSI, SMA20/50/200), performance (week → year) and ownership (institutional, insider, short float) — merged from FinViz's six screener views into one record, at the same low price.
- v1.0.20 (2026-06-01) — Reliability improvements, at no extra cost to you.
- v1.0.18 (2026-05-26) — Added a data-quality report at the end of each run; code cleanup and faster item counting.
- v1.0 — Initial release: 9 technical screeners, real-time market data, JSON/CSV/Excel export.