SEC Form 4 Insider Trades by Ticker avatar

SEC Form 4 Insider Trades by Ticker

Pricing

from $1.20 / 1,000 insider transactions

Go to Apify Store
SEC Form 4 Insider Trades by Ticker

SEC Form 4 Insider Trades by Ticker

Parsed insider transactions from SEC Form 4 filings for any US ticker: buys, sales, grants, option exercises, 10b5-1 flags, with reporter role and post-transaction holdings.

Pricing

from $1.20 / 1,000 insider transactions

Rating

0.0

(0)

Developer

Code Craft Colorado

Code Craft Colorado

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

Categories

Share

SEC Insider Trades (Form 4) by Company or Person

Every transaction that a company's directors, officers, ten percent holders and other reporting owners report to the SEC on Forms 4 and 5, one row per transaction. Look up a company by name, ticker or CIK (the SEC's number for every filer), look up a person or entity that files, or scan every filing across the market.

  • Three ways to search: by company, by reporting owner at every company they file for, or across the market for the last year.
  • Every reporting owner on the filing, with the Director, Officer, 10% Owner and Other boxes and titles.
  • Codes in the SEC's words: each transaction code with its meaning and heading from the Form 4 instructions.
  • The numbers as filed: amounts, price, holdings following, direct or indirect ownership, and the terms of derivative securities.
  • What the filer added: the Rule 10b5-1 box, the exit box, and the full text of every footnote the transaction cites.
  • A link to every filing on EDGAR, the SEC's filing system.

The fields are the filing's own. Where this page says what a field means, it quotes or follows the SEC rule, form instruction or EDGAR specification that defines it.

Quick start

  1. Enter one or more companies under Companies, for example Apple.
  2. Start the run.
  3. Read the rows in the run's dataset as they arrive. Each row looks like the example under Output below.
{
"companies": ["Apple"]
}

With no dates, the run returns filings from the last 30 days.

What Forms 4 and 5 report

"Initial statements of beneficial ownership of equity securities required by section 16(a) of the Act shall be filed on Form 3. Statements of changes in beneficial ownership required by that section shall be filed on Form 4. Annual statements shall be filed on Form 5. At the election of the reporting person, any transaction required to be reported on Form 5 may be reported on an earlier filed Form 4."

Rule 16a-3(a). A Form 4 "must be filed before the end of the second business day following the day on which the subject transaction has been executed" (Rule 16a-3(g)(1)).

The actor returns the transactions on Forms 4 and 5, and on 4/A and 5/A when asked. Holdings-only lines, which report a position with no transaction, are not returned.

Input

FieldTypeDefaultWhat it does
companiesarray of stringsnoneIssuers by company name, ticker, or SEC CIK.
insidersarray of stringsnoneReporting owners by name or SEC CIK. Returns every filing on which they are a reporting owner, at every issuer.
marketWidebooleanfalseEvery Form 4 and 5 filed in the date range, across all issuers.
startDateYYYY-MM-DD30 days agoOnly filings with a filing date on or after this date.
endDateYYYY-MM-DDtodayOnly filings with a filing date on or before this date.
maxFilingsintegernoneKeep the newest this many filings per company or insider. With no dates, it replaces the 30-day default.
purchasesAndSalesOnlybooleanfalseOnly codes P and S.
directionall, acquired, disposedallOnly transactions marked acquired (A) or disposed (D).
minValueintegernoneOnly transactions whose value (shares times the reported price) is at least this many U.S. dollars. Transactions with no price are left out when this is set.
minInsidersintegernoneOnly issuers where at least this many different reporting owners, by CIK, appear in the results after all other filters.
transactionCodesarray of codesallOnly these transaction codes, the eighteen a filing can carry (see Transaction codes).
includeDerivativesbooleantrueInclude Table II transactions (derivative securities).
includeAmendmentsbooleanfalseAlso return Forms 4/A and 5/A.

At least one of companies, insiders or marketWide is required. The date filters compare against filingDate. With no dates, the run covers filings from the last 30 days, unless maxFilings is set and marketWide is off.

