/api/v1/sec/filings/{accession_number}Get filing metadata by accession number — returns filing details, document URLs (all_links), and structured data.
Get filing metadata by accession number — returns filing details, document URLs (all_links), and structured data. Does NOT return the document content itself.
Why use this
Common use case
Canonical filing-detail lookup. Returns the full metadata record for a single filing — form type, filer CIK + entity name, filed date, period of report, SIC, summary HTML, the complete all_links array of every document URL in the filing package, and the raw EDGAR RSS entry XML for forensic/audit work. The natural step-1 of any filing-detail workflow: find the accession via GET /api/v1/sec/filings or POST /api/v1/scrapping/search/, call this for metadata + document URLs, then drill into the body via GET /api/v1/sec/filings/{accession_number}/html (primary-doc shortcut) or GET /api/v1/sec/document?url=... (any specific exhibit/data file). For 13F-HR filings the holdings table is exposed separately via GET /api/v1/13f/filer/{cik}/holdings — the holdings table is NOT included in this metadata response.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| accession_number | path | required | — | — | SEC accession number in 18-char dashed format `XXXXXXXXXX-YY-NNNNNN` (e.g. `0000320193-25-000123`). Also accepts the un-dashed 18-char form (`000032019325000123`). Returns 404 when the accession is not in the local index — call `POST /api/v1/sec/filings/backfill?ticker=...` first if you suspect the ticker hasn't been backfilled yet. | 0000320193-25-000123 |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| status | string | no | Always `"success"` on 2xx. ApiResponse envelope marker — wraps via `ApiResponse.success()`. |
| request_id | string | yes | Per-request UUID generated server-side. Surface this in support tickets — operations can grep it directly out of nginx + main_api logs. |
| timestamp | string | no | ISO-8601 UTC timestamp the response was generated server-side (suffix `Z`). |
| data | object | no | Full filing metadata record. Same shape as a single element of `GET /api/v1/sec/filings`'s `data[]` array, PLUS the `raw_entry_xml` field (which is excluded from list responses for payload-size reasons). See `data.*` for fields. |
| data.id | integer | no | Internal `sec_filing_entries.id` row ID (auto-increment primary key). |
| data.accession_number | string | no | SEC accession number in canonical 18-char dashed format `XXXXXXXXXX-YY-NNNNNN`. Echoes the input. |
| data.ticker | string | yes | Resolved ticker from the filer CIK via the `ticker_norm_aliases` lookup. Null when the filer has no public-equity ticker. |
| data.form_type | string | no | Canonical SEC form type as filed (e.g. `10-K`, `13F-HR`, `8-K`, `4`, `13D`, `13G`, `S-1`, `20-F`, `144`, `DEF 14A`). Amendment variants append `/A`. NT-prefixed forms (e.g. `NT 10-K`, `13F-NT`) appear verbatim. Reference [SEC EDGAR form types](https://www.sec.gov/forms). |
| data.cik | string | yes | Filer CIK as a zero-padded 10-character string (e.g. `0000320193`). |
| data.entity_name | string | yes | Filer's legal entity name as registered with SEC. |
| data.company_name | string | yes | Frontend-friendly alias of `entity_name`. |
| data.role | string | yes | Role of the filer in this filing (`Reporting Owner`, `Issuer`, `Filer`). Null for issuer filings. |
| data.title | string | no | Free-text title from the EDGAR submissions feed. |
| data.summary_html | string | yes | Optional HTML summary block from EDGAR. Sanitize before rendering. |
| data.filing_size | string | yes | Filing size as a human-readable string (e.g. `"245 KB"`, `"2.1 MB"`). NOT a numeric byte count. |
| data.filed_date | string | yes | ISO date `YYYY-MM-DD` of the filing's SEC acceptance date in ET. |
| data.filed_at | string | yes | Frontend-friendly alias of `filed_date`. |
| data.updated_at | string | no | ISO-8601 UTC timestamp of the last server-side update to this row. |
| data.primary_link | string | yes | Canonical SEC EDGAR URL for the filing's index page. |
| data.primary_html_url | string | yes | Direct URL of the filing's primary HTML document (the actual 10-K/8-K/13F body). For the parsed body content use the `/html` companion endpoint. |
| data.document_files | array | yes | JSON array of structured document descriptors `[{type, document, description, size}, ...]`. |
| data.data_files | array | yes | JSON array of XBRL/data file descriptors `[{type, document, description, size}, ...]`. Populated on filings with embedded XBRL. |
| data.items | array | yes | Array of 8-K item codes disclosed in this filing (e.g. `["2.02", "9.01"]`). Null on non-8-K forms. |
| data.period_of_report | string | yes | ISO `YYYY-MM-DD` period the filing covers (fiscal-period-end for 10-K/10-Q, trade date for Form 4, report date for 13F-HR). |
| data.sic | string | yes | Standard Industrial Classification code (4-digit string). |
| data.all_links | array | yes | Array of every document URL listed on the filing's index page — exhibits, XBRL data, images, the primary document. Pass any element to `GET /api/v1/sec/document?url=...` to fetch its content. |
| data.raw_entry_xml | string | yes | Raw XML entry from SEC EDGAR's RSS feed at the time of ingestion. Useful for forensic / audit-trail work — preserved verbatim from EDGAR for filings ingested via the RSS poller. Null for filings ingested via the submissions-API backfill path (which doesn't expose entry XML). NOT returned by the list endpoint — only the detail endpoint includes this field. |
| data.first_seen_at | string | no | ISO-8601 UTC timestamp when FinRadar first ingested this filing. |
| data.last_seen_at | string | no | ISO-8601 UTC timestamp of the last time the RSS poller observed this filing on EDGAR. |
Sample response
- "status": "success"
- "request_id": "0f14ed05-3a2e-4b76-9c11-1a7c8b3f6de2"
- "timestamp": "2026-05-02T16:30:14.122Z"
- "data":
- "id": 18234567
- "accession_number": "0000320193-25-000123"
- "ticker": "AAPL"
- "form_type": "10-K"
- "cik": "0000320193"
- "entity_name": "Apple Inc."
- "company_name": "Apple Inc."
- "role": null
- "title": "10-K - APPLE INC (0000320193) (Filer)"
- "summary_html": null
- "filing_size": "12.4 MB"
- "filed_date": "2025-11-01"
- "filed_at": "2025-11-01"
- "updated_at": "2025-11-01T20:14:32.000Z"
- "primary_link": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000320193&type=10-K"
- "primary_html_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000123/aapl-20250928.htm"
- "document_files":
- "data_files":
- "items": null
- "period_of_report": "2025-09-28"
- "sic": "3571"
- "all_links":
- "raw_entry_xml": "<entry>\n <title>10-K - APPLE INC...</title>\n <link href=\"https://www.sec.gov/...\" />\n ...\n</entry>"
- "first_seen_at": "2025-11-01T20:14:35.000Z"
- "last_seen_at": "2025-11-02T03:00:01.000Z"
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/api/v1/sec/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).