SEC Insider Trading API: Form 4, 13F Holdings, Funds
Pricing
from $1.70 / 1,000 results
SEC Insider Trading API: Form 4, 13F Holdings, Funds
Insider trades (SEC Form 4) and 13F fund holdings as clean rows: insider, role, code, shares, price, value, CUSIP, portfolio weight, QoQ changes. Only-new mode. No API key, no login. MCP-ready for AI agents. Pay per result, errors free. $2 per 1,000 results
Pricing
from $1.70 / 1,000 results
Rating
0.0
(0)
Developer
ABM
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
SEC Insider Trading API: Form 4 & 13F Holdings Scraper
$2 per 1,000 results ($0.002 per row). No API key, no login, no monthly rental. Errors and empty results are free.
Get insider trades (SEC Form 4) and institutional fund holdings (SEC 13F-HR) as clean, flat rows, read straight from the official SEC EDGAR XML files:
- Form 4: one row per transaction, with company, ticker, insider name and role (CEO, CFO, director, 10% owner), transaction code in plain English (open market purchase, sale, grant, option exercise, gift...), shares, price, total value, shares owned after, direct/indirect ownership, Rule 10b5-1 plan flag, derivative details (options, RSUs) and footnotes.
- 13F-HR: one row per position, with issuer, CUSIP, value in USD, shares, put/call, portfolio weight, voting authority and quarter-over-quarter changes (NEW, INCREASED, DECREASED, UNCHANGED, SOLD_OUT).
- Only new filings mode for scheduled runs: you get, and pay for, only the filings published since your last run.
- Every row has a one-sentence
summarywritten for LLMs, RAG and alerts.
It focuses on these two forms and does not re-export generic filing lists (10-K, 8-K...). Use it next to a general EDGAR filings tool, not instead of one.
How much does it cost?
Pay per event: $0.002 per result (one result = one Form 4 transaction row or one 13F position row).
| What you extract | Rows | Price |
|---|---|---|
| All NVDA insider trades in the last 30 days | ~20-60 | ~$0.04-$0.12 |
| 1,000 insider transactions | 1,000 | $2.00 |
| Top 100 positions of one fund + QoQ changes | ~100-130 | ~$0.25 |
| Daily "only new" alert on 20 tickers | ~0-30 per day | a few cents per day |
You pay nothing for tickers that don't exist, filings that fail to parse, transactions removed by your filters, or runs with no results. Use Max results and the run budget to cap spending. When the budget is reached, the run stops cleanly. It never delivers unpaid "preview" rows.
Input
{"tickers": ["NVDA", "TSLA"],"formType": "4","days": 30,"transactionCodes": ["P", "S"],"minTransactionValueUsd": 100000,"onlyNew": false,"maxResults": 1000}
13F holdings of a fund, with changes vs the previous quarter:
{"ciks": ["1067983"],"formType": "13F-HR","quarters": 1,"compareWithPrevious": true,"maxHoldingsPerFiling": 100}
| Field | Meaning |
|---|---|
tickers / ticker | US tickers (BRK.B and BRK-B both work). For Form 4: the company's insider trades. |
ciks | SEC CIK numbers: a fund for 13F (1067983 = Berkshire Hathaway), or an insider for all their Form 4 trades across companies. |
formType | 4, 13F-HR or both. |
days | Form 4 look-back window (filing date). |
transactionCodes | Filter, e.g. ["P"] = open market purchases only. |
insiderRoles | director, officer, tenPercentOwner, other. |
minTransactionValueUsd | Skip small trades. |
includeDerivative | Include options/RSUs (Table II). |
quarters | 13F: number of recent quarters per fund. |
compareWithPrevious | 13F: add QoQ change fields and sold-out rows. |
aggregateByCusip | 13F: merge split lines of the same security. |
maxHoldingsPerFiling | 13F: keep the N largest positions (+ up to N sold-out). |
onlyNew / stateStoreName | Only filings not delivered in previous runs. |
maxResults | Hard cap on billed rows. |
Output
Form 4 row:
{"recordType": "insiderTransaction","formType": "4","accessionNumber": "0001197647-26-000011","filingDate": "2026-10-09","issuerCik": "1045810","issuerName": "NVIDIA CORP","ticker": "NVDA","insiderCik": "1197647","insiderName": "COXE TENCH","insiderRelationship": "Director","isDirector": true,"isOfficer": false,"isRule10b51Plan": true,"transactionId": "0001197647-26-000011-N1","isDerivative": false,"securityTitle": "Common Stock","transactionDate": "2026-10-07","transactionCode": "G","transactionType": "Gift","acquiredDisposed": "D","shares": 500000,"pricePerShare": 0,"totalValueUsd": 0,"sharesOwnedAfter": 23671360,"ownershipType": "Indirect","ownershipNature": "By Trust","footnotes": "[F1] ...","summary": "COXE TENCH (Director) disposed of 500,000 Common Stock of NVIDIA CORP (NVDA) on 2026-10-07 [code G: Gift] under a Rule 10b5-1 plan, holding 23,671,360 afterwards (indirect).","filingUrl": "https://www.sec.gov/Archives/edgar/data/1045810/000119764726000011/0001197647-26-000011-index.htm","xmlUrl": "https://www.sec.gov/Archives/edgar/data/1045810/000119764726000011/wk-form4_1791579847.xml"}
13F row (example values):
{"recordType": "fundHolding","formType": "13F-HR","filingDate": "2026-08-14","reportPeriod": "2026-06-30","fundCik": "1067983","fundName": "BERKSHIRE HATHAWAY INC","nameOfIssuer": "APPLE INC","titleOfClass": "COM","cusip": "037833100","valueUsd": 57000000000,"shares": 280000000,"sharesType": "SH","putCall": null,"portfolioWeightPct": 22.4,"previousReportPeriod": "2026-03-31","previousShares": 300000000,"sharesChange": -20000000,"sharesChangePct": -6.6667,"positionChange": "DECREASED","summary": "BERKSHIRE HATHAWAY INC held 280,000,000 SH of APPLE INC (COM, CUSIP 037833100) worth $57.00B as of 2026-06-30 (22.40% of reported portfolio), down 6.7% in shares vs 2026-03-31."}
Fields that don't apply to a row type are null. The Overview table view shows the key columns of both row types.
Use cases
1. Insider-buying alert for a stock-picking newsletter. An equity analyst wants every open-market purchase of more than $250k by insiders of their 15-stock watchlist, each morning.
Input: {"tickers": ["NVDA","AMD","PLTR","SOFI","INTC"], "formType": "4", "days": 3, "transactionCodes": ["P"], "minTransactionValueUsd": 250000, "onlyNew": true}
Output: [{"ticker": "INTC", "insiderName": "...", "insiderRelationship": "Officer (CEO)", "shares": 40000, "pricePerShare": 24.1, "totalValueUsd": 964000, "summary": "..."}]
Next: a daily schedule sends the new rows to Google Sheets and Slack. Cluster buys (3+ insiders in a week) become newsletter picks. Cost: usually under $0.05 a day.
2. Fund-replication / 13F tracker for a portfolio manager. A PM follows 5 value funds and wants the new positions and exits every quarter.
Input: {"ciks": ["1067983","1649339","1336528"], "formType": "13F-HR", "quarters": 1, "compareWithPrevious": true, "maxHoldingsPerFiling": 50, "onlyNew": true}
Output: [{"fundName": "BERKSHIRE HATHAWAY INC", "nameOfIssuer": "...", "positionChange": "NEW", "valueUsd": 1200000000, "portfolioWeightPct": 0.47}, {"positionChange": "SOLD_OUT", ...}]
Next: filter positionChange in (NEW, SOLD_OUT) to get a "smart money moves" table. A weekly schedule with onlyNew only bills when a new 13F appears, about $0.10-0.30 per fund per quarter.
3. Compliance and governance review. A compliance officer or proxy advisor checks every trade by one director across all boards they sit on, over 2 years. The director's own CIK is used, not the company's.
Input: {"ciks": ["1197647"], "formType": "4", "days": 730, "includeDerivative": true}
Output: [{"issuerName": "...", "transactionCode": "M", "transactionType": "Option exercise / conversion (exempt)", "isRule10b51Plan": true, "footnotes": "[F1] ..."}, ...]
Next: export to CSV, check the trades against blackout windows and 10b5-1 plan adoption dates, and keep the filingUrl as the audit trail.
4. Quant dataset / backtest. A quant researcher builds a 5-year insider-sales dataset for 50 tickers ("days": 1825, "transactionCodes": ["S","P"]). They join on ticker + transactionDate with prices to measure post-trade drift. 10,000 rows cost $20.
Use with AI agents (MCP)
This actor works as a tool for Claude, Cursor, ChatGPT and other agents via the Apify MCP server (https://mcp.apify.com). Add the actor sec-edgar-insider-trades-13f and ask, for example: "Which NVDA insiders sold more than $1M of stock this month?" or "What did Berkshire buy and sell last quarter?". The summary field gives the agent a ready-made sentence per row, so it doesn't need to decode SEC codes.
API examples
Python:
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("<username>/sec-edgar-insider-trades-13f").call(run_input={"tickers": ["NVDA"], "formType": "4", "days": 30, "transactionCodes": ["S"],})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["summary"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<APIFY_TOKEN>' });const run = await client.actor('<username>/sec-edgar-insider-trades-13f').call({ciks: ['1067983'], formType: '13F-HR', compareWithPrevious: true, maxHoldingsPerFiling: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((r) => r.positionChange === 'NEW'));
Integrations (Make, Zapier, n8n, Google Sheets)
- Make / Zapier: "Run actor" with
{"tickers": [...], "formType": "4", "days": 2, "onlyNew": true}on a daily schedule. Then "Get dataset items", a filter ontotalValueUsd > 500000, then Gmail / Slack / Google Sheets "Add row". - n8n: Schedule Trigger (every day 07:00) → Apify node (run actor, wait for finish) → IF
transactionCode == "P"→ Telegram message with{{$json.summary}}. - Google Sheets: use Apify's Google Sheets integration on the dataset (Overview view) to get a live insider-trading sheet.
- Datasets export to JSON, CSV, Excel, XML, RSS from the console or the API.
FAQ
Where does the data come from? Only from official public SEC EDGAR endpoints (submissions JSON and the raw XML filed by insiders and funds). No scraping of third-party sites, no login.
How fresh is it? Form 4 must be filed within 2 business days of the trade, and the actor reads EDGAR live. Funds file 13F up to 45 days after quarter end.
What does each transaction code mean? transactionType translates it: P purchase, S sale, A grant/award, M option exercise, F tax withholding, G gift, and so on. Real buying/selling signals are mostly P and S.
Why are prices sometimes 0 or null? Grants, gifts and some exercises have no price. Weighted-average prices are explained in footnotes.
How do I find a fund's CIK? Search the fund on sec.gov/edgar/search. The number in the URL (e.g. 1067983) is the CIK.
Are 13F values in dollars? Yes. Filings from before 2023, which reported in thousands, are converted to dollars.
Does "only new" work for 13F? Yes. A 13F quarter is delivered once, and later runs skip it until the next quarter is filed.
Limits
- US SEC filers only. Form 4 covers Section 16 insiders (officers, directors, 10% owners). Form 3/5 and Form 144 are not included.
- 13F lists only long US-listed equity positions, options and convertibles over the reporting threshold. Shorts, cash and non-US holdings are not reported by funds.
- 13F amendments (13F-HR/A) are used only when no original filing exists for the quarter. Partial "new holdings" amendments are not merged.
- Very large funds (index managers) report 20,000+ positions. Keep
maxHoldingsPerFilingset to control cost. - Very old Form 4 filings (before mid-2003, not in XML) are skipped.
- SEC allows ~10 requests/second. The actor stays below that, so a very large historical pull takes a few minutes.
Not investment advice. Data is provided as filed with the SEC.