Tickers are looked up in the SEC's ticker file, of which the SEC says: "We periodically update these files to provide functionality for EDGAR searches, but do not guarantee accuracy or scope." Names are matched against the names EDGAR holds, former names included, and misspellings are tolerated. How each entry matched, the entity it resolved to and close alternates are saved in the QUERIES record. For an insider, entities that have filed as a reporting owner rank first when a name matches several.

Transactions coded P at one company this year

{
"companies": ["NVIDIA"],
"transactionCodes": ["P"],
"startDate": "2026-01-01"
}

One reporting owner's latest filings, at every issuer

{
"insiders": ["Warren Buffett"],
"maxFilings": 50
}

Issuers where three or more reporting owners reported a code P acquisition in the last 30 days

{
"marketWide": true,
"transactionCodes": ["P"],
"direction": "acquired",
"minInsiders": 3
}

Output

One row per transaction. A filing with three transactions gives three rows that share the filing's fields. The example is a real Form 4, turned into a row by this actor's code from the filing's submission text on EDGAR:

{
"query": "PrimeEnergy",
"queryType": "company",
"issuerCik": "0000056868",
"issuerName": "PRIMEENERGY RESOURCES CORP",
"ticker": "PNRG",
"reportingOwners": [
{
"cik": "0001018124",
"name": "FONG GIFFORD",
"isDirector": true,
"isOfficer": null,
"isTenPercentOwner": null,
"isOther": null,
"officerTitle": null,
"otherText": null
}
],
"queriedInsiderCik": null,
"queriedInsiderName": null,
"form": "4",
"accessionNumber": "0001437749-26-031400",
"filingDate": "2026-09-28",
"acceptanceTime": "2026-09-28T21:47:40Z",
"periodOfReport": "2026-09-24",
"dateOfOriginalSubmission": null,
"notSubjectToSection16": null,
"isDerivative": false,
"securityTitle": "COMMON STOCK",
"transactionDate": "2026-09-24",
"deemedExecutionDate": null,
"transactionFormType": "4",
"transactionCode": "G",
"transactionCodeMeaning": "Bona fide gift",
"codeGroup": "Other Section 16(b) Exempt Transaction and Small Acquisition Codes (except for Rule 16b-3 codes above)",
"timeliness": null,
"acquiredDisposed": "D",
"shares": 15000.0,
"pricePerShare": 197.62,
"value": 2964300.0,
"transactionTotalValue": null,
"sharesOwnedFollowing": 39464.0,
"valueOwnedFollowing": null,
"ownership": "D",
"indirectOwnershipNature": null,
"conversionOrExercisePrice": null,
"exerciseDate": null,
"expirationDate": null,
"underlyingSecurityTitle": null,
"underlyingShares": null,
"underlyingValue": null,
"equitySwapInvolved": false,
"aff10b5One": false,
"footnotes": [],
"remarks": null,
"source": "live",
"sourceUrl": "https://www.sec.gov/Archives/edgar/data/56868/0001437749-26-031400-index.html"
}

The filer entered a price on this gift, so value is shares times that price: the product of two reported numbers, not a market value. The filing was accepted at 5:47 p.m. Eastern time and keeps that day's filing date, as a Form 3, 4 or 5 does when its submission begins by 10 p.m.

Rows are written to the run's default dataset as they are produced. The dataset's Transactions view shows the filing date, ticker, issuer, reporting owners, transaction date, code and its group, acquired or disposed, amount, price, value, holdings following, the 10b5-1 box and the filing link.

The issuer and the reporting owners

  • issuerCik, issuerName, ticker: the issuer as the filing gives it. For the name, "EDGAR will insert the Issuer Name associated with the provided CIK".
  • reportingOwners: every reporting owner on the filing, in filing order, each with cik, name, isDirector, isOfficer, isTenPercentOwner, isOther, officerTitle and otherText. When more than one person is a beneficial owner of the same securities, "all such persons must report as beneficial owners of the securities, either separately or jointly" (Rule 16a-3(j)), and a joint filing names no primary owner: "The order of multiple Reporting Owners is not important. There is no 'primary' owner." For each owner's name, "EDGAR will insert the Owner Name associated with the provided CIK"; an individual's name is entered in EDGAR in the format "last, first, middle".
  • The four boxes are Form 4 Item 5: "Director", "Officer (give title below)", "10% Owner" and "Other (specify below)", "Check all applicable". A ten percent holder is "any beneficial owner of greater than 10% of a class of equity securities registered under Section 12 of the Exchange Act of an issuer that is not a 'foreign private issuer' ..., as determined by voting or investment control over the securities pursuant to Rule 16a-1(a)(1)". officerTitle is required when isOfficer is true and otherText when isOther is true. On a filing read from EDGAR, a box the filing leaves out is null.
  • queriedInsiderCik, queriedInsiderName: for an insider query, the reporting owner you asked for and the name this filing gives them; null otherwise.

