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

Fetch Cat

Fetch Cat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Share

Extract SEC Form 4 insider trades by company ticker or issuer CIK. Get one dataset row per reported transaction with owner roles, shares, prices, calculated values and SEC filing links. Use the records for research, compliance exports or a company watchlist.

The scraper reads public SEC EDGAR ownership filings. It does not filter purchases or directors for you, and a filing limit is not a transaction-row limit.

Quick start

  1. Enter at least one company ticker or issuer CIK.
  2. Start with a small filing limit, such as this input:
{
"tickers": ["AAPL"],
"formTypes": ["4"],
"maxFilings": 5,
"includeDerivativeTransactions": false,
"includeFootnotes": false
}
  1. Run the Actor and open the dataset to review the transaction rows. Use the filing links to check the original disclosures.

Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.

Ready-to-run examples

Choose an example to start with a small, preconfigured input.

What you get

  • Transaction records: Reported purchases, sales, grants and other transaction codes, without a built-in code filter.
  • Filing context: Issuer identifiers, filing dates, accession numbers and source URLs.
  • Owner details: The first reporting owner's name, CIK and role flags from each filing.
  • Optional detail: Derivative transactions and filing-level footnotes when requested.
  • Run summary: RUN_SUMMARY in the default key-value store records saved transaction counts, warnings and failures.

Who is it for?

  • Investors and analysts reviewing insider transactions across a focused issuer list.
  • Compliance teams exporting public ownership disclosures with source references.
  • Financial journalists checking reported activity against SEC filings.
  • Data teams loading transaction records into spreadsheets or dashboards.

Input settings

SettingJSON keyWhat it does
Company tickerstickersIssuer ticker list, such as ["AAPL"].
Issuer CIKsciksPadded or unpadded issuer identifiers.
Filing datesstartDate, endDateOptional filing-date bounds in YYYY-MM-DD format.
Ownership formsformTypesForms 3, 4, 4/A or 5. Default is ["4"].
Filings per issuermaxFilingsFrom 1 to 200 matching filings per issuer. Form default is 10.
Derivative rowsincludeDerivativeTransactionsInclude derivative transactions. Default is false.
FootnotesincludeFootnotesAttach filing footnotes to rows. Default is false.

Provide at least one nonempty ticker or CIK list. You can combine both. CIKs identify issuers, not a person whose trades you want to search across companies. Set maxFilings explicitly in API inputs. The input form uses 10, while the existing raw runtime fallback is 25.

For a CIK-based export with amendments and footnotes:

{
"ciks": ["0000320193"],
"formTypes": ["4", "4/A"],
"maxFilings": 10,
"includeFootnotes": true
}

Output data

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.

transactionValue is shares multiplied by the reported price when both are available. Gifts, grants and other disclosures may have null prices or values. footnotes is a list when enabled and otherwise null.

This synthetic, abbreviated shape example is not an observed trade or a complete output row:

{
"ticker": "EXAMPLE",
"issuerName": "Example issuer",
"reportingOwnerName": "Example reporting owner",
"transactionCode": "P",
"shares": 10,
"pricePerShare": 2,
"transactionValue": 20,
"isDerivative": false,
"footnotes": null,
"source": "SEC_EDGAR"
}

Download your results

Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.

See Apify's download and export guide for the available formats and field options.

Pricing

This Actor uses pay-per-event pricing. The start event is charged once after input validation when the run begins processing.

The result event is charged for each transaction row saved to the dataset. Warnings and failure details in RUN_SUMMARY are not transaction rows. A run with no saved transactions can still incur the start charge. Partial or failed runs can retain charges for work already saved.

See the live Pricing tab for current rates and discounts.

Tips for best results

  • Start with a few filings. One filing can contain many transactions, so increase maxFilings gradually.
  • Use focused watchlists. Smaller issuer batches are easier to inspect and retry when needed.
  • Choose CIKs for stable issuer identifiers. Tickers can change over time.
  • Filter after export. Use transaction codes and role flags to select purchases, sales or officer records in your own workflow.
  • Keep footnotes only when needed. They add context but make exports larger.

