Registration Statement & Prospectus Data API

The Form S-1 and Form 424B4 Data API provides extracted structured data from all registration statements and prospectuses filed with the SEC. The API allows you to search and filter through all security offering filings published on the EDGAR database. The data is provided in JSON format and encompasses offering amounts (total, per share and currency: public offering price, underwriting discounts, proceeds before expenses), security types being offered, such as common stock or warrants, underwriters (lead and co-managers), law firms, auditors, employee counts (total, per division, per region), and management information (name, age, position). All types of S-1, F-1 and S-11 registration statements and 424B4 prospectuses are included.

Examples of S-1, F-1, S-11 registration statements and 424B4 prospectuses include:

  • IPO registration statements and prospectuses.
  • Follow-on offerings, such as by seasoned issuers (companies that have already gone public) that are looking to raise additional capital through a secondary offering of shares.
  • Secondary offerings, for example, when existing shareholders, such as insiders, venture capitalists, or private equity firms, wish to sell their shares to the public.
  • Debt offerings of convertible securities and other debt instruments, such as fixed-income securities like corporate bonds.
  • Rights offerings, for example, where existing shareholders are given the right to purchase additional shares at a discount before the shares are offered to the public.
  • Equity lines of credit, where a company can register and sell shares to an investor over a period of time under specific arrangements.
  • Prospectuses for shelf offerings where securities are drawn down from a shelf registration statement (e.g. Form S-3).
  • SPAC offerings such as initial unit offerings including shares and warrants, or de-SPAC transactions where a SPAC merges with a private company to take it public.
Dataset size:
Over 60,000 registration statements (Form S-1, S-1/A, F-1, F-1/A, S-11, S-11/A) and more than 9,000 prospectuses (Form 424B4), from 2000 to present.
Data update frequency:
Structured data is extracted, indexed and made available in less than 500 milliseconds after the filing is published on the SEC EDGAR database.
Survivorship bias free:
Yes. The database includes all registration statements and prospectuses, including those from companies that are no longer active or exist.

API Endpoint

Search and retrieve structured data from registration statements and prospectuses by sending a POST HTTP request with search parameters as a JSON-formatted payload to the following API endpoint:

https://api.sec-api.io/form-s1-424b4

Supported HTTP methods: POST

Request and response content type: JSON

Authentication

To authenticate your API requests, use the API key available in your user profile. You can utilize your API key in one of two ways. Choose the method that best fits your implementation:

  • Authorization Header: Include your API key as an Authorization header in your POST requests. For instance, before sending a POST request to https://api.sec-api.io/form-s1-424b4, ensure the header is set as follows: Authorization: YOUR_API_KEY.
  • Query Parameter: Alternatively, append your API key directly to the URL as a query parameter. For example, when making POST requests, use the URL https://api.sec-api.io/form-s1-424b4?token=YOUR_API_KEY instead of the base endpoint.

Request Parameters

You can retrieve structured data extracted from registration statements and prospectuses by sending a search query to the API. All fields of the extracted data are searchable. For a complete list of searchable fields, refer to the Response Structure section below. Send a search query as a JSON-formatted payload to the API using the structure explained below.

Request parameters:

  • query (string) - Your search criteria. Boolean operators (AND, OR, NOT), range queries across date and number fields, wildcards (*) and search expression grouping are fully supported. The query is written in Lucene syntax and allows you to specify individual fields to search in and what values to search for in the fields. More information on Lucene is available here. Examples:
    • formType:424B4 AND filedAt:[2022-01-01 TO 2022-12-31] returns the structured data from all Form 424B4 prospectuses published in 2022, including January 1st and December 31st.
    • employees.total:>1000 returns all Form S-1 and Form 424B4 filings from companies with more than 1,000 employees reported in the filing.
    • More examples are available below.
  • from (integer) - Use the from property to specify the starting position of your results, facilitating pagination. For instance, set from to 50 to skip the first 50 results. The default is 0, and the maximum allowed value is 10,000, which is also the cap for the maximum number of results returned per query. To retrieve all results in your search universe, increment from by the value of the size parameter (e.g., 50) until no more results are returned or the 10,000 limit is reached. For example, use 0, 50, 100, and so on. If your query locates more than 10,000 results, consider narrowing your search by refining your filter criteria, such as using a date range filter to iterate over months or years. One approach would be to search for registration statement and prospectuses with a filedAt date range filter, e.g., filedAt:[2023-01-01 TO 2023-01-31] (all filings from January 2023), then paginate through the results by incrementing from, and once completed, repeat the process for the next month, and so on.
  • size (integer) - The number of results to be returned per request. Default: 50. Maximum: 50.
  • sort (array) - An array of objects that specify how the returned results are sorted. The default sorting order is descending by the filedAt date, most recent filings first. The sorting order can be changed to ascending by setting order to asc. The default sorting order can be overridden by specifying a different sorting field. For example, to sort results by publicOfferingPrice.total in decending order (highest first), set sort to [{ "publicOfferingPrice.total": { "order": "desc" } }].

