OpenInsider Screener API — Form 4 Buys, Sells & Cluster Filter
Pricing
from $100.00 / 1,000 form 4 records
OpenInsider Screener API — Form 4 Buys, Sells & Cluster Filter
Programmatic OpenInsider screener for SEC Form 4 insider trades: filter by role (CEO/CFO/director/10% owner), buys/sells, dollar value, ticker, and cluster flag in one run. Clean transaction-level rows with price, value, Δ-ownership, and per-row SEC links. Pay-per-result.
Pricing
from $100.00 / 1,000 form 4 records
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
A programmatic OpenInsider screener: get clean, transaction-level SEC Form 4 rows filtered by role (CEO, CFO, director, 10% owner), direction (buys/sells/all), dollar value, ticker, and cluster flag — all in a single run. Unlike the raw-EDGAR scraper, this returns OpenInsider's pre-aggregated feed (one row per insider trade with Δ-ownership %, total value, and cluster tagging) so you can screen smart-money flow in seconds instead of parsing XML.
How it differs from the other Form 4 actors
- This tracker — an OpenInsider screener feed with role/value/cluster filters; one clean row per insider transaction line.
- Form 4 Insider Trading Scraper — direct EDGAR XML, bulk by date range, with full derivative legs.
- Form 4 Insider Monitor — a scheduled delta alert engine that emits only NEW transactions since the last run.
What Form 4 is (and why it matters)
Under SEC Section 16(a), every officer, director, and 10% beneficial owner of a US-listed company must file a Form 4 within 2 business days of any transaction in that company's stock. Open-market CEO buys are the highest-conviction signal; cluster buys (3+ insiders buying in 30 days) are the strongest documented insider signal in the academic literature.
Use cases
- Daily smart-money screen — retail followers screening daily CEO/CFO open-market buys above a dollar threshold.
- Newsletter / Discord feeds — auto-pull the day's biggest insider buys per ticker.
- Quant prototypes — get OpenInsider's clean columns without scraping HTML yourself.
- Single-name watch — pass a ticker +
insider_role=ceoto track one company's executives. - Cluster hunting — set
cluster_only=trueto surface 3+ insiders buying the same name.
Sample input
{"limit": 100,"transaction_type": "buys","date_range": "last_30d","min_value_usd": 100000,"ticker": "","insider_role": "ceo","cluster_only": false}
Sample output
One row per insider transaction line:
{"filing_date": "2026-05-08","filing_time": "18:48:54","transaction_date": "2026-05-08","filer_name": "Martell Frank","filer_title": "CEO","relationship": "Officer","company_ticker": "SMRT","company_name": "Smartrent, Inc.","transaction_code": "P","transaction_type": "Open Market Purchase","shares_transacted": 50000,"shares_transacted_abs": 50000,"price_per_share": 1.12,"total_value_usd": 56220,"total_value_usd_abs": 56220,"shares_owned_after": 3065266,"pct_change_owned_pct": 2.0,"form_4_url": "https://www.sec.gov/Archives/edgar/data/1837014/000119312526215194/xslF345X03/ownership.xml","is_cluster_buy": false,"is_cluster_sell": false,"data_source": "openinsider.com (Form 4 aggregator) + sec.gov (audit link)"}
Input filters
| Filter | Type | Description |
|---|---|---|
limit | int (1–5000) | Max records to return. Default 100. |
transaction_type | enum | buys / sells / all. Default buys (highest signal). |
date_range | enum | last_7d / last_30d / last_90d / last_180d / all. Default last_30d. |
min_value_usd | int | Minimum transaction dollar value. 0 = no filter. |
ticker | str | Single ticker symbol to filter (e.g. AAPL). Blank = all. |
insider_role | enum | all / ceo / cfo / officer / director / 10%_owner. |
cluster_only | bool | If true, return only cluster trades (3+ insiders same direction in 30 days). |
Output schema
Each dataset item is one Form 4 transaction line:
| Field | Type | Example |
|---|---|---|
filing_date | str | 2026-05-08 |
filing_time | str | 18:48:54 |
transaction_date | str | 2026-05-08 |
filer_name | str | Martell Frank |
filer_title | str | CEO |
relationship | str | Officer / Director / 10% Owner |
company_ticker | str | SMRT |
company_name | str | Smartrent, Inc. |
transaction_code | str | P / S / A / G / F / M |
transaction_type | str | Open Market Purchase |
shares_transacted | int | 50000 (signed: + buy, − sell) |
shares_transacted_abs | int | 50000 |
price_per_share | float | 1.12 |
total_value_usd | int | 56220 |
total_value_usd_abs | int | 56220 |
shares_owned_after | int | 3065266 |
pct_change_owned_pct | float | 2.0 |
form_4_url | str | https://www.sec.gov/Archives/edgar/data/... |
is_cluster_buy | bool | true if 3+ insiders bought this ticker in 30 days |
is_cluster_sell | bool | true if 3+ insiders sold this ticker in 30 days |
data_source | str | openinsider.com + sec.gov |
How to use
cURL
curl -X POST "https://api.apify.com/v2/acts/nexgendata~sec-form4-insider-tracker/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"limit": 100, "transaction_type": "buys", "date_range": "last_30d", "min_value_usd": 250000}'
Python (apify-client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("nexgendata/sec-form4-insider-tracker").call(run_input={"limit": 500,"transaction_type": "buys","date_range": "last_90d","insider_role": "ceo","min_value_usd": 1000000,"cluster_only": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["filing_date"], item["company_ticker"], item["filer_name"], item["total_value_usd_abs"])
How it works
Primary data source: OpenInsider (openinsider.com/screener) — a clean HTML aggregator that mirrors SEC Form 4 filings, with SEC EDGAR full-text search as an audit fallback. Every record includes form_4_url pointing to the official SEC EDGAR XML so you can verify any transaction in one click. Cluster flags are computed by counting distinct insiders per (ticker, direction) over the trailing 30 days and tagging any company with 3+ insiders trading the same way.
FAQ
Q: Is there an OpenInsider API?
A: OpenInsider has no official API; this actor scrapes the screener and returns structured JSON, so you get an API-like feed with role/value/cluster filters.
Q: How do I filter insider trades by CEO only?
A: Set insider_role to ceo (also cfo, officer, director, 10%_owner).
Q: What is an insider cluster buy?
A: 3+ distinct insiders buying the same stock in the same direction within ~30 days; set cluster_only=true to return only those.
Q: Are insider buys a good signal?
A: Academic research (Lakonishok-Lee, 2002) found heavy insider buying outperformed by roughly 4.8% over 12 months; CEO open-market buys are the strongest subset.
Q: Can I download insider trades to CSV?
A: Yes — Apify exports any run's dataset to CSV, JSON, or Excel.
Disclaimer
This actor returns public SEC Form 4 filing data sourced from SEC EDGAR via OpenInsider as an aggregator. All transaction details are filed by the insiders themselves under SEC regulation; we add no proprietary signal or recommendation. This is not investment advice.
Related actors
- SEC Form 4 Insider Trading Scraper
- SEC Form 4 Insider Monitor
- Insider Cluster Buy Detector
- SEC Form 3 New Insider Tracker
- SEC Form 144 Restricted Stock Sales Tracker
Browse the full catalog of 200+ buyer-intent actors at https://apify.com/nexgendata?fpr=2ayu9b.