The filing

  • form: 4, 5, 4/A or 5/A. accessionNumber is EDGAR's filing identifier and sourceUrl the filing's index page.
  • filingDate: a Form 3, 4 or 5 whose submission begins by 10 p.m. Eastern time "shall be deemed filed on the same business day" (Regulation S-T Rule 13(a)(4)).
  • acceptanceTime: when EDGAR accepted the filing, in UTC, from the filing's header, which states it in Eastern time. null for filings from the SEC's Insider Transactions Data Sets, which do not carry it.
  • periodOfReport: on a Form 4, "Date of Earliest Transaction"; on a Form 5, "Statement for Issuer's Fiscal Year End".
  • dateOfOriginalSubmission: on an amendment, "If Amendment, Date Original Filed".
  • notSubjectToSection16: the exit box. "A reporting person no longer subject to Section 16 of the Securities Exchange Act of 1934 ('Exchange Act') must check the exit box appearing on this Form. However, Form 4 and 5 obligations may continue to be applicable."
  • aff10b5One: the box "to indicate that a transaction was made pursuant to a contract, instruction or written plan that is intended to satisfy the affirmative defense conditions of Rule 10b5-1(c)". There is one box per form, not one per line, so every row from a filing carries the same value and the box does not say which lines the plan covers. The form asks for the plan's adoption date in its "Explanation of Responses" (General Instruction 10). SEC staff read the box as applying to plans under the amended Rule 10b5-1(c) (Section 16 interpretation 135.04). null when the filing does not carry the element.
  • remarks: the filing's remarks.

The transaction

  • isDerivative: false for Table I, true for Table II. "Report acquisitions or dispositions and holdings of non-derivative securities in Table I. Report acquisitions or dispositions and holdings of derivative securities (e.g., puts, calls, options, warrants, convertible securities, or other rights or obligations to buy or sell securities) in Table II. Report the exercise or conversion of a derivative security in Table II (as a disposition of the derivative security) and report in Table I the holdings of the underlying security."
  • securityTitle, transactionDate: the security and the date of the transaction. deemedExecutionDate is given "only if the execution date for the transaction is calculated pursuant to §240.16a-3(g)(2) or §240.16a-3(g)(3)".
  • transactionCode, transactionCodeMeaning, codeGroup: see the table below.
  • transactionFormType, timeliness: the form the transaction belongs on, and whether it is reported early (E) or late (L); null means on time. On a Form 4, "By definition, a '4' transaction is on time" and "By definition, a '5' transaction is early". On a Form 5, EDGAR treats a "4" transaction as late and a "5" transaction as timely.
  • equitySwapInvolved: the transaction involves an equity swap or instrument with similar characteristics.
  • acquiredDisposed: A acquired, D disposed.
  • shares: the amount of securities acquired or disposed of. A derivative transaction gives either an amount or transactionTotalValue, never both.
  • pricePerShare: "Prices of securities shall be reported in U.S. dollars on a per share basis, not an aggregate basis, except that the aggregate price of debt shall be stated. Amounts reported shall exclude brokerage commissions and other costs of execution." For the exercise or conversion of a derivative security the form leaves the price column blank and reports the exercise or conversion price in conversionOrExercisePrice. A price may be given as a footnote with no number, in which case it is null and the footnote is in footnotes. If consideration other than cash was paid, the form asks the filer to describe it, with its value, in the explanation of responses.
  • value: shares times pricePerShare, both as reported; null when either is missing. For debt, whose price is an aggregate, the product is not a value.
  • sharesOwnedFollowing or valueOwnedFollowing: "total beneficial ownership following the reported transaction(s) for each class of securities in which a transaction was reported", which "should reflect those holdings reported or required to be reported by the date of the Form". The amount is "the face amount of debt securities (U.S. Dollars) or the number of equity securities". For securities held through a partnership, corporation, trust or other entity, the reporting person may report their proportionate interest or, at their option, the entity's entire amount.
  • ownership: D direct, I indirect; indirectOwnershipNature gives the nature of indirect ownership, for example By Trust.
  • Table II only, null otherwise: conversionOrExercisePrice, exerciseDate, expirationDate, underlyingSecurityTitle, and underlyingShares or underlyingValue.
  • footnotes: the text of each footnote the transaction cites.