Request Examples

Find all extracted data from Form S-1, S-1/A and Form 424B4 filings disclosed between January 1st and December 31st, 2022, with the result sorted by the filing date, starting with the most recent filings.

Open in Data Browser

Retrieve all structured data from Alibaba's registration statement (Form S-1 and amended S-1/As) using the formType and ticker fields, with the default sorting order.

Open in Data Browser

Filter registration statements and prospectuses by the underwriter's name, in this case, Goldman Sachs. The underwriter can either be the lead or a co-manager, and sort the result by the total public offering price, starting with the highest.

Open in Data Browser

Find all structured data from Form 424B4 prospectuses with a public offering price of $100 million or more, sorted by the public offering price in descending order, starting with the highest.

Open in Data Browser

Filter registration statements and prospectuses (excluding S-1/A filings) by the age of the management team. In this case, retrieve all filings with the management team having at least one member of age between 70 and 100 years.

Open in Data Browser

Response Structure

Response type: JSON

The API response represents a JSON object with two fields: total (object) and data (array). The total.value field indicates the total number of results matching your search query. The data array holds up to 50 items per request, each item representing the extracted data from a registration statement or prospectus filing with the following structure:

  • id (string) - System-internal unique identifier of the item.
  • accessionNo (string) - Unique accession number of the Form S-1 or Form 424B4 filing, e.g. 0001628280-24-023559.
  • filedAt (date) - Date and time at which the filing was accepted by SEC EDGAR for processing, e.g. 2024-05-15T16:17:15-04:00.
  • formType (string) - EDGAR form type. Possible values: S-1, S-1/A, 424B4.
  • cik (string) - The Central Index Key (CIK) of the issuer, e.g. 1318605. Leading zeros are removed.
  • ticker (string) - The trading symbol of the issuer at the time of filing indexation, e.g. TSLA for Tesla Inc.
  • entityName (string) - The name of the issuer, e.g. TESLA MOTORS INC.
  • filingUrl (string) - The URL to the filing.
  • tickers (array of objects) - List of ticker symbols of the securities, their types and exchanges on which they are traded or being listed on. Each item in the array represents a security offered by the issuer, for example common stock, preferred stock, warrants or debt securities.
    • ticker (string) - The ticker symbol of the security being offered, e.g. TSLA.
    • type (string) - The type of the security being offered, e.g. Common Stock.
    • exchange (string) - The exchange on which the security is traded or being listed on, e.g. NASDAQ.
  • securities (array of objects) - List of securities offered and referred to in the filing. Each item in the array represents a security type and typically includes the number of shares, warrants, or other securities offered.
    • name (string) - A specific type of security being offered or referred to in the filing, e.g. Up to 3,409,091 Shares of Common Stock, or 1,358,350 Pre-Funded Warrants to Purchase 1,358,350 Common Shares
  • publicOfferingPrice (object) - Information about the public offering price. Note, that not all Form S-1 filings include the public offering price whereas all Form 424B4 filings typically do.
    • perShare (number) - The public offering price per share as a floating number, e.g. 10.00. Typically, the price is in US dollars. In rare cases, the price may be in another currency. To check the currency, evaluate the perShareText (string) property, which includes the currency symbol, e.g., €10.00.
    • perShareText (string) - The public offering price per share as a string, e.g. $10.00.
    • total (number) - The total public offering price as floating number, e.g. 152428000.
    • totalText (string) - The total public offering price as a string, e.g. $152,428,000.00.
  • underwritingDiscount (object) - Information about the underwriting discount. Note, that not all Form S-1 filings include the underwriting discount whereas all Form 424B4 filings do.
    • perShare (number) - The underwriting discount per share as a floating number, e.g. 0.40833. Typically, the value is in US dollars. In rare cases, it may be in another currency. To check the currency, evaluate the perShareText (string) property, which includes the currency symbol, e.g., $0.40833.
    • perShareText (string) - The underwriting discount per share as a string, e.g. $0.40833.
    • total (number) - The total underwriting discount as floating number, e.g. 2164149.
    • totalText (string) - The total underwriting discount as a string, e.g. $2,164,149.00.
  • proceedsBeforeExpenses (object) - Information about the proceeds before expenses to the company. Note, that not all Form S-1 filings include the proceeds before expenses whereas all Form 424B4 filings do.
    • perShare (number) - The proceeds before expenses per share as a floating number, e.g. 28.35. Typically, the value is in US dollars. In rare cases, it may be in another currency. To check the currency, evaluate the perShareText (string) property, which includes the currency symbol, e.g., $28.35.
    • perShareText (string) - The proceeds before expenses per share as a string, e.g. $28.35.
    • total (number) - The total proceeds before expenses to the company as floating number, e.g. 150000000.
    • totalText (string) - The total proceeds as a string, e.g. $150,000,000.00.
  • underwriters (array of objects) - Names of the underwriters involved in the offering. Each item in the array represents one underwriter. The first item typically represents the lead underwriter. Not all registration statements (Form S-1) have underwriters listed. In such cases, subsequent filings (Form S-1/A) may include the underwriters as an amendment as they become known.
    • name (string) - The name of the underwriter, e.g. Goldman Sachs.
  • lawFirms (array of objects) - Names and locations of the legal council and law firms involved in the offering.
    • name (string) - The name of the law firm, e.g. Wilson Sonsini Goodrich & Rosati.
    • location (string) - The location of the law firm, e.g. California, USA.
  • auditors (array of objects) - Names of the auditors involved in the offering.
    • name (string) - The name of the auditor, e.g. Deloitte & Touche LLP.
  • management (array of objects) - Information about the management team, if disclosed in the filing. Each item in the array represents one member of the management team.
    • name (string) - Name of the person, e.g. Elon Musk.
    • age (number) - Age of the person, e.g. 50.
    • position (string) - Position of the person in the company, e.g. CEO. Note, the positions are not standardized and may vary between companies. For example, the CEO may be referred to as President, Chief Executive Officer, or CEO.
  • employees (object) - Information about the number of employees (total, per business unit and per geographical regoin), if disclosed in the filing.
    • total (number) - Total number of employees, e.g. 1010.
    • asOfDate (date) - The date as of which the total number of employees was reported, e.g. 2022-05-15. If the date is not available, the property is empty.
    • perDivision (array of objects) - Number of employees per business division, if disclosed in the filing. Each item in the array represents one business division.
      • division (string) - Name of the business division, e.g. Research and Development.
      • employees (number) - Number of employees in the business division, e.g. 413.
    • perRegion (array of objects) - Number of employees per geographical region, if disclosed in the filing. Each item in the array represents one geographical region.
      • region (string) - Name of the geographical region, e.g. Europe or Los Angeles.
      • employees (number) - Number of employees in the geographical region, e.g. 56.

