> ## Documentation Index
> Fetch the complete documentation index at: https://docs.financialdatasets.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# IPOs

> Track upcoming IPOs from SEC registration statements (Form S-1), including full pre-IPO financial statements for IPO-grade companies.

### Overview

The IPOs API gives you a real-time feed of SEC **registration statements** (Form S-1 and its amendments, Form S-1/A): the filings companies make before going public.

Every filing is classified as one of `ipo` (a real operating company registering to list on an exchange), `shell_company`, `spac`, `resale`, or `other`, with structured metadata from the cover page: the proposed ticker, exchange, and expected offering price or price range.

For IPO-grade filings, we extract the complete pre-IPO financial statements from the prospectus: income statements, balance sheets, and cash flow statements, including interim periods. These are embedded directly in each feed item under `financials`, in the exact same shape as our [financial statements API](/api/financials/all-financial-statements).

You can answer questions like:

* Which companies filed to go public this week?
* What are the revenue, margins, and cash burn of a company before it IPOs?
* What ticker and exchange will a company list under, and at what expected price?

Filings are returned newest first.

<Note>
  For extracted IPO-grade filings, the same pre-IPO financial statements are also available under the company's proposed ticker via the standard financials endpoints: [income statements](/api/financials/income-statements), [balance sheets](/api/financials/balance-sheets), and [cash flow statements](/api/financials/cash-flow-statements).
</Note>