Where each row came from

  • source: index when the filing came from the EDGAR index this actor keeps, live when it was read from EDGAR during the run.
  • query, queryType: the input entry the row answers (company, insider or market); query is null for market-wide rows.

Transaction codes

transactionCode is the code from Form 4 General Instruction 8. transactionCodeMeaning is its meaning and codeGroup the heading it is listed under, both in the instruction's words.

GroupCodeMeaning
General Transaction CodesPOpen market or private purchase of non-derivative or derivative security
SOpen market or private sale of non-derivative or derivative security
VTransaction voluntarily reported earlier than required
Rule 16b-3 Transaction CodesAGrant, award or other acquisition pursuant to Rule 16b-3(d)
DDisposition to the issuer of issuer equity securities pursuant to Rule 16b-3(e)
FPayment of exercise price or tax liability by delivering or withholding securities incident to the receipt, exercise or vesting of a security issued in accordance with Rule 16b-3
IDiscretionary transaction in accordance with Rule 16b-3(f) resulting in acquisition or disposition of issuer securities
MExercise or conversion of derivative security exempted pursuant to Rule 16b-3
Derivative Securities Codes (Except for transactions exempted pursuant to Rule 16b-3)CConversion of derivative security
EExpiration of short derivative position
HExpiration (or cancellation) of long derivative position with value received
OExercise of out-of-the-money derivative security
XExercise of in-the-money or at-the-money derivative security
Other Section 16(b) Exempt Transaction and Small Acquisition Codes (except for Rule 16b-3 codes above)GBona fide gift
LSmall acquisition under Rule 16a-6
WAcquisition or disposition by will or the laws of descent and distribution
ZDeposit into or withdrawal from voting trust
Other Transaction CodesJOther acquisition or disposition (describe transaction)
KTransaction in equity swap or instrument with similar characteristics
UDisposition pursuant to a tender of shares in a change of control transaction

V and K never appear in transactionCode. A filing carries one of the other eighteen codes, and EDGAR adds the two letters to the printed form: "EDGAR will add a 'K' to the generated transaction code if an equity swap is involved" (equitySwapInvolved is true), and "EDGAR will add a 'V' to the generated transaction code for an early '5' transaction" (a Form 4 row whose transactionFormType is 5).

A code says what kind of transaction the filer reported and nothing more. P and S each cover both open-market and private trades, and the code does not say which.

Amendments

With includeAmendments, rows from Forms 4/A and 5/A are returned with their own accessionNumber. An amendment does not restate the original filing. Form 4 General Instruction 9: to add lines, "provide each line being added"; to amend lines, "provide the complete line or lines being amended, as amended"; in both cases, "Do not repeat lines of transaction information that were disclosed in the original Form and are not being amended." An amendment names the filing it amends only by dateOfOriginalSubmission, the date the original was filed, and no field links an amended line to the line it replaces, so reconciling an amendment with the original is left to you.