Response Example

JSON
1 {
2 "total": {
3 "value": 10000,
4 "relation": "gte"
5 },
6 "data": [
7 {
8 "id": "abbd7ae0461b2c6f0c462bd7ac149484",
9 "filedAt": "2024-02-02T16:22:09-05:00",
10 "accessionNo": "0001104659-24-010053",
11 "formType": "424B4",
12 "cik": "1988894",
13 "ticker": "AS",
14 "entityName": "Amer Sports, Inc.",
15 "filingUrl": "https://www.sec.gov/Archives/edgar/data/1988894/000110465924010053/tm2322981-18_424b4.htm",
16 "tickers": [
17 {
18 "ticker": "AS",
19 "type": "Ordinary Shares",
20 "exchange": "NYSE"
21 }
22 ],
23 "securities": [
24 { "name": "105,000,000 Ordinary Shares" }
25 ],
26 "publicOfferingPrice": {
27 "perShare": 13,
28 "perShareText": "$13.00",
29 "total": 1365000000,
30 "totalText": "$1,365,000,000"
31 },
32 "underwritingDiscount": {
33 "perShare": 0.455,
34 "perShareText": "$0.455",
35 "total": 47775000,
36 "totalText": "$47,775,000"
37 },
38 "proceedsBeforeExpenses": {
39 "perShare": 12.545,
40 "perShareText": "$12.545",
41 "total": 1317225000,
42 "totalText": "$1,317,225,000"
43 },
44 "underwriters": [
45 { "name": "Goldman Sachs & Co. LLC" },
46 { "name": "BofA Securities, Inc" },
47 // ... more underwriters
48 ],
49 "lawFirms": [
50 {
51 "name": "Conyers Dill & Pearman",
52 "location": "Cayman Islands"
53 },
54 {
55 "name": "Davis Polk & Wardwell LLP",
56 "location": "New York, United States"
57 },
58 // ... more law firms
59 ],
60 "auditors": [
61 { "name": "KPMG AB" }
62 ],
63 "management": [
64 {
65 "name": "Jie (James) Zheng",
66 "age": 55,
67 "position": "Chief Executive Officer and Director Nominee"
68 },
69 {
70 "name": "Andrew E. Page",
71 "age": 54,
72 "position": "Chief Financial Officer"
73 },
74 // ... more management team members
75 ],
76 "employees": {
77 "total": 10800,
78 "asOfDate": "2023-09-30",
79 "perDivision": [],
80 "perRegion": [
81 {
82 "region": "EMEA",
83 "employees": 4500
84 },
85 {
86 "region": "Americas",
87 "employees": 3700
88 },
89 // ... more regions
90 ]
91 }
92 }
93 ]
94 }

