SEC Insider Trading API: Form 4, 13F Holdings, Funds avatar

SEC Insider Trading API: Form 4, 13F Holdings, Funds

Pricing

from $1.70 / 1,000 results

Go to Apify Store
SEC Insider Trading API: Form 4, 13F Holdings, Funds

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

ABM

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

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 summary written 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 extractRowsPrice
All NVDA insider trades in the last 30 days~20-60~$0.04-$0.12
1,000 insider transactions1,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 daya 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
}
FieldMeaning
tickers / tickerUS tickers (BRK.B and BRK-B both work). For Form 4: the company's insider trades.
ciksSEC CIK numbers: a fund for 13F (1067983 = Berkshire Hathaway), or an insider for all their Form 4 trades across companies.
formType4, 13F-HR or both.
daysForm 4 look-back window (filing date).
transactionCodesFilter, e.g. ["P"] = open market purchases only.
insiderRolesdirector, officer, tenPercentOwner, other.
minTransactionValueUsdSkip small trades.
includeDerivativeInclude options/RSUs (Table II).
quarters13F: number of recent quarters per fund.
compareWithPrevious13F: add QoQ change fields and sold-out rows.
aggregateByCusip13F: merge split lines of the same security.
maxHoldingsPerFiling13F: keep the N largest positions (+ up to N sold-out).
onlyNew / stateStoreNameOnly filings not delivered in previous runs.
maxResultsHard 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 ApifyClient
client = 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 on totalValueUsd > 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 maxHoldingsPerFiling set 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.