Browse all documentation

Registrations calendar API reference

S-1, F-1 and 424B filings by filing day, with the offering terms

Overview

The registrations calendar lists the registration statements and final prospectuses that companies sent to the SEC, by filing day: S-1 and F-1 statements, their amendments, and the 424B4 and 424B1 prospectuses that fix the offering terms. Every request needs a Bearer key, and REST and MCP draw on one credit balance.

Each row is one filing, and most filings are not a company's first sale of shares. class says which kind each one is: ipo, spac, shell, resale or other. The S-1, its amendments and its final prospectus share one file_number, so count offerings by file_number.

Leave end out for today in UTC, and start out for 30 days before end. One request touches at most 12 calendar months, and a longer window is 400 range_too_large. History starts in November 2025.

The default is the US. country=jpn answers with Japan's securities registration statements and covers part of them: about 79% of Japan's filings have a readable body file, and the rest are missing. country=kor is a free 404 not_covered.

Base URL: https://api.narwhalapi.com. Each route below is an MCP tool of its own, with the same parameters.

Dividends, splits and earnings are on the company calendars page.

Company ids are the ones the Filings API returns from company search.

What every account gets

WhatEvery account
Registrations calendarIncluded

See pricing for what a call costs. A request is charged at the price of its API unless a route says otherwise.

  • Billed at the Companies price, even though the route sits under calendars. Each successful answer is one call, whatever the number of rows, and an empty page is charged too. Errors are not charged.
  • Money is in currency and as printed on the filing. A US filing leaves currency out, which means US dollars.
  • ticker, the offering terms, underwriters, law_firms and management are read from the text of the filing and left out when the filing does not state them. The lists are not guaranteed complete, and an underwriter list can carry a table heading such as Joint Book-Runners as a name.
  • management is read only for ipo, spac and shell filings. financials comes from the financial tags inside the prospectus. Many companies that are not yet public do not tag their statements, so it is often left out.
  • cik is sent for US filings only. For another country, filter with ticker.

Endpoints

Every route is a GET and needs your key in the Authorization: Bearer header. The examples show the shape of an answer, not live data.

List registrations

GET /v1/calendars/registrations

Registration statements (S-1, F-1 and their amendments) and final prospectuses (424B4, 424B1) filed in a window of up to 12 months, oldest first. Each row is one filing, and most filings are not IPOs: class says which kind each one is.

class is ipo for a company's first public offering, whether the company, its holders or both sell. spac is a blank check company, and shell is a start-up with no operations. resale is existing holders selling shares of a company that is already public. other is a follow-on offering or anything we cannot tell apart.

price_low and price_high are the expected range on an S-1 or F-1. On a 424B4 or 424B1 they are the final price, so both are the same.

MCP: tool calendars_list_registrations.

Parameters

ParameterWhereRequiredTypeMeaning
startqueryNodateFirst filing day (YYYY-MM-DD), inclusive. Left out means 30 days before end.
endqueryNodateLast filing day, inclusive. Left out means today (UTC). start to end touches at most 12 calendar months (400 range_too_large).
countryqueryNostringThree-letter country code of the registry. Left out means USA. A country the route does not cover is 404 not_covered.
cikqueryNostringOnly filings of this SEC Central Index Key (leading zeros are optional). US only: with another country use ticker.
tickerqueryNostringOnly filings that name this symbol on the cover (the proposed symbol of a company going public), or whose filer the catalogue knows under this ticker.
classqueryNoone of ipo, spac, shell, resale, otherOnly filings of this class: ipo, spac, shell, resale or other.
formqueryNoone of S-1, S-1/A, F-1, F-1/A, 424B4, 424B1, TODOKE, TODOKE/AOnly filings of this form, for example S-1 or 424B4.
cursorqueryNostringnext_cursor of the previous page, with the same other parameters.
limitqueryNointegerRows per page. Default 100, at most 500.

Response fields

