# Finviz Stock Screener Scraper — Bulk Overview (`hipersoft/finviz-scraper`) Actor

Scrape Finviz's stock screener: ticker, company, sector, industry, country, market cap, P/E, price, change and volume. Apply any Finviz filter, signal or sort. Bulk paginated export. No key.

- **URL**: https://apify.com/hipersoft/finviz-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Categories:** Other, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.001 / stock scraped

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Finviz Stock Screener Scraper — Tickers, Sectors, P/E, Price & Volume

Scrape the **Finviz stock screener** into clean JSON, CSV or Excel — **ticker, company, sector, industry, country, market cap, P/E, price, change and volume** for every stock matching your criteria. Apply any Finviz **filter, signal or sort**, then bulk-export across all result pages. No key, no login. Fast and reliable.

![Finviz Stock Screener Scraper input — filters, signal and order in the Apify Console](https://api.apify.com/v2/key-value-stores/SUfvnaFLd9z9eBCtV/records/finviz-scraper-input.png?v=2)

Great for **stock screening, watchlists, quant research, dashboards and market scans**.

### What does Finviz Stock Screener Scraper do?

It reproduces any Finviz screen and extracts the full result set as structured data. Pass the same `f=` filters, `s=` signal and `o=` sort you use on Finviz — the Actor walks every result page and returns one clean record per stock, ready to export or pipe into a dashboard.

### What you get

![Finviz Stock Screener Scraper output example — one structured JSON row per stock](https://api.apify.com/v2/key-value-stores/SUfvnaFLd9z9eBCtV/records/finviz-scraper-output.png?v=5)

- 📊 **Screener rows** — ticker, company, sector, industry, country, market cap (numeric + text), P/E, price, % change, volume
- 🎚️ **Any Finviz query** — pass the same `f=` filters, `s=` signal and `o=` sort you use on Finviz
- 🎯 **Specific tickers** — or pass a list of tickers directly
- 📥 **Bulk paginated** — walks every result page automatically

#### Output schema

| Field | Type | Description |
|-------|------|-------------|
| `ticker` | string | Stock ticker symbol (e.g. AAPL). |
| `company` | string | Company name. |
| `sector` | string | Sector the company belongs to. |
| `industry` | string | Industry classification. |
| `country` | string | Country of the company. |
| `marketCap` | integer | Market capitalization as a number. |
| `marketCapText` | string | Market cap in Finviz shorthand (e.g. 3.39T). |
| `peRatio` | number | Price-to-earnings ratio. |
| `price` | number | Latest share price. |
| `change` | string | Price change as a percentage string. |
| `changePercent` | number | Price change as a numeric percentage. |
| `volume` | integer | Trading volume. |
| `url` | string (URL) | Link to the stock's Finviz quote page. |

### Use cases

- **Stock screening** — pull every stock that passes your fundamental or technical criteria.
- **Watchlists** — refresh a curated set of tickers on a schedule.
- **Quant research** — build datasets of sector, market cap, P/E and volume for modeling.
- **Dashboards** — feed a BI tool or spreadsheet with live screener output.
- **Market scans** — capture top gainers, most active or unusual-volume signals.
- **Sector analysis** — compare valuations across sectors and industries.

### How to scrape Finviz data

1. Add the **Finviz Stock Screener Scraper** to your Apify account.
2. Build a screen on [finviz.com/screener.ashx](https://finviz.com/screener.ashx) and copy the `f=` value from the URL.
3. Paste it into `filters`, add a `signal` and `order` if you want, and set `maxItems`.
4. Click **Run**.
5. Export the results as JSON, CSV or Excel, or pull them via the Apify API.

### Input

```json
{
  "filters": "cap_large,sec_technology,geo_usa",
  "signal": "",
  "order": "-marketcap",
  "maxItems": 500
}
```

**Where do filters come from?** Build a screen on [finviz.com/screener.ashx](https://finviz.com/screener.ashx) and copy the `f=` value from the URL (e.g. `cap_large,fa_pe_u20`). Paste it into `filters`.

| Field | Description |
|-------|-------------|
| `filters` | Finviz `f=` filter tokens (comma-separated). |
| `signal` | Finviz `s=` signal (top gainers, most active…). |
| `order` | Finviz `o=` sort. |
| `tickers` | Specific tickers instead of filters. |
| `maxItems` | Max stocks to scrape. |
| `proxyConfiguration` | Proxy settings (residential recommended for large runs). |

### Output

```json
{
  "ticker": "AAPL",
  "company": "Apple Inc",
  "sector": "Technology",
  "industry": "Consumer Electronics",
  "country": "USA",
  "marketCap": 3390000000000,
  "marketCapText": "3.39T",
  "peRatio": 32.4,
  "price": 224.3,
  "change": "-0.35%",
  "changePercent": -0.35,
  "volume": 41234567,
  "url": "https://finviz.com/quote.ashx?t=AAPL"
}
```

### Need more market data?

- [Yahoo Finance Scraper](https://apify.com/hipersoft/yahoo-finance-scraper) — quotes and fundamentals
- [CoinGecko Scraper](https://apify.com/hipersoft/coingecko-scraper) — crypto market data
- [SEC EDGAR Scraper](https://apify.com/hipersoft/sec-edgar-scraper) — filings and financials

### FAQ

**Do I need a Finviz account?**
No. This scrapes the public screener — no key, no login.

**How many stocks can I scrape?**
As many as your screen returns; set `maxItems` to cap the run. The Actor paginates through every result page.

**How do I filter to exactly what I want?**
Configure the screen on Finviz, copy the `f=` value from the URL, and paste it into `filters` — the Actor reproduces that screen and exports all pages.

**What export formats are supported?**
JSON, CSV, Excel and XML, plus the Apify API.

**Can I integrate it with other tools?**
The Finviz Stock Screener Scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). It works with [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [Slack](https://docs.apify.com/platform/integrations/slack), [Airbyte](https://docs.apify.com/platform/integrations/airbyte), [GitHub](https://docs.apify.com/platform/integrations/github), [Google Drive](https://docs.apify.com/platform/integrations/drive) and [many more](https://apify.com/integrations), plus the [Apify API](https://docs.apify.com/api/v2), JavaScript/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

**How does billing work?**
You pay only per item you get — cheap per stock, cheapest in its class.

**Is the data public?**
Yes. The Actor returns only publicly available screener data.

### Related Actors

- [Yahoo Finance Scraper](https://apify.com/hipersoft/yahoo-finance-scraper) — quotes and fundamentals
- [CoinGecko Scraper](https://apify.com/hipersoft/coingecko-scraper) — crypto market data
- [SEC EDGAR Scraper](https://apify.com/hipersoft/sec-edgar-scraper) — filings and financials

### Notes

Original clean-room implementation. Returns only public screener data; you are responsible for how you use the data and for complying with Finviz's terms. Not affiliated with or endorsed by Finviz.

# Actor input Schema

## `filters` (type: `string`):

Finviz filter tokens, comma-separated — e.g. "cap\_large,sec\_technology,geo\_usa". Copy from the f= parameter of a Finviz screener URL. Empty = all stocks.

## `signal` (type: `string`):

Optional Finviz signal, e.g. ta\_topgainers, ta\_toplosers, ta\_mostactive, n\_majornews. Empty = none.

## `order` (type: `string`):

Optional Finviz sort, e.g. -marketcap, ticker, -change. Empty = default.

## `tickers` (type: `string`):

Optional specific tickers, comma-separated (e.g. AAPL,MSFT,NVDA). Empty = use filters.

## `maxItems` (type: `integer`):

Maximum stocks to scrape.

## `proxyConfiguration` (type: `object`):

Proxy configuration. Leave the default — it is tuned for reliable results.

## Actor input object example

```json
{
  "filters": "cap_large",
  "signal": "",
  "order": "",
  "tickers": "",
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

The scraped results as dataset items.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "filters": "cap_large"
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/finviz-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "filters": "cap_large" }

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/finviz-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "filters": "cap_large"
}' |
apify call hipersoft/finviz-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/finviz-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/opCMANsokDJHLrbzb/builds/5shWusLjbk79JsyJg/openapi.json