Where the data comes from

  • The EDGAR index. This actor keeps an index of the last year of Form 3, 4 and 5 filings, built from the SEC's quarterly Insider Transactions Data Sets and, for the days since the newest data set, from each day's filings on EDGAR, updated nightly. Market-wide queries read only the index, so they cover the last year through its latest nightly update; the run's status message says so when your range reaches past it.
  • Live EDGAR. For companies and insiders, dates the index does not cover (older filings, and anything filed since its last update) are read live: the filing list from the SEC's submissions API, then each filing's full submission text.
  • The data sets. The SEC describes them as "taken from submissions created by the registrants and provided as-filed" and warns that "Data in this submitted form may contain redundancies, inconsistencies, and discrepancies relative to prior submissions and other publication formats." They carry amounts and prices to two decimal places, where filings read from EDGAR carry up to four, and they do not carry the acceptance time.
  • Corrections. The SEC sometimes removes a filing or changes its filing date after acceptance. Its full and quarterly indexes "are rebuilt weekly, early on Saturday mornings, so that any post-acceptance correction (PAC) deletes or updates are incorporated"; each week the index compares its filings with those indexes and drops or re-dates the ones the SEC has corrected.
  • What EDGAR checks. "EDGAR will validate ONLY the format and syntax of the information provided, and that the Issuer CIK and Reporting Owner CIK and CCC combination are valid. YOU ARE RESPONSIBLE for confirming the accuracy of all transactional and ownership information submitted in the form." Every value here is as the filer reported it.

Limitations

  • Market-wide queries cover the last year only, through the index's latest nightly update.
  • Only transactions on Forms 4 and 5 (and 4/A and 5/A) are returned. Form 3 and lines that report a holding with no transaction are not.
  • Amendments are returned as filed and are not reconciled with the filing they amend.
  • value is shares times the reported price, not a market value, and is not a value for debt.
  • Filings from the SEC's data sets carry amounts and prices to two decimal places and no acceptance time.
  • Tickers come from the SEC's ticker file, which the SEC does not guarantee.
  • Every value is as the filer reported it. EDGAR checks only a filing's format and syntax and that its CIKs and access codes are valid.

Errors and rate limits

When an entry cannot be resolved or a filing cannot be read, the run records it and carries on. Failures are saved to the ERRORS record in the run's key-value store, one entry per failure with the input entry and the reason, and with the accession number when a single filing failed. The record exists only when something failed. Nothing is charged for a failure.

The SEC limits each user to "no more than 10 requests per second, regardless of the number of machines used to submit requests", and asks automated tools to declare who they are. The actor identifies itself as Code Craft Colorado, LLC with your Apify user ID and a contact address, and spaces its requests to stay within the limit. When the SEC refuses a request as over the limit, the actor pauses all requests for 10 minutes, the period after which the SEC says a user "may resume", and continues at a lower rate. If the SEC is still refusing after 20 minutes of pauses in one run, the run stops with a status message saying so. If the SEC rejects the actor's declared identity, the run fails. Either way, every row already delivered is kept. Server errors and dropped connections are retried a few times with increasing delays before a filing is recorded as failed.

If you set a maximum charge for the run and it is reached, the actor stops adding rows and finishes with the rows delivered so far.

How much does it cost?

The billable unit is one dataset row, one transaction. Filters apply before rows are written, so you pay only for the rows that pass them. Resolving names, reading the index, fetching filings, pausing for the SEC, and writing the QUERIES and ERRORS records are not charged. Current per-row pricing is on the Pricing tab of this page.

Use cases

  • Follow the Forms 4 and 5 filed for a watchlist of issuers on a schedule.
  • Follow one reporting owner's filings at every issuer they report on.
  • Find issuers where several reporting owners reported the same kind of transaction in a window, with marketWide, transactionCodes and minInsiders.
  • Track a reporting owner's reported holdings over time with sharesOwnedFollowing.

Run it on a schedule, from the API, or from an agent

The actor runs the same way from a saved task on a Console schedule, from the Apify API or the JavaScript and Python clients, and as a tool through Apify's MCP server, so an AI agent can call it directly. The input JSON is identical in every case, and the results are in the run's dataset whichever way it was started.

FAQ

Why does a row with code G or A have a price? The price is what the filer entered. Read the row's footnotes for what the filer said about it.

Why are shares and pricePerShare sometimes null? A derivative transaction may give a total value instead of an amount (transactionTotalValue); a price may be given as a footnote with no number; and the price column is left blank for the exercise or conversion of a derivative security.

Why do all rows from one filing list the same reporting owners? The owners are on the filing, not on its lines, and a joint filing names no primary owner. For an insider query, queriedInsiderCik says which of them you asked about.

Something is missing or wrong? Open an issue on the actor's Issues tab with the accessionNumber or sourceUrl of the filing.