FAQ

Common questions about querying the Registration Statement & Prospectus Data API, the response shape, and the bulk archives.

How do I pull the structured offering details from a specific company's IPO prospectus using its ticker symbol?

Search the /form-s1-424b4 endpoint and filter on the issuer's trading symbol, which is stored at the top level of each item (ticker) and also on each offered security (tickers.ticker). For example, to retrieve the offering data for a company that went public under the symbol BABA, filter where ticker equals BABA. Each matching item is the extracted structured data from one registration statement or prospectus, including the offering amounts (publicOfferingPrice, underwritingDiscount, proceedsBeforeExpenses), the securities offered (securities), and the deal participants (underwriters, lawFirms, auditors).

If you only know the company name rather than its symbol, you can also filter on the issuer name (entityName). Note that a company may have several filings under one ticker — an original Form S-1, one or more amended S-1/A versions, and a final 424B4 prospectus — so a ticker search typically returns the full set of filings for that offering rather than a single document.

Open in Data Browser

How can I find all registration statements and prospectuses a company has filed by looking it up with its CIK number?

Search the /form-s1-424b4 endpoint and filter on the issuer's Central Index Key, which appears on every item as cik. The CIK is the SEC's permanent identifier for a company and is stored with leading zeros removed, for example 1318605 for Tesla. Filtering where cik equals the company's CIK returns every Form S-1, S-1/A, F-1, F-1/A, S-11, S-11/A registration statement and every 424B4 prospectus on file for that issuer.

Results default to descending order by filing date (filedAt), so the most recent filings appear first. To walk through a company's offering history chronologically, sort ascending by filedAt instead. If you have a ticker rather than a CIK, the /mapping-api endpoint resolves a trading symbol to its CIK.

Open in Data Browser

How do I retrieve a single filing when I already have its accession number?

Search the /form-s1-424b4 endpoint and filter on the accession number, which is stored on every item as accessionNo. The accession number is the SEC's unique identifier for an individual filing, formatted with dashes such as 0001628280-24-023559. Filtering where accessionNo equals that value returns the single extracted record for that exact filing.

Because an accession number identifies one specific document, this search returns at most one item, and the total.value field of the response will be 1 when the filing exists in the dataset.

Open in Data Browser

How can I get every securities offering filing made during a particular calendar year?

Search the /form-s1-424b4 endpoint and filter on the filing acceptance date (filedAt), which records when SEC EDGAR accepted the filing for processing. To capture an entire calendar year such as 2022, the value of filedAt should fall between 2022-01-01 and 2022-12-31, inclusive of both endpoints.

A full year of registration statements and prospectuses can exceed the 10,000-result cap on a single search. If the response shows total.value at or above 10,000, narrow the filedAt window to one month at a time and iterate across the twelve months to collect every result.

Open in Data Browser

How do I separate first-time IPO registration statements from amended versions and final prospectuses?

