/insider-module/api/insiders/filings/latestGet latest insider filings across all companies.
Get latest insider filings across all companies. Returns filing summaries with issuer details including sector and industry.
Why use this
Common use case
Filings-table feed — one row per Form 3/4/5 filing (NOT per transaction). Designed for filings dashboards, compliance audit views, and 'recent activity' panels where a filing is the natural unit of work.
The response carries the full enriched filing-summary shape: filing identity, issuer block (cik / name / ticker / sector / industry, pre-joined to avoid N+1), counts of transactions and holdings split by table (non-derivative vs derivative), footnote count, and direct SEC EDGAR document URLs (xml_url for programmatic parsing, index_url for browser navigation).
Filtering levers: form_type for Form 4 vs Form 3 vs amendments, ticker/sector/industry for issuer scope, from_date/to_date for filing-date windows, is_amendment to surface only */A rows. Superseded amendments (is_superseded=true) are filtered out server-side. For the full nested filing tree (transactions, holdings, footnotes, reporters) on a specific filing use GET /insider-module/api/insiders/filings/{accession_number}; for an issuer-scoped filings list use GET /insider-module/api/insiders/filings/by-ticker/{ticker}.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| limit | query | optional | 50 | — | Limit results (max 1000) | 20 |
| offset | query | optional | 0 | — | Pagination offset | 0 |
| form_type | query | optional | — | — | Filter by form type (3, 4, 5, 3/A, 4/A, 5/A) | 4 |
| ticker | query | optional | — | — | Filter by company ticker | AAPL |
| from_date | query | optional | — | — | Start date (YYYY-MM-DD) | 2026-01-01 |
| to_date | query | optional | — | — | End date (YYYY-MM-DD) | 2026-04-01 |
| is_amendment | query | optional | — | — | Filter amendments only (true/false) | false |
| sector | query | optional | — | — | Filter by sector (e.g., Technology, Healthcare). Case-sensitive, Sharadar classification. | Technology |
| industry | query | optional | — | — | Filter by industry (e.g., Software, Biotechnology). Case-sensitive, Sharadar classification. | Consumer Electronics |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| status | string | no | Always `success` on 2xx. |
| data | array | no | Array of filing-summary rows ordered by `filed_at DESC`. One row per filing (NOT per transaction — a single filing can carry many transactions; query `/filings/{accession_number}` for the full tree). Excludes superseded amendments via the `is_superseded=false` server-side filter. |
| data[].filing_id | string | no | Internal FinRadar UUID for the filing, serialized as a string. Stable across re-parses; safe to use as a deduplication key. |
| data[].accession_number | string | no | SEC accession number in canonical `XXXXXXXXXX-YY-NNNNNN` format. Pass to `/filings/{accession_number}` for the full nested filing tree. |
| data[].form_type | string | no | Form type as filed — `3` (initial Section 16 statement), `4` (statement of changes), `5` (annual statement), or amendment variants `3/A`/`4/A`/`5/A`. |
| data[].filed_at | string | yes | ISO-8601 UTC timestamp the filing was accepted by SEC EDGAR. Primary sort key (DESC). |
| data[].accepted_at | string | yes | ISO-8601 UTC EDGAR acceptance timestamp. Typically equal to or seconds after `filed_at`. |
| data[].period_of_report | string | yes | ISO `YYYY-MM-DD` period covered by the filing (Form 4 Item 3 — typically the largest constituent transaction date). |
| data[].is_amendment | boolean | no | `true` for `*/A` amendments. Defaults to `false`. |
| data[].is_late | boolean | yes | `true` when filed past the SEC Section-16 2-business-day deadline. Null when timeliness data is unavailable for the filing. |
| data[].business_days_to_file | integer | yes | Business days between the underlying transaction date and `filed_at`. Values >2 indicate late filings. |
| data[].issuer | object | no | Issuer block: `{cik, name, trading_symbol, sector, industry}`. Pre-joined to avoid N+1 calls when rendering a filings table. |
| data[].issuer.cik | string | no | Issuer CIK (10-character zero-padded). |
| data[].issuer.name | string | yes | Issuer name (CompanyStub.name; falls back to InsiderFiling.issuer_name when stub missing). |
| data[].issuer.trading_symbol | string | yes | Issuer ticker (canonical hyphen form). |
| data[].issuer.sector | string | yes | Sharadar sector classification. Null when unmapped. |
| data[].issuer.industry | string | yes | Sharadar industry classification. Null when unmapped. |
| data[].owner_count | integer | no | Total number of reporting persons on the filing. `1` for typical individual filings; ≥2 for joint filings (PE LP+GP+manager / 13D groups / SPAC sponsors). |
| data[].non_derivative_transaction_count | integer | no | Count of Form 4 Table I (non-derivative / cash-equity) transactions on the filing. |
| data[].derivative_transaction_count | integer | no | Count of Form 4 Table II (derivative — option/RSU/warrant) transactions on the filing. |
| data[].non_derivative_holding_count | integer | no | Count of Form 4 Table I holdings (positions held but not transacted) on the filing. |
| data[].derivative_holding_count | integer | no | Count of Form 4 Table II holdings on the filing. |
| data[].footnote_count | integer | no | Count of footnotes attached to the filing. Footnotes carry crucial qualifying context (10b5-1 plan dates, gift-recipient identities). |
| data[].xml_url | string | yes | Direct URL to the SEC EDGAR XML primary document. |
| data[].index_url | string | yes | Direct URL to the SEC EDGAR filing index page (HTML). |
| meta | object | yes | Result metadata block. |
| meta.pagination | object | no | Pagination sub-block. |
| meta.pagination.total | integer | no | Total matching filings for the filter set. |
| meta.pagination.limit | integer | no | Effective page size. |
| meta.pagination.offset | integer | no | Echo of requested offset. |
| meta.pagination.has_more | boolean | no | `true` when another page is available. |
| request_id | string | yes | Per-request UUID for log correlation. |
| timestamp | string | no | ISO-8601 UTC response timestamp. |
Sample response
- "status": "success"
- "data":
- "meta":
- "pagination":
- "request_id": "d6e8f9a0-1b2c-4d3e-5f6a-7b8c9d0e1f2a"
- "timestamp": "2026-05-02T15:48:11.521Z"
Errors
| Status | Label | Description |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid query, body, or path parameter. |
| 401 | Unauthorized | Missing or invalid Authorization header / api_Token. |
| 402 | Payment Required | Insufficient token balance for this call. Top up |
| 429 | Too Many Requests | Rate limit exceeded for your tier (see /pricing for tier limits). Tier limits |
| 500 | Server Error | Unexpected server-side failure. Retry with backoff; report if persistent. |
Code samples
curl "https://api.finradar.ai/insider-module/api/insiders/filings/latest?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).