SEC Form 4 Insider Trades Scraper avatar

SEC Form 4 Insider Trades Scraper

Pricing

from $0.30 / 1,000 insider trade rows

Go to Apify Store
SEC Form 4 Insider Trades Scraper

SEC Form 4 Insider Trades Scraper

Extract transaction-level insider trades from public SEC Form 4 filings by ticker or CIK.

Pricing

from $0.30 / 1,000 insider trade rows

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Extract transaction-level insider trades from public SEC EDGAR ownership filings by ticker or CIK. The Actor saves one row per reported transaction with issuer details, reporting owner roles, shares, prices, values, ownership fields, and SEC source URLs.

At a glance

  • Primary job: Monitor public-company insider transactions from official SEC filings.
  • Input: Tickers and/or CIKs, filing date bounds, form types, and per-issuer filing limits.
  • Output: Insider owner, role flags, transaction code/date, shares, price, value, ownership, and SEC source URLs.
  • Best for: Investor research, compliance exports, BI dashboards, news monitoring, and scheduled watchlists.

Who is this for?

  • Investors and analysts tracking insider purchases, sales, grants, and ownership changes.
  • Compliance teams exporting auditable public Form 4 transaction records by issuer or CIK.
  • Financial journalists monitoring recent insider activity around public companies.
  • Data teams feeding SEC insider transactions into dashboards, alerts, or warehouses.

Input recipes

  • Single ticker smoke test: {"tickers":["AAPL"],"formTypes":["4"],"maxFilings":10}
  • Watchlist: {"tickers":["AAPL","MSFT"],"formTypes":["4","4/A"],"maxFilings":10}
  • Compliance export by CIK: {"ciks":["0000320193","789019"],"formTypes":["3","4","4/A","5"],"maxFilings":25,"includeFootnotes":true}

What data can you extract?

FieldDescription
ticker, cik, issuerNamePublic company identifiers resolved from SEC data.
accessionNumber, formType, filedAt, periodOfReportFiling metadata.
filingUrl, xmlUrlAudit links back to SEC EDGAR source documents.
reportingOwnerName, reportingOwnerCikInsider/reporting owner identity.
isDirector, isOfficer, isTenPercentOwner, officerTitleDeterministic relationship flags from the filing.
transactionDate, transactionCode, transactionAcquiredDisposedCodeTransaction timing and SEC transaction codes.
securityTitle, shares, pricePerShare, transactionValueTransaction economics when reported. Gifts/grants may have null price/value.
sharesOwnedFollowingTransaction, ownershipNature, isDerivativePost-transaction and derivative/non-derivative ownership details.
footnotesOptional filing footnotes when enabled.
source, scrapedAtProvenance and scrape timestamp.

The Actor also writes RUN_SUMMARY to the default key-value store with processed issuer counts, matched filing counts, saved transactions, warnings, and per-input failures.

Input configuration

SettingJSON keyUse it forExample
TickerstickersResolve public company ticker symbols.["AAPL", "MSFT"]
CIKsciksQuery known SEC CIKs directly; padded and unpadded values work.["0000320193", "789019"]
Start/end datestartDate, endDateBound by SEC filing date."2026-01-01"
Form typesformTypesInclude Forms 3, 4, 4/A, or 5.["4", "4/A"]
Maximum filingsmaxFilingsCap filings inspected per issuer.10
DerivativesincludeDerivativeTransactionsInclude derivative transaction table rows.false
FootnotesincludeFootnotesAttach SEC filing footnotes to output rows.true
ProxyproxyConfigurationOptional Apify proxy settings; normally leave disabled.{ "useApifyProxy": false }

Example input

{
"tickers": ["AAPL", "MSFT"],
"formTypes": ["4"],
"maxFilings": 10,
"includeDerivativeTransactions": false,
"includeFootnotes": false,
"proxyConfiguration": { "useApifyProxy": false }
}

Example output