Limits and caveats

  • Only public SEC ownership filing data is returned. This is not investment advice or a brokerage-data service, and Fetch Cat is not affiliated with the SEC.
  • The discovery source covers recent issuer filings, not a guaranteed full historical archive. When the main source is unavailable, recent ownership coverage can be limited to 200 filings per issuer before your filters and limit apply.
  • Filing dates are not transaction dates. There is no built-in transaction-code, role or minimum-value filter.
  • Rows use the first reporting owner in a joint filing. Holdings-only entries are not transaction rows. Derivative-specific strike prices and expiry dates are not exported.
  • SEC access failures can interrupt a run. Legitimate searches with no matching transactions can succeed empty. If source failures prevent all output, the existing implementation fails the run. Useful partial records remain available when only some filings fail.
  • Interrupted or time-limited exports may leave saved rows and an INCOMPLETE summary. Resume with the same input and stores to continue pending work. Use fresh stores when changing input. Recovery is not an exactly-once billing guarantee.

Automation and integrations

Save your settings for next time

Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.

Run on a schedule

Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.

Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.

Send results to your other tools

Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.

For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.

API usage

Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.

The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.

For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.

cURL

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

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: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

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

MCP and AI agents

You can ask your AI assistant to collect data with SEC Form 4 Insider Trades Scraper and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.

Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.

Easier setup with an Apify plugin

If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.

Use Apify AI in Console

Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's SEC Form 4 Insider Trades Scraper. You can describe the data you want and ask questions about the results.

Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.

Choose your assistant

Connect just this scraper

To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:

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

Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.

Use Apify's general server

Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use SEC Form 4 Insider Trades Scraper by Fetch Cat, or give it the identifier fetch_cat/sec-form-4-insider-trades-scraper.

Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.

Example requests

  • “Get the transactions from five recent Apple Form 4 filings and summarize their transaction codes.”
  • “Collect Form 4 and amended Form 4 transactions for Apple's issuer CIK, with footnotes, from up to ten filings.”
  • “Get transactions from up to five filings each for Apple and Microsoft, then prepare a comparison table from the returned data.”

Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.

Pay with x402

If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.

Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.

Some MCP setups also support paying for each request directly. That is a different payment option, so check the official guide for its availability.

Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.

Other ways for agents to pay

Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.

FAQ

Can I export SEC Form 4 insider trades to CSV or Excel?

Yes. Export the dataset after a run, or retrieve it through the API. One filing may produce several transaction rows.

Can I search by CIK instead of ticker?

Yes. Use padded or unpadded issuer CIKs. This is not a reporting-owner search across companies.

Can I get only insider purchases or directors' transactions?

There is no input filter for these. Filter the returned transactionCode, isDirector and isOfficer fields in your own workflow.

Why are prices or transaction values missing?

Some gifts, grants and other reported transactions do not include a cash price. Missing values remain null rather than being estimated.

Does the scraper need an SEC login?

No. It reads public SEC disclosures. Your Apify API or MCP connection still needs its normal platform authentication.

What should I check when results are empty or incomplete?

Read RUN_SUMMARY, confirm your issuer and filing-date filters, and inspect the run status. SEC restrictions or unavailable filings can affect results. An empty dataset alone does not prove there were no transactions.

Can an AI assistant or my own app use it?

Yes. Use the API or Apify's hosted MCP service as described above. This public, limited-permission pay-per-event Actor supports the documented authenticated platform route. Direct per-request MCP payments have separate platform eligibility rules. No payment flow is implemented by this scraper.

Support and feedback

For custom additions or integrations, email hello@fetchcat.dev.

Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.

Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.

Tried this scraper? We'd love to hear how it worked for you. Leave a review to help others choose the right tool and help us improve it. Your feedback means a lot to us. If the direct review link is unavailable, open the Actor page and use its review controls.

Made with care for curious people, AI agents and the possibilities in data. ♥