Search the /form-s1-424b4 endpoint and filter on the EDGAR form type, stored on every item as formType. An original registration statement carries formType of S-1, an amended registration statement carries S-1/A (the /A suffix marks an amendment), and the final prospectus that contains confirmed pricing carries 424B4. Filtering formType to a single one of these values isolates that stage of the offering process.

A typical IPO produces all three over time: the company files an S-1, revises it through one or more S-1/A amendments, and concludes with a 424B4 once the deal is priced. To compare stages for one company, combine a formType filter with the issuer's cik. Foreign issuers use F-1 and F-1/A instead of S-1 and S-1/A, and real estate issuers use S-11 and S-11/A.

Open in Data Browser

How can I find only the finalized prospectuses that contain confirmed pricing rather than preliminary registration statements?

Search the /form-s1-424b4 endpoint and filter the form type (formType) to 424B4. A 424B4 is the final prospectus filed after a deal is priced, and unlike preliminary S-1 registration statements it typically includes confirmed pricing in the offering amount objects (publicOfferingPrice, underwritingDiscount, proceedsBeforeExpenses).

While most S-1 filings leave the pricing objects empty, 424B4 prospectuses generally populate the per-share and total figures, such as publicOfferingPrice.perShare and publicOfferingPrice.total. Restricting the search to formType of 424B4 is the most direct way to keep only offerings with finalized pricing data.

Open in Data Browser

How do I exclude amended registration statements and keep only the original filings?

Search the /form-s1-424b4 endpoint and use the form type field (formType) to exclude the amendment values. Amended registration statements carry the /A suffix — S-1/A, F-1/A, and S-11/A — so a search that requires formType to not equal S-1/A removes the amended S-1 filings and leaves the original S-1 registration statements.

To keep only original registration statements across all categories, exclude S-1/A, F-1/A, and S-11/A together, or, more directly, restrict formType to the original values S-1, F-1, and S-11. Excluding amendments is useful when you want one record per offering rather than every successive revision.

Open in Data Browser

How can I find the largest IPOs by total money raised and rank them from biggest to smallest?

Search the /form-s1-424b4 endpoint and sort the results by the total public offering price (publicOfferingPrice.total) in descending order, which places the biggest deals first. The publicOfferingPrice.total field holds the aggregate dollar amount of the offering as a number, for example 1365000000 for a $1.365 billion deal.

Because many preliminary S-1 registration statements leave the pricing objects empty, restrict the search to finalized prospectuses by filtering formType to 424B4 so that every ranked result has a populated total. Sorting then returns the priced offerings ordered from largest to smallest deal size.

Open in Data Browser

How do I search for offerings where the company is raising at least $100 million?

Search the /form-s1-424b4 endpoint and filter on the total public offering price (publicOfferingPrice.total), which stores the aggregate deal size as a number. To find offerings of $100 million or more, the value of publicOfferingPrice.total should be greater than or equal to 100000000.

Since preliminary S-1 registration statements often leave publicOfferingPrice empty, pair the amount filter with a formType of 424B4 to limit results to finalized prospectuses that carry confirmed pricing. Sorting by publicOfferingPrice.total in descending order then ranks the qualifying deals from largest to smallest.

Open in Data Browser

How can I find deals where a particular investment bank acted as either the lead bookrunner or a co-manager?

Search the /form-s1-424b4 endpoint and filter on the underwriter name, stored in the underwriters array as underwriters.name. Each item in underwriters is one bank involved in the offering — the first entry is typically the lead underwriter and the rest are co-managers — so a filter where underwriters.name matches a firm such as Goldman Sachs returns every deal that bank participated in regardless of its role.

The array does not distinguish lead from co-manager beyond ordering, so a name filter captures both. To rank the matching deals by size, sort by publicOfferingPrice.total in descending order. Note that some S-1 registration statements have no underwriters listed yet; the names may appear later in an S-1/A amendment as they become known.

Open in Data Browser

Search the /form-s1-424b4 endpoint and filter on the law firm name, stored in the law firms array as lawFirms.name. Each item in lawFirms represents one legal counsel involved in the offering, with the firm's name (lawFirms.name) and its location (lawFirms.location). Filtering where lawFirms.name matches a firm such as Wilson Sonsini Goodrich & Rosati returns every offering that firm advised on.

