Finviz Ticker Scraper
Pricing
from $5.00 / 1,000 ticker scrapeds
Finviz Ticker Scraper
Scrapes stock, ETF, index, forex, crypto, and futures detail pages from Finviz for a given list of tickers.
Scrapes detailed stock, ETF, index, forex, crypto, and futures data from Finviz for any list of tickers you provide. Just give it tickers like AAPL, SPY, EURUSD, BTCUSD, or ES — no need to tell it what asset class each one is, the Actor figures that out automatically. Try it now, or run it via the Apify API, schedule it to run daily, or plug it into your own pipeline with integrations for Zapier, Make, Google Sheets, and more.
Why use the Finviz Ticker Scraper?
Finviz packs an unusual amount of fundamental, technical, and sentiment data onto a single ticker page — valuation ratios, ownership, insider trades, analyst ratings, and news — but there's no official API and copy-pasting doesn't scale. This Actor is built for:
- Portfolio and watchlist monitoring — pull fresh valuation and technical stats for a list of holdings on a schedule.
- Screening and research pipelines — feed structured fundamentals into your own models or spreadsheets instead of re-deriving them from scratch.
- Cross-asset dashboards — a single input list can mix stocks, ETFs, forex pairs, crypto pairs, and futures contracts.
- Insider and institutional tracking — insider trades and top institutional holders are extracted as structured records, not just table text.
How to use the Finviz Ticker Scraper
- Open the Actor's Input tab.
- Add the tickers you want to scrape to the
tickersfield (e.g.AAPL,MSFT,SPY,EURUSD,BTCUSD,ES). - Optionally adjust
maxConcurrencyor the proxy settings. - Click Start and download the results from the Output tab once the run finishes.
Input
| Field | Type | Description |
|---|---|---|
tickers | array of strings | Required. Tickers to scrape. Any mix of stocks/ETFs/indices (AAPL, SPY), forex pairs (EURUSD), crypto pairs (BTCUSD), and futures contracts (ES, CL, GC, ...). |
maxConcurrency | integer | Optional. Maximum number of ticker pages fetched in parallel. Default 10. |
proxyConfiguration | object | Optional. Proxy settings (Apify Proxy recommended) to avoid rate limiting. Default uses Apify Proxy. |
Example input:
{"tickers": ["AAPL", "SPY", "EURUSD", "BTCUSD", "ES"],"maxConcurrency": 10,"proxyConfiguration": { "useApifyProxy": true }}
How asset class detection works
Each ticker is resolved in this order: stock/ETF/index (Finviz's main quote page, tried first since it covers the vast majority of tickers) → crypto → forex → futures. If a ticker exists in more than one asset class under the same symbol (rare, e.g. ES is both a real NYSE stock, Eversource Energy, and the S&P 500 futures code), the stock match wins. A ticker that isn't found in any asset class is still included in the output dataset with an error field instead of being silently dropped.
Output
Output shape depends on asset class. A stock/ETF item looks like:
{"ticker": "AAPL","assetType": "stock","url": "https://finviz.com/stock?t=AAPL","companyName": "Apple Inc","exchange": "NASD","sector": "Technology","industry": "Consumer Electronics","country": "USA","marketCapGroup": "Mega","price": "342.71","priceChange": "+2.63","priceChangePercent": "0.77","description": "Apple, Inc. engages in the design, manufacture, and sale of smartphones...","stats": { "P/E": "41.46", "Market Cap": "5033.50B", "RSI (14)": "70.21", "...": "... ~80 fields total" },"analystRatings": [{ "Date": "Jul-24-26", "Action": "Reiterated", "Analyst": "Robert W. Baird", "Rating Change": "Outperform", "Price Target Change": "$310 → $330" }],"insiderTrading": [{ "name": "Borders Ben", "transactionType": "Sale", "...": "..." }],"institutionalOwnership": { "managers": [{ "name": "BlackRock, Inc.", "percOwnership": 7.8 }], "funds": ["..."] },"peers": ["MSFT", "GOOG", "META"],"news": [{ "date": "Today", "time": "09:28AM", "title": "...", "url": "...", "source": "Barrons.com" }],"financials": { "annual": { "gaapEps": ["..."], "sales": ["..."] }, "quarterly": { "...": "..." } }}
A forex/crypto/futures item is lighter (Finviz only exposes quote + chart data for these, not fundamentals):
{"ticker": "EURUSD","assetType": "forex","label": "EUR/USD","last": 1.1389,"change": 0.03,"changeUsd": 0.0003,"prevClose": 1.13861,"high": 1.14036,"low": 1.13745,"sparkline": [1.137, 1.1417, "..."]}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel from the Output tab or via the API.
Main data fields
| Field | Description |
|---|---|
ticker / assetType | The requested ticker and its detected asset class (stock, etf, forex, crypto, futures, or null if not found). |
stats | Stock/ETF only. The full ~80-field snapshot table (valuation, profitability, ownership, technicals). |
analystRatings | Stock/ETF only. Recent analyst rating and price target changes. |
insiderTrading | Stock/ETF only. Recent insider buy/sell transactions. |
institutionalOwnership | Stock/ETF only. Top institutional managers and funds holding the stock. |
news | Stock/ETF only. Recent headlines with source and link. |
last / sparkline | Forex/crypto/futures only. Latest quote and recent daily-chart price series. |
Cost of scraping Finviz data
This Actor uses fast HTTP requests (no browser) for every page, so it's cheap to run: a typical stock/ETF ticker costs one request, and every forex/crypto/futures ticker in a run shares just three "listing" requests in total. Expect on the order of a few hundred tickers per Compute Unit, depending on your Apify plan and proxy usage.
Tips
- Group runs by ticker list rather than scheduling one ticker per run — the shared forex/crypto/futures listing lookups are only fetched once per run.
- Keep
maxConcurrencymoderate (its default of 10 is a good starting point) and leave Apify Proxy enabled to avoid rate limiting on large ticker lists. - Full income statement / balance sheet / cash flow tables are a Finviz Elite (paid) feature loaded dynamically and are not included; the
financialsfield covers the free mini EPS/Sales/Shares-Outstanding series only.
FAQ
Is this legal? This Actor only extracts already-public data from pages you can view in a regular browser. You are responsible for complying with Finviz's Terms of Service and applicable law in your jurisdiction.
A ticker returned "error": "Ticker not found..." — why? Finviz free tier only covers stocks/ETFs listed on NYSE, NASDAQ, and AMEX (no international or OTC/PK stocks), plus a limited set of major forex pairs, crypto pairs, and futures contracts. If your ticker isn't covered by Finviz itself, this Actor can't retrieve it either.
Found a bug or missing field? Open an issue on the Actor's Issues tab, or reach out — custom scraping solutions are also available.