Skip to content
/insider-module/api/insiders/filings/{accession_number}

Get complete filing details by accession number.

Get complete filing details by accession number. Returns full nested structure matching SEC-API.io format: issuer info, all reporting owners with relationships and officer titles, non-derivative/derivative transactions and holdings, all footnotes, and owner signature.

5 tokensSince v1.0.0

Why use this

Full Form 3/4/5 filing detail with SEC-API.io compatible structure.

Common use case

Building a filing detail view that shows every transaction, holding, derivative position, and footnote for a specific SEC insider filing.

Single-filing deep-dive — the canonical source-of-truth for everything inside one Form 3/4/5. The response shape is sec-api.io-compatible (drop-in replacement for sec-api.io's /insider-trading/{accession} endpoint), so existing client code that parses sec-api.io responses Just Works.

Accession-number normalization is automatic — both hyphenated (0001127602-26-001234) and unhyphenated (0001127602260012 34) inputs resolve to the same filing. Returns HTTP 404 when the accession is unknown.

The response includes all four nested arrays — non-derivative transactions, non-derivative holdings, derivative transactions, derivative holdings — even when empty (no null arrays). Footnotes are the most-overlooked carrier of signal: 10b5-1 plan adoption dates, gift-recipient identities, vesting schedules, transfer-on-death assignments. Each transaction can carry a footnoteIds array referencing the top-level footnotes[].

For the flatter row-shaped interface (one row per (transaction, reporter)) prefer GET /insider-module/api/insiders/transactions/search; for amendment-chain traversal use the originalAccessionNo and supersededByAccessionNo fields to walk to other versions.

Parameters

NameInRequiredDefaultAllowedDescriptionExample
accession_numberpathrequiredSEC accession number (e.g. 0001067983-24-000123 or 000106798324000123)0000320193-25-000123

Response schema

FieldTypeNullableDescription
statusstringnoAlways `success` on 2xx.
dataobjectnoFull filing detail object matching the sec-api.io nested shape — issuer block + reporting owners + non-derivative/derivative tables (transactions + holdings) + footnotes + signature. Returns HTTP 404 when the accession number cannot be resolved.
data.idstringnoInternal FinRadar UUID for the filing (string-serialized).
data.accessionNostringnoSEC accession number in canonical `XXXXXXXXXX-YY-NNNNNN` format. Path-parameter input is normalized server-side: `0000320193-25-000123` and `000032019325000123` both resolve to the same filing.
data.documentTypestringnoForm type (`3`/`4`/`5`/`*/A`). Aliased name preserves sec-api.io compatibility.
data.filedAtstringyesISO-8601 UTC timestamp the filing was accepted by SEC EDGAR.
data.acceptedAtstringyesISO-8601 UTC EDGAR acceptance timestamp (typically equal to or seconds after `filedAt`).
data.periodOfReportstringyesISO `YYYY-MM-DD` period covered by the filing (Form 4 Item 3).
data.dateOfOriginalSubmissionstringyesReserved for future use — currently always null. The original-submission date for amendments is exposed via `originalAccessionNo` instead.
data.schemaVersionstringnoSEC EDGAR XBRL schema version (e.g. `'X0306'`). Defaults to `'X0306'` when missing.
data.notSubjectToSection16booleanno`true` when the filing was made by a non-Section-16 reporter (rare). Defaults to `false`.
data.noSecuritiesOwnedbooleanno`true` for filings explicitly indicating no securities are owned (Form 3 starter filings sometimes).
data.isAmendmentbooleanno`true` for `*/A` amendment filings.
data.amendmentTypestringyesAmendment classification (`'restatement'`, `'addition'`, etc.) when discriminable from filing metadata; null for non-amendment filings.
data.originalAccessionNostringyesFor amendments, the accession number of the original filing being amended. Null for non-amendments.
data.supersededByAccessionNostringyesWhen set, indicates this filing has been superseded by a later amendment with the given accession number. Use to traverse the amendment chain.
data.isSupersededbooleanno`true` when a later amendment supersedes this filing (i.e. `supersededByAccessionNo` is set). Listing endpoints filter these out by default.
data.isLatebooleanyes`true` when the filing was submitted past the SEC Section-16 2-business-day deadline.
data.businessDaysToFileintegeryesBusiness days between transaction date and `filedAt`.
data.indexUrlstringyesDirect URL to the SEC EDGAR filing index page (HTML).
data.xmlUrlstringyesDirect URL to the SEC EDGAR XML primary document.
data.issuerobjectnoIssuer block: `{cik, name, tradingSymbol, tradingSymbolAtFiling}`. `tradingSymbolAtFiling` preserves the symbol as it was at filing time (in case of post-filing ticker changes).
data.issuer.cikstringnoIssuer CIK (10-character zero-padded).
data.issuer.namestringyesIssuer name. Falls back to `InsiderFiling.issuer_name` when CompanyStub missing; further fallback to `'Unknown'`.
data.issuer.tradingSymbolstringyesCURRENT issuer ticker (canonical hyphen form). Use this for joins to today's market data.
data.issuer.tradingSymbolAtFilingstringyesIssuer ticker AS-OF the filing date — preserves what was current then. Diverges from `tradingSymbol` for issuers that changed ticker post-filing (rare; relevant for historical analysis).
data.reportingOwnersarraynoArray of all reporting persons on the filing — one entry per `FilingReporter`. Most filings have one reporter; joint filings (PE LP+GP+manager / 13D groups / SPAC sponsors) have 2-9+. Each entry includes identity + relationship + address (full sec-api.io-shaped nested object).
data.nonDerivativeTableobjectnoForm 4 Table I (cash-equity) sub-tree: `{transactions: [], holdings: []}`. Always present even when empty.
data.nonDerivativeTable.transactionsarraynoCash-equity transactions on the filing — open-market buys/sells, grants, gifts. Each entry has nested `securityTitle`, `transactionDate`, `transactionCoding`, `transactionAmounts`, `postTransactionAmounts` (sec-api.io shape).
data.nonDerivativeTable.holdingsarraynoCash-equity holdings on the filing (positions held but not transacted). Used by Form 3 starter filings and supplementary holdings disclosures.
data.derivativeTableobjectnoForm 4 Table II (derivative — option / RSU / warrant) sub-tree.
data.derivativeTable.transactionsarraynoDerivative transactions — option exercises, RSU vests, warrant grants. Each entry has the cash-equity transaction shape PLUS derivative-specific fields: `conversionOrExercisePrice`, `exerciseDate`, `expirationDate`, `underlyingSecurity`.
data.derivativeTable.holdingsarraynoDerivative holdings — outstanding option / RSU / warrant positions.
data.footnotesarraynoFiling footnotes — array of `{id, text}` objects. Footnotes carry crucial qualifying context: 10b5-1 plan adoption dates, gift-recipient identities, transfer-on-death assignments, vesting schedules. Use the `id` to cross-reference `footnoteIds` arrays in transaction objects.
data.remarksstringyesFree-text remarks from the filing's 'Remarks' section. Often contains 10b5-1 plan adoption-date references that supplement the footnote graph.
data.ownerSignatureNamestringyesName of the person signing the filing (Form 4 Item 6). Often a power-of-attorney signer rather than the insider themselves.
data.ownerSignatureDatestringyesISO `YYYY-MM-DD` date of the filing signature. Distinct from `filedAt` — signature is typically the same calendar day or 1 day before.
data.processingMetadataobjectnoFinRadar processing metadata: `{createdAt, updatedAt, processingState}`. Distinct from SEC-side timestamps (`filedAt`, `acceptedAt`) — these are for FinRadar pipeline observability.
data.processingMetadata.createdAtstringyesISO-8601 UTC when FinRadar first ingested this filing.
data.processingMetadata.updatedAtstringyesISO-8601 UTC of the most-recent FinRadar-side update (parser re-run, ticker remap).
data.processingMetadata.processingStatestringnoFinRadar processing state — `'COMPLETED'` (normal), `'PROCESSING'` (in-flight), `'FAILED'` (parse error). Defaults to `'COMPLETED'`.
request_idstringyesPer-request UUID for log correlation.
timestampstringnoISO-8601 UTC response timestamp.

Sample response

·
  • "status": "success"
  • "data":
    • "id": "0a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d"
    • "accessionNo": "0001127602-26-001234"
    • "documentType": "4"
    • "filedAt": "2026-04-15T20:14:32+00:00"
    • "acceptedAt": "2026-04-15T20:14:35+00:00"
    • "periodOfReport": "2026-04-15"
    • "dateOfOriginalSubmission": null
    • "schemaVersion": "X0306"
    • "notSubjectToSection16": false
    • "noSecuritiesOwned": false
    • "isAmendment": false
    • "amendmentType": null
    • "originalAccessionNo": null
    • "supersededByAccessionNo": null
    • "isSuperseded": false
    • "isLate": false
    • "businessDaysToFile": 0
    • "indexUrl": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000320193&type=4"
    • "xmlUrl": "https://www.sec.gov/Archives/edgar/data/320193/000112760226001234/wf-form4_178834567890.xml"
    • "issuer":
    • "reportingOwners":
    • "nonDerivativeTable":
    • "derivativeTable":
    • "footnotes":
    • "remarks": null
    • "ownerSignatureName": "Sam Whittington"
    • "ownerSignatureDate": "2026-04-15"
    • "processingMetadata":
    }
  • "request_id": "f5e8a3b1-9c4d-4f7e-8a5b-c1d2e3f4a5b6"
  • "timestamp": "2026-05-02T15:54:18.094Z"
}

Errors

StatusLabelDescription
200OKRequest succeeded.
400Bad RequestInvalid query, body, or path parameter.
401UnauthorizedMissing or invalid Authorization header / api_Token.
402Payment RequiredInsufficient token balance for this call. Top up
429Too Many RequestsRate limit exceeded for your tier (see /pricing for tier limits). Tier limits
500Server ErrorUnexpected server-side failure. Retry with backoff; report if persistent.

Code samples

curl "https://api.finradar.ai/insider-module/api/insiders/filings/{accession_number}?api_Token=YOUR_API_KEY" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).