A single filing often lists several law firms, since both issuer's counsel and underwriters' counsel are disclosed, so a name match identifies any deal the firm was named on. To rank the matching offerings by deal size, sort by publicOfferingPrice.total in descending order.

Open in Data Browser

How can I find offerings audited by a particular accounting firm?

Search the /form-s1-424b4 endpoint and filter on the auditor name, stored in the auditors array as auditors.name. Each item in auditors is one accounting firm that audited the issuer's financial statements for the offering, for example Deloitte & Touche LLP or Ernst & Young LLP. Filtering where auditors.name matches a firm returns every offering that firm audited.

Some filings list more than one auditor, for instance when a recently acquired business was audited separately, so a name match captures any offering where the firm is named. Pair the filter with a formType value or a filedAt date range to narrow the results to a particular offering stage or time period.

Open in Data Browser

How do I find offerings handled by law firms based in a specific jurisdiction such as the Cayman Islands?

Search the /form-s1-424b4 endpoint and filter on the law firm location, stored in the law firms array as lawFirms.location. Each law firm entry carries both a name (lawFirms.name) and a location string (lawFirms.location), such as Cayman Islands, New York, United States, or California, USA. Filtering where lawFirms.location matches the jurisdiction you want returns offerings where at least one named law firm is based there.

The location strings are not standardized to a fixed list, so a jurisdiction may appear with slight wording variations; matching on the jurisdiction term such as Cayman Islands captures the relevant filings. Cayman Islands counsel commonly appears on offerings by offshore-incorporated issuers, including many SPACs.

Open in Data Browser

How can I screen for companies going public that have more than a certain number of employees?

Search the /form-s1-424b4 endpoint and filter on the total employee count, stored on the employees object as employees.total. This field holds the total headcount the issuer disclosed in the filing as a number, for example 10800. To screen for larger companies, the value of employees.total should be greater than the threshold you choose, such as greater than 1000.

The filing may also break headcount down by business unit (employees.perDivision) and by geographic region (employees.perRegion), and may record the date the count was measured (employees.asOfDate). Note that not every filing discloses an employee count, so filings with an empty employees.total will not appear in a numeric range search.

Open in Data Browser

How do I find offerings from companies whose management team includes someone in a particular age range?

Search the /form-s1-424b4 endpoint and filter on the age of management team members, stored on each person in the management array as management.age. Each item in management describes one executive or director with a name (management.name), an age (management.age), and a position (management.position). To find filings where at least one team member falls in a given age band, the value of management.age should fall between the lower and upper bounds, for example between 70 and 100.

Because the filter matches if any single member's age is in range, the result set is offerings whose disclosed management includes someone of that age. To bring the oldest team members to the top, sort by management.age in descending order. Excluding amended filings by setting formType to not equal S-1/A avoids counting the same offering's roster multiple times.

Open in Data Browser

How can I look up the executives, their ages, and their job titles disclosed in a company's prospectus?

Search the /form-s1-424b4 endpoint for the company by its cik or ticker, and read the management array on the returned item. Each entry in management is one member of the management team, with the person's name (management.name), age (management.age), and position (management.position).

The position text is taken directly from the filing and is not standardized — the same role may appear as CEO, Chief Executive Officer, or President depending on the company. Ages are present when the filing discloses them and may be empty otherwise. Reviewing the management array of a single filing gives the full disclosed roster of executives and directors for that offering.

Open in Data Browser

How do I find IPOs of blank-check shell companies that offer units bundling shares and warrants together?

Search the /form-s1-424b4 endpoint and filter on the security type so that the offered securities include a unit. Each offered security appears in the tickers array with a type (tickers.type), and SPAC unit IPOs carry a tickers.type of Units alongside a separate Warrants entry, since the unit bundles a share and a warrant. The securities array also describes these in plain text, for example tickers.type of Units with a securities.name such as 25,000,000 Units Each Consisting of One Class A ordinary share and One-Third of One Redeemable Warrant.

Filtering where tickers.type equals Units isolates offerings structured as unit IPOs, which are characteristic of blank-check shell companies. To confirm the warrant component, look for a Warrants value in tickers.type on the same filing, and the bundle description in securities.name.

Open in Data Browser

How can I find debt offerings such as corporate bonds or convertible notes rather than equity offerings?

Search the /form-s1-424b4 endpoint and filter on the security description, stored as securities.name. Each entry in the securities array names a security being offered, and debt offerings describe notes or bonds in that text, for example 600,000,000 8.75% Senior Notes due 2019 or a convertible notes description. Filtering where securities.name contains terms such as Notes or Bonds surfaces debt offerings rather than common stock offerings.

