Finviz API: List insider trades
Lists recent Form 4 insider trades on Finviz, optionally for one company or ticker and filtered to buys, sales, or both.
Unofficial. Not affiliated with or endorsed by Finviz.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Company optional
company Company name or stock ticker, such as Tesla or TSLA. Omit to see trades across the whole market.
Not set
- Trade Type optional
trade_type Show buys, sales, or both, such as buys.
both (default)
One of
buys,sales,both.- Max Results optional
max_results Most trades to return, such as 20.
20 (default)
Whole number from 1 to 100.
Input as JSON
{}Output
{ "trades": [ { "role": "President and CEO", "shares": 10000, "ticker": "LOAN", "company": "Manhattan Bridge Capital Inc", "page_url": "https://finviz.com/insidertrading?t=LOAN" , "trade_date": "2026-10-22", "total_value": 34693, "insider_name": "RAN ASSAF", "price_currency": "USD", "sec_filing_url": "https://www.sec.gov/Archives/edgar/data/1080340/000149315226048080/xslF345X06/ownership.xml" , "value_currency": "USD", "price_per_share": 3.47, "transaction_type": "Buy", "shares_owned_after_trade": 1245000 }, { "role": "Chief Executive Officer", "shares": 8000, "ticker": "ANIX", "company": "Anixa Biosciences Inc", "page_url": "https://finviz.com/insidertrading?t=ANIX" , "trade_date": "2026-10-22", "total_value": 21760, "insider_name": "KUMAR AMIT", "price_currency": "USD", "sec_filing_url": "https://www.sec.gov/Archives/edgar/data/715446/000149315226048144/xslF345X06/ownership.xml" , "value_currency": "USD", "price_per_share": 2.72, "transaction_type": "Buy", "shares_owned_after_trade": 680000 }, { "role": "Director", "shares": 9411, "ticker": "RAPP", "company": "Rapport Therapeutics Inc", "page_url": "https://finviz.com/insidertrading?t=RAPP" , "trade_date": "2026-10-22", "total_value": 248891, "insider_name": "MARAGANORE JOHN", "price_currency": "USD", "sec_filing_url": "https://www.sec.gov/Archives/edgar/data/1180432/000119312526429071/xslF345X06/ownership.xml" , "value_currency": "USD", "price_per_share": 26.45, "transaction_type": "Buy", "shares_owned_after_trade": 9411 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"finviz.com/list_insider_trades","input":{}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "finviz.com/list_insider_trades" , "input": {}})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "finviz.com/list_insider_trades" , "input": {} }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run finviz.com/list_insider_trades# with {}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [], "properties": { "company": { "type": "string", "description": "Company name or stock ticker, such as Tesla or TSLA. Omit to see trades across the whole market." }, "trade_type": { "enum": [ "buys", "sales", "both" ], "type": "string", "default": "both", "description": "Show buys, sales, or both, such as buys." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Most trades to return, such as 20." } }}Output schema
{ "type": "object", "required": [ "trades" ], "properties": { "trades": { "type": "array", "items": { "type": "object", "required": [ "company", "ticker", "insider_name", "role", "trade_date", "transaction_type", "price_per_share", "price_currency", "shares", "total_value", "value_currency", "shares_owned_after_trade", "sec_filing_url", "page_url" ], "properties": { "role": { "type": "string" }, "shares": { "type": [ "integer", "null" ] }, "ticker": { "type": "string" }, "company": { "type": "string" }, "page_url": { "type": "string" }, "trade_date": { "type": "string", "format": "date" }, "total_value": { "type": [ "number", "null" ] }, "insider_name": { "type": "string" }, "price_currency": { "type": "string" }, "sec_filing_url": { "type": "string" }, "value_currency": { "type": "string" }, "price_per_share": { "type": [ "number", "null" ] }, "transaction_type": { "type": "string" }, "shares_owned_after_trade": { "type": [ "integer", "null" ] } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
finviz.com/list_insider_trades- Returns
- company, ticker, insider name, role, trade date, transaction type, price, shares, value, shares owned after trade, SEC filing URL
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method finviz.com/list_insider_trades with the inputs above.
Ask your agent
- Show me the most recent insider buys for NVDA over the last few weeks, up to 15 trades.
- Which executives at Apple have sold shares recently? List their names, roles, and sale prices.
- Pull a market-wide list of insider purchases from this week, limited to 50 results.
- I want to see Form 4 filings for Tesla, both buys and sales, with the value and shares owned after each trade.
- On finviz, list the latest insider sales across the whole market, 30 entries max.
See more
All Finviz methodsScreens US-listed stocks on Finviz by sector, company size, minimum dividend yield, maximum P/E ratio and market signal, ranked by market value, today's gain or dividend yield.
finviz.com/screen_stocksGet a delayed US-listed stock snapshot from its ticker or company name. Analyst labels summarize Finviz's 1-5 mean score; dividend yield uses the estimated dividend when available. Missing metrics return null.
finviz.com/get_stock_snapshotLists stock transactions reported on Form 4 filings by a company's officers, directors and major owners, newest first. Trades without a reported price have no calculated value.
sec.gov/list_insider_tradesFinds a public company by name or ticker in SEC EDGAR and lists its filings, newest first, optionally narrowed by filing type and filing date.
sec.gov/get_company_filingsLists the newest disclosed congressional stock trades on Capitol Trades, optionally filtered by company, party, chamber and trade type.
capitoltrades.com/list_recent_tradesFinds publicly listed stocks in a country, filtered by sector, US-dollar market cap band and minimum dividend yield, in the requested order. Quotes may be delayed.
tradingview.com/screen_stocksLooks up a public company by name or ticker on SEC EDGAR and returns its reported annual or quarterly financial figures from XBRL company facts. Quarterly flows are derived from year-to-date totals when no quarterly figure is filed. Unavailable figures are null.
sec.gov/get_company_financialsLists a UK company's Companies House filings, newest first, with date, form code, type, description, page count and PDF link. Finds the company by name, company number or Companies House link; a category picks accounts, confirmation statements, officers, address, capital, charges or incorporation filings.
find-and-update.company-information.service.gov.uk/list_filing_history