Insider Transactions Monitor — SEC Form 4 Trades
Pricing
from $1.00 / 1,000 transaction row delivereds
Insider Transactions Monitor — SEC Form 4 Trades
Track reported insider purchases, sales and other Form 4 transactions by company. Includes insider roles, exact share/price values, amendments, footnotes and original report links. Snapshot or watch for newly observed transactions. No source API key.
Pricing
from $1.00 / 1,000 transaction row delivereds
Rating
0.0
(0)
Developer
Apivault Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
See what company insiders reported buying, selling or transferring. Enter company tickers or CIKs to collect recent SEC Form 4 transaction lines with the reporting person's name and role, transaction date, share quantity, reported price, footnotes and original report link.
Choose a snapshot of recent transactions or a watchlist for newly observed records across runs. Purchases and sales stay separate from awards, gifts, withholding and option exercises. No source API key is required.
| At a glance | What you get |
|---|---|
| Companies | Up to 5 ticker or CIK entries |
| Reports | Recent Form 4 and optional Form 4/A amendments |
| Default selection | Reported purchase/sale codes P and S, non-derivative securities |
| Other operations | Choose all; optionally include derivative securities |
| Results | One row per reported transaction line, with all reporting owners together |
| Export | JSON, CSV or Excel |
| Price | $1 per 1,000 delivered transaction rows + Apify resources; no startup fee |
First run: purchases and sales
- Open Input and paste this example or edit the form.
- Replace
AAPLandMSFTwith your company tickers. CIKs are numeric strings, such as"0000320193". - Start the run and open Dataset → Transactions. Use Export for JSON, CSV or Excel.
{"mode": "snapshot","companies": ["AAPL", "MSFT"],"transactionScope": "purchases_sales","includeDerivatives": false,"includeAmendments": true,"lookbackDays": 90,"maxFilingsPerCompany": 3,"maxResults": 10,"maxCostUsd": 0.01}
This inspects up to the three newest matching reports per company and returns up to ten transaction lines across both companies. One report may contain several lines or no transactions matching your filters. The result fee is at most $0.01 at the displayed tariff, plus resources.
Snapshots are ordered by report acceptance time, newest first. Read SUMMARY for reports inspected, omitted reports, matching/delivered rows and coverage. ERRORS explains missing companies or unavailable reports. A successful run can return no matching rows.
What a transaction means
| Code | Reported operation | Treatment |
|---|---|---|
| P | Open-market or private purchase | Included in purchases_sales |
| S | Open-market or private sale | Included in purchases_sales |
| A | Grant, award or other acquisition from the issuer | Separate award category in all |
| F | Securities used or withheld for tax or exercise obligations | Separate withholding category in all |
| M / C | Exercise or conversion | Separate exercise/conversion categories in all |
| G / W | Gift / inheritance | Separate transfer categories in all |
| Other codes | Other operations described in the filing | Original code and available footnotes preserved in all |
P does not distinguish a public-market purchase from a private purchase, and S does not guarantee a public-market sale. securityType distinguishes non-derivative from derivative transaction lines. For derivatives, the category is labelled separately, for example derivative_purchase. An equity-swap flag, reporting-plan flag and filing footnotes are retained when supplied.
These are disclosures about reported activity, not trading recommendations or evidence of an insider's intentions. See the SEC's guide to insider transaction reports.
Include awards, gifts, options and other operations
{"mode": "snapshot","companies": ["TSLA"],"transactionScope": "all","includeDerivatives": true,"lookbackDays": 365,"maxFilingsPerCompany": 2,"maxResults": 20,"maxCostUsd": 0.02}
Review transactionCode, transactionCategory, securityType and the footnotes together. An option exercise, the resulting common-stock acquisition and a later sale can be separate source lines; the Actor does not combine them into one cash trade. Holdings-only lines are not returned as transactions.
Exact values, missing prices and calculated amounts
Quantities and prices are decimal strings in sharesDecimal and pricePerShareDecimal, preserving fractional values. Missing or footnote-only values are null; an explicitly reported zero remains zero. Do not replace missing prices with zero.
When both numbers are present, calculatedNominalValueDecimal equals reported quantity multiplied by reported price. It is a calculated nominal value, not an SEC-reported cash total, net proceeds or a valuation of an option's underlying exposure. No option contract multiplier or currency conversion is applied. valueCurrency is null: the Actor does not assume a currency that the transaction fields do not identify.
Prices can be weighted averages or need further explanation. Check priceFootnoteIds, footnoteIds, footnotes, valueHasFootnotes and filingRemarks. Joint reports return all reporting owners in one array on the same transaction row; amounts are not duplicated into a separate paid row for each owner.
Watch only newly observed transactions
- Set
modetowatchand choose companies, filters and report limits. - Choose your own
stateStoreNamebeginning withinsider-watch-. Replace the example name below. - Run once to establish a baseline. Existing matching transactions create no Dataset rows or result fees on that first successful scan.
- Repeat with the same history name and selection settings. Unseen matching transaction IDs are returned, oldest report first. An unchanged repeat returns
NO_NEW_TRANSACTIONSand zero rows.
{"mode": "watch","companies": ["AAPL", "MSFT"],"transactionScope": "purchases_sales","includeDerivatives": false,"includeAmendments": true,"lookbackDays": 90,"maxFilingsPerCompany": 5,"stateStoreName": "insider-watch-my-companies","maxResults": 20,"maxCostUsd": 0.02}
Use one run at a time per history name. Changing companies, filters, date settings or maxFilingsPerCompany requires a new history and baseline. You can change the row/fee limits without resetting your watch. A company whose selected reports cannot all be processed does not receive an incomplete baseline.
If delivery is limited, remaining matching transactions can be delivered later while their reports remain in the selected scan and date window. A later amendment is a separate report and may repeat a transaction with corrected information. The Actor does not replace or cancel the original transaction automatically.
Each transaction has a stable eventId based on company, accession, security table and source row. Deduplicate by this ID in downstream workflows. Interrupted or overlapping runs can produce repeats. An amendment has its own ID; the same economic transaction in an original and amended report can therefore appear twice. Changes within an already observed source row are not treated as a new event.
The history belongs to the running account and supports up to 50,000 observed transaction IDs. At that limit, establish a new baseline under a new name. The Actor does not create schedules or send notifications; configure your own Apify schedule or integration if needed.
Input reference
| Field | Default | Meaning |
|---|---|---|
mode | snapshot | snapshot or watch |
companies | ["AAPL", "MSFT"] | 1–5 company tickers or numeric CIK strings; aliases resolving to one company are counted once |
transactionScope | purchases_sales | P/S codes only, or all reported codes |
includeDerivatives | false | Include derivative-security transactions, labelled separately |
includeAmendments | true | Include Form 4/A as separate reports |
lookbackDays | 90 | 1–365 calendar days, filtered by report filing date |
sinceDate, untilDate | Derived start; today UTC | Optional inclusive ISO filing dates. Start overrides the derived lookback; end cannot be future; maximum span 365 days |
maxFilingsPerCompany | 5 | Inspect 1–10 newest matching reports per company. Older omitted reports are counted in SUMMARY |
maxResults | 100 | Global delivered transaction-row cap, 0–1000; zero skips processing |
maxCostUsd | No input fee cap | Optional result-fee cap in USD, 0–1000; platform resources are separate |
stateStoreName | None | Required only for watch. insider-watch- followed by 3–49 lowercase letters/digits/hyphens, beginning with a letter/digit |
Date filters apply to filingDate, not the date of the transaction. A transaction reported late can be older than the chosen filing window. Only available recent company reports are searched; a 365-day request does not promise a complete year or historical archive.
Output reference
One row represents one source transaction line. The Transactions view shows the main columns; Full report details contains every field.
| Fields | Meaning |
|---|---|
eventId, cik, accessionNumber, sourceRow | Stable transaction identity, company identifier, filing identifier and row number within its security table |
companyName, ticker | Issuer's reported name and symbol |
reportingOwners | Array of reporting persons/entities, names, CIKs, director/officer/10% owner flags and officer titles when present |
form, isAmendment, dateOfOriginalSubmission | Form 4/4-A and the original submission date if supplied; no inferred original accession |
periodOfReport, transactionDate, filingDate, acceptedAt, fetchedAt | Report period, actual transaction date when stated, filing date, SEC acceptance time and retrieval time |
securityType, securityTitle | non_derivative or derivative, with the reported security name |
transactionCode, transactionCategory, transactionFormType | Original operation code, descriptive category and row-level form indicator when supplied |
acquiredDisposedCode, equitySwapInvolved | A/D acquisition/disposition and optional swap flag |
sharesDecimal, pricePerShareDecimal | Exact reported decimal strings, nullable |
calculatedNominalValueDecimal, valueCurrency, valueCalculation | Optional quantity-times-price calculation, unknown currency and calculation note |
footnotes, footnoteIds, priceFootnoteIds, missingFootnoteIds, valueHasFootnotes | Filing explanations, transaction references and unresolved references if any |
sharesOwnedAfterDecimal, directOrIndirectOwnership, natureOfOwnership | Reported post-transaction balance and ownership information |
underlyingSecurityTitle, underlyingSharesDecimal, conversionOrExercisePriceDecimal, exerciseDate, expirationDate | Available derivative details; null for non-derivative rows or missing source values |
reported10b5One, filingRemarks | Reporting-plan flag and filing remarks when supplied; no inference when absent |
source, documentUrl, filingIndexUrl, sourceDocumentSha256 | SEC EDGAR attribution, original document/index links and a source-document checksum |
SUMMARY contains matching/delivered transaction counts, row truncation, reports selected/parsed and coverage per company. scanTruncated means some matching reports were omitted by the scan limit or could not be inspected. An empty result means no matching transactions in the successful selected scan, not no insider activity anywhere.
Pricing
$0.001 per delivered transaction row ($1 per 1,000), plus Apify resources. No startup event. One filing can generate several rows. A joint filing is not charged once per owner; each reported transaction line is one result.
Five delivered rows cost $0.005 in result fees; 100 cost $0.10. Baseline, unchanged watch repeats, empty results and error-only outcomes have no transaction result fee, but still consume platform resources. Snapshot repeats can return and charge the same transaction lines again.
maxCostUsd caps result fees only. At this tariff, 0.01 permits up to ten rows; a value below 0.001 permits none, and 0 skips processing. A lower platform event-charge cap can reduce delivery further. Compute/storage and other platform costs are separate. Current rates appear on the Actor's Pricing tab. The underlying SEC filings are free; the Actor charge covers collection, filtering and watch processing.
API and integrations
Store your Apify token in an environment variable. This starts an asynchronous run; after it completes, read the returned Dataset ID.
curl --request POST \'https://api.apify.com/v2/acts/apivault_labs~insider-transactions-monitor/runs?maxTotalChargeUsd=0.01' \--header "Authorization: Bearer ${APIFY_TOKEN}" \--header 'Content-Type: application/json' \--data '{"companies":["AAPL"],"transactionScope":"purchases_sales","maxFilingsPerCompany":3,"maxResults":10,"maxCostUsd":0.01}'
The response includes data.id, data.defaultDatasetId and data.defaultKeyValueStoreId. Check https://api.apify.com/v2/actor-runs/RUN_ID until the run finishes. Then export https://api.apify.com/v2/datasets/DATASET_ID/items?format=json with the same authorization header; use csv or xlsx for other formats. The run's Output links SUMMARY and ERRORS.
Use eventId when sending results into a database, spreadsheet or your own alert workflow. A successful start request does not mean a completed scan. Check the final run status and coverage before treating results as complete.
Troubleshooting and coverage
| Status or code | Meaning and next step |
|---|---|
BASELINE_CREATED | Expected first successful watch scan. Keep the same history/settings and run again later |
NO_NEW_TRANSACTIONS | No unseen matches among the successfully selected reports; inspect coverage if reports were omitted |
NO_MATCHES | No transactions matched the snapshot filters. Try all or include derivatives if appropriate |
LIMIT_REACHED | Row or result-fee cap limited delivery; inspect truncated |
PARTIAL | Some companies/reports failed. Inspect ERRORS and company coverage |
UNKNOWN_TICKER | Company ticker was not resolved. Check the symbol or use its CIK |
CHECKPOINT_SCOPE_MISMATCH | Settings differ from the saved watch. Restore them or start a new history |
NO_COMPANY_DATA | No company could be processed. Read the underlying report/source error |
CHECKPOINT_CAPACITY_EXCEEDED | Saved history reached its supported capacity; establish a new baseline |
SEC_HTTP_403 / SEC_HTTP_429 | Source access was rejected or limited; processing stops and the error is reported |
Recent-report availability, per-company report limits and your date window determine coverage. Older reports and the full historical archive are not collected. Report corrections/removals can affect later availability; documents containing only holdings yield no transaction rows. Some values or dates exist only in footnotes and remain null rather than being guessed. Only the actual transaction codes and source disclosures establish an operation's reported meaning.
Avoid overlapping runs, use one writer for a watch history and inspect partial results. No guaranteed detection delay, investment performance, automated trade execution or SEC endorsement is implied. See SEC's Form 4 instructions, public-content reuse guidance and access guidance.