Because securities.name is free-text extracted from the filing, debt instruments appear with varied wording — senior notes, subordinated notes, convertible notes, debentures — so matching on the relevant term captures the variations. The dataset includes registration statements for fixed-income and convertible securities alongside equity offerings.

Open in Data Browser

How do I identify offerings that include warrants or pre-funded warrants alongside common stock?

Search the /form-s1-424b4 endpoint using both the security type and the security description. The security type on each ticker entry (tickers.type) carries a value of Warrants when warrants are listed, and the plain-text security descriptions (securities.name) name them explicitly, for example 1,358,350 Pre-Funded Warrants to Purchase 1,358,350 Common Shares. Filtering where tickers.type equals Warrants, or where securities.name contains Warrants or Pre-Funded Warrants, surfaces these offerings.

A filing that bundles warrants with common stock typically shows both a Common Stock and a Warrants entry in tickers.type, and the securities array describes each component. Pre-funded warrants in particular are identified through the securities.name text since they share the Warrants type.

Open in Data Browser

How can I find offerings of preferred stock as opposed to common stock?

Search the /form-s1-424b4 endpoint and filter on the security type and description. The security type on each ticker entry (tickers.type) records the class of security, and the plain-text descriptions in the securities array (securities.name) spell it out, for example 250,000 Shares of Series 2 Redeemable Preferred Stock. Filtering where tickers.type or securities.name contains Preferred Stock isolates preferred stock offerings from common stock offerings.

Because preferred stock is often issued in named series, the securities.name text frequently includes a series designation. Matching on the term Preferred in securities.name captures these variants regardless of the series label.

Open in Data Browser

How do I see which stock exchange a newly offered security is being listed on?

Search the /form-s1-424b4 endpoint for the offering, then read the exchange field on each offered security in the tickers array (tickers.exchange). Each entry in tickers describes one security with its symbol (tickers.ticker), its type (tickers.type), and the exchange it trades on or is being listed on (tickers.exchange), for example NASDAQ, NYSE, or American Stock Exchange.

If an offering includes several securities — such as units, ordinary shares, and warrants in a SPAC IPO — each appears as its own entry in tickers with its own tickers.exchange value. You can also filter directly on tickers.exchange to find all offerings being listed on a particular exchange.

Open in Data Browser

How can I find foreign company IPOs filed on the equivalent foreign registration form?

Search the /form-s1-424b4 endpoint and filter the form type (formType) to the foreign-issuer registration values. Foreign private issuers register their offerings on Form F-1, the foreign equivalent of the domestic Form S-1, with amended versions carrying the F-1/A value. Filtering formType to F-1 returns original foreign registration statements, and F-1/A returns the amended versions.

To capture both the original and amended foreign filings together, include F-1 and F-1/A. The dataset covers F-1 and F-1/A registration statements alongside the domestic S-1, S-11, and 424B4 forms.

Open in Data Browser

How do I find real estate company offerings filed on the specialized REIT registration form?

Search the /form-s1-424b4 endpoint and filter the form type (formType) to the real estate registration values. Real estate companies and real estate investment trusts register their securities offerings on Form S-11, the specialized registration form for real estate issuers, with amendments carrying the S-11/A value. Filtering formType to S-11 returns original real estate registration statements, and S-11/A returns the amended versions.

To retrieve both original and amended real estate filings together, include S-11 and S-11/A. The dataset covers S-11 and S-11/A registration statements alongside the S-1, F-1, and 424B4 forms.

Open in Data Browser

How can I calculate the underwriting fee as a percentage of the total deal size for an offering?

Search the /form-s1-424b4 endpoint and retrieve the two total amounts from the offering: the total underwriting discount (underwritingDiscount.total) and the total public offering price (publicOfferingPrice.total). The underwriting fee as a percentage of the deal is the underwriting discount total divided by the public offering price total. For an offering with underwritingDiscount.total of 13230000 and publicOfferingPrice.total of 189000000, the fee works out to about 7 percent.

Both totals are most reliably populated on finalized prospectuses, so restrict the search to a formType of 424B4, where the pricing objects are typically complete. The endpoint returns the figures; the percentage itself is computed from the two total values after retrieval.

Open in Data Browser

