Finviz APIfinviz.com ↗
Access Finviz stock screener results, insider trading transactions, market movers, and news sentiment via 5 structured API endpoints.
What is the Finviz API?
The Finviz API exposes 5 endpoints covering insider trading activity, stock screener results, market movers, news sentiment, and raw tabular data from Finviz pages. The get_insider_trading endpoint returns transaction-level records including owner name, relationship to the company, transaction type, cost per share, number of shares, and total dollar value — filterable by a minimum transaction size to surface only material activity.
curl -X GET 'https://api.parse.bot/scraper/680946c1-3c1f-4cd9-948d-2822f535b6a1/get_insider_trading?min_value=1000000' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace finviz-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Finviz SDK — screen stocks, check movers, read news sentiment, inspect insider trades."""
from parse_apis.finviz_market_data import Finviz, MoverType, TickerNotFound
finviz = Finviz()
# Screen for undervalued stocks using Finviz filter codes
for stock in finviz.stocks.screen(filters="fa_peg_u1", limit=5):
print(stock.ticker, stock.company, stock.price, stock.change)
# Get today's top market gainers
for gainer in finviz.stocks.movers(mover_type=MoverType.TOP_GAINERS, limit=3):
print(gainer.ticker, gainer.company, gainer.change, gainer.volume)
# Drill into a specific stock's news sentiment
aapl = finviz.stock("AAPL")
for article in aapl.news.list(limit=5):
print(article.headline, article.sentiment, article.source)
# List significant insider transactions
try:
for txn in finviz.insidertransactions.list(min_value=1000000, limit=5):
print(txn.ticker, txn.owner, txn.transaction, txn.value)
except TickerNotFound as exc:
print(f"not found: {exc}")
print("exercised: stocks.screen / stocks.movers / stock.news.list / insidertransactions.list")
Retrieve recent insider trading transactions from Finviz. Returns the latest insider buys and sells with transaction details including owner, relationship, cost, shares, and total value. Optionally filter by minimum transaction value to surface only significant activity. Single-page result set.
| Param | Type | Description |
|---|---|---|
| min_value | integer | Minimum transaction value in USD. Transactions with Value ($) below this threshold are excluded from results. |
{
"type": "object",
"fields": {
"items": "array of insider transaction objects with keys: Ticker, Owner, Relationship, Date, Transaction, Cost, #Shares, Value ($), #Shares Total, SEC Form 4, SEC Form 4 URL"
},
"sample": {
"data": {
"items": [
{
"Cost": "19.70",
"Date": "Jun 11 '26",
"Owner": "PL Capital Advisors, LLC",
"Ticker": "BANC",
"#Shares": "1,750,000",
"Value ($)": "34,475,000",
"SEC Form 4": "Jun 11 09:32 PM",
"Transaction": "Proposed Sale",
"Relationship": "Former Director",
"#Shares Total": "",
"SEC Form 4 URL": "http://www.sec.gov/Archives/edgar/data/1169770/000089706926001386/xsl144X01/primary_doc.xml"
}
]
},
"status": "success"
}
}About the Finviz API
Insider Trading and Stock Screener
The get_insider_trading endpoint returns the latest insider buy and sell transactions visible on Finviz, with fields for Ticker, Owner, Relationship, Date, Transaction, Cost, #Shares, and Value ($). The optional min_value parameter accepts an integer in USD and filters out transactions below that threshold, making it straightforward to isolate large, high-conviction moves. The get_screener_results endpoint runs the Finviz screener using standard Finviz filter codes passed as a comma-separated string — for example fa_peg_u1 for PEG ratio under 1, or ta_sma200_pc5 for price near the 200-day moving average. Results return up to 20 stocks per call with fields including Ticker, Company, Sector, Industry, Market Cap, P/E, Price, Change, and Volume.
Market Movers and News Sentiment
The get_market_movers endpoint retrieves one of four lists — top gainers, top losers, most active by volume, or unusual volume stocks — controlled by the mover_type parameter. Each result shares the same column set as the screener: company metadata, valuation, price, and volume. The get_stock_news_sentiment endpoint accepts a ticker symbol and returns every news headline shown on the Finviz quote page for that ticker, tagged Positive, Negative, or Neutral based on keyword classification. Each news object includes date, time, headline, url, source, and sentiment.
General Table Extraction
The get_tabular_data endpoint accepts any Finviz page URL and returns all tables found on that page as structured objects. Each table object carries a table_index (its position on the page), an array of headers, and an array of row objects. This is useful for pulling data from Finviz pages not directly covered by the other four endpoints, such as futures, forex overview tables, or analyst ratings pages.
The Finviz API is a managed, monitored endpoint for finviz.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when finviz.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official finviz.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Alert on insider purchases above a dollar threshold using
min_valueinget_insider_trading - Screen for value stocks by passing PEG, P/E, or moving-average filter codes to
get_screener_results - Track daily top gainers and losers by querying
get_market_moverswith differentmover_typevalues - Score news sentiment for a watchlist of tickers by looping through
get_stock_news_sentiment - Build a sector rotation monitor using
SectorandChangefields from screener or mover results - Extract analyst ratings or futures tables from arbitrary Finviz pages via
get_tabular_data - Correlate C-suite insider selling with price momentum data pulled from the screener endpoint
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Finviz have an official developer API?+
What does `get_stock_news_sentiment` return, and how is sentiment determined?+
date, time, headline, url, source, and sentiment. Sentiment is classified as Positive, Negative, or Neutral based on the presence of predefined bullish or bearish keywords in the headline text. It is keyword-based, not a trained model score.How many results do the screener and market mover endpoints return?+
get_screener_results and get_market_movers return up to 20 stocks, corresponding to the first page of results on Finviz. Pagination beyond the first page is not currently supported. You can fork this API on Parse and revise it to add offset or page parameters if you need deeper result sets.Does the API expose individual stock fundamentals like EPS estimates, analyst price targets, or earnings dates?+
P/E, Market Cap, Price, Change, Volume), insider transaction records, news headlines, and market mover lists. Detailed per-stock fundamental data such as EPS estimates, forward guidance, or earnings calendars is not returned by any endpoint. You can fork this API on Parse and revise it to add an endpoint targeting Finviz's individual quote pages for that data.