SEC Filings API
List SEC filing metadata by company, including 10-K, 10-Q, 8-K, Form 4, and 13F-HR.
Endpoint and request
SEC API access is not open yet.
GET /v1/companies/{company_id}/filingscurl --request GET \
--url "https://api.narwhalapi.com/v1/companies/cmp_a1b2c3d4e5f678901234567890abcdef/filings?forms=10-K,10-Q&filed_from=2020-01-01&filed_to=2027-01-01&limit=50" \
--header "Authorization: Bearer $NARWHAL_API_KEY"MCP uses companies_list_filings with the corresponding arguments below. REST and MCP return the same response schema and share quota accounting.
Parameters
| Name | Required | Type | Meaning |
|---|---|---|---|
company_id | Yes | path · opaque Narwhal ID | Stable company identity returned by company search. Ticker and CIK remain aliases, not permanent route identity. |
forms | No | query · comma-separated SEC forms | Exact case-sensitive form tokens. A base form also matches its /A amendment unless amendments are excluded. |
filed_from | No | query · YYYY-MM-DD | Inclusive filing-date lower bound. |
filed_to | No | query · YYYY-MM-DD | Exclusive filing-date upper bound. It must be later than filed_from. |
include_amendments | No | query · boolean | Include amendments when a base form is requested. Defaults to true. |
limit | No | query · integer, 1–100 | Maximum filings to return. Defaults to 50. |
cursor | No | query · opaque string | Continuation token from the previous page. It is bound to the original query and filters. |
SEC form filters
Use exact SEC form tokens. A base form can include its /A amendment, such as 10-K/A or 4/A, unless amendments are excluded.
| Forms | Meaning |
|---|---|
10-K | Annual company report |
10-Q | Quarterly company report |
8-K | Material company events |
20-F / 6-K | Foreign private issuer reports |
DEF 14A | Proxy votes, boards, and executive compensation |
Forms 3 / 4 / 5 | Insider beneficial ownership and changes |
Schedule 13D / 13G | Large beneficial owners |
13F-HR | Institutional manager holdings |
S-1 / S-3 / 424B | Registrations, offerings, and prospectuses |
This list explains common forms. It is not a fixed whitelist.
Response
{
"company": {
"id": "cmp_a1b2c3d4e5f678901234567890abcdef",
"name": "Apple Inc.",
"cik": "0000320193"
},
"filings": [
{
"accession_number": "0000320193-24-000123",
"form": "10-K",
"filed_on": "2024-11-01",
"accepted_at": "2024-11-01T10:01:36Z",
"report_period": "2024-09-28",
"is_amendment": false,
"items": [],
"filing_index_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/0000320193-24-000123-index.html",
"primary_document_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm"
}
],
"next_cursor": null,
"as_of": "2026-08-29T12:00:00Z"
}| Field | Type | Required | Meaning |
|---|---|---|---|
company | object | Yes | Stable company ID, name, and CIK for the requested issuer. |
filings | array | Yes | Filing metadata ordered by acceptance time and accession number, newest first. |
next_cursor | string or null | Yes | Opaque filter-bound continuation token, or null when complete. |
as_of | UTC timestamp | Yes | Snapshot time shared by every filing in the page. |
Errors and quota
400 invalid_query— a query, date, form, limit, or cursor is invalid.401 invalid_api_key— the Bearer key is missing or rejected.404 company_not_found— the company ID is unknown in the accepted publication.429 rate_limit_exceededorquota_exhausted— the shared short-window or monthly allowance is exhausted.503 companies_unavailable— Companies is disabled, rights are inactive, or no complete accepted publication can be served.
Authentication failures and rejected throttled requests do not consume monthly quota. Successful REST and MCP calls use the same account allowance.
First-release scope
The first release returns metadata and canonical SEC document links only. It does not include filing bodies, exhibits, XBRL facts, insider transactions, financial statements, or 13F holdings.
Public issuer count, historical boundary, and freshness are not published yet.