SEC Form 4 Transactions – Evidence & Amendments API
Pricing
from $2.00 / 1,000 normalized form 4 transactions
SEC Form 4 Transactions – Evidence & Amendments API
Normalize official SEC Form 4 and 4/A Ownership XML into source-linked Table I/II transaction rows with stable IDs, reporting owners, codes, footnotes, Rule 10b5-1 fields, conservative amendment links, and stateless cursors.
Pricing
from $2.00 / 1,000 normalized form 4 transactions
Rating
0.0
(0)
Developer
BB
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Turn official SEC EDGAR Form 4 and 4/A Ownership XML into one machine-readable row per reported Table I or Table II transaction. Query an issuer, an exact reporting-owner CIK, or an exact accession. Results preserve raw SEC codes, acquired/disposed direction, owners, derivative terms, component footnote references, explicit Rule 10b5-1 fields, direct source links, stable IDs, and conservative amendment relationships.
The Actor reads public SEC resources directly. It does not use an aggregator, browser automation, an LLM, a persistent filing database, or a fuzzy person resolver.
Agent selection contract
Select this Actor for:
- normalized Form 4/4-A transactions for an issuer;
- filings for a reporting person when the exact CIK is known;
- exact Form 4 accession validation with a separate issuer CIK;
- Table I common-stock transactions and Table II options, RSUs, warrants, or convertible securities;
- raw transaction codes, acquired/disposed values, ownership following a transaction, footnotes, Rule 10b5-1 provenance, or amendment links;
- repeatable polling with a client-carried cursor and stable record IDs.
Do not select it for insider sentiment, alpha/materiality/conviction scores, Form 3/5, 13D/G, 13F, prices, portfolio valuation, unrestricted market-wide feeds, fuzzy owner-name search, legal conclusions, or trade execution.
One successful default-dataset row equals one reported transaction and one
pay-per-event result unit. Holdings-only rows, SUMMARY, ERRORS, and
duplicate matches do not create dataset rows.
Minimal issuer query
{"queries": [{"requestId": "apple-insiders","scope": "issuer","identifierType": "ticker","identifier": "AAPL"}],"maxFilingsPerQuery": 5,"maxTransactions": 20}
Exact reporting owner
{"queries": [{"requestId": "owner-1780525","scope": "reportingOwner","identifierType": "cik","identifier": "1780525"}],"filedFrom": "2026-01-01"}
Owner names are not accepted as search identifiers. Joint filings keep the
complete reportingOwners array and use ownerAttribution: "joint_filing";
the Actor does not assign a shared filing row to one person without XML proof.
Exact accession
{"queries": [{"requestId": "apple-form4","scope": "accessionNumber","identifierType": "accessionNumber","identifier": "0001140361-26-025622","issuerCik": "320193"}]}
issuerCik is mandatory because the accession-prefix CIK can belong to a
filing agent or reporting owner. The filing index and Ownership XML must both
confirm the issuer, form, identities, and raw XML document.
Input bounds
| Field | Default | Bound / meaning |
|---|---|---|
queries | required | 1–20, unique requestId |
filedFrom, filedTo | omitted | inclusive ISO dates |
transactionCodes | [] | max 32 unique raw one-letter codes; empty = all |
acquiredDisposed | [] | A, D; empty = both |
includeDerivatives | true | include Table II |
includeFootnotes | true | include bounded text; IDs/refs remain when false |
includeAmendments | true | include 4/A as new source records |
evidenceMaxChars | 1200 | 240–2,000 per footnote/evidence excerpt |
maxFilingsPerQuery | 50 | 1–100 |
maxTransactions | 100 | 1–100 global unique rows/result units |
outputMode | full | full, compact; compact removes long text only |
incremental | omitted | opaque cursor ≤32 KB; unavailable for direct accessions |
Runtime limits also cap raw Ownership XML at 2 MB per filing, 30 MB and 100 filing downloads per run, 50 footnotes, and 20 reporting owners per filing.
Transaction semantics
transactionCode is the original SEC code. The versioned
transactionCodeDescription is a lookup label, never investment direction.
acquiredDisposedCode remains independent. An F with D stays a tax- or
exercise-related disposition; an M is not rewritten into synthetic buy/sell
events.
All reported numeric values are decimal strings. transactionValue exists
only when amount and the row's reported price are numeric. Its rule is
amount-times-reported-price-v1; it is not a claimed cash flow or market value
for grants, gifts, or derivative transactions.
rule10b5One.reported is true or false only when the structured filing says
so; otherwise it is null. Footnotes or remarks mentioning the plan can add
bounded evidence but never manufacture the structured flag.
Amendments and stability
A 4/A row receives its own accession-derived recordId; it never overwrites an
original dataset row. The Actor sets supersedesRecordId only when original
submission date, issuer, complete owner group, table, security, transaction
date, raw code, and footnote context identify exactly one original candidate.
Otherwise amendmentLinkStatus is not_found or ambiguous with a warning.
The output is source-accurate history, not a consolidated current position.
recordId = secf4_<24 hex> depends on accession, table, canonical XML row
index, and parser-ID version. Query order, retrieval time, and source URL aliases
do not affect it. Duplicate query matches merge sorted requestIds.
Stateless polling
Set incremental: {"overlapHours": 24} on the first run. Copy
SUMMARY.nextCursor unchanged into the next input. The cursor is client-held,
scope-bound, versioned, and can resume inside a filing when maxTransactions
is reached. The Actor stores no watchlist or cursor database.
Outputs and partial errors
- Default dataset: successful, chargeable transaction rows only.
SUMMARY: free counts, limits, warnings, status, and optional cursor.ERRORS: free bounded query/filing/document failures.
A failing query or filing does not discard successful batch parts. Invalid top-level input, a bad cursor, or a global SEC source failure before normal processing fails the run. Exact error and warning enums are documented in ./docs/product/interface.md.
Sources, storage, and disclaimer
Sources are the official SEC ticker catalog, submissions JSON, filing detail
pages, and raw Ownership XML under www.sec.gov/Archives/edgar/data. Requests
use an identified User-Agent, at most eight requests per second, bounded retry,
30-second timeout, same-host/path redirect checks, and streaming byte limits.
Redirects fail closed before any target request because the supported official
resources do not require them.
There is no publisher-side persistent cache or database. The Actor writes only customer-visible Apify run storages. Public filing data can contain filer errors; verify consequential decisions against the linked source.
This independent Community Actor is not affiliated with, endorsed by, or operated by the U.S. Securities and Exchange Commission. Output is normalized public disclosure data, not financial, investment, tax, or legal advice.
Pricing status
The intended model is $0.00005 per run plus $0.002 per unique transaction
dataset row, with a 100-row maximum ($0.2005 at the planned rates). This is a
local release candidate and those prices are not configured or published yet.
Always check the live Pricing tab after an actual release.