To get started, please create an account and grab your <b>API key</b> at [financialdatasets.ai](https://financialdatasets.ai).

You will use the API key to authenticate your API requests.

### Coverage

| Filings                      | History         | Updated   |
| ---------------------------- | --------------- | --------- |
| Every SEC Form S-1 and S-1/A | Since July 2026 | Real-time |

### Getting Started

There are only 3 steps for making a successful API call:

1. Add your API key to the header of the request as `X-API-KEY`.
2. Add query params like `classification` and `limit` to filter the data.
3. Execute the API request.

### Filtering the Data

No parameters are required: by default, the API returns the latest filings across all companies. You can filter by `ticker`, `cik`, `classification`, `limit`, and `filing_date`.

**Note**: by default, `limit` is `10` (max `100`).

The `ticker` parameter matches the proposed ticker from the filing's cover page.

The `cik` parameter matches the SEC Central Index Key of the filer, with or without leading zeros.

The `classification` parameter filters to `ipo`, `shell_company`, `spac`, `resale`, or `other`.

The `filing_date` parameter is used to filter by when filings were submitted. For example, you can include filters like `filing_date_lte=2026-06-30` and `filing_date_gte=2026-01-01` to get filings from the first half of 2026.

The available `filing_date` operations are:

* `filing_date_lte`
* `filing_date_lt`
* `filing_date_gte`
* `filing_date_gt`
* `filing_date`

Each item includes a `status` field describing where the filing is in our processing pipeline. A filing appears on the feed as soon as it is classified; `financials` is `null` until extraction completes, at which point `status` is `COMPLETED` and `financials` contains the full statement arrays.

### Examples

<CodeGroup>
  ```python Latest Filings theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
  import requests

  # add your API key to the headers
  headers = {
      "X-API-KEY": "your_api_key_here"
  }

  # set your query params
  limit = 25          # number of filings to return

  # create the URL
  url = (
      f'https://api.financialdatasets.ai/ipos'
      f'?limit={limit}'
  )

  # make API request
  response = requests.get(url, headers=headers)

  # parse ipos from the response
  ipos = response.json().get('ipos')
  ```

  ```python IPO-Grade Only theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
  import requests

  # add your API key to the headers
  headers = {
      "X-API-KEY": "your_api_key_here"
  }

  # set your query params
  classification = 'ipo'    # real operating companies going public

  # create the URL
  url = (
      f'https://api.financialdatasets.ai/ipos'
      f'?classification={classification}'
  )

  # make API request
  response = requests.get(url, headers=headers)

  # parse ipos from the response
  ipos = response.json().get('ipos')
  ```

  ```python By Ticker theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
  import requests

  # add your API key to the headers
  headers = {
      "X-API-KEY": "your_api_key_here"
  }

  # set your query params
  ticker = 'SPCX'     # proposed ticker from the filing cover

  # create the URL
  url = (
      f'https://api.financialdatasets.ai/ipos'
      f'?ticker={ticker}'
  )

  # make API request
  response = requests.get(url, headers=headers)

  # parse ipos and the embedded financial statements
  ipos = response.json().get('ipos')
  financials = ipos[0].get('financials') if ipos else None
  ```

  ```python By Filing Date theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
  import requests

  # add your API key to the headers
  headers = {
      "X-API-KEY": "your_api_key_here"
  }

  # set your query params
  filing_date_gte = '2026-07-01'    # filings from July 2026 onward

  # create the URL
  url = (
      f'https://api.financialdatasets.ai/ipos'
      f'?filing_date_gte={filing_date_gte}'
  )

  # make API request
  response = requests.get(url, headers=headers)

  # parse ipos from the response
  ipos = response.json().get('ipos')
  ```
</CodeGroup>


## OpenAPI

````yaml GET /ipos
openapi: 3.0.1
info:
  title: Financial Datasets API
  description: >-
    Stock market API with real-time and historical financial data for 27,000+
    tickers over 30+ years. Financial statements, equity prices, insider trades,
    SEC filings, and more.
  version: 1.0.0
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  contact:
    name: API Support
    url: mailto:support@financialdatasets.ai
    email: support@financialdatasets.ai
  termsOfService: https://financialdatasets.ai/terms-of-use
servers:
  - url: https://api.financialdatasets.ai/
    description: Production server
security:
  - X-API-KEY: []
tags:
  - name: Financial Statements
    description: Access to income statements, balance sheets, and cash flow statements
  - name: Market Data
    description: Real-time and historical price data
  - name: Company Information
    description: Company facts like ticker, name, and description
  - name: Earnings
    description: Earnings data and related information
  - name: News
    description: Real-time and historical news articles
  - name: SEC Filings
    description: SEC filings and regulatory documents
  - name: Insider Trades
    description: Insider trading activity and transactions
  - name: Activist Ownership
    description: Activist stakes from SEC Schedule 13D filings, in real time
  - name: Beneficial Ownership
    description: >-
      Holders of more than 5% of a company's shares, from SEC Schedules 13D and
      13G
  - name: Insider Ownership
    description: Insider ownership statements from SEC Forms 3 and 5
  - name: Institutional Holdings
    description: SEC-direct 13F equity holdings of institutional investment managers
  - name: IPOs
    description: >-
      Upcoming IPOs from SEC registration statements (Form S-1), with extracted
      pre-IPO financial statements
  - name: Index Funds
    description: >-
      ETF and index-fund holdings, weights, and the funds that hold a given
      security
  - name: Financial Metrics
    description: Financial ratios, metrics, and key performance indicators
  - name: Macroeconomics
    description: Real-time and historical macroeconomic data like interest rates
  - name: KPIs
    description: Sector-specific operational KPIs extracted from earnings releases.
paths:
  /ipos:
    get:
      tags:
        - IPOs
      summary: Get IPO filings
      description: >-
        Get SEC registration statements (Form S-1 and S-1/A), newest filings
        first. Every filing is classified (ipo, shell_company, spac, resale, or
        other) with structured cover-page metadata: proposed ticker, exchange,
        and expected offering price or price range. For IPO-grade filings whose
        financial statements have been extracted, the item embeds full income
        statements, balance sheets, and cash flow statements under financials,
        in the same shape as the /financials endpoints. No parameters are
        required: by default the latest filings across all companies are
        returned.
      operationId: getIpos
      parameters:
        - name: ticker
          in: query
          description: Filter by the proposed ticker symbol from the filing's cover page.
          required: false
          schema:
            type: string
        - name: cik
          in: query
          description: >-
            Filter by the SEC Central Index Key of the filer, with or without
            leading zeros.
          required: false
          schema:
            type: string
        - name: classification
          in: query
          description: >-
            Filter by filing classification: ipo (a real operating company
            registering to list on an exchange), shell_company, spac, resale, or
            other.
          required: false
          schema:
            type: string
            enum:
              - ipo
              - shell_company
              - spac
              - resale
              - other
        - $ref: '#/components/parameters/FilingDate'
        - $ref: '#/components/parameters/FilingDateGte'
        - $ref: '#/components/parameters/FilingDateLte'
        - $ref: '#/components/parameters/FilingDateGt'
        - $ref: '#/components/parameters/FilingDateLt'
        - name: limit
          in: query
          description: 'The maximum number of filings to return (default: 10, max: 100).'
          required: false
          schema:
            type: integer
            default: 10
        - name: cursor
          in: query
          description: >-
            Opaque pagination cursor from a previous response's next_page_url.
            When provided, all other query parameters are ignored: the cursor
            carries the original request's filters. Treat it as opaque; do not
            construct or modify it.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: IPOs response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IposResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
components:
  parameters:
    FilingDate:
      name: filing_date
      in: query
      description: >-
        Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a
        known filing date are excluded.
      required: false
      schema:
        type: string
        format: date
    FilingDateGte:
      name: filing_date_gte
      in: query
      description: >-
        Filter by SEC filing date greater than or equal to date in YYYY-MM-DD
        format. Rows without a known filing date are excluded.
      required: false
      schema:
        type: string
        format: date
    FilingDateLte:
      name: filing_date_lte
      in: query
      description: >-
        Filter by SEC filing date less than or equal to date in YYYY-MM-DD
        format. Useful for point-in-time queries: returns only data that was
        publicly filed by the given date. Rows without a known filing date are
        excluded.
      required: false
      schema:
        type: string
        format: date
    FilingDateGt:
      name: filing_date_gt
      in: query
      description: >-
        Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows
        without a known filing date are excluded.
      required: false
      schema:
        type: string
        format: date
    FilingDateLt:
      name: filing_date_lt
      in: query
      description: >-
        Filter by SEC filing date less than date in YYYY-MM-DD format. Rows
        without a known filing date are excluded.
      required: false
      schema:
        type: string
        format: date
  schemas:
    IposResponse:
      type: object
      properties:
        ipos:
          type: array
          items:
            $ref: '#/components/schemas/Ipo'
        next_page_url:
          type: string
          description: >-
            Absolute URL of the next page of results. Present only when more
            results remain; request it as-is to continue.
    Ipo:
      type: object
      properties:
        accession_number:
          type: string
          description: The unique SEC accession number of the filing.
        cik:
          type: string
          description: The SEC Central Index Key of the filer, zero-padded to 10 digits.
        form_type:
          type: string
          enum:
            - S-1
            - S-1/A
          description: >-
            The SEC form type: S-1 (initial registration statement) or S-1/A
            (amendment).
        company_name:
          type: string
          nullable: true
          description: The name of the filing company.
        filing_date:
          type: string
          format: date
          nullable: true
          description: The date the filing was submitted to the SEC.
        accepted_datetime:
          type: string
          format: date-time
          nullable: true
          description: The exact timestamp the SEC accepted the filing.
        filing_url:
          type: string
          nullable: true
          description: The URL of the filing on SEC EDGAR.
        classification:
          type: string
          enum:
            - ipo
            - shell_company
            - spac
            - resale
            - other
          nullable: true
          description: >-
            The filing classification: ipo (a real operating company registering
            to list on an exchange), shell_company, spac, resale, or other.
        is_ipo_grade:
          type: boolean
          nullable: true
          description: >-
            Whether the filing is a real operating company going public: an
            underwritten primary offering with an exchange listing.
        ticker:
          type: string
          nullable: true
          description: The proposed ticker symbol from the filing's cover page.
        exchange:
          type: string
          nullable: true
          description: The exchange the company intends to list on.
        expected_offering_price:
          type: number
          nullable: true
          description: >-
            The expected offering price per share from the cover page, when a
            single price is stated.
        price_range_low:
          type: number
          nullable: true
          description: >-
            The low end of the expected offering price range, when a range is
            stated.
        price_range_high:
          type: number
          nullable: true
          description: >-
            The high end of the expected offering price range, when a range is
            stated.
        has_financial_statements:
          type: boolean
          nullable: true
          description: Whether the filing contains financial statements.
        has_price_on_cover:
          type: boolean
          nullable: true
          description: Whether the cover page states an offering price or price range.
        status:
          type: string
          enum:
            - PENDING
            - SKIPPED
            - EXTRACTING
            - COMPLETED
            - FAILED
          description: >-
            The processing state of the filing. A filing appears on the feed as
            soon as it is classified; financials are populated when status is
            COMPLETED.
        financials:
          type: object
          nullable: true
          description: >-
            The full pre-IPO financial statements extracted from the prospectus,
            in the same shape as the /financials endpoints. Null unless status
            is COMPLETED.
          properties:
            income_statements:
              type: array
              items:
                $ref: '#/components/schemas/IncomeStatement'
            balance_sheets:
              type: array
              items:
                $ref: '#/components/schemas/BalanceSheet'
            cash_flow_statements:
              type: array
              items:
                $ref: '#/components/schemas/CashFlowStatement'
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: A short error message.
        message:
          type: string
          description: A more detailed error message.
    IncomeStatement:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol.
        report_period:
          type: string
          format: date
          description: The reporting period of the income statement.
        fiscal_period:
          type: string
          description: The fiscal period of the income statement.
        period:
          type: string
          enum:
            - quarterly
            - ttm
            - annual
          description: The time period of the income statement.
        currency:
          type: string
          description: The currency in which the financial data is reported.
        accession_number:
          type: string
          nullable: true
          description: The SEC accession number of the filing.
        form_type:
          type: string
          nullable: true
          description: >-
            The SEC form this row was sourced from (`10-K`, `10-Q/A`, `20-F`,
            `S-1`, ...). The exact form as filed, so amendments keep their `/A`
            suffix. Null when `period` is `ttm`: a trailing twelve month window
            can span multiple filings, so we don't attribute it to one. A
            `quarterly` row can carry `10-K` when the fourth quarter is derived
            from the fiscal-year filing.
        filing_url:
          type: string
          nullable: true
          format: uri
          description: URL to the SEC filing.
        filing_date:
          type: string
          format: date
          nullable: true
          description: >-
            Calendar day SEC accepted the filing, in Eastern Time (the SEC's
            operating timezone). Calendar-day pair to `filing_datetime`. Null
            when no dated SEC filing is linked to the row.
        filing_datetime:
          type: string
          format: date-time
          nullable: true
          description: >-
            Sub-day timestamp recording when SEC accepted the filing, in Eastern
            Time. Sourced from SEC's `acceptanceDateTime` field on the EDGAR
            submissions API. Pairs with `filing_date` (calendar-day precision of
            the same event).
        revenue:
          type: number
          nullable: false
          description: The total revenue of the company.
        cost_of_revenue:
          type: number
          nullable: false
          description: The cost of revenue of the company.
        gross_profit:
          type: number
          nullable: false
          description: The gross profit of the company.
        operating_expense:
          type: number
          nullable: false
          description: The operating expenses of the company.
        selling_general_and_administrative_expenses:
          type: number
          nullable: false
          description: The selling, general, and administrative expenses of the company.
        research_and_development:
          type: number
          nullable: false
          description: The research and development expenses of the company.
        operating_income:
          type: number
          nullable: false
          description: The operating income of the company.
        interest_expense:
          type: number
          nullable: false
          description: The interest expenses of the company.
        ebit:
          type: number
          nullable: false
          description: The earnings before interest and taxes of the company.
        income_tax_expense:
          type: number
          nullable: false
          description: The income tax expenses of the company.
        net_income_discontinued_operations:
          type: number
          nullable: false
          description: The net income from discontinued operations of the company.
        net_income_non_controlling_interests:
          type: number
          nullable: false
          description: The net income from non-controlling interests of the company.
        net_income:
          type: number
          nullable: false
          description: The net income of the company.
        net_income_common_stock:
          type: number
          nullable: false
          description: The net income available to common stockholders of the company.
        preferred_dividends_impact:
          type: number
          nullable: false
          description: The impact of preferred dividends on the net income of the company.
        consolidated_income:
          type: number
          nullable: false
          description: The consolidated income of the company.
        earnings_per_share:
          type: number
          nullable: false
          description: The earnings per share of the company.
        earnings_per_share_diluted:
          type: number
          nullable: false
          description: The diluted earnings per share of the company.
        dividends_per_common_share:
          type: number
          nullable: false
          description: The dividends per common share of the company.
        weighted_average_shares:
          type: number
          nullable: false
          description: The weighted average shares of the company.
        weighted_average_shares_diluted:
          type: number
          nullable: false
          description: The diluted weighted average shares of the company.
    BalanceSheet:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol.
        report_period:
          type: string
          format: date
          description: The reporting period of the balance sheet.
        fiscal_period:
          type: string
          description: The fiscal period of the balance sheet.
        period:
          type: string
          enum:
            - quarterly
            - ttm
            - annual
          description: The time period of the balance sheet.
        currency:
          type: string
          description: The currency in which the financial data is reported.
        accession_number:
          type: string
          nullable: true
          description: The SEC accession number of the filing.
        form_type:
          type: string
          nullable: true
          description: >-
            The SEC form this row was sourced from (`10-K`, `10-Q/A`, `20-F`,
            `S-1`, ...). The exact form as filed, so amendments keep their `/A`
            suffix. Null when `period` is `ttm`: a trailing twelve month window
            can span multiple filings, so we don't attribute it to one. A
            `quarterly` row can carry `10-K` when the fourth quarter is derived
            from the fiscal-year filing.
        filing_url:
          type: string
          nullable: true
          format: uri
          description: URL to the SEC filing.
        filing_date:
          type: string
          format: date
          nullable: true
          description: >-
            Calendar day SEC accepted the filing, in Eastern Time (the SEC's
            operating timezone). Calendar-day pair to `filing_datetime`. Null
            when no dated SEC filing is linked to the row.
        filing_datetime:
          type: string
          format: date-time
          nullable: true
          description: >-
            Sub-day timestamp recording when SEC accepted the filing, in Eastern
            Time. Sourced from SEC's `acceptanceDateTime` field on the EDGAR
            submissions API. Pairs with `filing_date` (calendar-day precision of
            the same event).
        total_assets:
          type: number
          nullable: false
          description: The total assets of the company.
        current_assets:
          type: number
          nullable: false
          description: The current assets of the company.
        cash_and_equivalents:
          type: number
          nullable: false
          description: The cash and equivalents of the company.
        inventory:
          type: number
          nullable: false
          description: The inventory of the company.
        current_investments:
          type: number
          nullable: false
          description: The current investments of the company.
        trade_and_non_trade_receivables:
          type: number
          nullable: false
          description: The trade and non-trade receivables of the company.
        non_current_assets:
          type: number
          nullable: false
          description: The non-current assets of the company.
        property_plant_and_equipment:
          type: number
          nullable: false
          description: The property, plant, and equipment of the company.
        goodwill_and_intangible_assets:
          type: number
          nullable: false
          description: The goodwill and intangible assets of the company.
        investments:
          type: number
          nullable: false
          description: The investments of the company.
        non_current_investments:
          type: number
          nullable: false
          description: The non-current investments of the company.
        outstanding_shares:
          type: number
          nullable: false
          description: The outstanding shares of the company.
        tax_assets:
          type: number
          nullable: false
          description: The tax assets of the company.
        total_liabilities:
          type: number
          nullable: false
          description: The total liabilities of the company.
        current_liabilities:
          type: number
          nullable: false
          description: The current liabilities of the company.
        current_debt:
          type: number
          nullable: false
          description: The current debt of the company.
        trade_and_non_trade_payables:
          type: number
          nullable: false
          description: The trade and non-trade payables of the company.
        deferred_revenue:
          type: number
          nullable: false
          description: The deferred revenue of the company.
        deposit_liabilities:
          type: number
          nullable: false
          description: The deposit liabilities of the company.
        non_current_liabilities:
          type: number
          nullable: false
          description: The non-current liabilities of the company.
        non_current_debt:
          type: number
          nullable: false
          description: The non-current debt of the company.
        tax_liabilities:
          type: number
          nullable: false
          description: The tax liabilities of the company.
        shareholders_equity:
          type: number
          nullable: false
          description: The shareholders' equity of the company.
        retained_earnings:
          type: number
          nullable: false
          description: The retained earnings of the company.
        accumulated_other_comprehensive_income:
          type: number
          nullable: false
          description: The accumulated other comprehensive income of the company.
        total_debt:
          type: number
          nullable: false
          description: The total debt of the company.
    CashFlowStatement:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol.
        report_period:
          type: string
          format: date
          description: The reporting period of the cash flow statement.
        fiscal_period:
          type: string
          description: The fiscal period of the cash flow statement.
        period:
          type: string
          enum:
            - quarterly
            - ttm
            - annual
          description: The time period of the cash flow statement.
        currency:
          type: string
          description: The currency in which the financial data is reported.
        accession_number:
          type: string
          nullable: true
          description: The SEC accession number of the filing.
        form_type:
          type: string
          nullable: true
          description: >-
            The SEC form this row was sourced from (`10-K`, `10-Q/A`, `20-F`,
            `S-1`, ...). The exact form as filed, so amendments keep their `/A`
            suffix. Null when `period` is `ttm`: a trailing twelve month window
            can span multiple filings, so we don't attribute it to one. A
            `quarterly` row can carry `10-K` when the fourth quarter is derived
            from the fiscal-year filing.
        filing_url:
          type: string
          nullable: true
          format: uri
          description: URL to the SEC filing.
        filing_date:
          type: string
          format: date
          nullable: true
          description: >-
            Calendar day SEC accepted the filing, in Eastern Time (the SEC's
            operating timezone). Calendar-day pair to `filing_datetime`. Null
            when no dated SEC filing is linked to the row.
        filing_datetime:
          type: string
          format: date-time
          nullable: true
          description: >-
            Sub-day timestamp recording when SEC accepted the filing, in Eastern
            Time. Sourced from SEC's `acceptanceDateTime` field on the EDGAR
            submissions API. Pairs with `filing_date` (calendar-day precision of
            the same event).
        net_income:
          type: number
          nullable: false
          description: The net income of the company.
        depreciation_and_amortization:
          type: number
          nullable: false
          description: The depreciation and amortization of the company.
        share_based_compensation:
          type: number
          nullable: false
          description: The share-based compensation of the company.
        net_cash_flow_from_operations:
          type: number
          nullable: false
          description: The net cash flow from operations of the company.
        capital_expenditure:
          type: number
          nullable: false
          description: The capital expenditure of the company.
        business_acquisitions_and_disposals:
          type: number
          nullable: false
          description: The business acquisitions and disposals of the company.
        investment_acquisitions_and_disposals:
          type: number
          nullable: false
          description: The investment acquisitions and disposals of the company.
        net_cash_flow_from_investing:
          type: number
          nullable: false
          description: The net cash flow from investing of the company.
        issuance_or_repayment_of_debt_securities:
          type: number
          nullable: false
          description: The issuance or repayment of debt securities of the company.
        issuance_or_purchase_of_equity_shares:
          type: number
          nullable: false
          description: The issuance or purchase of equity shares of the company.
        dividends_and_other_cash_distributions:
          type: number
          nullable: false
          description: The dividends and other cash distributions of the company.
        net_cash_flow_from_financing:
          type: number
          nullable: false
          description: The net cash flow from financing of the company.
        change_in_cash_and_equivalents:
          type: number
          nullable: false
          description: The change in cash and equivalents of the company.
        effect_of_exchange_rate_changes:
          type: number
          nullable: false
          description: The effect of exchange rate changes of the company.
        ending_cash_balance:
          type: number
          nullable: false
          description: The ending cash balance of the company.
        free_cash_flow:
          type: number
          nullable: false
          description: The free cash flow of the company.
  responses:
    BadRequestError:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Bad Request
            message: Invalid request parameters
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Unauthorized
            message: Invalid API key provided
    PaymentRequiredError:
      description: The request requires a paid subscription
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Payment Required
            message: >-
              This endpoint requires a paid subscription. Please upgrade your
              plan.
  securitySchemes:
    X-API-KEY:
      type: apiKey
      name: X-API-KEY
      description: API key for authentication.
      in: header

````