{
"ticker": "AAPL",
"cik": "0000320193",
"issuerName": "Apple Inc.",
"accessionNumber": "0000320193-26-000001",
"formType": "4",
"filedAt": "2026-01-15",
"periodOfReport": "2026-01-13",
"filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/...-index.htm",
"xmlUrl": "https://www.sec.gov/Archives/edgar/data/320193/.../form4.xml",
"reportingOwnerName": "Example Owner",
"reportingOwnerCik": "0000000000",
"isDirector": true,
"isOfficer": false,
"isTenPercentOwner": false,
"officerTitle": null,
"transactionDate": "2026-01-13",
"transactionCode": "P",
"transactionAcquiredDisposedCode": "A",
"securityTitle": "Common Stock",
"shares": 1000,
"pricePerShare": 150.25,
"transactionValue": 150250,
"sharesOwnedFollowingTransaction": 5000,
"ownershipNature": "D",
"isDerivative": false,
"footnotes": null,
"source": "SEC_EDGAR",
"scrapedAt": "2026-07-21T00:00:00.000Z"
}

Pricing

EventPriceCharged when
Run start$0.005 per runOnce when the Actor starts.
Transaction row savedFree $0.000575, Bronze $0.0005, Silver $0.00039, Gold $0.0003, Platinum $0.0002, Diamond $0.00014 per rowEach parsed transaction row saved to the dataset.

API usage

cURL

curl "https://api.apify.com/v2/acts/fetch_cat~sec-form-4-insider-trades-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"tickers":["AAPL"],"formTypes":["4"],"maxFilings":10}'

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/sec-form-4-insider-trades-scraper').call({
tickers: ['AAPL'],
formTypes: ['4'],
maxFilings: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('fetch_cat/sec-form-4-insider-trades-scraper').call(run_input={
'tickers': ['AAPL'],
'formTypes': ['4'],
'maxFilings': 10,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

MCP and AI agents

Use this Actor from Apify MCP Server when an agent needs structured SEC insider-trade rows. Configure the MCP endpoint with:

https://mcp.apify.com/?tools=fetch_cat/sec-form-4-insider-trades-scraper

Add it to Claude CLI with:

$claude mcp add apify-sec-form-4 'https://mcp.apify.com/?tools=fetch_cat/sec-form-4-insider-trades-scraper'

JSON config example:

{
"mcpServers": {
"apify-sec-form-4": {
"url": "https://mcp.apify.com/?tools=fetch_cat/sec-form-4-insider-trades-scraper"
}
}
}

Example prompts:

  • "Get recent Form 4 insider transactions for AAPL, maximum 10 filings."
  • "Export Form 4 and 4/A rows for CIK 0000320193 with footnotes."
  • "Check AAPL and MSFT insider trades and summarize the transaction codes."

Good agent prompts include the ticker/CIK list, date range, whether derivatives are needed, and the maximum filings per issuer.

Tips for best results

  • Use focused watchlists: Split very large universes into smaller scheduled runs.
  • Keep maxFilings bounded: Start with 10-25 filings per issuer, then increase if needed.
  • Use CIKs for compliance workflows: CIK inputs avoid ticker ambiguity and survive ticker changes.
  • Expect nullable economics: Gifts, grants, and some derivative rows may not report a cash price.

Limits and responsible use

This Actor only extracts official public SEC EDGAR ownership filings. It does not provide investment advice, buy/sell recommendations, AI scoring, private brokerage data, or Congress disclosure data. Use the data for research, compliance, and reporting, and verify important decisions against the linked SEC filing.

FAQ

Does this Actor give investment advice?
No. It returns structured public filing data only.

Can I input CIKs instead of tickers?
Yes. Use ciks with padded or unpadded SEC CIK values.

Why are price or value fields sometimes null?
Some transaction codes, grants, gifts, or derivative records do not report a cash price.

Where do diagnostics live?
The default key-value store contains RUN_SUMMARY with status, warning, and failure details.

Support

If a run does not return what you expected, open an Apify issue and include:

  • the run ID or run URL;
  • the exact input JSON;
  • the expected output;
  • the actual output or empty dataset detail;
  • a reproducible public URL such as an SEC filing URL, plus the ticker or CIK used.