How do I figure out how much money actually goes to the company after underwriting fees are taken out?

Search the /form-s1-424b4 endpoint and read the proceeds before expenses object, which records the amount the issuer receives after the underwriting discount is deducted from the public offering price. The total net amount is stored as proceedsBeforeExpenses.total, with a formatted string in proceedsBeforeExpenses.totalText and the corresponding per-share figure in proceedsBeforeExpenses.perShare.

This figure is the public offering price minus the underwriting discount — for an offering with a publicOfferingPrice.total of 189000000 and an underwritingDiscount.total of 13230000, proceedsBeforeExpenses.total is 175770000. It is labelled "before expenses" because it does not yet account for the offering's other costs such as legal and accounting fees. The proceeds object is generally populated on finalized 424B4 prospectuses and often empty on preliminary S-1 registration statements.

Open in Data Browser

How can I determine the per-share price an offering was sold at to the public?

Search the /form-s1-424b4 endpoint and read the per-share value on the public offering price object. The numeric per-share price is stored as publicOfferingPrice.perShare, for example 18 for an offering priced at $18.00 a share, and the formatted string is in publicOfferingPrice.perShareText, for example $18.00.

The perShareText field is worth checking because it carries the currency symbol — most offerings are priced in US dollars, but in rare cases the price is in another currency, which perShareText makes explicit (for example €10.00). Per-share pricing is generally present on finalized 424B4 prospectuses and often absent on preliminary S-1 filings, so restrict the search to a formType of 424B4 when you need a populated price.

Open in Data Browser

How do I handle the fact that early-stage registration statements often lack pricing while final prospectuses include it?

When searching the /form-s1-424b4 endpoint, treat the pricing objects — publicOfferingPrice, underwritingDiscount, and proceedsBeforeExpenses — as optional on early-stage filings. Original Form S-1 registration statements are frequently filed before a deal is priced, so these objects are commonly empty, while final 424B4 prospectuses typically carry complete per-share and total figures.

To work only with offerings that have confirmed pricing, filter the form type (formType) to 424B4, or require a numeric condition on a pricing field such as publicOfferingPrice.total being greater than 0, which excludes filings where the field is absent. If you need the full population including unpriced registration statements, search without a pricing filter and handle empty publicOfferingPrice objects in your own processing.

Open in Data Browser

How can I track how the number of underwriters or named law firms changes between an original filing and its amendments?

Search the /form-s1-424b4 endpoint and retrieve all of one company's filings by filtering on its cik, then compare the underwriters and lawFirms arrays across the different formType values. The original S-1 registration statement is often filed before underwriters are confirmed, so its underwriters array may be empty or short, while later S-1/A amendments add the underwriter names (underwriters.name) as they become known. The lawFirms array can similarly grow across amendments.

Sort the company's filings ascending by filedAt to see them in chronological order, then compare the length and contents of underwriters and lawFirms from the S-1 through each S-1/A. The difference in array entries between successive filings shows which deal participants were added or changed during the amendment process.

Open in Data Browser

How do I retrieve more than 50 offering filings for a broad search and page through all the results?

The /form-s1-424b4 endpoint returns at most 50 items per search, controlled by the size parameter, which defaults to 50 and cannot be set higher. To collect more than 50 results, page through them with the from parameter, which sets the starting offset: request the first page with from at 0, then 50, then 100, and so on, advancing by the page size each time until no further results come back.

The total.value field in the response tells you how many filings match the search overall, so you know how many pages to retrieve. The from offset can go up to 10,000, which is also the maximum number of results a single search will return.

Open in Data Browser

How can I break a search that returns over 10,000 offerings into smaller pieces so I can collect every result?

The /form-s1-424b4 endpoint returns at most 10,000 results for any one search, so a query whose total.value reaches or exceeds 10,000 cannot be fully paged through as a single search. To collect every result, split the search into smaller windows using the filing date (filedAt) and process each window separately.

A practical approach is to constrain filedAt to one month or one year at a time — for example restrict filedAt to fall between 2023-01-01 and 2023-01-31, page through that month by advancing from in steps of 50 until exhausted, then repeat for the next month. Choose a window small enough that each slice stays under the 10,000-result cap, and iterate across all windows to cover the full search universe.

Open in Data Browser

References

For more information about Form S-1 and Form 424B4 filings visit the SEC websites here:

Regulations

Research Papers