Browse all documentation

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.

REST endpoint
GET /v1/companies/{company_id}/filings
Request
curl --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

NameRequiredTypeMeaning
company_idYespath · opaque Narwhal IDStable company identity returned by company search. Ticker and CIK remain aliases, not permanent route identity.
formsNoquery · comma-separated SEC formsExact case-sensitive form tokens. A base form also matches its /A amendment unless amendments are excluded.
filed_fromNoquery · YYYY-MM-DDInclusive filing-date lower bound.
filed_toNoquery · YYYY-MM-DDExclusive filing-date upper bound. It must be later than filed_from.
include_amendmentsNoquery · booleanInclude amendments when a base form is requested. Defaults to true.
limitNoquery · integer, 1–100Maximum filings to return. Defaults to 50.
cursorNoquery · opaque stringContinuation 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.

FormsMeaning
10-KAnnual company report
10-QQuarterly company report
8-KMaterial company events
20-F / 6-KForeign private issuer reports
DEF 14AProxy votes, boards, and executive compensation
Forms 3 / 4 / 5Insider beneficial ownership and changes
Schedule 13D / 13GLarge beneficial owners
13F-HRInstitutional manager holdings
S-1 / S-3 / 424BRegistrations, offerings, and prospectuses

This list explains common forms. It is not a fixed whitelist.

Response

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"
}
FieldTypeRequiredMeaning
companyobjectYesStable company ID, name, and CIK for the requested issuer.
filingsarrayYesFiling metadata ordered by acceptance time and accession number, newest first.
next_cursorstring or nullYesOpaque filter-bound continuation token, or null when complete.
as_ofUTC timestampYesSnapshot 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_exceeded or quota_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.