SEC Insider Trading Scraper - Form 4 Insider Trades & Buys
Pricing
$1.80 / 1,000 insider transactions
SEC Insider Trading Scraper - Form 4 Insider Trades & Buys
Scrape SEC EDGAR Form 3/4/5 stock insider trades: insider buying and selling — from the official filings: one flat row per transaction with insider name, role, decoded code, shares, price, signed USD value and shares held after. No API key, no fee. Signed USD separates insider selling from buys.
Pricing
$1.80 / 1,000 insider transactions
Rating
0.0
(0)
Developer
Fetch Smith
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
SEC Insider Trading Scraper — Form 4 insider trades, buys & sells as flat rows
Reads SEC EDGAR ownership filings (Forms 3, 4 and 5) straight from the SEC's own keyless endpoints and returns one flat row per reported transaction — not one row per filing, and not a PDF link you still have to parse.
Give it tickers (AAPL, NVDA) or raw CIK numbers. Tickers are resolved against SEC's official
company_tickers.json map, so an unlisted ticker is skipped with a warning instead of silently
returning nothing.
In short: an insider trading API over Form 4 data, callable from Apify without hosting an EDGAR parser yourself.
Why this one
- Parsed transactions, not filing lists. Most EDGAR Actors hand you an index of 10-K/10-Q/8-K filings. This one opens the raw ownership XML behind each Form 4 and pulls out the trade: who, what role, which code, how many shares, at what price, how many held afterwards.
transactionCodeis decoded.S→Open-market sale,F→Shares withheld for taxes,M→Option exercise/conversion, and so on for all 20 SEC-defined codes, including the rareO(out-of-the-money option exercise, seen a handful of times per quarter across all filers) andV(voluntarily reported early). The distinction matters: a largeForMrow is routine compensation mechanics, not a bearish signal, and treating every disposition as "insider selling" is the single most common mistake in this dataset.transactionValueUsdis signed and pre-computed — negative on a disposition, positive on an acquisition — so you can sum a column without re-deriving the sign fromacquiredOrDisposed.- Rule 10b5-1 flag and footnotes are carried through, which is how you tell a pre-scheduled plan sale from a discretionary one.
- No personal addresses. The ownership XML contains the reporting person's street address. This Actor deliberately never emits it. Names, CIKs, roles and officer titles are the public corporate disclosure; the address block is personal data and is not part of this product.
- The filters run before billing.
transactionCodes,minTransactionValueandinsiderRolesare applied to each parsed row before it is pushed or charged, so "only open-market buys over $250k by an officer" costs you those rows and nothing else. - No API key, no start fee, HTTP only (no headless browser), pay only per transaction row.
Output fields
id, rowType, accessionNumber, formType, isAmendment, amendsOriginalFilingDate,
supersedesAccessionNumber, supersedesCandidateAccessions, amendedByAccessionNumber,
filingDate, periodOfReport, issuerName, issuerCik,
ticker, insiderName, insiderCik, isDirector, isOfficer, isTenPercentOwner, isOther,
officerTitle, coFilers, derivative, securityTitle, transactionDate, transactionCode,
transactionCodeMeaning, acquiredOrDisposed, shares, pricePerShare, transactionValueUsd,
sharesOwnedAfter, directOrIndirect, indirectOwnershipNature, exercisePrice,
expirationDate, underlyingSecurityTitle, underlyingShares, rule10b5_1Plan, footnotes,
filingUrl, url.
Derivative rows (options, RSUs, convertibles) carry exercisePrice, expirationDate,
underlyingSecurityTitle and underlyingShares; non-derivative common-stock rows leave them
null. Set includeDerivative: false to get common stock only.
Amendments (4/A) and which filing they replace
SEC does not flag a corrected filing — it publishes the correction as a separate form type
(4/A), so a feed that only asks for 4 silently never sees it. Select 4/A in formTypes
(alongside 4) to get them. Amendments are real: of the seven large-cap issuers we sampled, six
had at least one, and the two we read in full corrected a post-transaction share count and a Rule
10b5-1 plan date respectively — numbers this Actor otherwise reports as fact.
EDGAR's amendment XML names only the date the original was filed
(dateOfOriginalSubmission), never its accession number, so linking the two is an inference this
Actor makes for you from the issuer's own filing index — at no extra request cost:
| Field | Meaning |
|---|---|
isAmendment | true on 3/A/4/A/5/A rows. |
amendsOriginalFilingDate | EDGAR's dateOfOriginalSubmission — the filing date of the original, which is normally later than periodOfReport. Never compare it against periodOfReport. |
supersedesAccessionNumber | The original's accession, filled only when the match is unambiguous (exactly one filing of that form by that issuer on that date). null otherwise — null means "could not tell", not "no original exists". |
supersedesCandidateAccessions | Every filing that could be the original, so you can check them yourself when the match is ambiguous. Empty on non-amendment rows. |
amendedByAccessionNumber | Set on an original row when an amendment for the same issuer, insider and period also appeared in this run. |
Nothing is dropped: when you select both 4 and 4/A you get the original rows and the
correcting rows, with the originals tagged — an audit trail needs both the wrong number and the
fix, so we never silently replace one with the other.
Worked examples, both live-verified. Apple's 0000320193-22-000078 (a 4/A filed 2022-08-22,
period 2022-08-17) reports its original as filed 2022-08-19; Apple filed exactly one Form 4 that
day, so supersedesAccessionNumber resolves cleanly to 0000320193-22-000076 — same insider
(Luca Maestri), same period. Tesla's 0000899243-22-021041 (a 4/A filed 2022-06-03) reports its
original as filed 2022-05-04, but Tesla filed three Form 4s that day, so
supersedesAccessionNumber is null and all three appear in supersedesCandidateAccessions.
The one limit worth knowing, because it is a property of EDGAR and not something any Actor can
engineer around: the same insider can file two Form 4s on one day for one period. Robyn Denholm
filed both 0000899243-22-016670 and -016671 for period 2022-05-02, and since EDGAR publishes
no superseded-accession pointer anywhere, amendedByAccessionNumber will mark both of those
originals. Read that field as "a correction touching this issuer/insider/period exists" rather
than "this exact row was restated", and use filingUrl to confirm which one moved.
Holdings rows (includeHoldings, off by default)
A Form 3 — and the holdings section of a Form 4/5 — reports a position the insider holds, not a
trade, and SEC files those in separate <nonDerivativeHolding>/<derivativeHolding> elements. With
includeHoldings off (the default) they are skipped, which means a Form-3-only run returns zero
rows; the Actor now warns about exactly that at the top of the run instead of leaving you to guess.
Set includeHoldings: true to get them as extra rows with rowType: "holding" (transaction rows are
rowType: "transaction"). On a holding row transactionDate, transactionCode,
transactionCodeMeaning, acquiredOrDisposed, shares, pricePerShare and transactionValueUsd
are null — there is no trade to report — and the position is in sharesOwnedAfter for common stock
or in underlyingShares for a derivative holding such as an RSU award (measured on Apple's
September 2026 Form 3s: 1 non-derivative + 7 derivative holding rows per filing, each with the full
vesting schedule in footnotes). It is opt-in so that an existing Form 4 caller's row count — and
therefore their bill — does not change.
Narrowing the feed (transactionCodes, minTransactionValue, insiderRoles)
Most of a Form 4 feed is compensation plumbing rather than trading: across 8 consecutive Apple
Form 4s (17 rows, measured 2026-10-01) the mix was 12 A grants, 2 S open-market sales, 2 M
option exercises and 1 F tax withholding. If you only want the sales, three optional filters cut
the feed down before anything is pushed or charged:
transactionCodes— e.g.["P", "S"]for open-market buys and sells only. All 20 SEC codes are selectable from the dropdown; the platform rejects anything else before the run starts. One interaction worth knowing:C,X,O,E,HandKare only ever reported on derivative rows, so selecting one of them withincludeDerivativeturned off matches nothing. The run logs a warning naming the codes, and (verified live, 2026-10-13) the zero-row remedy correctly skips its usual "raisemaxFilingsPerIssuer/widensinceDate" advice in this case — no amount of widening either one can produce a match here.minTransactionValue— a USD floor compared on the absolute value, so a $2M sale (transactionValueUsd: -2000000) passes a500000floor exactly like a $2M purchase. Rows with no reportable value — holdings, and grants filed with no price — cannot be shown to clear the floor and are excluded.insiderRoles— any ofofficer,director,tenPercentOwner,other. Matched against the filing's first reporting owner; on a joint filing the other reporting persons appear incoFilersas names only and are not role-matched.
The filters are combined with AND, and they narrow rows, not filings: maxFilingsPerIssuer
still decides how far back the run looks, so a strict filter can return few rows from a filer who
simply made no matching trades recently. The run log prints how many rows each run dropped, and
says so explicitly when the filters removed everything.
Sample row
{"id": "0001140361-26-037020-n0","accessionNumber": "0001140361-26-037020","formType": "4","filingDate": "2026-09-17","periodOfReport": "2026-09-15","issuerName": "Apple Inc.","ticker": "AAPL","insiderName": "Newstead Jennifer","isOfficer": true,"officerTitle": "SVP, GC and Government Affairs","derivative": false,"securityTitle": "Common Stock","transactionDate": "2026-09-15","transactionCode": "S","transactionCodeMeaning": "Open-market sale","acquiredOrDisposed": "D","shares": 1438,"pricePerShare": 330.19,"transactionValueUsd": -474813.22,"sharesOwnedAfter": 32914,"rule10b5_1Plan": true,"footnotes": "This transaction was made pursuant to a Rule 10b5-1 trading plan adopted by the reporting person on May 5, 2026."}
Pricing
result — $0.0018 per returned transaction row, no Actor-start fee.
Among listings that specialize in parsed insider-trading output, ryanclinton (52 users, ryanclinton/sec-insider-trading) remains the biggest, charging $0.002 per trade plus a small Actor-start fee — we're ~10% cheaper per row with no start fee at all. Their listing markets "behavioural insider-trading signal classification" (cluster-buy/regime-shift detection) over a 140+ field output schema; the extra fields we sampled at launch (cycle 810) read as speculative/AI-generated Store-listing padding (signalGenome, manipulationResistance, institutionalNarrative) rather than values a buyer could actually trust, so we did not copy them. This Actor instead differentiates on data fidelity: all 20 SEC transaction codes decoded (not just the common ones), a signed pre-computed USD value, the 10b5-1 plan flag normalized across its four real on-the-wire spellings (measured across 210 filings — see Related guides), and sinceDate that follows EDGAR's older paginated filing index instead of stopping at the ~12-month inlined window every other Actor in this niche appears to read from. Re-verified against their live pricing and stats 2026-10-03 — still 52 users at $0.002 per trade plus a $0.00005 Actor-start fee, unchanged since cycle 810's original audit.
By raw user count, several generic multi-filing-type EDGAR scrapers are now bigger than any insider-trading specialist, including ryanclinton — a 97-match, 7-term Store sweep, checked live 2026-10-03 (promoted into bin/niche-size's TERM_VARIANTS this cycle; the single-term auto-sweep had returned only 15), surfaced them. constant_quadruped/sec-edgar-filings-scraper (101 users, 17 new in the last 30 days — the fastest-growing listing in this entire comparison) is on Apify's FREE pricing model ($0/row) and lists "insider trades" among 100+ fields across 10-K/10-Q/8-K/Form 4 filings; constructive_calm/sec-edgar-scraper (58 users) charges $0.0004 per filing fetched (10-K, 8-K, Form 4, 13F, etc. all the same price) plus a $0.01 start fee. Neither beats us on an apples-to-apples basis: both charge per filing fetched, not per transaction parsed — exactly the baseline this README's first "Why this one" bullet already describes, now named and priced. Stated as a break-even ratio rather than a single converted figure (re-verified live 2026-10-07: $0.0004 flat on its primary filing-fetched event, no tiers, 0 drift), constructive_calm's $0.0004/filing beats our $0.0018/transaction once a filing carries more than 0.22 transactions — a break-even below 1.0, so on the per-row rate alone it is cheaper per transaction-equivalent at any filing density, not just for multi-transaction filers like Apple. Its $0.01 Actor-start fee is the real offset: a run costs $0.01 + $0.0004/filing against our $0.0018/transaction with no start fee, so for a single-transaction issuer we are cheaper on any run returning fewer than ~8 rows, and it only pulls ahead on larger batches. Neither decodes transaction codes, signs the USD value, or normalizes the 10b5-1 flag, and a buyer still has to parse the raw filing index or XML themselves to get a trade out of it. constant_quadruped's $0 is unbeatable on sticker price regardless. Two more of the same class, dearer than us either way: benthepythondev/sec-edgar-filings-intelligence (20 users, $0.029 FREE → $0.0203 Diamond per filing row plus AI scoring) and crawlerbros/sec-edgar-scraper ($0.005 start + $0.002 FREE → $0.001 Diamond per filing row — a different listing from the already-named crawlerbros/open-insider-scraper below).
Against the Form 4 niche's established, non-tiered specialists this is still the cheapest per-row listing by a wide margin, re-checked live 2026-10-02 against each rival's current pricing record with no drift from the previous audit (for the tiered and parity-priced specialists that do match or beat it, see the two paragraphs below): scrapemint/sec-form4-insider-tracker charges $0.025 per filing row, scrapers_lat/sec-form4-insider-trades-scraper $0.012 down to $0.0102 on the higher plans, and parseforge/sec-form4-scraper $0.04999 down to $0.03749 plus a $0.005 start fee — 6x to 28x this Actor's $0.0018. The honest comparison is on filters rather than price: scrapemint is the one competitor with a comparable, non-speculative feature list, and the code / minimum-value / role filters above exist because it had them and this Actor did not.
What we do not claim: a Store sweep checked live 2026-10-02 (2 search terms, 20 live listings priced) found jweninger16/insider-trading-monitor on Apify's FREE pricing model — $0/row at any volume, genuinely cheaper than this Actor at every row count. Its own listing describes structured per-trade output (who traded, shares, price, post-trade position) comparable in shape to this Actor's, so it is a real rival, not a shallow clone — we have not inspected its actual output fields closely enough to know whether it decodes all 20 transaction codes, signs transactionValueUsd, or normalizes the 10b5-1 flag's four spellings the way this Actor does. No per-row price can beat $0; the differentiator here stays data fidelity (code decoding, signed value, normalized plan flag, EDGAR pagination past the ~12-month inlined window) rather than price. Also newly priced and disclosed for completeness, all dearer than us: entrepreneurial_lens_ehi/openinsider-scraper (tiered $0.0038 FREE down to $0.00171 GOLD+ — undercuts us only from GOLD+ and up, but scrapes openinsider.com's own generic Title/Url/Description fields rather than parsed EDGAR XML, so it is a narrower/shallower product despite the lower per-row ceiling), its dearer sibling-category listing crawlerbros/open-insider-scraper (same openinsider.com source, $0.005 start + tiered $0.005 FREE down to $0.003 GOLD+ — dearer than us and than entrepreneurial_lens_ehi at every tier), pink_comic/sec-insider-trading-tracker ($0.002/row), bb-tradetec/sec-form4-transaction-normalizer ($0.002/row), great_pistachio/sec-filings-monitor ($0.01/row), gochujang/insider-trading-tracker ($0.002/row), straightforward_hydra/sec-form4-insider-trading-monitor ($0.005/row), neuton/sec-form4-insider-transactions-scraper ($0.004/row), nexgendata/sec-edgar-filings-api (re-verified 2026-10-03; its own marketing covers "Form 4 insider trades, 8-K, 13F... and 20+ more" but the live pricing's only charge event is literally named form-d-filing at $0.05, so Form D is what you're actually billed under regardless of which filing type you pick), andrew_avina/sec-insider-mcp ($0.003/row). None of these beat our price; only jweninger16 and entrepreneurial_lens_ehi (partially) do.
A 7-term niche sweep checked live 2026-10-03 also surfaced saswave/advanced-finviz-scraper ($0.001/row flat — genuinely cheaper than us) for the first time. It is not a competing product: it is a general Finviz.com page scraper ("collect data from public listed companies... for easier analysis and insider trade / news monitoring") where insider-trade data is one scrapeable Finviz page among several, sourced from Finviz's own secondary display rather than parsed EDGAR XML — no transaction-code decoding, no signed USD value, no 10b5-1 flag. Noted for completeness, not folded into the "beats us on price" list above since it is not a Form-4 specialist.
Three Form-4 specialists that match or beat our per-row price, all checked live 2026-10-04 (a re-run of the 7-term sweep now returns 100 matches; these three sat below the top-10-by-users cut that earlier audits stopped at, which is why they are named here for the first time). kenshinsee/sec-form4-recent-updates-scraper and kenshinsee/sec-form4-company-history-scraper are both tiered: $0.002/result on the Free plan, $0.0018 on Bronze — level with us — then $0.0015 on Silver and $0.0012 on Gold/Platinum/Diamond, genuinely cheaper than our flat $0.0018 for any buyer on Silver or above. They are real EDGAR Form 4 parsers, not aggregator wrappers, and between them cover the same two access patterns we do (a recent-filings feed and a per-company history by CIK/ticker); their listings advertise CIK, shares, price and the P/S/M transaction codes, i.e. the three common codes rather than all 20, and neither advertises a signed USD transaction value, a normalized 10b5-1 flag, or filing coverage past EDGAR's ~12-month inlined window. parsebird/sec-insider-scraper charges $0.0018 per insider transaction — exactly our price — plus a $0.00005 Actor-start fee, so it is a hair dearer per run and identical per row; its own listing says it sources from Dataroma, a third-party aggregator of Form 4 data, rather than from the SEC filings themselves, so its coverage and latency are bounded by Dataroma's rather than EDGAR's. Our case against all three is fidelity and coverage, not sticker price: all 20 transaction codes decoded, a signed transactionValueUsd, the 10b5-1 flag normalized across its four on-the-wire spellings, and sinceDate following EDGAR's paginated filing index.
A full-list niche re-sweep (104 matched, up from 100, checked live 2026-10-05) found no new undercutter — the niche's growth since the last full sweep is all 1-3-user churn, every one of it dearer than our flat $0.0018/row. Six more newly-named rivals, all in scope and all dearer: toolstem/toolstem-sec-mcp-server (MCP tool-call pricing — $0.05/call for insider-signal lookups), datasignalslab/sec-form4-insider-buying-clusters ($0.02 per one-time cluster-signal event rather than a per-row charge), george.the.developer/sec-edgar-filing-extractor ($0.005 per filing extracted, not per transaction), khadinakbar/sec-edgar-all-in-one-scraper ($0.005/result flat across nine generic EDGAR modes), seibs.co/sec-edgar-intel ($0.005/filing record plus a $0.01 enrichment charge for Form 4 pattern detection) and alizarin_refrigerator-owner/sec-edgar-api---company-filings-financial-data ($0.01/call plus a $0.1 Actor-start fee). Three more checked and ruled out of scope rather than priced: ryanclinton/company-due-diligence-report and pink_comic/sec-edgar-company-filings (both KYB/company-diligence products with insider trades as one minor field, not Form 4 specialists) and jenko_systems/cvm-insider-358 (Brazil's CVM Form 358 — a different country's regulator, not SEC EDGAR).
A full-cohort sweep of the remaining unnamed niche tail (77 listings, checked live 2026-10-06 — niche-unnamed now matches 108, 33 already named). The ≥3-user cut cleared only xtracto/tipranks-stock-signals ($0.005 start + tiered $0.005→$0.002 per bundled stock-level result covering TipRanks' Smart Score, analyst consensus and sentiment with insider trades as one minor field — dearer than us and a different unit), so per the standing full-cohort rule all 77 were live-priced regardless of user count. Five genuine new per-transaction undercutters, all small (0-2 users): steadydata/sec-insider-trading (tiered $0.001 FREE → $0.00065 Gold+, no start fee, its own listing says "pay per transaction" — the closest feature match found yet, advertising role/title, transaction code, shares, price, value, shares-owned-after, derivative and 10b5-1 flags, i.e. nearly our own differentiator list, though not confirmed to decode all 20 codes or normalize the flag's four spellings); gochujang/sec-insider-trading ($0.00005 start + $0.001 per insider-trade-tracked — 44% cheaper); jungle_synthesizer/sec-insider-trading-crawler ($0.001 per data-record but a $0.10 one-time Actor-start fee — cheaper per row, dearer on a small run); fetch_cat/sec-form-4-insider-trades-scraper ($0.005 start + tiered $0.000575 FREE → $0.00014 Diamond per "insider trade row" — the cheapest per-row ceiling found in this niche to date); supermiojo/insider-trading-monitor (2 runs/30d, $0.0001 start + $0.0015/item). None of the five have been checked for transaction-code coverage, signed USD values, or 10b5-1 normalization beyond what their own listing claims.
Two more are unbeatable on sticker price ($0) but out of scope the same way jweninger16 already is above: constant_quadruped/sec-insider-trading-monitor (FREE pricing model — a different Actor from the already-named 101-user constant_quadruped/sec-edgar-filings-scraper sibling, same owner) and canadesk/sec-edgar-fast (FREE, but a generic multi-filing financial scraper where Form 4 XML parsing is one feature among XBRL financials and 10-K chapter extraction).
Three more charge per filing, not per transaction — the same baseline distinction already drawn against constant_quadruped/constructive_calm above — and a buyer still gets one row per filing, not per trade. Each is quoted below as a break-even ratio (its per-filing rate ÷ our $0.0018/transaction = the transactions-per-filing a buyer needs before it is the cheaper option) rather than as a figure converted at Apple's Apple-specific ~2.1 ratio; all three rates re-verified live 2026-10-07 with 0 drift. mikee368/sec-edgar-filings-watch ($0.001/filing flat, no start fee — break-even 0.56, does parse owner/role/code/shares/price/holdings-after), getascraper/sec-form4-insider-monitor ($0.00005 start + tiered $0.00175 FREE → $0.0016 BRONZE → $0.00146 SILVER → $0.00131 GOLD/PLATINUM/DIAMOND per "Form 4 filing with transactions" — break-even 0.97 at FREE down to 0.73 at GOLD+; part of a marketed four-signal suite bundling Congress-trade and short-interest data, not an insider-trading specialist) and mina_safwat/sec-filings-scraper ($0.00005 start + $0.001/filing row across 10-K/10-Q/8-K/Form 4 generically, same class as constant_quadruped — break-even 0.56). Every one of those break-evens sits below 1.0, so unlike the per-filing rivals in the break-even paragraph further down, these three stay cheaper per transaction-equivalent even for the single-transaction issuers that ratio measurement found to be common — our case against them is one row per filing versus one per decoded trade, not price.
Two have a different output granularity entirely and are excluded from the price comparison, not just dearer: johnveds15/sec-form4-insider-clusters ($0.0004/cluster) returns one row per cluster of several insiders buying together, not one row per transaction; jovian_zabra_nk5/sec-edgar-insider-trading ($0.0015/filing) returns filing-index metadata only — issuer, filer, dates and a link — with no shares, price, code or value fields at all, so it isn't a transaction-data product despite the title. Two MCP servers from the same owner (red.cars/sec-edgar-intelligence-mcp, red.cars/sec-form-4-insider-tracker) bundle Form 4 with 10-K/10-Q/8-K access behind a $0.00001-per-dataset-item charge that can't be read as a comparable per-transaction price from the listing alone — not disclosed either way. The remaining 65 of 77 are dearer than our flat $0.0018/row at every tier.
A full-cohort re-sweep of the unnamed niche tail (60 listings, checked live 2026-10-06 — niche-unnamed now matches 106 of 250 seen, 48 already named). Not one listing in the tail cleared 2 users, so per the standing full-cohort rule all 60 were live-priced across every plan tier of every charge event regardless of user count, rather than cut at a user threshold. Our own price was re-verified against the live record first: flat $0.0018/result, no start fee, no tiers, unchanged. One unit-matched new undercutter, plus two per-filing rivals whose advantage is filing-density-dependent (corrected 2026-10-07: this paragraph originally called all three outright undercutters, having converted the two per-filing rates at the ~2.1-transactions-per-filing ratio that the break-even paragraph below measured to be Apple-specific; all three price maps re-verified live 2026-10-07 with 0 drift, and the corrected reading is less favourable to both per-filing rivals, not more). codecraftco/sec-insider-trades (listed 2026-09-26, $0.00005 start + tiered $0.003 Free → $0.0015 Bronze → $0.0014 Silver → $0.0012 Gold/Platinum/Diamond per fully-parsed Form 4 transaction — dearer than us on Free, cheaper at every paid tier; unit-matched to ours exactly, and its own listing advertises transaction codes, 10b5-1 flags, reporter role and post-transaction holdings, so it is the closest feature claim in this sweep, though nothing confirms it decodes all 20 codes or normalizes the plan flag's four on-the-wire spellings); datalayer/insider-trading-form4 (no start fee, tiered $0.002 Free → $0.0018 Bronze (level with us) → $0.0016 Silver → $0.0014 Gold+ per filing — as a break-even ratio that is 1.11 transactions/filing at Free, 1.00 (an exact tie) at Bronze, 0.89 at Silver and 0.78 at Gold+, so for the single-transaction filings that MSFT and JPM returned throughout the ratio sample below it is dearer than us on Free, exactly level on Bronze, and undercuts unconditionally only from Silver up; it is also the first rival found that claims full transaction-code decoding rather than just the common P/S/M codes, its listing saying it "decodes all 19 codes" against the 20 this Actor decodes, so on this niche's main fidelity differentiator it is the nearest competitor named to date); and humble-echidna/sec-edgar (listed 2026-09-29, $0.00005 start + tiered $0.002 Free → $0.0018 Bronze → $0.0016 Silver → $0.0014 Gold/Platinum/Diamond per filing of any form type — 10-K/10-Q/8-K/Form 4/13F/Form D/S-1 all billed identically, i.e. the same per-filing-not-per-transaction class already described against constant_quadruped/constructive_calm above, and tier-for-tier the same price map as datalayer, so the same break-even ratios apply: 1.11 / 1.00 / 0.89 / 0.78, dearer than us on Free and level on Bronze for a single-transaction filing, and one row per filing rather than per trade either way).
Two more are cheaper than us on a unit-matched basis but out of scope for the price list, and are named here rather than folded into it. scrapesage/finviz-scraper (no start fee) carries a dedicated insiderTransaction charge event — one insider transaction with ticker, insider name and relationship, date, type, price, shares, value, holdings-after and a link to the Form 4 — priced tiered $0.003 Free → $0.00256 Bronze → $0.0021 Silver → $0.00166 Gold → $0.00114 Platinum → $0.00075 Diamond, so it undercuts our flat $0.0018 from Gold up; it is out of scope exactly the way saswave/advanced-finviz-scraper already is above — the data is read off Finviz.com's own secondary display, not parsed EDGAR XML, so there is no transaction-code decoding, no signed USD value and no 10b5-1 normalization behind it. jdepablos/insider-trading-feed bills on a different unit entirely: its primary event is $0.015 per company scanned plus a $0.005 Actor-start event, with the dataset rows themselves priced at a nominal $0.00001 — so a one-company run costs ~$0.02 flat however many trades come back, which beats our $0.0018/row only once that company has more than ~11 Form 4 transactions in the requested window, and is dearer than us for anything smaller. It is not a flat undercutter and is not counted as one.
The remaining 55 of the 60 are dearer than our flat $0.0018/row at every tier of every charge event — the tail's modal price is $0.005/row, and the dearest listings in it (nerolabs/sec-edgar-filing-monitor, nexgendata/sec-form-4-insider-monitor) charge $0.1 per row or per monitor run, ~55x our rate.
A fresh full-cohort re-sweep of the unnamed tail (55 listings, checked live 2026-10-07 — niche-unnamed now matches 108 of 254 seen, 53 already named). Our own price was re-verified against the live record first: flat $0.0018/result, no start fee, no tiers, unchanged. All 55 were live-priced across every plan tier of every charge event, with the reserved apify-actor-start key and every other one-time event excluded from the per-row rate rather than folded into it. Not one of the 55 undercuts our $0.0018 on its own per-row rate at any tier — the cheapest unit-matched per-transaction rivals in the tail sit at $0.002 (digital_influx/sec-insider-trades, texxupport/sec-insider-trade-alerts, pappy-dev/sec-form4-insider-trading, all explicitly billing one insider transaction row), and the tail's dearest are titan_coder/sec-form4-cluster-buy-monitor ($0.05) and nexgendata/china-ashare-insider-trades / nexgendata/eu-mar-insider-transactions-tracker ($0.1, and both a different regulator's disclosures entirely).
Three of the 55 charge per filing rather than per transaction (all three price maps below checked live 2026-10-07), which is the only way a dearer-looking sticker price can still beat ours — and this sweep measured that the conversion ratio is issuer-dependent, which is why every per-filing rival on this page is now quoted as a break-even ratio rather than as a converted price. ponderable_hydrometer/sec-edgar-scraper (3 users, $0.00005 start + $0.003 flat) states "one flat row per filing" in its own README and returns filing metadata and document URLs only — no owner, shares, price or transaction code — so it is the constant_quadruped/constructive_calm class again, not a substitute for a parsed trade. tagadanar/sec-edgar-monitor ($0.001 start + tiered $0.005 FREE → $0.0045 BRONZE → $0.004 SILVER → $0.0035 GOLD/PLATINUM/DIAMOND) does bill "per filing returned with its parsed data", plus a separate $0.021–$0.03 one-time digest event in monitor mode. muhammadafzal/sec-edgar-scraper (1 user, $0.005 flat start at every tier + tiered $0.004 FREE → $0.0039 BRONZE → $0.0038 SILVER → $0.0032 GOLD+ "per schema-validated filing or record") spans 10-K/8-K/Form 4/13F generically. Rather than restate a single converted figure, the honest form of the comparison is the break-even ratio: each of these beats our $0.0018/transaction only once a filing carries more than its own rate ÷ $0.0018 transactions — 1.67 for ponderable_hydrometer, 1.94 for tagadanar at GOLD+ (and never at FREE/BRONZE/SILVER, where it needs 2.2–2.8), and 1.78 for muhammadafzal at GOLD+ (SILVER's $0.0038 is a near-exact tie at 2.11, before its $0.005 start fee).
The ratio itself, re-measured live (verified 2026-10-07), is not a constant, and the "~2.1 transactions per filing" figure used elsewhere on this page is an Apple-specific average, not a niche-wide one. A capped run over Apple's four most recent Form 4s returned 8 transaction rows from a single accession (0001140361-26-038674, Tim Cook — one option exercise, one tax-withholding, four separate open-market sales at different prices, and a gift, all decoded), while a capped run over Microsoft's and JPMorgan's four most recent Form 4s each returned exactly one transaction row per filing (8 rows, 8 distinct accessions). So for a single-transaction issuer — which both MSFT and JPM were across this sample — every per-filing rival's per-transaction cost is simply its sticker price, and all three above are then dearer than our $0.0018, not cheaper. Per-filing pricing only beats ours for buyers tracking multi-transaction filers like Apple. As of 2026-10-07 no comparison on this page converts a per-filing rate at ~2.1x any more: every per-filing rival above is stated as a break-even ratio instead, so a buyer can apply their own filers' filing density rather than inherit Apple's. That re-statement moved two rivals out of the "undercutter" reading entirely — datalayer/insider-trading-form4 and humble-echidna/sec-edgar both break even at 1.11 transactions/filing on Free, i.e. dearer than us for a single-transaction filing — and left the four sub-1.0 rivals (constructive_calm, mikee368, getascraper, mina_safwat) cheaper on the per-row rate at any density, which the ratio was never what decided.
A full-cohort re-sweep of the unnamed tail (46 listings, checked live 2026-10-08 —
niche-unnamed now matches 108 of 256 seen, 64 already named). Our own price was re-verified
against the live record first: flat $0.0018/result, no start fee, unchanged. Only
sutraflow/sec-insider-trading-signals (2 users as of 2026-10-16, down from 3) cleared the usual ≥3-user floor at the time of that sweep and bills $0.01
start + $0.01 per insider-transaction — dearer than us. The remaining 45 (0-1 users each) were
all live-priced across every charge event and tier regardless; their per-row rate is dearer than
ours at every tier too, modal price ~$0.003-$0.005/row, consistent with every prior sweep on this
niche. Two are a shape worth flagging rather than filing under "dearer," though, because — like
the per-filing rivals above — their price is volume-dependent rather than a flat per-row
comparison: m_ctim/insider-trading-alert charges one flat insider-search fee ($0.007 FREE →
$0.0055 DIAMOND) regardless of how many transactions that search returns, breaking even against our
$0.0018/row at 3.1-3.9 rows — below the 8 rows this page's own Apple sample pulled from one
accession; zinin/insider-trading-tracker charges per ticker delivered ($0.005 FREE → $0.004
DIAMOND) covering that ticker's "bounded Form 3/4/5 activity" rather than per row, breaking even at
2.2-2.8 rows/ticker — again below Apple's 8, though above the single row MSFT and JPM each
returned. Neither is a confirmed undercut: both sit at 1 user and neither's own listing claims the
20-code decode, signed value, or 10b5-1 normalization this Actor leads on, and both lose to us on
any issuer with the low per-filing activity this page's own MSFT/JPM sample found typical. Noted
because a buyer who only ever pulls high-activity issuers like Apple would pay less at either one
than here.
Fifth full-cohort resweep (43 unnamed listings, checked live 2026-10-09 — niche-unnamed now
matches 108 of 256 seen, 68 already named). Our own price was re-verified against the live
record first: flat $0.0018/result, no start fee, unchanged. Not one of the 43 cleared the
usual ≥3-user floor (all sit at 1-2 users), so per the standing full-cohort rule all 43 were
live-priced regardless, across every charge event and tier. 0 of 43 undercut us — the two
closest, dobus/sec-filing-events-insider-signals ($0.002/row flat) and
devilscrapes/sec-form-4-insider-trades-scraper ($0.0025/row flat), are both dearer on the per-row
rate alone and carry a $0.01 and $0.20 one-time Actor-start fee respectively on top; the rest sit
at $0.003-$0.025/row, consistent with every prior sweep's modal range on this niche. No new rival
worth naming.
Notes on the source
- Filings older than June 2003 are not machine-readable at all, and this Actor says so rather
than miscounting them as holdings-only. SEC only mandated the
<ownershipDocument>XML schema this parser reads from mid-2003; everything older is plain SGML/HTML — verified live against Apple's own 2003-03-21 Form 4 (accession0001104659-03-004723), whoseprimaryDocumentis an<html>table with no ownership XML anywhere. A run that pages back that far (very oldsinceDate, or a highmaxFilingsPerIssueron a thinly-traded issuer) skips those filings and logs a warning naming them as unparseable legacy filings, distinct from the holdings-only warning below — they are never silently miscounted as zero-transaction filings. - Form 3 is an initial statement of holdings and Form 5 an annual catch-up. A Form 3 never
contains a transaction element at all (verified across Apple's four most recent Form 3s: 0
transactions, 1–2 non-derivative and 2–7 derivative holdings each), so with the default
includeHoldings: falsea Form-3-only run yields zero rows — turnincludeHoldingson to get those positions. Form 5 does carry real transactions. - A filing can be made jointly by several reporting persons. The first is used for the
insiderName/role fields and the rest are listed incoFilersrather than dropped. - SEC's filing index is newest-first, so
sinceDatestops paging as soon as it passes the date. sinceDatereaches past EDGAR's inlined filing window, which matters for prolific filers. EDGAR's per-issuer submissions file inlines only the larger of ~1000 filings or the trailing 12 months; everything older lives in separate paginated index pages. For a heavy filer that window is shallow in time — JPMorgan carries ~26,000 filings in it spanning just one year — so reading only the inlined window would answersinceDate: "2024-01-01"with nothing before late 2025 and no indication anything was missing. This Actor follows the older index pages, skipping any page whose date range ends beforesinceDatewithout fetching it, up to 30 pages per issuer (it logs a warning naming the oldest date actually reached if it hits that ceiling). Measured on JPMorgan Form 4s withsinceDate: "2024-01-01", maxFilingsPerIssuer: 200: the inlined window alone yields 134 filings and stops there; following the older pages reaches the full 200 requested after 8 of them. Peak memory for that run was 92 MB.rule10b5_1Planis normalized across four different spellings. Measured over 210 real Form 4 filings from 15 large-cap issuers, the<aff10b5One>element came back as0(167 filings),1(27),true(9) andfalse(7) — 92% of filings use1/0, nottrue/false. A hand-rolled=== 'true'check therefore reports 75% of genuine plan-based trades as discretionary, silently and in the misleading direction. This Actor accepts both spellings. The element was present on all 210 filings and always at document level (never insidetransactionCoding, never with conflicting values), so the flag applies to every row of a filing.- A third of rows carry no USD value, and which ones is predictable. In the same 479-row
sample, 155 rows (32.4%) had a price of
0or no price element, sotransactionValueUsdisnull. Sales (S, 215/215) and tax withholding (F, 36/36) always priced; gifts (G, 0/12), conversions (C, 0/4) andJnever; option exercises (M, 34/101) and grants (A, 31/98) about a third of the time — no money changed hands, so there is no price to report. Filter ontransactionCodefor the behaviour you mean rather than ontransactionValueUsd > 0, which drops those rows. Genuine open-market purchases (P) were 6 of 479 rows (1.25%). - Measured across 160 real Form 4 transactions from 11 large-cap issuers (MSFT, ADBE, ORCL, CRM,
NOW, IBM, META, TSLA, AMZN, GOOGL, NVDA):
exercisePricewas populated on 15/33 (45%) of derivative rows — the rest were RSU vests, which have no strike price — whileexpirationDateandcoFilerswere both 0% in this sample. RSU-heavy mega-cap grants rarely carry an expiration date, and none of the 11 issuers sampled had a jointly-filed Form 4 in the window checked; both fields do populate on option grants and family/trust co-ownership filings, just not reliably at large tech issuers. SetincludeDerivative: falseif you only need the common-stock rows. indirectOwnershipNatureisnullexactly whendirectOrIndirectis"D", and that split is issuer-dependent, not a data gap. Measured across 85 ownership entries from 42 real Form 4s (AAPL, MSFT, NFLX, WMT, EL, F — 2026-09 through 2026-10): 22.4% (19/85) were"I"(indirect — held via a trust, LLC or family member), andindirectOwnershipNaturewas populated on 100% (19/19) of those. The split is heavily issuer-dependent: Ford (family trust holdings) came back 14/18 indirect, Walmart (Walton family trusts) 5/11, while Netflix and Microsoft in this sample were 0/7 and 0/7 — all-insider-owns-directly issuers exist and are common among large-cap tech. If your tickers skew tech, expect this field mostlynull; it is not unreliable, the underlying filings are mostly Direct ownership for those issuers.
FAQ
I set recordType-style input to a Form-3-only ticker and got zero rows — is that a bug? No. A Form 3 is an initial holdings statement, not a trade, so it has no transaction element at all (verified across Apple's four most recent Form 3s: 0 transactions, 1–7 holdings each). With includeHoldings off (the default) a Form-3-only run has nothing to return. Set includeHoldings: true to get the positions as rowType: "holding" rows.
Why is transactionValueUsd null on some rows? Only when no money actually changed hands — gifts (G), conversions (C) and J rows never carry a price; option exercises (M) and grants (A) carry one about a third of the time (measured over 479 real rows). Sales and tax withholding always price. Filter on transactionCode for the behaviour you mean, not on transactionValueUsd > 0, which silently drops those rows.
Can I trust rule10b5_1Plan even though SEC's own filings don't agree on how to spell it? Yes — this Actor normalizes all four on-the-wire spellings (0/1/true/false, measured 92% 1/0 across 210 filings) into one boolean, so you don't need to handle the spelling yourself.
I filtered transactionCodes to a derivative-only code with includeDerivative: false and got nothing — why? C, X, O, E, H and K only ever appear on derivative rows, so turning derivative rows off removes every row those codes could match. The run logs a warning naming the codes; widening sinceDate or raising maxFilingsPerIssuer won't fix it — turn includeDerivative back on instead.
Does the output include the insider's home address? No, deliberately. The ownership XML contains it, but this Actor never emits it — only the public corporate-disclosure fields (name, CIK, role, title) are in scope.
Why do some issuers return 8 transaction rows per filing and others return exactly 1? It's issuer-dependent, not a bug. A capped sample of Apple's most recent Form 4s returned 8 rows from one filing (multiple sales, an exercise and a withholding, all on one accession); the same sample for Microsoft and JPMorgan returned exactly 1 row per filing. If you're estimating cost per filing, use your own issuers' density, not a fleet-wide average — see the per-filing competitor comparisons above for why that matters when comparing prices.
The run said "Succeeded" but my dataset is empty — how do I find out why? Read the run's status message: a run that delivers zero rows now ends with a one-line explanation naming the cause it actually hit, visible on the run in Console and as statusMessage on the API's run object (no need to read the log). It distinguishes the cases that need different fixes: filters dropped every parsed row (it names the active filters and their counts), no filings of that form exist in the window searched, the tickers didn't resolve to a CIK, every selected filing was holdings-only or a pre-2003 legacy filing, a derivative-only transactionCodes selection with includeDerivative off, or the run hitting its time budget before any row was delivered (that last one is not a "no match" answer — raise the timeout rather than widening dates). The input-shaped causes (derivative-only codes, Form-3-only with holdings off, empty/unresolved issuers) are independent of each other and named together when more than one applies in the same run, rather than only the first.
Does sinceDate miss older filings for a prolific filer? No — EDGAR's own per-issuer submissions file only inlines the larger of ~1000 filings or the trailing 12 months; this Actor follows the older paginated index pages too (up to 30 per issuer), so a heavy filer like JPMorgan (~26,000 filings/year in the inlined window alone) doesn't silently stop at whatever the inlined window covers.
Does this Actor pick up corrected Form 4/A amendments? Yes — select 4/A in formTypes. EDGAR files an amendment under its own distinct form-type string ("4/A", not a flag on the original), so it is opt-in rather than automatic, and the default (["4"]) still returns originals only so existing runs and bills are unchanged. Amendment rows carry isAmendment, amendsOriginalFilingDate and supersedesAccessionNumber, and the original they correct is returned too, tagged with amendedByAccessionNumber — see Amendments and which filing they replace for how the linking works and where it can only narrow to a candidate set. Background and the live survey that prompted this: the dedicated post.
Related guides
- SEC Form 4 amendments correct real numbers, and no insider-trading Actor's input schema can select them
— a live pull across 7 large-cap issuers found 4/A amendment filings on 6 of them, two of which correct a share count or plan date this Actor outputs as fact. This Actor now supports them:
formTypesaccepts3/A/4/A/5/Aand links each amendment to the filing it replaces. - SEC Form 4's 10b5-1 flag is not spelled "true" — 92% of filings write it as 1 or 0 — the 210-filing measurement behind the two notes above, plus the full transaction-code histogram.
- We checked every other government-data Actor for the same boolean trap — why this Actor is the only one in the fleet that could have it, and how to check that mechanically instead of by domain guess.
- A rival's price was nested two dicts deep — and the obvious min() read 20 competitors as free
— the Apify Store API pricing-parser bug found while auditing this Actor's niche, and the mirror bug (
isPrimaryEvent) found in the same sweep. - All FetchSmith tools: https://fetchsmith.com/tools
Source code: https://github.com/Fetchsmith/fetchsmith/tree/main/actors/sec-insider-trades-scraper