FieldTypeSentMeaning
startdateAlwaysFirst filing day of the window, after the defaults are applied.
enddateAlwaysLast filing day of the window, after the defaults are applied.
registrationslist of objectAlwaysThe filings in the window, oldest first.
registrations[].filing_idstringAlwaysId of the filing, for the Filings API.
registrations[].cikstringOptionalSEC Central Index Key of the filer. US filings only.
registrations[].company_idstringOptionalCompany id in our catalogue, when the filer is in it.
registrations[].namestringOptionalName of the filer.
registrations[].formone of S-1, S-1/A, F-1, F-1/A, 424B4, 424B1, TODOKE, TODOKE/AAlwaysThe form: S-1, S-1/A, F-1, F-1/A, 424B4 or 424B1, and Japan's TODOKE and TODOKE/A.
registrations[].fileddateAlwaysDay the filing was made.
registrations[].classone of ipo, spac, shell, resale, otherAlwaysKind of filing: ipo, spac, shell, resale or other.
registrations[].currencystringOptionalCurrency of the money fields. Left out means US dollars.
registrations[].price_lowstringOptionalLow end of the expected price per share, or the final price on a prospectus.
registrations[].price_highstringOptionalHigh end of the expected price per share, or the final price on a prospectus.
registrations[].exchangestringOptionalThe market the filer names on its cover.
registrations[].file_numberstringOptionalRegistration number printed on the filing, for example 333-284180. One offering has one.
registrations[].tickerstringOptionalThe symbol the cover gives for the shares.
registrations[].shares_offeredstringOptionalShares, units or ADSs on the cover headline, before any over-allotment.
registrations[].offered_asone of shares, units, adsOptionalWhat is offered: shares, units or ads.
registrations[].offering_amountstringOptionalTotal offering amount from the cover price table.
registrations[].underwriting_discountstringOptionalTotal underwriting discount from the cover price table.
registrations[].proceeds_before_expensesstringOptionalTotal proceeds before expenses from the cover price table.
registrations[].price_per_sharestringOptionalOffering price per share, unit or ADS, as offered_as says.
registrations[].underwriting_discount_per_sharestringOptionalUnderwriting discount per share, unit or ADS.
registrations[].proceeds_per_sharestringOptionalProceeds per share, unit or ADS.
registrations[].underwriterslist of stringOptionalThe firms named on the cover as underwriters.
registrations[].law_firmslist of stringOptionalLaw firms from the Copies to block and, for ipo, spac and shell filings, from Legal Matters.
registrations[].managementlist of objectOptionalDirectors and executive officers from the filing's management table.
registrations[].management[].namestringAlwaysName of the director or officer.
registrations[].management[].titlestringAlwaysTitle as the filing gives it.
registrations[].management[].ageintegerOptionalAge as the filing gives it.
registrations[].financialsobjectOptionalThe company's latest annual figures, read from the financial tags in the prospectus. Left out when the statements are not tagged.
registrations[].financials.fiscal_year_enddateAlwaysEnd of the latest full fiscal year with tagged figures.
registrations[].financials.currencystringOptionalCurrency of the statements.
registrations[].financials.revenuestringOptionalRevenue for that year, in whole units.
registrations[].financials.net_incomestringOptionalNet income for that year, in whole units.
registrations[].financials.total_assetsstringOptionalTotal assets at that date, in whole units.
registrations[].financials.total_liabilitiesstringOptionalTotal liabilities at that date, in whole units.
registrations[].financials.total_equitystringOptionalTotal equity at that date, in whole units.
registrations[].financials.cashstringOptionalCash at that date, in whole units.
next_cursorstringAlwaysPass as cursor to read the next page. Always sent; null on the last page.
Request
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/calendars/registrations?ticker=ACCV&form=424B4&start=2026-10-01&end=2026-11-12"
Example response
{
  "start": "2026-10-01",
  "end": "2026-11-12",
  "registrations": [
    {
      "filing_id": "usa:0002141406:0001628280-26-064097",
      "cik": "0002141406",
      "company_id": "usa:0002141406",
      "name": "Accelevation Holdings Corp.",
      "form": "424B4",
      "filed": "2026-10-01",
      "class": "ipo",
      "price_low": "18.00",
      "price_high": "18.00",
      "exchange": "Nasdaq",
      "file_number": "333-298715",
      "ticker": "ACCV",
      "shares_offered": "30000000",
      "offered_as": "shares",
      "offering_amount": "540000000",
      "underwriting_discount": "28350000",
      "proceeds_before_expenses": "170550000",
      "price_per_share": "18.00",
      "underwriting_discount_per_share": "0.945",
      "proceeds_per_share": "17.055",
      "underwriters": [
        "Morgan Stanley",
        "J.P. Morgan",
        "Goldman Sachs & Co. LLC",
        "Barclays"
      ],
      "law_firms": [
        "Kirkland & Ellis LLP",
        "Simpson Thacher & Bartlett LLP"
      ],
      "management": [
        {
          "name": "Michael Rubiera",
          "title": "Chief Executive Officer and Director",
          "age": 52
        },
        {
          "name": "Kenneth Krause",
          "title": "Chief Financial Officer",
          "age": 51
        }
      ]
    }
  ],
  "next_cursor": null
}

Errors

Errors use the shared problem shape with a request_id. See Errors and credits for the shape and the credit headers. Failed requests are not charged.

CodeStatusMeaning
invalid_query400A parameter is missing, unknown, repeated or outside its range.
range_too_large400The window is longer than the route allows.
invalid_cursor400The cursor is not one this request returned, or it comes from a different request.
not_covered404The market, country or company is not covered yet.
insufficient_credits402Your credit balance is less than the request costs.
company_data_unavailable503The filings behind this route cannot be read right now. Try again shortly.

Was this page helpful?