openapi: 3.0.3
info:
  title: Eulerpool API
  description: This is the description of the Eulerpool B2B API. You are required
    to have a valid token. Each API requires different access rights. See tags
    for different levels.
  version: 1.0.0
components:
  securitySchemes:
    token:
      type: apiKey
      name: token
      in: query
  schemas: {}
paths:
  /api/1/news/feed.xml:
    get:
      summary: News Feed RSS XML
      tags:
        - News
      description: Returns a RSS Feed XML compatible stream of all news.
      parameters:
        - schema:
            type: string
            default: en
            nullable: true
          in: query
          name: language
          required: false
          style: form
          explode: false
        - schema:
            type: string
            default: news,ticker
            enum:
              - news
              - ticker
              - news,ticker
            nullable: true
          in: query
          name: type
          required: false
          style: form
          explode: false
      security:
        - token: []
      responses:
        "200":
          description: Return a RSS Feed for the given language and for the given types.
          content:
            text/xml:
              schema:
                type: object
                xml:
                  name: rss
                  wrapped: true
                name: name
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/trends/ticker-trends/{symbol}:
    get:
      summary: Ticker and Trends API
      tags:
        - Ticker/Trends
      description: Returns the current values for specific symbols.
      parameters:
        - schema:
            type: string
            default: all
          in: path
          name: symbol
          required: true
          description: Ticker symbol (e.g. EURUSD, BTC) or "all" for all tickers
      security:
        - token: []
      responses:
        "200":
          description: Returns the trend state representation of the requested values. If
            symbol=all the return value will be an array of the given
            model/example.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  previousDayQuote:
                    type: number
                    example: 2.3
                    description: The qoute/rate from previous day, optional
                  lastQuote:
                    type: number
                    example: 2.5
                    description: The qoute/rate before current qoute, optional
                  currentQuote:
                    type: number
                    example: 3.1
                    description: The latest qoute/rate, optional
                  rate:
                    type: number
                    example: 3.1
                    description: The latest qoute/rate, optional - deprecated
                  currency:
                    type: string
                    example: EUR
                    description: The currency of the quote, optional
                  name:
                    type: string
                    example: Bitcoin
                    description: The full name of the requested symbol, optional
                  isin:
                    type: string
                    example: DEXXXXXXXXX
                    description: The isin of the requested symbol, optional
                  symbol:
                    type: string
                    example: AAPL
                    description: The symbol/ticker of the requested symbol, optional
                  type:
                    type: string
                    example: etf
                    description: The type of the requested symbol, optional
  /api/1/ice-swap/{code}:
    get:
      summary: ICE-SWAP data api
      tags:
        - ICE-SWAP
      description: Returns the ICE-SWAP data for the given code.
      parameters:
        - schema:
            type: string
          in: path
          name: code
          required: true
          description: Code for the ICE-SWAP data (e.g. EUR, USD)
      security:
        - token: []
      responses:
        "200":
          description: Returns a array of qoute year combinations for ICE-SWAP data.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    year:
                      type: integer
                      example: 1
                      description: The year back for which the quote is relevant
                    quote:
                      type: number
                      example: 2.5
                      description: The qoute/rate for the given year
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/etf/profile/{identifier}:
    get:
      summary: ETF Profile API
      tags:
        - ETF
        - eu:w:3
      description: Returns comprehensive profile information for the given ETF identifier
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN or ticker symbol (e.g. IE00B4L5Y983,
            IWDA)"
      security:
        - token: []
      responses:
        "200":
          description: Returns comprehensive ETF profile information
          content:
            application/json:
              schema:
                type: object
                properties:
                  isin:
                    type: string
                    description: ETF ISIN
                    example: IE00B4L5Y983
                  symbol:
                    type: string
                    description: ETF ticker symbol
                    example: SWDA.L
                  name:
                    type: string
                    description: ETF name
                    example: iShares Core MSCI World UCITS ETF
                  description:
                    type: string
                    description: ETF description
                    example: SWDA.L was created on 2009-09-25 by iShares. The fund's investment
                      portfolio concentrates primarily on total market equity.
                      The ETF currently has 121372.55m in AUM and 1322 holdings.
                    nullable: true
                  assetClass:
                    type: string
                    description: Asset class
                    example: Equity
                    nullable: true
                  investmentSegment:
                    type: string
                    description: Investment segment
                    example: Total Market
                    nullable: true
                  etfCompany:
                    type: string
                    description: ETF company/provider
                    example: iShares
                    nullable: true
                  expenseRatio:
                    type: number
                    description: Expense ratio
                    example: 0.2
                    nullable: true
                  aum:
                    type: number
                    description: Assets under management
                    example: 121372550000
                    nullable: true
                  nav:
                    type: number
                    description: Net asset value
                    example: 124.4348
                    nullable: true
                  currency:
                    type: string
                    description: Currency
                    example: USD
                    nullable: true
                  exchangeRate:
                    type: number
                    description: Exchange rate to EUR
                    example: 0.85
                    nullable: true
                  latestQuotes:
                    type: number
                    description: Latest quote price
                    example: 124.4348
                    nullable: true
                  inceptionDate:
                    type: string
                    description: Inception date
                    example: 2009-09-25
                    nullable: true
                  domicile:
                    type: string
                    description: Domicile country
                    example: Ireland
                    nullable: true
                  trackingIndex:
                    type: string
                    description: Tracking index
                    example: MSCI World
                    nullable: true
                  isLeveraged:
                    type: boolean
                    description: Is leveraged ETF
                    example: false
                    nullable: true
                  isInverse:
                    type: boolean
                    description: Is inverse ETF
                    example: false
                    nullable: true
                  leverageFactor:
                    type: number
                    description: Leverage factor
                    example: 1
                    nullable: true
                  dividendYield:
                    type: number
                    description: Dividend yield
                    example: 1.4
                    nullable: true
                  website:
                    type: string
                    description: ETF website
                    example: https://www.ishares.com
                    nullable: true
                  tickers:
                    type: array
                    description: Available tickers
                    items:
                      type: object
                      properties:
                        ticker:
                          type: string
                          example: SWDA.L
                        exchange:
                          type: string
                          example: LSE
                    nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/etf/holdings/{identifier}:
    get:
      summary: ETF Holdings API
      tags:
        - ETF
        - eu:w:4
      description: Returns the top holdings of the given ETF
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN or ticker symbol (e.g. IE00B4L5Y983,
            IWDA)"
      security:
        - token: []
      responses:
        "200":
          description: Returns ETF holdings
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    etf_symbol:
                      type: string
                      description: ETF symbol
                      example: SWDA.L
                    symbol:
                      type: string
                      description: Holding symbol
                      example: NVDA
                    name:
                      type: string
                      description: Holding company name
                      example: NVIDIA
                    isin:
                      type: string
                      description: Holding ISIN
                      example: US67066G1040
                      nullable: true
                    cusip:
                      type: string
                      description: CUSIP identifier
                      example: 67066G104
                      nullable: true
                    percent:
                      type: number
                      description: Percentage of ETF
                      example: 5.53806
                      nullable: true
                    share:
                      type: number
                      description: Number of shares
                      example: 37247231
                      nullable: true
                    value:
                      type: number
                      description: Value in currency
                      example: 6910851240
                      nullable: true
                    assetType:
                      type: string
                      description: Asset type
                      example: Equity
                      nullable: true
                    logo:
                      type: string
                      description: Company logo URL
                      example: US67066G1040.png
                      nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/etf/sectors/{identifier}:
    get:
      summary: ETF Sectors API
      tags:
        - ETF
        - eu:w:2
      description: Returns sector allocation for the given ETF
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN or ticker symbol (e.g. IE00B4L5Y983,
            IWDA)"
      security:
        - token: []
      responses:
        "200":
          description: Returns ETF sector allocation
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    symbol:
                      type: string
                      description: ETF symbol
                      example: SWDA.L
                    industry:
                      type: string
                      description: Sector name
                      example: Information Technology
                    exposure:
                      type: number
                      description: Sector exposure percentage
                      example: 26.45
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/etf/countries/{identifier}:
    get:
      summary: ETF Countries API
      tags:
        - ETF
        - eu:w:2
      description: Returns country allocation for the given ETF
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN or ticker symbol (e.g. IE00B4L5Y983,
            IWDA)"
      security:
        - token: []
      responses:
        "200":
          description: Returns ETF country allocation
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    symbol:
                      type: string
                      description: ETF symbol
                      example: SWDA.L
                    country:
                      type: string
                      description: Country name
                      example: United States
                    exposure:
                      type: number
                      description: Country exposure percentage
                      example: 72.31035
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/etf/quotes/{identifier}:
    get:
      summary: ETF Quotes API
      tags:
        - ETF
        - eu:w:1
      description: Returns historical quotes for the given ETF identifier and
        timeframe. Dates are in milliseconds since 1970.
      parameters:
        - schema:
            type: number
            nullable: true
            example: 1704067200000
          in: query
          name: startdate
          required: false
          description: Start date in milliseconds since 1970
        - schema:
            type: number
            nullable: true
            example: 1735689600000
          in: query
          name: enddate
          required: false
          description: End date in milliseconds since 1970
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN or ticker symbol (e.g. IE00B4L5Y983,
            IWDA)"
      security:
        - token: []
      responses:
        "200":
          description: Returns ETF quotes
          content:
            application/json:
              schema:
                type: array
                items:
                  type: array
                  items:
                    type: number
                  example:
                    - 1640995200000
                    - 124.4348
                description: Array of [timestamp, price] pairs
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/etf/description/{identifier}:
    get:
      summary: ETF Description API
      tags:
        - ETF
        - eu:w:1
      description: Returns a description for the given ETF in the requested language.
        Currently only English (en) and German (de) is supported
      parameters:
        - schema:
            type: string
            enum:
              - en
              - de
          in: query
          name: language
          required: false
          description: The language of the returned description
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN or ticker symbol (e.g. IE00B4L5Y983,
            IWDA)"
      security:
        - token: []
      responses:
        "200":
          description: Returns the description of the ETF in the given language
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    type: string
                    example: SWDA.L was founded on 25.09.2009 by iShares. The fund primarily focuses
                      on total market equity. The ETF currently has an AUM of
                      71,729.59m and 1,462 holdings.
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/etf/flows/{ticker}:
    get:
      summary: ETF Flows API
      tags:
        - ETF
        - eu:w:5
      description: Returns daily fund flow data (inflows/outflows) for a given ETF ticker
      parameters:
        - schema:
            type: number
            default: 90
          in: query
          name: days
          required: false
          description: Look-back window in days (default 90, max 365)
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: ETF ticker symbol (e.g. SPY, QQQ)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/etf/list/{start}/{end}:
    get:
      summary: ETF List API
      tags:
        - ETF
        - eu:w:1
      description: Returns a paginated list of all ETF ISINs available. Maximum
        results returned is limited to 2000 per request.
      parameters:
        - schema:
            type: integer
          in: path
          name: start
          required: true
          description: ISIN of the ETF
        - schema:
            type: integer
          in: path
          name: end
          required: true
          description: ISIN of the ETF
      security:
        - token: []
      responses:
        "200":
          description: Returns a paged response of ETF ISINs for the given offsets
          content:
            application/json:
              schema:
                type: object
                properties:
                  start:
                    type: integer
                    example: 0
                  size:
                    type: integer
                    example: 10
                  total:
                    type: integer
                    example: 19008
                  results:
                    type: array
                    example:
                      - AEC000730023
                      - AEC000730031
                      - AEC000730049
                    items:
                      type: string
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/equity/ownership/{identifier}:
    get:
      summary: Stock Ownership API
      tags:
        - Equity
        - eu:w:5
      description: Returns a list of owners for the given stock isin
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns a array of ownership data including name, percentage, share
            count, change since last time, the date where shares had been filed
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    name:
                      type: string
                      example: Warren Buffett
                    share:
                      type: integer
                      example: 50000
                    change:
                      type: integer
                      example: 1000
                    filingDate:
                      type: string
                      example: 2023-01-01
                    symbol:
                      type: string
                      example: AAPL
                    percent:
                      type: number
                      example: 3
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/balancesheet/{identifier}:
    get:
      summary: Balance Sheet API
      tags:
        - Equity
        - eu:w:4
      description: Returns all Balance Sheet data for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns a array of balancsheet data.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    liabilities:
                      type: number
                      example: 10.624
                      nullable: true
                    longTermDebt:
                      type: number
                      example: 0
                      nullable: true
                    longTermInvestments:
                      type: number
                      example: 0
                      nullable: true
                    noteReceivableLongTerm:
                      type: number
                      example: 0
                      nullable: true
                    otherCurrentAssets:
                      type: number
                      example: 1.926
                      nullable: true
                    otherCurrentliabilities:
                      type: number
                      example: 6.812
                      nullable: true
                    otherEquity:
                      type: number
                      example: 0
                      nullable: true
                    otherLiabilities:
                      type: number
                      example: 0
                      nullable: true
                    otherLongTermAssets:
                      type: number
                      example: 1.808
                      nullable: true
                    otherReceivables:
                      type: number
                      example: 0
                      nullable: true
                    period:
                      type: string
                      example: 1985-06-30
                    propertyPlantEquipment:
                      type: number
                      example: 11.19
                      nullable: true
                    receivables:
                      type: number
                      example: 25.273
                      nullable: true
                    retainedEarnings:
                      type: number
                      example: 54.413
                      nullable: true
                    shortTermDebt:
                      type: number
                      example: 0
                      nullable: true
                    unrealizedProfitLossSecurity:
                      type: number
                      example: 1.808
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/incomestatement/{identifier}:
    get:
      summary: Income Statement API
      tags:
        - Equity
        - eu:w:2
      description: Returns all Income Statement data for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns a array of incomestatement data.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    costOfGoodsSold:
                      type: number
                      example: 16
                      nullable: true
                    depreciationAmortization:
                      type: number
                      example: 0
                      nullable: true
                    diluted_eps:
                      type: number
                      example: 0
                      nullable: true
                    dilutedAverageSharesOutstanding:
                      type: number
                      example: 0
                      nullable: true
                    ebit:
                      type: number
                      example: 11
                      nullable: true
                    gainLossOnDispositionOfAssets:
                      type: number
                      example: 0
                      nullable: true
                    grossIncome:
                      type: number
                      example: 34
                      nullable: true
                    interestIncomeExpense:
                      type: number
                      example: 0
                      nullable: true
                    netIncome:
                      type: number
                      example: 6
                      nullable: true
                    nonRecurringItems:
                      type: number
                      example: 0
                      nullable: true
                    operationsMaintenance:
                      type: number
                      example: 0
                      nullable: true
                    otherOperatingExpensesTotal:
                      type: number
                      example: 0
                      nullable: true
                    otherRevenue:
                      type: number
                      example: 0
                      nullable: true
                    period:
                      type: string
                      example: 1983-06-30
                      nullable: true
                    pretaxIncome:
                      type: number
                      example: 11
                      nullable: true
                    provisionforIncomeTaxes:
                      type: number
                      example: 5
                      nullable: true
                    researchDevelopment:
                      type: number
                      example: 7
                      nullable: true
                    revenue:
                      type: number
                      example: 50
                      nullable: true
                    sgaExpense:
                      type: number
                      example: 17
                      nullable: true
                    shares:
                      type: number
                      example: 6532
                      nullable: true
                    ticker:
                      type: string
                      example: MSFT
                    totalOperatingExpense:
                      type: number
                      example: 23
                      nullable: true
                    totalOtherIncomeExpenseNet:
                      type: number
                      example: 0
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/cashflowstatement/{identifier}:
    get:
      summary: Cash Flow Statement API
      tags:
        - Equity
        - eu:w:3
      description: Returns all Cash Flow Statement data for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns a array of cashflowstatement data.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    ticker:
                      type: string
                      example: MSFT
                      nullable: true
                    period:
                      type: string
                      example: 1987-06-30
                      nullable: true
                    netIncomeStartingLine:
                      type: number
                      example: 72
                      nullable: true
                    amortization:
                      type: number
                      example: 8
                      nullable: true
                    deferredTaxesInvestmentTaxCredit:
                      type: number
                      example: 0
                      nullable: true
                    changesinWorkingCapital:
                      type: number
                      example: -20
                      nullable: true
                    nonCashItems:
                      type: number
                      example: 0
                      nullable: true
                    cashInterestPaid:
                      type: number
                      example: 1
                      nullable: true
                    cashTaxesPaid:
                      type: number
                      example: 32
                      nullable: true
                    netOperatingCashFlow:
                      type: number
                      example: 59
                      nullable: true
                    capex:
                      type: number
                      example: -58
                      nullable: true
                    netInvestingCashFlow:
                      type: number
                      example: -101
                      nullable: true
                    otherInvestingCashFlowItemsTotal:
                      type: number
                      example: -44
                      nullable: true
                    issuanceReductionDebtNet:
                      type: number
                      example: 3
                      nullable: true
                    issuanceReductionCapitalStock:
                      type: number
                      example: 2
                      nullable: true
                    otherFundsFinancingItems:
                      type: number
                      example: 24
                      nullable: true
                    cashDividendsPaid:
                      type: number
                      example: 0
                      nullable: true
                    netCashFinancingActivities:
                      type: number
                      example: 29
                      nullable: true
                    cashNet:
                      type: number
                      example: -13
                      nullable: true
                    foreignExchangeEffects:
                      type: number
                      example: 0
                      nullable: true
                    fcf:
                      type: number
                      example: 1
                      nullable: true
                    year:
                      type: number
                      example: 1987
                      nullable: true
                    changeinCash:
                      type: number
                      example: 0
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/profile/{identifier}:
    get:
      summary: Profile API
      tags:
        - Equity
        - eu:w:0
      description: Returns the profile for the given ISIN. All numbers are in millions.
      parameters:
        - schema:
            type: string
            default: en
            nullable: true
          in: query
          name: language
          required: false
          style: form
          explode: false
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns a the profile for the given ISIN.
          content:
            application/json:
              schema:
                type: object
                properties:
                  isin:
                    type: string
                    example: US5949181045
                  ticker:
                    type: string
                    example: MSFT
                  name:
                    type: string
                    example: Microsoft
                  logo:
                    type: string
                    example: /api/logo/isin/US5949181045
                  country:
                    type: string
                    example: US
                  currency:
                    type: string
                    example: USD
                  employees:
                    type: number
                    example: 100000
                  sector:
                    type: string
                    example: Information Technology
                  industry:
                    type: string
                    example: Software
                  ipo:
                    type: string
                    example: 1986-03-13
                  mcap:
                    type: number
                    example: 3000000000
                  shares:
                    type: number
                    example: 7433.33
                  website:
                    type: string
                    example: https://www.microsoft.com/en-us
                  wkn:
                    type: string
                    example: "870747"
                  description:
                    type: string
                    example: Microsoft is a software company founded in ....
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/quotes/{identifier}:
    get:
      summary: Quote API
      tags:
        - Equity
        - eu:w:1
      description: Returns the quotes for the given Identifier (ISIN or Crypto Symbol)
        and timeframe. Dates are in milliseconds since 1970.
      parameters:
        - schema:
            type: number
            nullable: true
            example: 1704067200000
          in: query
          name: startdate
          required: false
          description: Start date in milliseconds since 1970
          style: form
          explode: false
        - schema:
            type: number
            nullable: true
            example: 1735689600000
          in: query
          name: enddate
          required: false
          description: End date in milliseconds since 1970
          style: form
          explode: false
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: ISIN of the stock
      security:
        - token: []
      responses:
        "200":
          description: Returns quotes for the given ISIN in the given timeframe (default
            is 1 year)
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    timestamp:
                      type: number
                      example: 1732621245000
                    price:
                      type: number
                      example: 123.23
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/executives/{identifier}:
    get:
      summary: Company Executives API
      tags:
        - Equity
        - eu:w:6
      description: Returns executive information for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns executive information.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    name:
                      type: string
                      description: Executive name
                      example: Mr. Satya Nadella
                    age:
                      type: number
                      description: Executive age
                      example: 57
                      nullable: true
                    compensation:
                      type: number
                      description: Executive compensation
                      example: 79106183
                      nullable: true
                    currency:
                      type: string
                      description: Compensation currency
                      example: USD
                      nullable: true
                    position:
                      type: string
                      description: Executive position/title
                      example: Chairman of the Board, Chief Executive Officer
                      nullable: true
                    sex:
                      type: string
                      description: Executive gender
                      example: male
                      nullable: true
                    since:
                      type: string
                      description: Year started in position
                      example: "2011"
                      nullable: true
                    symbol:
                      type: string
                      description: Company ticker symbol
                      example: MSFT
                      nullable: true
                    image_url:
                      type: string
                      description: URL of executive headshot photo
                      example: https://media.eulerpool.com/executives/msft_satya-nadella.jpg
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/peers/{identifier}:
    get:
      summary: Company Peers API
      tags:
        - Equity
        - eu:w:7
      description: Returns similar companies/peers for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns peer companies.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    ticker:
                      type: string
                      description: Peer company ticker
                      example: MSFT
                    peer_name:
                      type: string
                      description: Peer company name
                      example: Microsoft Corporation
                      nullable: true
                    peer_isin:
                      type: string
                      description: Peer company ISIN
                      example: US5949181045
                      nullable: true
                    logo:
                      type: string
                      description: Peer company logo path
                      example: /api/logo/isin/US9285634021
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/supply-chain/{identifier}:
    get:
      summary: Supply Chain API
      tags:
        - Equity
        - eu:w:8
      description: Returns supply chain relationships for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns supply chain data.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    parentSymbol:
                      type: string
                      description: Parent company symbol
                      example: AAPL
                    customer:
                      type: boolean
                      description: Whether this company is a customer
                      example: true
                    name:
                      type: string
                      description: Company name
                      example: Supplier Company
                    oneMonthCorrelation:
                      type: number
                      description: One month correlation coefficient
                      example: 0.75
                    oneYearCorrelation:
                      type: number
                      description: One year correlation coefficient
                      example: 0.82
                    sixMonthCorrelation:
                      type: number
                      description: Six month correlation coefficient
                      example: 0.78
                    supplier:
                      type: boolean
                      description: Whether this company is a supplier
                      example: false
                    symbol:
                      type: string
                      description: Company symbol/ticker
                      example: SUPP
                    threeMonthCorrelation:
                      type: number
                      description: Three month correlation coefficient
                      example: 0.76
                    twoWeekCorrelation:
                      type: number
                      description: Two week correlation coefficient
                      example: 0.73
                    twoYearCorrelation:
                      type: number
                      description: Two year correlation coefficient
                      example: 0.85
                    country:
                      type: string
                      description: Company country
                      example: US
                    industry:
                      type: string
                      description: Company industry
                      example: Technology
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/segments/{identifier}:
    get:
      summary: Business Segments API
      tags:
        - Equity
        - eu:w:9
      description: Returns business segments breakdown for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns raw business segments data.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    period:
                      type: string
                      description: Financial period
                      example: 2024-06-30
                    unit:
                      type: string
                      description: Currency unit
                      example: u_usd
                    axis:
                      type: string
                      description: Accounting axis type
                      example: srt_ProductOrServiceAxis
                    label:
                      type: string
                      description: Segment label
                      example: Devices
                    value:
                      type: number
                      description: Revenue value
                      example: 4706000000
                    percentage:
                      type: number
                      description: Percentage of total revenue
                      example: 1.9198603144556587
                    member:
                      type: string
                      description: Segment member identifier
                      example: msft_DevicesMember
                    symbol:
                      type: string
                      description: Company ticker symbol
                      example: MSFT
                    axisIndex:
                      type: number
                      description: Axis index
                      example: 1
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/estimates/{identifier}:
    get:
      summary: Analyst Estimates API
      tags:
        - Equity
        - eu:w:10
      description: Returns analyst estimates for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns analyst estimates.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    period:
                      type: string
                      description: Financial period
                      example: 2030-06-30
                    year:
                      type: number
                      description: Fiscal year
                      example: 2030
                      nullable: true
                    revenueEstimate:
                      type: number
                      description: Average revenue estimate
                      example: 516905000000
                      nullable: true
                    revenueHigh:
                      type: number
                      description: High revenue estimate
                      example: 586236000000
                      nullable: true
                    revenueLow:
                      type: number
                      description: Low revenue estimate
                      example: 464520000000
                      nullable: true
                    revenueAnalysts:
                      type: number
                      description: Number of analysts for revenue
                      example: 5
                      nullable: true
                    epsEstimate:
                      type: number
                      description: Average EPS estimate
                      example: 27.7134
                      nullable: true
                    epsHigh:
                      type: number
                      description: High EPS estimate
                      example: 28.5285
                      nullable: true
                    epsLow:
                      type: number
                      description: Low EPS estimate
                      example: 26.6266
                      nullable: true
                    epsAnalysts:
                      type: number
                      description: Number of analysts for EPS
                      example: 3
                      nullable: true
                    ebitEstimate:
                      type: number
                      description: Average EBIT estimate
                      example: 255176000000
                      nullable: true
                    ebitHigh:
                      type: number
                      description: High EBIT estimate
                      example: 269372000000
                      nullable: true
                    ebitLow:
                      type: number
                      description: Low EBIT estimate
                      example: 238454000000
                      nullable: true
                    ebitAnalysts:
                      type: number
                      description: Number of analysts for EBIT
                      example: 4
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/splits/{identifier}:
    get:
      summary: Stock Splits API
      tags:
        - Equity
        - eu:w:11
      description: Returns stock splits history for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns stock splits data.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    date:
                      type: string
                      example: 2003-02-18
                    fromFactor:
                      type: number
                      example: 1
                    toFactor:
                      type: number
                      example: 2
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/dividends/{identifier}:
    get:
      summary: Dividends API
      tags:
        - Equity
        - eu:w:12
      description: Returns individual dividend payments for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns dividend payments.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    payDate:
                      type: string
                      description: Dividend payment date
                      example: 2003-03-07
                    period:
                      type: string
                      description: Dividend period/date
                      example: 2003-03-07
                      nullable: true
                    dividend:
                      type: number
                      description: Dividend amount
                      example: 0.08
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/dividends-by-fy/{identifier}:
    get:
      summary: Dividends by Fiscal Year API
      tags:
        - Equity
        - eu:w:13
      description: Returns dividends grouped by fiscal year for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns dividends by fiscal year.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    ticker:
                      type: string
                      description: Company ticker symbol
                      example: MSFT
                    fiscal_year_start:
                      type: string
                      description: Fiscal year start date
                      example: 2025-06-30T22:00:00.000Z
                    fiscal_year_end:
                      type: string
                      description: Fiscal year end date
                      example: 2026-06-29T22:00:00.000Z
                    total_dividends_per_fy:
                      type: number
                      description: Total dividends paid in fiscal year
                      example: 0.91
                    dividend_count:
                      type: number
                      description: Number of dividend payments in fiscal year
                      example: 1
                    expected_freq:
                      type: number
                      description: Expected dividend frequency per year
                      example: 4
                      nullable: true
                    fully_paid:
                      type: string
                      description: Whether all expected dividends were paid
                      example: NO
                      enum:
                        - YES
                        - NO
                    fully_paid_current_fy:
                      type: string
                      description: Whether all expected dividends were paid in current fiscal year
                      example: NO
                      enum:
                        - YES
                        - NO
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/insider-trades/{identifier}:
    get:
      summary: Insider Trades API
      tags:
        - Equity
        - eu:w:14
      description: Returns insider trading activity for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns insider trades data.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/esg-rating/{identifier}:
    get:
      summary: ESG Rating API
      tags:
        - Equity
        - eu:w:15
      description: Returns ESG rating for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns ESG rating data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  symbol:
                    type: string
                    description: Company ticker symbol
                    example: MSFT
                  totalESGScore:
                    type: number
                    description: Total ESG score
                    example: 82.49834
                    nullable: true
                  environmentScore:
                    type: number
                    description: Environment score
                    example: 74.24722
                    nullable: true
                  socialScore:
                    type: number
                    description: Social score
                    example: 82.12883
                    nullable: true
                  governanceScore:
                    type: number
                    description: Governance score
                    example: 91.11896
                    nullable: true
                  adultContent:
                    type: boolean
                    description: Adult content involvement
                    example: false
                    nullable: true
                  alcoholic:
                    type: boolean
                    description: Alcoholic beverages involvement
                    example: false
                    nullable: true
                  animalTesting:
                    type: boolean
                    description: Animal testing involvement
                    example: false
                    nullable: true
                  firearms:
                    type: boolean
                    description: Firearms involvement
                    example: false
                    nullable: true
                  gambling:
                    type: boolean
                    description: Gambling involvement
                    example: false
                    nullable: true
                  tobacco:
                    type: boolean
                    description: Tobacco involvement
                    example: false
                    nullable: true
                  nuclear:
                    type: boolean
                    description: Nuclear involvement
                    example: false
                    nullable: true
                  co2EmissionTotal:
                    type: number
                    description: Total CO2 emissions
                    example: 8222363
                    nullable: true
                  carbonReductionPolicy:
                    type: string
                    description: Carbon reduction policy
                    example: "True"
                    nullable: true
                  climateStrategy:
                    type: string
                    description: Climate strategy
                    example: null
                    nullable: true
                  humanRightsPolicy:
                    type: boolean
                    description: Human rights policy
                    example: true
                    nullable: true
                  workplaceHealthSafety:
                    type: boolean
                    description: Workplace health and safety
                    example: true
                    nullable: true
                  totalWomenPercentage:
                    type: number
                    description: Percentage of women employees
                    example: 33.1
                    nullable: true
                  environmentalReporting:
                    type: boolean
                    description: Environmental reporting
                    example: true
                    nullable: true
                  recyclingPolicy:
                    type: boolean
                    description: Recycling policy
                    example: true
                    nullable: true
  /api/1/equity/short-volume/{identifier}:
    get:
      summary: Short Volume API
      tags:
        - Equity
        - eu:w:16
      description: Returns FINRA short volume data for the given ISIN (US equities)
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of trading days to return (default 90)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns short volume data by trading day.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    date:
                      type: string
                      example: 2026-02-20
                    shortVolume:
                      type: number
                      example: 5234000
                    shortExemptVolume:
                      type: number
                      example: 120000
                    totalVolume:
                      type: number
                      example: 12500000
                    shortRatio:
                      type: number
                      example: 0.4283
                      description: (shortVolume + shortExemptVolume) / totalVolume
                    market:
                      type: string
                      example: Q
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/short-interest-positions/{identifier}:
    get:
      summary: Short Interest Positions API
      tags:
        - Equity
        - eu:w:16
      description: Returns FINRA bi-monthly short interest data (outstanding short
        positions, days to cover) for the given ISIN
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of settlement periods to return (default 24, max 120)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL)"
      security:
        - token: []
      responses:
        "200":
          description: Returns short interest position data by settlement date (bi-monthly).
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    settlementDate:
                      type: string
                      example: 2026-01-31
                    shortShares:
                      type: number
                      example: 15234000
                      description: Total shares currently sold short
                    prevShortShares:
                      type: number
                      example: 14120000
                      description: Short shares from previous settlement cycle
                    changeShares:
                      type: number
                      example: 1114000
                      description: Change in short shares from previous cycle
                    changePct:
                      type: number
                      example: 7.89
                      description: Percentage change from previous cycle
                    avgDailyVolume:
                      type: number
                      example: 5800000
                    daysToCover:
                      type: number
                      example: 2.63
                      description: Short shares / avg daily volume
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/regions/{identifier}:
    get:
      summary: Revenue by Region API
      tags:
        - Equity
        - eu:w:17
      description: Returns geographic revenue breakdown for the given ISIN, showing
        revenue distribution across different countries and regions
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns geographic revenue breakdown.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    period:
                      type: string
                      example: 2024-06-30
                    unit:
                      type: string
                      example: u_usd
                    axis:
                      type: string
                      example: srt_StatementGeographicalAxis
                    label:
                      type: string
                      example: United States
                    value:
                      type: number
                      example: 100280000000
                    percentage:
                      type: number
                      example: 40.92
                    member:
                      type: string
                      example: country_US
                    symbol:
                      type: string
                      example: MSFT
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity/country-insider-trades/{country}:
    get:
      summary: Country Insider Trades API
      tags:
        - Equity
        - eu:w:18
      description: Returns insider trading activity across all companies in a given
        country (e.g. DE for Germany/BaFin, US for SEC)
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: type
          required: false
          description: "Time range: month, quarter, year (default month)"
        - schema:
            type: string
          in: path
          name: country
          required: true
          description: Country code (e.g. DE, US, GB)
      security:
        - token: []
      responses:
        "200":
          description: Returns country-level insider trades.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/swot/{identifier}:
    get:
      summary: SWOT Analysis API
      tags:
        - Equity
        - eu:w:19
      description: Returns AI-generated SWOT analysis (Strengths, Weaknesses,
        Opportunities, Threats) for the given ISIN
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: language
          required: false
          description: "Language code: en, de (default en)"
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns SWOT analysis.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  strengths:
                    type: array
                    items:
                      type: string
                    description: Company strengths
                  weaknesses:
                    type: array
                    items:
                      type: string
                    description: Company weaknesses
                  opportunities:
                    type: array
                    items:
                      type: string
                    description: Market opportunities
                  threats:
                    type: array
                    items:
                      type: string
                    description: Market/competitive threats
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/discover:
    get:
      summary: Discover Stocks API
      tags:
        - Equity
        - eu:w:20
      description: Returns a curated list of 25 top stocks by market capitalization
        for discovery and exploration
      security:
        - token: []
      responses:
        "200":
          description: Returns discover stock list.
          content:
            application/json:
              schema:
                description: Returns discover stock list.
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    isin:
                      type: string
                    ticker:
                      type: string
                    currency:
                      type: string
                    color:
                      type: string
                    route_name:
                      type: string
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/metrics/{identifier}:
    get:
      summary: Financial Metrics & Ratios API
      tags:
        - Equity
        - eu:w:21
      description: "Returns 40+ computed financial ratios for the given ISIN:
        valuation (P/E, P/B, P/S, EV/EBITDA), profitability (ROE, ROA, ROIC,
        margins), per-share data (EPS, BPS, SPS, DPS), leverage (D/E, current
        ratio), and growth rates (3Y, 5Y, 10Y revenue/earnings/EBIT growth)"
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns comprehensive financial metrics.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  isin:
                    type: string
                    example: US0378331005
                  ticker:
                    type: string
                    example: AAPL
                  currency:
                    type: string
                    example: USD
                  valuation:
                    type: object
                    additionalProperties: true
                    properties:
                      pe:
                        type: number
                        example: 28.5
                        nullable: true
                        description: Price-to-Earnings
                      ps:
                        type: number
                        example: 7.2
                        nullable: true
                        description: Price-to-Sales
                      pb:
                        type: number
                        example: 45.1
                        nullable: true
                        description: Price-to-Book
                      pebit:
                        type: number
                        example: 22.3
                        nullable: true
                        description: Price-to-EBIT
                      evEbitda:
                        type: number
                        example: 19.8
                        nullable: true
                        description: EV/EBITDA
                      marketCap:
                        type: number
                        nullable: true
                        description: Market Cap in millions
                      enterpriseValue:
                        type: number
                        nullable: true
                        description: Enterprise Value in millions
                  profitability:
                    type: object
                    additionalProperties: true
                    properties:
                      roe:
                        type: number
                        example: 147.5
                        nullable: true
                        description: Return on Equity (%)
                      roa:
                        type: number
                        example: 28.3
                        nullable: true
                        description: Return on Assets (%)
                      roic:
                        type: number
                        example: 45.2
                        nullable: true
                        description: Return on Invested Capital (%)
                      roce:
                        type: number
                        example: 55.1
                        nullable: true
                        description: Return on Capital Employed (%)
                      grossMargin:
                        type: number
                        example: 45.2
                        nullable: true
                        description: Gross Margin (%)
                      operatingMargin:
                        type: number
                        example: 30.1
                        nullable: true
                        description: Operating/EBIT Margin (%)
                      netMargin:
                        type: number
                        example: 25.3
                        nullable: true
                        description: Net Profit Margin (%)
                  perShare:
                    type: object
                    additionalProperties: true
                    properties:
                      eps:
                        type: number
                        example: 6.13
                        nullable: true
                        description: Earnings Per Share (diluted)
                      sps:
                        type: number
                        example: 24.32
                        nullable: true
                        description: Sales/Revenue Per Share
                      bps:
                        type: number
                        example: 3.95
                        nullable: true
                        description: Book Value Per Share
                      dps:
                        type: number
                        example: 0.96
                        nullable: true
                        description: Dividend Per Share (annual)
                      dividendYield:
                        type: number
                        example: 0.55
                        nullable: true
                        description: Dividend Yield (%)
                  leverage:
                    type: object
                    additionalProperties: true
                    properties:
                      debtToEquity:
                        type: number
                        example: 1.87
                        nullable: true
                        description: Total Debt / Total Equity
                      netDebt:
                        type: number
                        nullable: true
                        description: Net Debt in millions
                      currentRatio:
                        type: number
                        example: 0.99
                        nullable: true
                        description: Current Assets / Current Liabilities
                  growth:
                    type: object
                    additionalProperties: true
                    properties:
                      revenueGrowth3Y:
                        type: number
                        example: 8.5
                        nullable: true
                        description: Revenue CAGR 3Y (%)
                      revenueGrowth5Y:
                        type: number
                        example: 11.2
                        nullable: true
                        description: Revenue CAGR 5Y (%)
                      earningsGrowth3Y:
                        type: number
                        example: 12.1
                        nullable: true
                        description: Earnings CAGR 3Y (%)
                      earningsGrowth5Y:
                        type: number
                        example: 15.8
                        nullable: true
                        description: Earnings CAGR 5Y (%)
                  other:
                    type: object
                    additionalProperties: true
                    properties:
                      shares:
                        type: number
                        nullable: true
                        description: Diluted shares outstanding
                      employees:
                        type: number
                        nullable: true
                      aaqs:
                        type: number
                        nullable: true
                        description: AlleAktien Quality Score (1-10)
                  historical:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                    description: Historical annual metrics (up to 10 years)
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/upgrades/{identifier}:
    get:
      summary: Analyst Upgrade/Downgrade History API
      tags:
        - Equity
        - eu:w:22
      description: "Returns analyst upgrade/downgrade events for the given ISIN:
        analyst firm, action (upgrade/downgrade/init/reiterate), from-grade,
        to-grade, and date"
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns upgrade/downgrade events.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    gradeTime:
                      type: string
                      example: 2024-03-15 10:00:00
                    company:
                      type: string
                      example: Morgan Stanley
                    action:
                      type: string
                      example: upgrade
                    fromGrade:
                      type: string
                      example: Equal-Weight
                      nullable: true
                    toGrade:
                      type: string
                      example: Overweight
                      nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/overview/{identifier}:
    get:
      summary: Company Overview API
      tags:
        - Equity
        - eu:w:23
      description: Returns a comprehensive company overview combining profile data,
        key financial ratios (P/E, P/S, dividend yield), 52-week price range,
        fair value, and market data in a single response
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns comprehensive company overview.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  isin:
                    type: string
                  ticker:
                    type: string
                  name:
                    type: string
                  description:
                    type: string
                    nullable: true
                  currency:
                    type: string
                  country:
                    type: string
                    nullable: true
                  sector:
                    type: string
                    nullable: true
                  industry:
                    type: string
                    nullable: true
                  website:
                    type: string
                    nullable: true
                  ipo:
                    type: string
                    nullable: true
                  employees:
                    type: number
                    nullable: true
                  marketCap:
                    type: number
                    nullable: true
                  sharesOutstanding:
                    type: number
                    nullable: true
                  price:
                    type: number
                    nullable: true
                  week52High:
                    type: number
                    nullable: true
                  week52Low:
                    type: number
                    nullable: true
                  pe:
                    type: number
                    nullable: true
                  ps:
                    type: number
                    nullable: true
                  dividendYield:
                    type: number
                    nullable: true
                  fairValueIncome:
                    type: number
                    nullable: true
                  fairValueRevenue:
                    type: number
                    nullable: true
                  aaqs:
                    type: number
                    nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/income-statement-quarterly/{identifier}:
    get:
      summary: Quarterly Income Statement API
      tags:
        - Equity
        - eu:w:24
      description: Returns quarterly income statement data (revenue, EBIT, net income,
        EPS) for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns quarterly income statement.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/cashflow-statement-quarterly/{identifier}:
    get:
      summary: Quarterly Cash Flow Statement API
      tags:
        - Equity
        - eu:w:25
      description: Returns quarterly cash flow statement data (operating, investing,
        financing cash flows) for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns quarterly cash flow statement.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/fundamentals-quarterly/{identifier}:
    get:
      summary: Quarterly Fundamentals API
      tags:
        - Equity
        - eu:w:26
      description: Returns quarterly fundamental data (revenue, earnings, EPS,
        margins) in a consolidated view for the given ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns quarterly fundamentals.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/aaqs/{identifier}:
    get:
      summary: AAQS Quality Score API
      tags:
        - Equity
        - eu:w:27
      description: Returns the AlleAktien Quality Score (AAQS) for the given ISIN -- a
        proprietary 0-10 quality score evaluating revenue growth, earnings
        stability, profitability, balance sheet strength, and dividend track
        record. This metric is unique to Eulerpool and not available from any
        other financial data provider.
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns AAQS score and component breakdown.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  isin:
                    type: string
                    example: US0378331005
                  ticker:
                    type: string
                    example: AAPL
                  score:
                    type: number
                    example: 7
                    description: Overall AAQS score (0-10)
                  revenueGrowth10Y:
                    type: number
                    nullable: true
                    description: 10-year revenue CAGR
                  ebitGrowth10Y:
                    type: number
                    nullable: true
                    description: 10-year EBIT CAGR
                  profitContinuity10Y:
                    type: number
                    nullable: true
                    description: Consecutive profitable years (max 10)
                  revenueGrowth3Y:
                    type: number
                    nullable: true
                    description: 3-year revenue CAGR
                  ebitGrowth3Y:
                    type: number
                    nullable: true
                    description: 3-year EBIT CAGR
                  netDebtToEBIT:
                    type: number
                    nullable: true
                    description: Net debt / EBIT ratio
                  ebitMaxDrawdown10Y:
                    type: number
                    nullable: true
                    description: Max EBIT drawdown over 10 years
                  returnOnEquity:
                    type: number
                    nullable: true
                    description: Return on equity
                  roce:
                    type: number
                    nullable: true
                    description: Return on capital employed
                  expectedReturn:
                    type: number
                    nullable: true
                    description: Expected return
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found or no AAQS available
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/shares-outstanding/{identifier}:
    get:
      summary: Historical Shares Outstanding API
      tags:
        - Equity
        - eu:w:28
      description: Returns historical diluted average shares outstanding per fiscal
        year for the given ISIN. Shows how share count has changed over time due
        to buybacks, issuances, and stock splits.
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns historical shares outstanding.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    year:
                      type: string
                      example: "2024"
                    period:
                      type: string
                      example: 2024-06-30
                    sharesOutstanding:
                      type: number
                      example: 15460000000
                    dilutedEPS:
                      type: number
                      example: 6.13
                      nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/market-cap/{identifier}:
    get:
      summary: Historical Market Cap API
      tags:
        - Equity
        - eu:w:29
      description: Returns daily historical market capitalization computed from share
        price × shares outstanding. Available for up to 5 years of history.
      parameters:
        - schema:
            type: string
          in: query
          name: range
          required: false
          description: "Time range: 1m, 3m, 6m, ytd, 1y, 2y, 5y (default 1y)"
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns daily market cap time series.
          content:
            application/json:
              schema:
                type: object
                properties:
                  isin:
                    type: string
                  currency:
                    type: string
                  sharesOutstanding:
                    type: number
                    description: Current diluted shares
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        timestamp:
                          type: number
                        price:
                          type: number
                        marketCap:
                          type: number
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/candles/{identifier}:
    get:
      summary: Stock OHLCV Candles API
      tags:
        - Equity
        - eu:w:30
      description: Returns OHLCV-like candle data for a stock. Provides daily price
        data with open, high, low, close approximated from daily quotes, and
        volume where available.
      parameters:
        - schema:
            type: string
          in: query
          name: range
          required: false
          description: "Time range: 1m, 3m, 6m, 1y, 2y, 5y, max (default 1y)"
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns stock candle data.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    timestamp:
                      type: number
                      example: 1705276800000
                    open:
                      type: number
                      example: 178.5
                    high:
                      type: number
                      example: 182
                    low:
                      type: number
                      example: 177.8
                    close:
                      type: number
                      example: 181.2
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/list:
    get:
      summary: List All Stocks API
      tags:
        - Equity
        - eu:w:31
      description: Returns a paginated list of all stocks sorted by market
        capitalization descending. Use offset and limit for pagination.
        Comparable to Finnhub /stock/symbol.
      parameters:
        - schema:
            type: integer
            nullable: true
          in: query
          name: offset
          required: false
          description: Pagination offset (default 0)
        - schema:
            type: integer
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 100, max 2000)
      security:
        - token: []
      responses:
        "200":
          description: Returns paginated stock list.
          content:
            application/json:
              schema:
                type: object
                properties:
                  offset:
                    type: integer
                    example: 0
                  limit:
                    type: integer
                    example: 100
                  total:
                    type: integer
                    example: 35000
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        isin:
                          type: string
                          example: US0378331005
                        ticker:
                          type: string
                          example: AAPL
                        name:
                          type: string
                          example: Apple
                        sector:
                          type: string
                          example: Technology
                          nullable: true
                        wkn:
                          type: string
                          example: "865985"
                          nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/search:
    get:
      summary: Stock Search API
      tags:
        - Equity
        - eu:w:32
      description: Search for stocks, ETFs, crypto, bonds, and mutual funds by name,
        ticker, or ISIN. Uses full-text search with typo tolerance. Comparable
        to Finnhub /search.
      parameters:
        - schema:
            type: string
          in: query
          name: q
          required: false
          description: Search query (name, ticker, or ISIN)
      security:
        - token: []
      responses:
        "200":
          description: Returns matching securities.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    example: 5
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: Apple Inc.
                        isin:
                          type: string
                          example: US0378331005
                          nullable: true
                        ticker:
                          type: string
                          example: AAPL
                          nullable: true
                        type:
                          type: string
                          example: stock
                          nullable: true
                        currency:
                          type: string
                          example: USD
                          nullable: true
        "400":
          description: Missing query parameter
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/valuation-history/{identifier}:
    get:
      summary: Valuation History API
      tags:
        - Equity
        - eu:w:33
      description: Returns historical valuation multiples (P/E, P/S, EV/EBIT) as
        daily/weekly/monthly time series plus per-year snapshot. Essential for
        quant models and historical valuation analysis.
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns valuation time series
          content:
            application/json:
              schema:
                type: object
                properties:
                  valuationData:
                    type: array
                    items:
                      type: object
                      properties:
                        period:
                          type: string
                          example: "2024"
                        kgv:
                          type: number
                          example: 28.5
                          description: P/E ratio
                          nullable: true
                        kuv:
                          type: number
                          example: 7.2
                          description: P/S ratio
                          nullable: true
                        kev:
                          type: number
                          example: 22.1
                          description: EV/EBIT (non-banks only)
                          nullable: true
                  earnings:
                    type: object
                    description: P/E time series (daily/weekly/monthly as [timestamp, value] arrays)
                  revenue:
                    type: object
                    description: P/S time series
                  ebit:
                    type: object
                    description: EV/EBIT time series (non-banks only)
                    nullable: true
                  currents:
                    type: object
                    description: Current real-time P/E and P/S
                    nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/returns/{identifier}:
    get:
      summary: Stock Returns API
      tags:
        - Equity
        - eu:w:34
      description: Returns annual price returns (absolute and relative) with
        dividend-adjusted total return for the given ISIN over a configurable
        lookback period
      parameters:
        - schema:
            type: number
          in: query
          name: years
          required: false
          description: Years of history (default 10, max 30)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns annual performance data
          content:
            application/json:
              schema:
                type: object
                properties:
                  quoteReturns:
                    type: array
                    items:
                      type: object
                      properties:
                        year:
                          type: number
                          example: 2024
                        returnRate:
                          type: number
                          example: 12.5
                          description: Annual return %
                        startPrice:
                          type: number
                          nullable: true
                        endPrice:
                          type: number
                          nullable: true
                  mean:
                    type: number
                    example: 15.2
                    description: Average annual return %
                  variance:
                    type: number
                    example: 120.5
                    description: Return variance
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/growth/{identifier}:
    get:
      summary: Growth Metrics API
      tags:
        - Equity
        - eu:w:35
      description: Returns compound annual growth rates (3Y, 5Y, 10Y) for revenue, net
        income, EBIT, dividends, and EPS
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns growth data
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  isin:
                    type: string
                    example: US0378331005
                  income3Y:
                    type: number
                    example: 12.5
                    nullable: true
                    description: 3Y net income CAGR %
                  income5Y:
                    type: number
                    nullable: true
                    description: 5Y net income CAGR %
                  income10Y:
                    type: number
                    nullable: true
                    description: 10Y net income CAGR %
                  revenue3Y:
                    type: number
                    nullable: true
                    description: 3Y revenue CAGR %
                  revenue5Y:
                    type: number
                    nullable: true
                    description: 5Y revenue CAGR %
                  revenue10Y:
                    type: number
                    nullable: true
                    description: 10Y revenue CAGR %
                  ebit3Y:
                    type: number
                    nullable: true
                    description: 3Y EBIT CAGR %
                  ebit5Y:
                    type: number
                    nullable: true
                    description: 5Y EBIT CAGR %
                  ebit10Y:
                    type: number
                    nullable: true
                    description: 10Y EBIT CAGR %
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/margins/{identifier}:
    get:
      summary: Margin Data API
      tags:
        - Equity
        - eu:w:36
      description: "Returns current profitability margins: gross margin, operating
        margin, net margin, and FCF margin"
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns margin data
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  isin:
                    type: string
                    example: US0378331005
                  grossMargin:
                    type: number
                    example: 45.6
                    nullable: true
                  operatingMargin:
                    type: number
                    example: 30.2
                    nullable: true
                  netMargin:
                    type: number
                    example: 25.1
                    nullable: true
                  fcfMargin:
                    type: number
                    example: 28.3
                    nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/dividend-quality/{identifier}:
    get:
      summary: Dividend Quality API
      tags:
        - Equity
        - eu:w:37
      description: "Returns dividend quality metrics: consecutive years paid, years
        not decreased, years increased, current yield, payout frequency, and
        upcoming ex/pay dates"
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns dividend quality data
          content:
            application/json:
              schema:
                type: object
                properties:
                  dividend:
                    type: number
                    example: 0.96
                    nullable: true
                    description: Current annual dividend per share
                  dividendYield:
                    type: number
                    example: 0.52
                    nullable: true
                    description: Current dividend yield %
                  yearsPaid:
                    type: number
                    example: 12
                    description: Consecutive years dividend was paid
                  yearsNotDecreased:
                    type: number
                    example: 10
                    description: Consecutive years dividend was not decreased
                  yearsIncreased:
                    type: number
                    example: 10
                    description: Consecutive years dividend was increased
                  frequency:
                    type: string
                    example: quarterly
                    nullable: true
                  payoutMonths:
                    type: array
                    items:
                      type: number
                    example:
                      - 2
                      - 5
                      - 8
                      - 11
                  lastExDate:
                    type: string
                    example: 2024-11-01
                    nullable: true
                  lastPayDate:
                    type: string
                    example: 2024-11-14
                    nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/kpi/{identifier}:
    get:
      summary: KPI Bundle API
      tags:
        - Equity
        - eu:w:38
      description: "Returns a comprehensive bundle of key performance indicators in a
        single call: growth metrics, margins, valuation ratios, dividend data,
        AAQS score, and financial highlights. Ideal for AI agents and
        screeners."
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns comprehensive KPI data
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/coverage/{identifier}:
    get:
      summary: Data Coverage API
      tags:
        - Equity
        - eu:w:39
      description: Returns data availability flags for the given ISIN, indicating
        which data types are available (balance sheet, estimates, ESG, supply
        chain, etc.). Use before other calls to avoid 404s.
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns data availability flags
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  ticker:
                    type: string
                    example: AAPL
                  hasBalanceSheet:
                    type: boolean
                  hasEstimates:
                    type: boolean
                  hasESG:
                    type: boolean
                  hasSupplyChain:
                    type: boolean
                  hasOwnership:
                    type: boolean
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/insider-trades-derivatives/{identifier}:
    get:
      summary: SEC Derivative Insider Trades API
      tags:
        - Equity
        - eu:w:40
      description: Returns options/derivatives-based insider trades from SEC filings
        (Form 4). Includes stock option exercises, conversions, and other
        derivative transactions.
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns derivative insider trades
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity/quality-scores/{ticker}:
    get:
      summary: Quality Scores API
      tags:
        - Equity
        - eu:w:42
      description: Returns Piotroski F-Score and Altman Z-Score for a given ticker
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/equity/dividend-safety/{ticker}:
    get:
      summary: Dividend Safety Score API
      tags:
        - Equity
        - eu:w:43
      description: Returns dividend safety and sustainability scores for a given ticker
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/equity/sec-ftd/{ticker}:
    get:
      summary: SEC Fail-to-Deliver API
      tags:
        - Equity
        - eu:w:44
      description: Returns SEC fail-to-deliver data for a given ticker
      parameters:
        - schema:
            type: number
            default: 90
          in: query
          name: days
          required: false
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/equity/pit/estimates/{ticker}:
    get:
      summary: Point-in-Time Estimates API
      tags:
        - Equity
        - eu:w:45
      description: Returns point-in-time analyst estimates snapshots for a given ticker
      parameters:
        - schema:
            type: number
            default: 100
          in: query
          name: limit
          required: false
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/equity/pit/profile/{identifier}:
    get:
      summary: Point-in-Time Profile API
      tags:
        - Equity
        - eu:w:46
      description: Returns point-in-time profile snapshots for a given security
      parameters:
        - schema:
            type: number
            default: 50
          in: query
          name: limit
          required: false
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/equity/insider-trades-eu/{identifier}:
    get:
      summary: EU Insider Trades API
      tags:
        - Equity
        - eu:w:41
      description: Returns European insider trading disclosures from multiple
        regulators (BaFin, AMF, FCA, etc.)
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/equity/sec-form4/{identifier}:
    get:
      summary: SEC Form 4 Insider Trades API
      tags:
        - Equity
        - eu:w:42
      description: "Returns SEC Form 4 insider trade filings parsed directly from
        EDGAR. More detailed than standard insider data: includes exact prices,
        share counts, officer titles, and direct/indirect ownership."
      parameters:
        - schema:
            type: number
            default: 50
          in: query
          name: limit
          required: false
        - schema:
            type: number
            default: 365
          in: query
          name: days
          required: false
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/equity/price-target/{identifier}:
    get:
      summary: Current Analyst Price Target Consensus
      tags:
        - Equity
        - eu:w:43
      description: Returns the current analyst price target consensus (high, low,
        mean, median, number of analysts) for a stock
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/macro/country-risk:
    get:
      summary: Country Risk API
      tags:
        - Macro
        - eu:w:0
      description: Returns equity risk premiums, country risk premiums, default
        spreads, and credit ratings for 249 countries (Damodaran-style, sourced
        from Finnhub). Updated weekly.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: region
          required: false
          description: Filter by region (e.g. Europe, Asia, Americas)
        - schema:
            type: boolean
            nullable: true
          in: query
          name: rated
          required: false
          description: If true, return only countries with a credit rating
      security:
        - token: []
      responses:
        "200":
          description: Returns country risk data
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    code2:
                      type: string
                      example: US
                    code3:
                      type: string
                      example: USA
                      nullable: true
                    country:
                      type: string
                      example: United States
                    currency:
                      type: string
                      example: US Dollar
                      nullable: true
                    currency_code:
                      type: string
                      example: USD
                      nullable: true
                    region:
                      type: string
                      example: Americas
                      nullable: true
                    sub_region:
                      type: string
                      example: Northern America
                      nullable: true
                    rating:
                      type: string
                      example: Aaa
                      nullable: true
                    equity_risk_premium:
                      type: number
                      example: 4.6
                      nullable: true
                    country_risk_premium:
                      type: number
                      example: 0
                      nullable: true
                    default_spread:
                      type: number
                      example: 0
                      nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/countries:
    get:
      summary: Available Countries API
      tags:
        - Macro
        - eu:w:0
      description: Returns all countries with available macro economic data, including
        country name, code, and URL slug
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: language
          required: false
          description: Language code (default en)
      security:
        - token: []
      responses:
        "200":
          description: Returns country list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/country/{country}:
    get:
      summary: Country Indicators API
      tags:
        - Macro
        - eu:w:1
      description: Returns all macro economic indicators available for a given country
        (GDP, unemployment, inflation, etc.)
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: language
          required: false
          description: Language code (default en)
        - schema:
            type: string
          in: path
          name: country
          required: true
          description: Country code or slug (e.g. us, de, gb)
      security:
        - token: []
      responses:
        "200":
          description: Returns country indicators
          content:
            application/json:
              schema:
                type: object
                properties:
                  indicators:
                    type: array
                    items:
                      type: object
                      properties:
                        slug:
                          type: string
                          example: gdp
                        name:
                          type: string
                          example: Gross Domestic Product
                        mainCategory:
                          type: string
                          example: GDP & Output
                          nullable: true
                        category:
                          type: string
                          nullable: true
                        country_code:
                          type: string
                          example: us
                  countryAlternatives:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Country not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/indicator/{country}/{slug}:
    get:
      summary: Indicator Profile API
      tags:
        - Macro
        - eu:w:2
      description: Returns the full profile for a macro economic indicator in a
        specific country, including metadata and description
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: language
          required: false
          description: Language code (default en)
        - schema:
            type: string
          in: path
          name: country
          required: true
          description: Country code or slug
        - schema:
            type: string
          in: path
          name: slug
          required: true
          description: Indicator slug
      security:
        - token: []
      responses:
        "200":
          description: Returns indicator profile
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Indicator not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/fred/series:
    get:
      summary: FRED Series List API
      tags:
        - Macro
        - eu:w:3
      description: Returns all available FRED (Federal Reserve Economic Data) series
        with their categories. Covers GDP, unemployment, CPI, interest rates,
        housing, trade, and 100+ more US macro indicators.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: category
          required: false
          description: Filter by category (gdp, labour, prices, money, housing, trade,
            fiscal, consumer, financial)
      security:
        - token: []
      responses:
        "200":
          description: Returns FRED series list
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    series_id:
                      type: string
                      example: GDP
                    name:
                      type: string
                      example: Gross Domestic Product
                    frequency:
                      type: string
                      example: Q
                      nullable: true
                    units:
                      type: string
                      nullable: true
                    category:
                      type: string
                      example: gdp
                      nullable: true
                    last_updated:
                      type: string
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/fred/observations/{seriesId}:
    get:
      summary: FRED Observations API
      tags:
        - Macro
        - eu:w:4
      description: Returns time series data for a specific FRED series (e.g. GDP,
        UNRATE, CPIAUCSL, FEDFUNDS, DGS10)
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of observations (default 500, max 5000)
        - schema:
            type: string
          in: path
          name: seriesId
          required: true
          description: FRED series ID (e.g. GDP, UNRATE, CPIAUCSL)
      security:
        - token: []
      responses:
        "200":
          description: Returns time series observations
          content:
            application/json:
              schema:
                type: object
                properties:
                  series_id:
                    type: string
                    example: GDP
                  name:
                    type: string
                    example: Gross Domestic Product
                    nullable: true
                  frequency:
                    type: string
                    example: Q
                    nullable: true
                  units:
                    type: string
                    nullable: true
                  observations:
                    type: array
                    items:
                      properties:
                        date:
                          type: string
                          example: 2024-01-01
                        value:
                          type: number
                          example: 28628.1
                      type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Series not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/ecb/series:
    get:
      summary: ECB Series List API
      tags:
        - Macro
        - eu:w:5
      description: "Returns all available ECB (European Central Bank) data series:
        interest rates, EURIBOR, bond yields, HICP inflation, exchange rates,
        money supply, and lending rates"
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: category
          required: false
          description: Filter by category (interest_rates, money_market, money_supply,
            bonds, inflation, exchange_rates, lending)
      security:
        - token: []
      responses:
        "200":
          description: Returns ECB series list
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    series_key:
                      type: string
                      example: FM.B.U2.EUR.4F.KR.MRR_FR.LEV
                    name:
                      type: string
                      example: ECB Main Refinancing Rate
                    frequency:
                      type: string
                      example: B
                      nullable: true
                    category:
                      type: string
                      example: interest_rates
                      nullable: true
                    ref_area:
                      type: string
                      example: U2
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/ecb/observations/{seriesKey}:
    get:
      summary: ECB Observations API
      tags:
        - Macro
        - eu:w:6
      description: Returns time series data for a specific ECB series. Use the
        series_key from the ECB series list endpoint.
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of observations (default 500, max 5000)
        - schema:
            type: string
          in: path
          name: seriesKey
          required: true
          description: ECB series key (URL-encode dots if needed)
      security:
        - token: []
      responses:
        "200":
          description: Returns time series observations
          content:
            application/json:
              schema:
                type: object
                properties:
                  series_key:
                    type: string
                  name:
                    type: string
                    nullable: true
                  observations:
                    type: array
                    items:
                      properties:
                        date:
                          type: string
                        value:
                          type: number
                      type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Series not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/imf/series:
    get:
      summary: IMF Series List API
      tags:
        - Macro
        - eu:w:7
      description: "Returns all available IMF (International Monetary Fund) data
        series by country: CPI, GDP, unemployment, exchange rates, policy rates,
        trade balances"
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: country
          required: false
          description: Filter by country code (e.g. US, DE, JP)
        - schema:
            type: string
            nullable: true
          in: query
          name: category
          required: false
          description: Filter by category
      security:
        - token: []
      responses:
        "200":
          description: Returns IMF series list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/imf/observations/{seriesId}:
    get:
      summary: IMF Observations API
      tags:
        - Macro
        - eu:w:8
      description: Returns time series data for a specific IMF series
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of observations (default 500, max 5000)
        - schema:
            type: string
          in: path
          name: seriesId
          required: true
          description: IMF series ID
      security:
        - token: []
      responses:
        "200":
          description: Returns time series observations
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Series not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/worldbank/series:
    get:
      summary: World Bank Series List API
      tags:
        - Macro
        - eu:w:9
      description: "Returns all available World Bank indicator series: GDP,
        population, unemployment, inflation, trade, education, health across all
        countries"
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: country
          required: false
          description: Filter by country code
        - schema:
            type: string
            nullable: true
          in: query
          name: category
          required: false
          description: Filter by category
      security:
        - token: []
      responses:
        "200":
          description: Returns World Bank series list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/worldbank/observations/{seriesId}:
    get:
      summary: World Bank Observations API
      tags:
        - Macro
        - eu:w:10
      description: Returns time series data for a specific World Bank indicator series
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of observations (default 500, max 5000)
        - schema:
            type: string
          in: path
          name: seriesId
          required: true
          description: World Bank series ID
      security:
        - token: []
      responses:
        "200":
          description: Returns time series
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Series not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/eurostat/series:
    get:
      summary: Eurostat Series List API
      tags:
        - Macro
        - eu:w:11
      description: Returns all available Eurostat data series for European Union statistics
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: country
          required: false
          description: Filter by country code
        - schema:
            type: string
            nullable: true
          in: query
          name: category
          required: false
          description: Filter by category
      security:
        - token: []
      responses:
        "200":
          description: Returns Eurostat series list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/eurostat/observations/{seriesId}:
    get:
      summary: Eurostat Observations API
      tags:
        - Macro
        - eu:w:12
      description: Returns time series data for a specific Eurostat series
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of observations (default 500, max 5000)
        - schema:
            type: string
          in: path
          name: seriesId
          required: true
          description: Eurostat series ID
      security:
        - token: []
      responses:
        "200":
          description: Returns time series
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Series not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/search:
    get:
      summary: Macro Data Search API
      tags:
        - Macro
        - eu:w:13
      description: Search across all macro data sources (FRED, ECB, IMF, World Bank,
        Eurostat) by keyword. Returns matching series from all providers.
      parameters:
        - schema:
            type: string
          in: query
          name: q
          required: false
          description: Search keyword (e.g. "GDP", "unemployment", "inflation")
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Max results per source (default 20, max 50)
      security:
        - token: []
      responses:
        "200":
          description: Returns matching series grouped by source
          content:
            application/json:
              schema:
                type: object
                properties:
                  fred:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  ecb:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  imf:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  worldbank:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  eurostat:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/latest/fred:
    get:
      summary: FRED Latest Values API
      tags:
        - Macro
        - eu:w:14
      description: Returns the latest observation for all FRED series in a single
        request -- snapshot of current US macro conditions
      security:
        - token: []
      responses:
        "200":
          description: Returns latest FRED values
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/latest/ecb:
    get:
      summary: ECB Latest Values API
      tags:
        - Macro
        - eu:w:15
      description: Returns the latest observation for all ECB series -- snapshot of
        European rates, inflation, and monetary conditions
      security:
        - token: []
      responses:
        "200":
          description: Returns latest ECB values
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/macro/calendar/properties:
    get:
      summary: Macro Calendar properties API
      tags:
        - Macro
      description: Get the the available options to filter the calendar API.
      security:
        - token: []
      responses:
        "200":
          description: Returns a array of min/max timestamp values together with a country
            code
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    min:
                      type: number
                      example: 1722498600000
                    max:
                      type: number
                      example: 1728974700000
                    country_code:
                      type: string
                      example: fr
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/macro/calendar:
    get:
      summary: Macro Calendar API
      tags:
        - Macro
      description: Returns a list of dates relevant for macro da in the given
        timeframe and countries.
      parameters:
        - schema:
            type: string
            default: en
            nullable: true
          in: query
          name: language
          required: false
          style: form
          explode: false
        - schema:
            type: number
            nullable: true
          in: query
          name: start
          required: false
          description: Start timestamp used for filtering in milliseconds.
          style: form
          explode: false
        - schema:
            type: number
            nullable: true
          in: query
          name: end
          required: false
          description: End timestamp used for filtering in milliseconds.
          style: form
          explode: false
        - schema:
            type: string
            nullable: true
          in: query
          name: countries
          required: false
          description: Comma separated list of country_codes
          style: form
          explode: false
      security:
        - token: []
      responses:
        "200":
          description: Returns a array of ownership data including name, percentage, share
            count, change since last time, the date where shares had been filed
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    name:
                      type: string
                      example: API Crude Oil Inventory Change
                    country_code:
                      type: string
                      example: us
                    timestamp:
                      type: number
                      example: 1729110600000
                    actual_currency:
                      type: string
                      example: usd
                    actual_value:
                      type: number
                      example: 1
                    actual_multiplier:
                      type: number
                      example: 1000
                    previous_currency:
                      type: string
                      example: usd
                    previous_value:
                      type: number
                      example: 0.5
                    previous_multiplier:
                      type: number
                      example: 1000
                    consensus_currency:
                      type: string
                      example: usd
                    consensus_value:
                      type: number
                      example: 0.5
                    consensus_multiplier:
                      type: number
                      example: 1000
                    forecast_currency:
                      type: string
                      example: usd
                    forecast_value:
                      type: number
                      example: 0.8
                    forecast_multiplier:
                      type: number
                      example: 1000
                    full_day:
                      type: string
                      example: usd
                    reference_date:
                      type: string
                      example: usd
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/macro/credit-spreads:
    get:
      summary: Credit Spreads API
      tags:
        - Macro
        - eu:w:20
      description: Returns credit spread indices (OAS, Baa/Aaa spread, TED spread,
        yield curve spreads) from FRED data
      parameters:
        - schema:
            type: string
          in: query
          name: category
          required: false
          description: Filter by category (investment_grade, high_yield, baa_spread,
            aaa_spread, yield_curve, money_market)
        - schema:
            type: number
            default: 365
          in: query
          name: days
          required: false
          description: Number of days of history (default 365)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/forex/list:
    get:
      summary: Forex List API
      tags:
        - Forex
        - eu:w:1
      description: Returns a list of all available base currencies for forex rates
      security:
        - token: []
      responses:
        "200":
          description: Returns list of available base currencies
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  example:
                    - AED
                    - AFN
                    - ALL
                    - AMD
                    - ANG
                    - AOA
                    - ARS
                    - AUD
                    - AWG
                    - AZN
                example:
                  - AED
                  - AFN
                  - ALL
                  - AMD
                  - ANG
                  - AOA
                  - ARS
                  - AUD
                  - AWG
                  - AZN
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/forex/rates/{basecurrency}:
    get:
      summary: Forex Rates API
      tags:
        - Forex
        - eu:w:2
      description: Returns current exchange rates for the specified base currency
      parameters:
        - schema:
            type: string
          in: path
          name: basecurrency
          required: true
          description: Base currency code (e.g., EUR, USD, GBP)
      security:
        - token: []
      responses:
        "200":
          description: Returns exchange rates for the base currency
          content:
            application/json:
              schema:
                type: object
                properties:
                  base:
                    type: string
                    description: Base currency
                    example: EUR
                  rates:
                    type: object
                    description: Exchange rates to other currencies
                    additionalProperties:
                      type: number
                    example:
                      AED: 3.9825
                      AFN: 74.88
                      ALL: 104.21
                      AMD: 436.8848
                      ANG: 1.9542
                      AOA: 907.8905
                      ARS: 382.5698
                      AUD: 1.6664
                      AWG: 1.9626
                      AZN: 1.8433
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Base currency not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Base currency not found
  /api/1/earning-calls/list/{ticker}:
    get:
      summary: List earning call transcripts by ticker
      tags:
        - Earning Calls
        - eu:w:1
      description: Returns a list of all earning call transcripts for a given ticker symbol.
      parameters:
        - schema:
            type: string
            example: AAPL
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol (e.g., AAPL, MSFT)
      security:
        - token: []
      responses:
        "200":
          description: Returns an array of earning call transcript summaries for the given
            ticker
          content:
            application/json:
              schema:
                description: Returns an array of earning call transcript summaries for the given
                  ticker
                type: array
                items:
                  type: object
                  additionalProperties: true
                  properties:
                    id:
                      type: integer
                      description: Unique identifier for the transcript
                      example: 3001
                    ticker:
                      type: string
                      description: Stock ticker symbol
                      example: AAPL
                    datePublished:
                      type: integer
                      description: Unix timestamp of when the transcript was published
                      example: 1704067200000
                    title:
                      type: string
                      description: Title of the earning call transcript
                      example: Apple Inc. (AAPL) Q1 2024 Earnings Call Transcript
                    type:
                      type: string
                      description: Type of transcript (earnings_call, conference, presentation,
                        shareholder_meeting, webcast, other)
                      example: earnings_call
                    presentationUrl:
                      type: string
                      nullable: true
                      description: URL to the presentation file if available
                      example: https://media.eulerpool.com/presentation/3001.pdf
                    transcriptAudioUrl:
                      type: string
                      nullable: true
                      description: URL to the audio file if available
                      example: https://media.eulerpool.com/audio/3001.mp3
                    presentationAvailable:
                      type: boolean
                      description: Whether a presentation file is available
                      example: true
                    transcriptAudioAvailable:
                      type: boolean
                      description: Whether an audio file is available
                      example: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/earning-calls/transcript/{id}:
    get:
      summary: Get earning call transcript by ID
      tags:
        - Earning Calls
        - eu:w:2
      description: Returns the full content of a specific earning call transcript by its ID.
      parameters:
        - schema:
            type: integer
            example: 3001
          in: path
          name: id
          required: true
          description: Unique identifier for the transcript
      security:
        - token: []
      responses:
        "200":
          description: Returns the full earning call transcript content
          content:
            application/json:
              schema:
                description: Returns the full earning call transcript content
                type: object
                properties:
                  id:
                    type: integer
                    description: Unique identifier for the transcript
                    example: 3001
                  ticker:
                    type: string
                    description: Stock ticker symbol
                    example: AAPL
                  datePublished:
                    type: integer
                    description: Unix timestamp of when the transcript was published
                    example: 1704067200000
                  title:
                    type: string
                    description: Title of the earning call transcript
                    example: Apple Inc. (AAPL) Q1 2024 Earnings Call Transcript
                  type:
                    type: string
                    description: Type of transcript (earnings_call, conference, presentation,
                      shareholder_meeting, webcast, other)
                    example: earnings_call
                  presentationUrl:
                    type: string
                    nullable: true
                    description: URL to the presentation file if available
                    example: https://media.eulerpool.com/presentation/3001.pdf
                  transcriptAudioUrl:
                    type: string
                    nullable: true
                    description: URL to the audio file if available
                    example: https://media.eulerpool.com/audio/3001.mp3
                  presentationAvailable:
                    type: boolean
                    description: Whether a presentation file is available
                    example: true
                  transcriptAudioAvailable:
                    type: boolean
                    description: Whether an audio file is available
                    example: true
                  presentationType:
                    type: string
                    nullable: true
                    description: File type of the presentation (e.g., pdf, pptx)
                    example: pdf
                  transcriptAudioType:
                    type: string
                    nullable: true
                    description: File type of the audio (e.g., mp3, mp4)
                    example: mp3
                  parsedContent:
                    type: object
                    description: Parsed transcript content with participants and entries
                    properties:
                      companyParticipants:
                        type: array
                        items:
                          type: string
                        description: List of company participants
                        example:
                          - onathan Neilson - VP, IR
                          - Satya Nadella - Chairman and CEO
                      otherParticipants:
                        type: array
                        items:
                          type: string
                        description: List of other participants (analysts, etc.)
                        example:
                          - Keith Weiss - Morgan Stanley
                          - Brent Thill - Jefferies
                      entries:
                        type: array
                        items:
                          type: object
                          properties:
                            seq:
                              type: integer
                              description: Sequence number of the entry
                              example: 1
                            speaker:
                              type: string
                              description: Name of the speaker
                              example: Operator
                            content:
                              type: string
                              description: Content spoken by the speaker
                              example: Greetings, and welcome to the Microsoft Fiscal Year 2025 Third Quarter
                                Earnings Conference Call. At this time, all
                                participants are in a listen-only mode. A
                                question-and-answer session will follow the
                                formal presentation.
                        description: Array of transcript entries with speaker and content
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Transcript not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Transcript not found
  /api/1/crypto/list/{start}/{end}:
    get:
      summary: Crypto List (Paginated) API
      tags:
        - Crypto
        - eu:w:0
      description: Returns a paginated list of all cryptocurrency identifiers. Max
        2000 per request.
      parameters:
        - schema:
            type: integer
          in: path
          name: start
          required: true
          description: Offset to start at
        - schema:
            type: integer
          in: path
          name: end
          required: true
          description: End offset
      security:
        - token: []
      responses:
        "200":
          description: Returns a paged list of crypto identifiers
          content:
            application/json:
              schema:
                type: object
                properties:
                  start:
                    type: integer
                    example: 0
                  size:
                    type: integer
                    example: 2000
                  total:
                    type: integer
                    example: 10000
                  results:
                    type: array
                    example:
                      - BTC
                    items:
                      type: string
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/crypto/profile/{symbol}:
    get:
      summary: Crypto Profile API
      tags:
        - Crypto
        - eu:w:1
      description: Returns profile information for the given cryptocurrency
        symbol/identifier
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Cryptocurrency symbol (e.g. BTC, ETH) or identifier
      security:
        - token: []
      responses:
        "200":
          description: Returns crypto profile data
          content:
            application/json:
              schema:
                type: object
                properties:
                  identifier:
                    type: string
                    example: BTC
                  symbol:
                    type: string
                    example: BTC
                  name:
                    type: string
                    example: Bitcoin
                  description_en:
                    type: string
                    nullable: true
                  marketCap:
                    type: number
                    nullable: true
                  category:
                    type: string
                    example: coin
                    nullable: true
                  coingecko_rank:
                    type: number
                    example: 1
                    nullable: true
                  genesis_date:
                    type: string
                    example: 2009-01-03
                    nullable: true
                  hashing_algo:
                    type: string
                    example: SHA-256
                    nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Symbol not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Symbol not found
  /api/1/crypto/quotes/{identifier}:
    get:
      summary: Crypto Quotes API
      tags:
        - Crypto
        - eu:w:2
      description: Returns historical price data for the given cryptocurrency. Dates
        are in milliseconds since 1970.
      parameters:
        - schema:
            type: number
            nullable: true
            example: 1704067200000
          in: query
          name: startdate
          required: false
          description: Start date in milliseconds since 1970
        - schema:
            type: number
            nullable: true
            example: 1735689600000
          in: query
          name: enddate
          required: false
          description: End date in milliseconds since 1970
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: Crypto identifier or ISIN
      security:
        - token: []
      responses:
        "200":
          description: Returns price history as [timestamp, price] pairs
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    timestamp:
                      type: number
                      example: 1732621245000
                    price:
                      type: number
                      example: 42300
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Identifier not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Identifier not found
  /api/1/fair-value/by-isin/{identifier}:
    get:
      summary: Fair Value
      tags:
        - Equity
      description: Returns the computed fair value for a stock by identifier
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: &a1
        - token: []
      responses:
        "200":
          description: Fair value data
          content:
            application/json:
              schema:
                description: Fair value data
                type: object
                properties:
                  isin:
                    type: string
                    example: US0378331005
                  fairValue:
                    type: number
                    example: 185.5
                    nullable: true
                  fairValueIncome:
                    type: number
                    nullable: true
                  fairValueRevenue:
                    type: number
                    nullable: true
                  fairValueDividend:
                    type: number
                    nullable: true
                  lastPrice:
                    type: number
                    example: 178.72
                    nullable: true
                  upside:
                    type: number
                    example: 3.79
                    nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/aaqs/by-isin/{identifier}:
    get:
      summary: AAQS Score
      tags:
        - Equity
      description: Returns the AlleAktien Quality Score (AAQS) for a stock by identifier
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: AAQS data
          content:
            application/json:
              schema:
                description: AAQS data
                type: object
                properties:
                  ticker:
                    type: string
                    example: AAPL
                  score:
                    type: number
                    example: 7
                    description: Quality score 0-10
                  revenueGrowth10Y:
                    type: number
                    nullable: true
                    description: 10-year revenue CAGR
                  ebitGrowth10Y:
                    type: number
                    nullable: true
                    description: 10-year EBIT CAGR
                  profitContinuity10Y:
                    type: number
                    nullable: true
                    description: Consecutive profitable years (max 10)
                  revenueGrowth3Y:
                    type: number
                    nullable: true
                    description: 3-year revenue CAGR
                  ebitGrowth3Y:
                    type: number
                    nullable: true
                    description: 3-year EBIT CAGR
                  netDebtToEBIT:
                    type: number
                    nullable: true
                    description: Net debt / EBIT ratio
                  ebitMaxDrawdown10Y:
                    type: number
                    nullable: true
                    description: Max EBIT drawdown over 10 years
                  returnOnEquity:
                    type: number
                    nullable: true
                    description: Return on equity
                  roce:
                    type: number
                    nullable: true
                    description: Return on capital employed
                  expectedReturn:
                    type: number
                    nullable: true
                    description: Expected return
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/quotes/latest:
    get:
      summary: Latest Quotes
      tags:
        - Market Data
      description: Returns the most recent price for one or more tickers
      parameters:
        - schema:
            type: string
          in: query
          name: stocks
          required: false
          description: Comma-separated ticker symbols (e.g. AAPL,MSFT,GOOGL)
      security: *a1
      responses:
        "200":
          description: Latest price per ticker
          content:
            application/json:
              schema:
                description: Latest price per ticker
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/quotes/intraday/{identifier}:
    get:
      summary: Intraday Quotes
      tags:
        - Market Data
      description: Returns intraday price data for the current/previous trading day
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: exchange
          required: false
          description: Exchange code filter (optional)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Intraday quote ticks
          content:
            application/json:
              schema:
                description: Intraday quote ticks
                type: array
                items:
                  type: object
                  properties:
                    exchange:
                      type: string
                      example: XNAS
                    currency:
                      type: string
                      example: USD
                    price:
                      type: number
                      example: 178.42
                    volume:
                      type: number
                      example: 1250000
                    timestamp:
                      type: string
                      example: 2026-03-02T14:30:00Z
                    session:
                      type: string
                      enum:
                        - pre
                        - regular
                        - post
                      example: regular
                      description: "Trading session: pre-market, regular hours, or after-hours"
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/options/{ticker}:
    get:
      summary: Options Chain
      tags:
        - Market Data
      description: Returns the options chain (calls & puts) for a US-listed ticker via
        CBOE, grouped by expiration. Defaults to the nearest upcoming
        expiration; pass ?expiration=YYYY-MM-DD for a specific expiry or
        ?expiration=all for the full chain.
      parameters:
        - schema:
            type: string
          in: query
          name: expiration
          required: false
          description: Expiration date (YYYY-MM-DD), "all" for the full chain, or omit for
            the nearest expiration
        - schema:
            type: number
          in: query
          name: strike
          required: false
          description: Filter by exact strike price
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Options chain grouped by expiration
          content:
            application/json:
              schema:
                description: Options chain grouped by expiration
                type: object
                properties:
                  ticker:
                    type: string
                    example: AAPL
                  asOf:
                    type: string
                    example: 2026-06-10
                    nullable: true
                  totalExpirations:
                    type: number
                    example: 24
                  returnedExpirations:
                    type: number
                    example: 1
                  expirations:
                    type: array
                    items:
                      type: object
                      properties:
                        expiration_date:
                          type: string
                          example: 2026-06-19
                        calls:
                          type: array
                          items:
                            type: object
                            additionalProperties: true
                        puts:
                          type: array
                          items:
                            type: object
                            additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/analytics/52week/{ticker}:
    get:
      summary: 52-Week Analytics
      tags:
        - Market Data
      description: Returns price range statistics (high, low, position) for a given
        ticker and time range
      parameters:
        - schema:
            type: string
            default: 1y
          in: query
          name: range
          required: false
          description: "Time range: 1m, 3m, 6m, ytd, 1y, 2y, 5y, 10y, max"
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Range analytics
          content:
            application/json:
              schema:
                description: Range analytics
                type: object
                properties:
                  range:
                    type: string
                    example: 1y
                  days:
                    type: number
                    example: 365
                  low:
                    type: number
                    example: 142.5
                  high:
                    type: number
                    example: 198.23
                  currentPrice:
                    type: number
                    example: 178.72
                  rangePosition:
                    type: number
                    example: 65
                    description: Where current price sits in the range (0-100%)
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/indicators:
    get:
      summary: Market Indicators
      tags:
        - Market Data
      description: Returns market-wide indicators (VIX, Put/Call ratio, etc.) for the
        last N days
      parameters:
        - schema:
            type: number
            default: 30
          in: query
          name: days
          required: false
          description: Number of days to look back (default 30)
      security: *a1
      responses:
        "200":
          description: Market indicators grouped by name
          content:
            application/json:
              schema:
                description: Market indicators grouped by name
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/fx/{from}/{to}:
    get:
      summary: FX Rate Series
      tags:
        - Market Data
      description: Returns historical exchange rates between two currencies
      parameters:
        - schema:
            type: string
            default: 1y
          in: query
          name: range
          required: false
          description: "Time range: 1m, 3m, 6m, 1y, 2y, 5y, max"
        - schema:
            type: string
          in: path
          name: from
          required: true
          description: Base currency (e.g. EUR)
        - schema:
            type: string
          in: path
          name: to
          required: true
          description: Quote currency (e.g. USD)
      security: *a1
      responses:
        "200":
          description: FX rate time series
          content:
            application/json:
              schema:
                description: FX rate time series
                type: object
                properties:
                  from:
                    type: string
                    example: EUR
                  to:
                    type: string
                    example: USD
                  range:
                    type: string
                    example: 1y
                  rates:
                    type: array
                    items:
                      type: array
                      items:
                        type: number
                      description: "[timestamp_ms, rate]"
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/quotes/exchanges/{identifier}:
    get:
      summary: Multi-Exchange Quotes
      tags:
        - Market Data
      description: Returns real-time quotes from all exchanges where a stock is listed
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Exchange quotes with primary exchange
          content:
            application/json:
              schema:
                description: Exchange quotes with primary exchange
                type: object
                properties:
                  primary:
                    type: string
                    example: XNAS
                    description: Primary listing exchange
                    nullable: true
                  exchanges:
                    type: array
                    items:
                      type: object
                      properties:
                        exchange:
                          type: string
                          example: XNAS
                        currency:
                          type: string
                          example: USD
                        bid:
                          type: number
                          example: 178.4
                          nullable: true
                        ask:
                          type: number
                          example: 178.45
                          nullable: true
                        timestamp:
                          type: number
                          example: 1709312400
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/analytics/fx-returns/{identifier}:
    get:
      summary: Currency-Adjusted Returns
      tags:
        - Market Data
      description: Returns stock performance adjusted for currency fluctuations
      parameters:
        - schema:
            type: string
            default: 1y
          in: query
          name: range
          required: false
          description: "Time range: 1m, 3m, 6m, ytd, 1y, 2y, 5y, max (default 1y)"
        - schema:
            type: string
            default: EUR
          in: query
          name: currency
          required: false
          description: Target currency (default EUR)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Currency-adjusted return data
          content:
            application/json:
              schema:
                description: Currency-adjusted return data
                type: object
                properties:
                  isin:
                    type: string
                    example: US5949181045
                  stockCurrency:
                    type: string
                    example: USD
                  targetCurrency:
                    type: string
                    example: EUR
                  range:
                    type: string
                    example: 1y
                  returnLocal:
                    type: number
                    example: 15.3
                    description: Return in stock currency (%)
                  returnTarget:
                    type: number
                    example: 12.1
                    description: Return in target currency (%)
                  fxImpact:
                    type: number
                    example: -3.2
                    description: FX impact (%)
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/top-movers:
    get:
      summary: Top Gainers & Losers
      tags:
        - Market Data
      description: Returns stocks with the largest positive and negative daily price changes
      parameters:
        - schema:
            type: string
            default: US
          in: query
          name: country
          required: false
          description: "Filter by country code (e.g. US, DE). Default: US"
        - schema:
            type: number
            default: 20
          in: query
          name: limit
          required: false
          description: Number of gainers AND losers to return (default 20, max 50)
      security: *a1
      responses:
        "200":
          description: Top gainers and losers
          content:
            application/json:
              schema:
                description: Top gainers and losers
                type: object
                properties:
                  gainers:
                    type: array
                    items:
                      type: object
                      properties:
                        isin:
                          type: string
                        ticker:
                          type: string
                        name:
                          type: string
                        price:
                          type: number
                        change:
                          type: number
                          description: Absolute change
                        changePct:
                          type: number
                          description: Percentage change
                  losers:
                    type: array
                    items:
                      type: object
                      properties:
                        isin:
                          type: string
                        ticker:
                          type: string
                        name:
                          type: string
                        price:
                          type: number
                        change:
                          type: number
                        changePct:
                          type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/market-status:
    get:
      summary: Market Status
      tags:
        - Market Data
      description: Returns whether major stock exchanges are currently open or closed
        based on trading hours
      security: *a1
      responses:
        "200":
          description: Exchange status
          content:
            application/json:
              schema:
                description: Exchange status
                type: object
                properties:
                  exchanges:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: XNYS
                        name:
                          type: string
                          example: New York Stock Exchange
                        country:
                          type: string
                          example: US
                        isOpen:
                          type: boolean
                          example: true
                        timezone:
                          type: string
                          example: America/New_York
                        localTime:
                          type: string
                          example: 14:30
                  timestamp:
                    type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/exchanges:
    get:
      summary: Exchanges
      tags:
        - Market Data
      description: Returns the full list of stock exchanges covered by our market
        data, including MIC codes, countries, trading hours, and data sources
      security: *a1
      responses:
        "200":
          description: Supported exchanges
          content:
            application/json:
              schema:
                description: Supported exchanges
                type: array
                items:
                  type: object
                  properties:
                    code:
                      type: string
                      example: XNYS
                      description: ISO 10383 MIC or short code
                    name:
                      type: string
                      example: New York Stock Exchange
                    country:
                      type: string
                      example: US
                    region:
                      type: string
                      example: Americas
                    timezone:
                      type: string
                      example: America/New_York
                    tradingHours:
                      type: string
                      example: 09:30-16:00
                      description: Regular session in local time
                    holidays:
                      type: boolean
                      example: true
                      description: Whether holiday schedule data is available
                    liveQuotes:
                      type: boolean
                      example: true
                      description: Whether real-time quote data is available
                    intraday:
                      type: boolean
                      example: true
                      description: Whether intraday bar data is available
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/holidays:
    get:
      summary: Market Holidays
      tags:
        - Market Data
      description: Returns the full exchange holiday schedule including early-close
        days for 17 global exchanges (US, UK, Germany, France, Netherlands,
        Switzerland, Canada, Australia, Japan, Hong Kong, Denmark, Sweden,
        Finland, Norway, Italy, Spain, Singapore). Updated monthly.
      security: *a1
      responses:
        "200":
          description: Exchange holiday schedule
          content:
            application/json:
              schema:
                description: Exchange holiday schedule
                type: array
                items:
                  type: object
                  properties:
                    exchange:
                      type: string
                      example: US
                    holidays:
                      type: array
                      items:
                        type: object
                        properties:
                          date:
                            type: string
                            example: 2025-07-04
                          eventName:
                            type: string
                            example: Independence Day
                          tradingHour:
                            type: string
                            example: ""
                            nullable: true
                            description: Empty = full close; "09:30-13:00" = early close with hours
                          postMarket:
                            type: string
                            example: ""
                            nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/quotes/bulk:
    post:
      summary: Bulk Quotes
      tags:
        - Market Data
      description: Returns the latest quote for multiple ISINs in a single request (max 50)
      security: *a1
      responses:
        "200":
          description: Latest quotes for requested ISINs
          content:
            application/json:
              schema:
                description: Latest quotes for requested ISINs
                type: object
                properties:
                  quotes:
                    type: array
                    items:
                      type: object
                      properties:
                        isin:
                          type: string
                          example: US0378331005
                        ticker:
                          type: string
                          example: AAPL
                        name:
                          type: string
                          example: Apple Inc
                          nullable: true
                        price:
                          type: number
                          example: 178.72
                        currency:
                          type: string
                          example: USD
                        timestamp:
                          type: number
                          example: 1709312400000
                        change:
                          type: number
                          example: 2.15
                          nullable: true
                          description: Absolute change from previous close
                        changePct:
                          type: number
                          example: 1.22
                          nullable: true
                          description: Percentage change
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        isin:
                          type: string
                        error:
                          type: string
                    description: ISINs that could not be resolved
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/analytics/risk/{identifier}:
    get:
      summary: Risk & Return Analytics
      tags:
        - Market Data
      description: Returns volatility, max drawdown, Sharpe ratio, and return
        statistics for a stock
      parameters:
        - schema:
            type: string
            default: 1y
          in: query
          name: range
          required: false
          description: "Time range: 1m, 3m, 6m, 1y, 2y, 5y (default 1y)"
        - schema:
            type: number
            default: 4.5
          in: query
          name: riskFreeRate
          required: false
          description: Annual risk-free rate in % (default 4.5)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Risk and return analytics
          content:
            application/json:
              schema:
                description: Risk and return analytics
                type: object
                properties:
                  isin:
                    type: string
                  range:
                    type: string
                  dataPoints:
                    type: number
                    description: Number of daily price observations
                  totalReturn:
                    type: number
                    example: 15.3
                    description: Total return (%)
                  annualizedReturn:
                    type: number
                    example: 15.3
                    description: Annualized return (%)
                  dailyVolatility:
                    type: number
                    example: 1.82
                    description: Daily volatility / std dev (%)
                  annualizedVolatility:
                    type: number
                    example: 28.9
                    description: Annualized volatility (%)
                  sharpeRatio:
                    type: number
                    example: 0.85
                    description: Sharpe ratio (annualized)
                  sortinoRatio:
                    type: number
                    example: 1.12
                    nullable: true
                    description: Sortino ratio (downside risk only)
                  maxDrawdown:
                    type: number
                    example: -18.4
                    description: Maximum drawdown (%)
                  maxDrawdownStart:
                    type: number
                    nullable: true
                    description: Timestamp of drawdown peak
                  maxDrawdownEnd:
                    type: number
                    nullable: true
                    description: Timestamp of drawdown trough
                  variance:
                    type: number
                    description: Daily return variance
                  skewness:
                    type: number
                    nullable: true
                    description: Return distribution skewness
                  kurtosis:
                    type: number
                    nullable: true
                    description: Return distribution excess kurtosis
                  bestDay:
                    type: number
                    example: 5.2
                    description: Best single-day return (%)
                  worstDay:
                    type: number
                    example: -4.8
                    description: Worst single-day return (%)
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/analytics/correlation:
    get:
      summary: Stock Correlation
      tags:
        - Market Data
      description: Returns the correlation coefficient and beta between two stocks
        over a given time range
      parameters:
        - schema:
            type: string
          in: query
          name: isin1
          required: true
          description: First ISIN
        - schema:
            type: string
          in: query
          name: isin2
          required: true
          description: Second ISIN
        - schema:
            type: string
            default: 1y
          in: query
          name: range
          required: false
          description: "Time range: 1m, 3m, 6m, 1y, 2y (default 1y)"
      security: *a1
      responses:
        "200":
          description: Correlation data
          content:
            application/json:
              schema:
                description: Correlation data
                type: object
                properties:
                  isin1:
                    type: string
                  isin2:
                    type: string
                  range:
                    type: string
                  correlation:
                    type: number
                    example: 0.72
                    description: Pearson correlation coefficient (-1 to 1)
                  beta:
                    type: number
                    example: 1.15
                    description: Beta of isin1 relative to isin2
                  covariance:
                    type: number
                    description: Covariance of daily returns
                  dataPoints:
                    type: number
                    description: Number of overlapping trading days
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/options-flow:
    get:
      summary: Options Flow
      tags:
        - Market Data
      description: Returns the most unusual options activity across all tickers
      parameters:
        - schema:
            type: number
            default: 50
          in: query
          name: limit
          required: false
          description: Number of signals to return
        - schema:
            type: string
          in: query
          name: type
          required: false
          description: "Filter by signal type: unusual_volume, large_premium, iv_spike"
      security: *a1
      responses:
        "200":
          description: Unusual options activity signals
          content:
            application/json:
              schema:
                description: Unusual options activity signals
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/options-flow/{ticker}:
    get:
      summary: Options Flow by Ticker
      tags:
        - Market Data
      description: Returns unusual options activity for a specific ticker
      parameters:
        - schema:
            type: number
            default: 30
          in: query
          name: days
          required: false
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Options flow signals for ticker
          content:
            application/json:
              schema:
                description: Options flow signals for ticker
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/dark-pool/{ticker}:
    get:
      summary: Dark Pool Volume
      tags:
        - Market Data
      description: Returns dark pool / ATS trading volume for a ticker
      parameters:
        - schema:
            type: number
            default: 90
          in: query
          name: days
          required: false
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Dark pool volume data
          content:
            application/json:
              schema:
                description: Dark pool volume data
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/l2/{ticker}:
    get:
      summary: Level 2 Order Book
      tags:
        - Market Data
      description: Returns the top-of-book Level 2 snapshot (bids/asks) for a
        US-listed ticker. Requires Polygon.io API key.
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Order book snapshot
          content:
            application/json:
              schema:
                description: Order book snapshot
                type: object
                properties:
                  ticker:
                    type: string
                  timestamp:
                    type: number
                  bids:
                    type: array
                    items:
                      type: object
                      properties:
                        price:
                          type: number
                        size:
                          type: number
                  asks:
                    type: array
                    items:
                      type: object
                      properties:
                        price:
                          type: number
                        size:
                          type: number
                  midpoint:
                    type: number
                    nullable: true
                  spread:
                    type: number
                    nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/last-trade/{ticker}:
    get:
      summary: Last Trade
      tags:
        - Market Data
      description: Returns the most recent trade for a ticker via Polygon.io
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Last trade
          content:
            application/json:
              schema:
                description: Last trade
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/last-quote/{ticker}:
    get:
      summary: Last NBBO Quote
      tags:
        - Market Data
      description: Returns the most recent NBBO quote for a ticker via Polygon.io
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Last NBBO quote
          content:
            application/json:
              schema:
                description: Last NBBO quote
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/risk-metrics/{ticker}:
    get:
      summary: Precomputed Risk Metrics
      tags:
        - Market Data
      description: Returns precomputed risk/return metrics (Sharpe, beta, volatility,
        drawdown)
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Default Response
  /api/1/market/sector-performance:
    get:
      summary: Sector Performance
      tags:
        - Market Data
      description: Returns sector returns for a given period
      parameters:
        - schema:
            type: string
            default: 1d
          in: query
          name: period
          required: false
        - schema:
            type: number
            default: 30
          in: query
          name: days
          required: false
      security: *a1
      responses:
        "200":
          description: Default Response
  /api/1/market/breadth:
    get:
      summary: Market Breadth
      tags:
        - Market Data
      description: Returns advancing/declining stocks, A/D ratio
      parameters:
        - schema:
            type: number
            default: 30
          in: query
          name: days
          required: false
      security: *a1
      responses:
        "200":
          description: Default Response
  /api/1/market/etf-flows/{ticker}:
    get:
      summary: ETF Fund Flows
      tags:
        - Market Data
      description: Returns estimated fund flows for an ETF
      parameters:
        - schema:
            type: number
            default: 90
          in: query
          name: days
          required: false
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Default Response
  /api/1/market/most-shorted:
    get:
      summary: Most Shorted Stocks
      tags:
        - Market Data
      description: Returns stocks with the highest short interest (% of float)
      parameters:
        - schema:
            type: number
            default: 50
          in: query
          name: limit
          required: false
      security: *a1
      responses:
        "200":
          description: Default Response
  /api/1/market/vix/term-structure:
    get:
      summary: VIX Term Structure
      tags:
        - Market Data
      description: Returns the VIX futures term structure showing implied volatility
        across different expiration dates. Useful for analyzing
        contango/backwardation in volatility.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: date
          required: false
          description: "Specific date (YYYY-MM-DD). Default: latest available"
        - schema:
            type: number
            default: 30
          in: query
          name: days
          required: false
          description: Number of days of history (default 30, max 365)
      security: *a1
      responses:
        "200":
          description: VIX term structure data
          content:
            application/json:
              schema:
                description: VIX term structure data
                type: array
                items:
                  type: object
                  additionalProperties: true
                  properties:
                    date:
                      type: string
                      example: 2026-04-01
                    expiration:
                      type: string
                      example: 2026-05-21
                      nullable: true
                    vix_value:
                      type: number
                      example: 18.45
                      nullable: true
                    maturity_days:
                      type: number
                      example: 30
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/market/cboe/indices:
    get:
      summary: CBOE Indices
      tags:
        - Market Data
      description: Returns CBOE index values including VIX, SKEW, VIX9D, VIX3M, VIX6M,
        and other volatility/sentiment indices
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: symbol
          required: false
          description: Index symbol filter (e.g. VIX, SKEW, VIX9D)
        - schema:
            type: number
            default: 30
          in: query
          name: days
          required: false
          description: Number of days of history (default 30, max 365)
      security: *a1
      responses:
        "200":
          description: CBOE index data
          content:
            application/json:
              schema:
                description: CBOE index data
                type: array
                items:
                  type: object
                  additionalProperties: true
                  properties:
                    symbol:
                      type: string
                      example: VIX
                    date:
                      type: string
                      example: 2026-04-01
                    open:
                      type: number
                      example: 17.95
                      nullable: true
                    high:
                      type: number
                      example: 18.85
                      nullable: true
                    low:
                      type: number
                      example: 17.5
                      nullable: true
                    close:
                      type: number
                      example: 18.45
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/research/recommendations/{ticker}:
    get:
      summary: Analyst Recommendations
      tags:
        - Research
      description: Returns analyst recommendation trends (buy/hold/sell) and consensus
        price targets
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Monthly recommendation history with price targets
          content:
            application/json:
              schema:
                description: Monthly recommendation history with price targets
                type: array
                items:
                  type: object
                  properties:
                    period:
                      type: string
                      example: 2026-03-01
                    strongBuy:
                      type: number
                      example: 12
                    buy:
                      type: number
                      example: 18
                    hold:
                      type: number
                      example: 8
                    sell:
                      type: number
                      example: 2
                    strongSell:
                      type: number
                      example: 0
                    targetMean:
                      type: number
                      example: 210.5
                      nullable: true
                    targetMedian:
                      type: number
                      example: 215
                      nullable: true
                    targetHigh:
                      type: number
                      example: 260
                      nullable: true
                    targetLow:
                      type: number
                      example: 170
                      nullable: true
                    lastQuote:
                      type: number
                      example: 178.72
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/research/news/{ticker}:
    get:
      summary: Company News
      tags:
        - Research
      description: Returns the latest news articles mentioning a specific company
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Recent company news articles
          content:
            application/json:
              schema:
                description: Recent company news articles
                type: array
                items:
                  type: object
                  properties:
                    headline:
                      type: string
                      example: Apple Reports Record Q4 Revenue
                    summary:
                      type: string
                      nullable: true
                    source:
                      type: string
                      example: Reuters
                    url:
                      type: string
                      example: https://example.com/article
                    datetime:
                      type: string
                      example: 2026-03-01T10:30:00Z
                    category:
                      type: string
                      nullable: true
                    image:
                      type: string
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/research/press-releases/{ticker}:
    get:
      summary: Press Releases
      tags:
        - Research
      description: Returns official company press releases
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Company press releases
          content:
            application/json:
              schema:
                description: Company press releases
                type: array
                items:
                  type: object
                  additionalProperties: true
                  properties:
                    symbol:
                      type: string
                      example: AAPL
                    datetime:
                      type: string
                      example: 2026-03-01T08:00:00Z
                    headline:
                      type: string
                      example: Apple Announces New Product Launch
                    description:
                      type: string
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/mutual-fund/profile/{identifier}:
    get:
      summary: Mutual Fund Profile
      tags:
        - Mutual Funds
      description: Returns profile/overview for a mutual fund by ISIN or symbol
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Mutual fund profile
          content:
            application/json:
              schema:
                description: Mutual fund profile
                type: object
                properties:
                  isin:
                    type: string
                    example: LU0099575291
                  name:
                    type: string
                    example: Fidelity Global Fund
                  category:
                    type: string
                    nullable: true
                  family:
                    type: string
                    nullable: true
                  currency:
                    type: string
                    example: USD
                    nullable: true
                  nav:
                    type: number
                    example: 42.15
                    nullable: true
                  totalAssets:
                    type: number
                    nullable: true
                  expenseRatio:
                    type: number
                    nullable: true
                  inceptionDate:
                    type: string
                    nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/mutual-fund/holdings/{symbol}:
    get:
      summary: Mutual Fund Holdings
      tags:
        - Mutual Funds
      description: Returns top holdings for a mutual fund
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Fund holdings
          content:
            application/json:
              schema:
                description: Fund holdings
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      example: Apple Inc
                    symbol:
                      type: string
                      example: AAPL
                      nullable: true
                    weight:
                      type: number
                      example: 5.2
                      nullable: true
                    shares:
                      type: number
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/mutual-fund/sectors/{symbol}:
    get:
      summary: Mutual Fund Sectors
      tags:
        - Mutual Funds
      description: Returns sector allocation breakdown
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Sector breakdown
          content:
            application/json:
              schema:
                description: Sector breakdown
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/mutual-fund/countries/{symbol}:
    get:
      summary: Mutual Fund Countries
      tags:
        - Mutual Funds
      description: Returns geographic allocation breakdown
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Country breakdown
          content:
            application/json:
              schema:
                description: Country breakdown
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/calendar/ipo:
    get:
      summary: IPO Calendar
      tags:
        - Calendar
      description: Returns upcoming and recent IPOs
      security: *a1
      responses:
        "200":
          description: IPO listings
          content:
            application/json:
              schema:
                description: IPO listings
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      example: ExampleCo Inc
                    symbol:
                      type: string
                      example: EXCO
                      nullable: true
                    exchange:
                      type: string
                      example: NASDAQ
                      nullable: true
                    date:
                      type: string
                      example: 2026-03-15
                    priceRange:
                      type: string
                      example: $18-$22
                      nullable: true
                    shares:
                      type: number
                      nullable: true
                    status:
                      type: string
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/calendar/dividends/{year}:
    get:
      summary: Dividend Calendar
      tags:
        - Calendar
      description: Returns ex-dividend dates and amounts for a given year
      parameters:
        - schema:
            type: number
            default: 500
          in: query
          name: limit
          required: false
          description: Max entries to return (default 500, max 5000)
        - schema:
            type: string
          in: query
          name: country
          required: false
          description: Filter by country code (e.g. US, DE)
        - schema:
            type: string
          in: path
          name: year
          required: true
          description: Year (e.g. 2026) or "initial" for current ± 1 year
      security: *a1
      responses:
        "200":
          description: "Nested object: { year: { month (1-12): { day: [entries] } } }"
          content:
            application/json:
              schema:
                description: "Nested object: { year: { month (1-12): { day: [entries] } } }"
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/calendar/earnings/{date}:
    get:
      summary: Earnings Calendar (Weekly)
      tags:
        - Calendar
      description: Returns all earnings reports for the week containing the given date
      parameters:
        - schema:
            type: string
          in: path
          name: date
          required: true
          description: Any date in the target week (YYYY-MM-DD)
      security: *a1
      responses:
        "200":
          description: Earnings reports for the week
          content:
            application/json:
              schema:
                description: Earnings reports for the week
                type: array
                items:
                  type: object
                  properties:
                    symbol:
                      type: string
                      example: AAPL
                    name:
                      type: string
                      example: Apple
                    isin:
                      type: string
                      example: US0378331005
                    date:
                      type: string
                      example: 2026-03-05
                    epsEstimate:
                      type: number
                      nullable: true
                    revenueEstimate:
                      type: number
                      nullable: true
                    time:
                      type: string
                      example: bmo
                      description: bmo = before market open, amc = after market close
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/calendar/earnings-by-symbol/{symbol}:
    get:
      summary: Earnings Calendar by Symbol
      tags:
        - Calendar
      description: Returns upcoming and past earnings dates for a specific company
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Earnings dates for the symbol
          content:
            application/json:
              schema:
                description: Earnings dates for the symbol
                type: array
                items:
                  type: object
                  properties:
                    symbol:
                      type: string
                      example: AAPL
                    date:
                      type: string
                      example: 2026-04-30
                    epsEstimate:
                      type: number
                      nullable: true
                    epsActual:
                      type: number
                      nullable: true
                    revenueEstimate:
                      type: number
                      nullable: true
                    revenueActual:
                      type: number
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/calendar/earnings-surprises/{symbol}:
    get:
      summary: Earnings Surprises
      tags:
        - Calendar
      description: Returns historical earnings surprises (actual vs estimate) for a company
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Earnings surprise history
          content:
            application/json:
              schema:
                description: Earnings surprise history
                type: array
                items:
                  type: object
                  properties:
                    symbol:
                      type: string
                      example: AAPL
                    date:
                      type: string
                      example: 2026-01-30
                    epsEstimate:
                      type: number
                      example: 2.1
                      nullable: true
                    epsActual:
                      type: number
                      example: 2.18
                      nullable: true
                    epsDifference:
                      type: number
                      example: 0.08
                      nullable: true
                    surprisePercent:
                      type: number
                      example: 3.81
                      nullable: true
                    quarter:
                      type: number
                      example: 1
                      nullable: true
                    year:
                      type: number
                      example: 2026
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/calendar/dividends-forward:
    get:
      summary: Forward Dividend Calendar
      tags:
        - Calendar
      description: Returns upcoming ex-dividend dates from the forward dividend calendar
      parameters:
        - schema:
            type: number
            default: 100
          in: query
          name: limit
          required: false
          description: Max entries to return (default 100, max 500)
        - schema:
            type: number
            default: 60
          in: query
          name: days
          required: false
          description: Look-ahead window in days (default 60, max 365)
      security: *a1
      responses:
        "200":
          description: Forward dividend calendar
          content:
            application/json:
              schema:
                description: Forward dividend calendar
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/calendar/ma-deals:
    get:
      summary: M&A Deal Tracker
      tags:
        - Calendar
      description: Returns announced and completed M&A transactions from SEC filings
      parameters:
        - schema:
            type: string
          in: query
          name: status
          required: false
          description: "Filter by status: announced, completed, all (default all)"
        - schema:
            type: number
            default: 100
          in: query
          name: limit
          required: false
        - schema:
            type: number
            default: 90
          in: query
          name: days
          required: false
      security: *a1
      responses:
        "200":
          description: M&A deal list
          content:
            application/json:
              schema:
                description: M&A deal list
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/calendar/economic-calendar:
    get:
      summary: Economic Calendar
      tags:
        - Calendar
      description: Returns upcoming economic events (FOMC, CPI, NFP, etc.) from FRED
        releases
      parameters:
        - schema:
            type: number
            default: 30
          in: query
          name: days
          required: false
          description: Days ahead to look (default 30)
        - schema:
            type: number
            default: 100
          in: query
          name: limit
          required: false
          description: Max results (default 100)
      security: *a1
      responses:
        "200":
          description: Economic calendar events
          content:
            application/json:
              schema:
                description: Economic calendar events
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/calendar/economic-calendar/history:
    get:
      summary: Economic Calendar History
      tags:
        - Calendar
      description: Returns past economic events
      parameters:
        - schema:
            type: number
            default: 30
          in: query
          name: days
          required: false
          description: Days back (default 30)
        - schema:
            type: number
            default: 100
          in: query
          name: limit
          required: false
      security: *a1
      responses:
        "200":
          description: Default Response
  /api/1/index/constituents/{id}:
    get:
      summary: Index Constituents
      tags:
        - Indices
      description: Returns companies in a stock market index (S&P 500, DAX, etc.)
      parameters:
        - schema:
            type: number
            default: 0
          in: query
          name: start
          required: false
          description: Pagination offset (default 0)
        - schema:
            type: number
            default: 500
          in: query
          name: end
          required: false
          description: Pagination end (default 500)
        - schema:
            type: string
          in: path
          name: id
          required: true
          description: Index identifier (e.g. sp500, dax, nasdaq100, dowjones)
      security: *a1
      responses:
        "200":
          description: Companies in the index
          content:
            application/json:
              schema:
                description: Companies in the index
                type: array
                items:
                  type: object
                  properties:
                    isin:
                      type: string
                      example: US0378331005
                    ticker:
                      type: string
                      example: AAPL
                    name:
                      type: string
                      example: Apple
                    country:
                      type: string
                      example: US
                      nullable: true
                    sector:
                      type: string
                      example: Technology
                      nullable: true
                    industry:
                      type: string
                      example: Consumer Electronics
                      nullable: true
                    mcap:
                      type: number
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/screener/screen:
    post:
      summary: Stock Screener
      tags:
        - Screener
      description: 'Filter stocks by fundamental criteria (market cap, P/E, sector,
        country, etc.). Filters use { id, value, equality } where equality is
        one of <=, >=, =, IN, NOT_IN, LIKE. String filters (country, gsector,
        ...) should use IN with an array value; numeric filters (marketCap, ...)
        use <=, >= or =. Example: [{ "id": "country", "value": ["US"],
        "equality": "IN" }, { "id": "marketCap", "value": 1000000000,
        "equality": ">=" }]. See /screener/metadata for available countries,
        sectors, and industries.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: array
                  description: 'Filter criteria. Each entry: { id: column, value, equality: "<=" |
                    ">=" | "=" | "IN" | "NOT_IN" | "LIKE" }. "field" is accepted
                    as an alias for "id"; equality defaults to IN for
                    strings/arrays and >= for numbers.'
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Column to filter on (e.g. country, gsector, marketCap, ipo, index)
                      field:
                        type: string
                        description: Alias for id
                      value:
                        description: "Filter value: number, string, or array of strings (for IN/NOT_IN)"
                      equality:
                        type: string
                        enum:
                          - <=
                          - ">="
                          - =
                          - IN
                          - NOT_IN
                          - LIKE
                order:
                  type: object
                  description: 'Sort order (e.g. { field: "marketCap", direction: "desc" })'
                page:
                  type: number
                  description: Page number (0-based)
                  default: 0
                size:
                  type: number
                  description: Results per page (max 100)
                  default: 100
      security: *a1
      responses:
        "200":
          description: Screener results
          content:
            application/json:
              schema:
                description: Screener results
                type: array
                items:
                  type: object
                  properties:
                    isin:
                      type: string
                      example: US0378331005
                    ticker:
                      type: string
                      example: AAPL
                    name:
                      type: string
                      example: Apple
                    country:
                      type: string
                      nullable: true
                    sector:
                      type: string
                      nullable: true
                    industry:
                      type: string
                      nullable: true
                    marketCap:
                      type: number
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/screener/universe:
    get:
      summary: Screener Universe
      tags:
        - Screener
      description: Returns available countries and continents for the stock screener
      security: *a1
      responses:
        "200":
          description: Screener universe metadata
          content:
            application/json:
              schema:
                description: Screener universe metadata
                type: array
                items:
                  type: object
                  properties:
                    country:
                      type: string
                      example: US
                    continent:
                      type: string
                      example: North America
                      nullable: true
                    countryName:
                      type: string
                      example: United States
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/screener/search/{query}:
    get:
      summary: Symbol Search
      tags:
        - Screener
      description: Search for stocks, ETFs, crypto, bonds, and mutual funds by name,
        ticker, or ISIN
      parameters:
        - schema:
            type: string
          in: path
          name: query
          required: true
          description: Search query (e.g. "Apple", "AAPL", or "US0378331005")
      security: *a1
      responses:
        "200":
          description: Search results (max 20)
          content:
            application/json:
              schema:
                description: Search results (max 20)
                type: array
                items:
                  type: object
                  properties:
                    type:
                      type: string
                      example: stock
                      description: stock, etf, crypto, fund, bond, index, macro
                    name:
                      type: string
                      example: Apple
                    isin:
                      type: string
                      example: US0378331005
                      nullable: true
                    ticker:
                      type: string
                      example: AAPL
                      nullable: true
                    wkn:
                      type: string
                      nullable: true
                    currency:
                      type: string
                      example: USD
                      nullable: true
                    country:
                      type: string
                      example: US
                      nullable: true
                    industry:
                      type: string
                      nullable: true
                    marketcap:
                      type: number
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/screener/metadata:
    get:
      summary: Screener Metadata
      tags:
        - Screener
      description: "Returns available filter dimensions for the stock screener:
        distinct countries (with stock count), sectors, and industries. Use this
        to build screener UIs or validate filter parameters."
      security: *a1
      responses:
        "200":
          description: Screener filter metadata
          content:
            application/json:
              schema:
                description: Screener filter metadata
                type: object
                properties:
                  countries:
                    type: array
                    items:
                      type: object
                      properties:
                        country:
                          type: string
                          example: US
                        countryName:
                          type: string
                          example: United States
                          nullable: true
                        continent:
                          type: string
                          example: North America
                          nullable: true
                        count:
                          type: number
                          example: 5432
                  sectors:
                    type: array
                    items:
                      type: object
                      properties:
                        sector:
                          type: string
                          example: Technology
                        count:
                          type: number
                          example: 1234
                  industries:
                    type: array
                    items:
                      type: object
                      properties:
                        industry:
                          type: string
                          example: Software
                        sector:
                          type: string
                          example: Technology
                          nullable: true
                        count:
                          type: number
                          example: 456
                  totalStocks:
                    type: number
                    example: 45000
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/bonds/yield-curve:
    get:
      summary: Government Bond Yield Curve API
      tags:
        - Bonds
        - eu:w:2
      description: Returns the latest government bond yield history per tenor, updated
        daily. Each entry holds a tenor code (3m, 6m, 1y … 30y), the latest
        observation date, and the recent daily yield history. US Treasury yields
        by default; use ?country= for CA, CH, EU, or SE government curves.
      parameters:
        - schema:
            type: string
            enum:
              - US
              - CA
              - CH
              - EU
              - SE
            default: US
          in: query
          name: country
          required: false
          description: Country/region of the government curve
        - schema:
            type: number
            default: 90
            maximum: 365
          in: query
          name: days
          required: false
          description: Days of daily yield history per tenor
      security:
        - token: []
      responses:
        "200":
          description: Returns yield curve data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    code:
                      type: string
                      example: 10y
                      description: Tenor code
                    date:
                      type: string
                      example: 2026-06-09
                      description: Latest observation date
                    yield:
                      type: number
                      example: 4.42
                      description: Latest yield in percent
                    maturity_json:
                      type: array
                      description: "Daily yield history: [{ d: date, v: yield }]"
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/bonds/list:
    get:
      summary: Bond List / Search API
      tags:
        - Bonds
        - eu:w:3
      description: Returns a list of available bonds. Optionally filter by ISIN
        prefix, exchange, or description keyword. Paginated.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: q
          required: false
          description: Search keyword (matches ISIN or description)
        - schema:
            type: string
            nullable: true
          in: query
          name: exchange
          required: false
          description: Filter by exchange code
        - schema:
            type: number
          in: query
          name: offset
          required: false
          description: Pagination offset (default 0)
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Results per page (default 50, max 200)
      security:
        - token: []
      responses:
        "200":
          description: Returns bond list
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      properties:
                        isin:
                          type: string
                          example: US912810TD00
                        figi:
                          type: string
                          nullable: true
                        description:
                          type: string
                          nullable: true
                        exchange:
                          type: string
                          nullable: true
                      type: object
                  total:
                    type: number
                    example: 12345
                  offset:
                    type: number
                    example: 0
                  limit:
                    type: number
                    example: 50
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/alternative/superinvestors/list:
    get:
      summary: Superinvestors List API
      tags:
        - Alternative Data
        - eu:w:0
      description: Returns a list of tracked superinvestors (e.g. Warren Buffett, Ray
        Dalio) with their profiles
      security:
        - token: []
      responses:
        "200":
          description: Returns list of superinvestors
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    name:
                      type: string
                      example: Warren Buffett
                    slug:
                      type: string
                      example: warren-buffett
                    cik:
                      type: string
                      example: "1067983"
                      nullable: true
                    firm:
                      type: string
                      example: Berkshire Hathaway
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/alternative/superinvestors/holdings/{slug}:
    get:
      summary: Superinvestor Holdings API
      tags:
        - Alternative Data
        - eu:w:1
      description: Returns the portfolio holdings of a specific superinvestor by slug
      parameters:
        - schema:
            type: string
          in: path
          name: slug
          required: true
          description: Investor slug (e.g. warren-buffett)
      security:
        - token: []
      responses:
        "200":
          description: Returns investor profile and holdings
          content:
            application/json:
              schema:
                type: object
                properties:
                  investor:
                    type: object
                    additionalProperties: true
                  holdings:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Investor not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Investor not found
  /api/1/alternative/superinvestors/top-holdings:
    get:
      summary: Superinvestor Top Holdings API
      tags:
        - Alternative Data
        - eu:w:2
      description: Returns the most popular holdings across all tracked superinvestors
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 30)
      security:
        - token: []
      responses:
        "200":
          description: Returns top holdings across superinvestors
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/alternative/superinvestors/recent-activity:
    get:
      summary: Superinvestor Recent Activity API
      tags:
        - Alternative Data
        - eu:w:3
      description: Returns recent buy/sell activity from tracked superinvestors
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 100)
      security:
        - token: []
      responses:
        "200":
          description: Returns recent superinvestor trades
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/alternative/congress-trading:
    get:
      summary: Congress Trading API
      tags:
        - Alternative Data
        - eu:w:4
      description: Returns recent stock trades disclosed by members of US Congress
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: symbol
          required: false
          description: Filter by stock symbol
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 100, max 500)
      security:
        - token: []
      responses:
        "200":
          description: Returns congress trading data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    politician:
                      type: string
                      example: Nancy Pelosi
                    symbol:
                      type: string
                      example: NVDA
                    transaction_type:
                      type: string
                      example: Purchase
                    amount_from:
                      type: number
                      example: 100001
                      nullable: true
                    amount_to:
                      type: number
                      example: 250000
                      nullable: true
                    transaction_date:
                      type: string
                      example: 2024-01-15
                    filing_date:
                      type: string
                      example: 2024-02-01
                    chamber:
                      type: string
                      example: House
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/alternative/investment-themes:
    get:
      summary: Investment Themes API
      tags:
        - Alternative Data
        - eu:w:5
      description: Returns curated portfolios of stocks grouped by investment themes
        (e.g. AI, Clean Energy, Robotics)
      security:
        - token: []
      responses:
        "200":
          description: Returns investment themes
          content:
            application/json:
              schema:
                type: array
                items:
                  additionalProperties: true
                  properties:
                    theme:
                      type: string
                      example: financialExchangesData
                    symbols_json:
                      type: array
                      items:
                        type: object
                        additionalProperties: true
                    last_updated:
                      type: string
                      example: 2024-01-15
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/alternative/fear-and-greed:
    get:
      summary: Fear & Greed Index API
      tags:
        - Alternative Data
        - eu:w:6
      description: Returns the latest market Fear & Greed Index value plus recent
        history per sub-indicator. Use ?days= to control the history window
        (default 30, max 365) and ?indicator= to select a single sub-indicator.
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: days
          required: false
          description: Days of history per indicator (default 30, max 365)
        - schema:
            type: string
            nullable: true
          in: query
          name: indicator
          required: false
          description: Return only this sub-indicator (e.g. fear_and_greed_historical,
            market_volatility_vix)
      security:
        - token: []
      responses:
        "200":
          description: Returns Fear & Greed index data
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  latest:
                    type: object
                    additionalProperties: true
                    description: Latest index value, rating, and timestamp
                  history:
                    type: object
                    additionalProperties: true
                    description: "Per-indicator history: [{timestamp, price, rating}]"
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/alternative/google-trends/{ticker}:
    get:
      summary: Google Trends API
      tags:
        - Alternative Data
        - eu:w:8
      description: Returns Google search interest over time for a company
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of data points (default 90)
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Returns Google Trends data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    date:
                      type: string
                      example: 2025-01-15
                    interest:
                      type: number
                      example: 75
                    keyword:
                      type: string
                      example: Apple
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/alternative/wikipedia-pageviews/{ticker}:
    get:
      summary: Wikipedia Pageviews API
      tags:
        - Alternative Data
        - eu:w:9
      description: Returns daily Wikipedia pageview counts for a company article
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of data points (default 90)
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Returns Wikipedia pageview data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    date:
                      type: string
                      example: 2025-01-15
                    views:
                      type: number
                      example: 12500
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/alternative/cot/{symbol}:
    get:
      summary: Commitments of Traders (COT) API
      tags:
        - Alternative Data
        - eu:w:7
      description: Returns CFTC Commitments of Traders report data for the given
        futures symbol
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of reports (default 52)
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Futures contract symbol or name
      security:
        - token: []
      responses:
        "200":
          description: Returns COT data
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Symbol not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Symbol not found
  /api/1/alternative/reddit-mentions/{ticker}:
    get:
      summary: Reddit Stock Mentions API
      tags:
        - Alternative Data
        - eu:w:10
      description: Returns daily Reddit mention counts and sentiment for a stock
        across major investing subreddits
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of data points (default 30)
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/alternative/stocktwits/{ticker}:
    get:
      summary: StockTwits Sentiment API
      tags:
        - Alternative Data
        - eu:w:14
      description: Returns real-time StockTwits sentiment and message volume for a stock
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/alternative/datasets:
    get:
      summary: List External Datasets
      tags:
        - Alternative Data
        - eu:w:11
      description: Returns all external datasets that have been ingested via the
        marketplace API
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/alternative/datasets/{datasetId}:
    get:
      summary: Get External Dataset
      tags:
        - Alternative Data
        - eu:w:12
      description: Returns data from a specific external dataset, optionally filtered
        by ticker
      parameters:
        - schema:
            type: string
          in: query
          name: ticker
          required: false
        - schema:
            type: number
            default: 365
          in: query
          name: days
          required: false
        - schema:
            type: string
          in: path
          name: datasetId
          required: true
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/alternative/ingest:
    post:
      summary: Ingest External Dataset
      tags:
        - Alternative Data
        - eu:w:13
      description: "Enterprise endpoint: push your own alternative data into eulerpool
        for visualization and analysis"
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/alternative/social-mentions/{ticker}:
    get:
      summary: Social Mentions History
      tags:
        - Alternative Data
      description: Returns historical social media mention counts and sentiment for a stock
      parameters:
        - schema:
            type: number
            default: 30
          in: query
          name: limit
          required: false
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/sentiment/insider-sentiment/{identifier}:
    get:
      summary: Insider Sentiment API
      tags:
        - Sentiment & Analytics
        - eu:w:0
      description: Returns monthly insider sentiment (MSPR - Monthly Share Purchase
        Ratio) for the given security. Ranges from -100 (very negative) to 100
        (very positive)
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns insider sentiment data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    year:
                      type: number
                      example: 2024
                    month:
                      type: number
                      example: 3
                    change:
                      type: number
                      example: 5540
                      description: Net buying/selling shares
                    mspr:
                      type: number
                      example: 12.21
                      description: Monthly Share Purchase Ratio (-100 to 100)
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/sentiment/news-sentiment/{identifier}:
    get:
      summary: News Sentiment API
      tags:
        - Sentiment & Analytics
        - eu:w:1
      description: Returns aggregated news sentiment scores for the given security,
        including buzz metrics and bullish/bearish percentages
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns news sentiment data
          content:
            application/json:
              schema:
                type: object
                properties:
                  symbol:
                    type: string
                    example: AAPL
                  company_news_score:
                    type: number
                    example: 0.92
                    nullable: true
                  sector_avg_news_score:
                    type: number
                    example: 0.52
                    nullable: true
                  bullish_percent:
                    type: number
                    example: 0.85
                    nullable: true
                  bearish_percent:
                    type: number
                    example: 0.15
                    nullable: true
                  articles_in_last_week:
                    type: number
                    example: 20
                    nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/sentiment/social-sentiment/{identifier}:
    get:
      summary: Social Sentiment API
      tags:
        - Sentiment & Analytics
        - eu:w:2
      description: Returns social media sentiment data from Reddit and Twitter for the
        given security
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns social sentiment data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    source:
                      type: string
                      example: reddit
                    at_time:
                      type: string
                      example: 2024-01-15 14:00:00
                    mention:
                      type: number
                      example: 32
                    positive_mention:
                      type: number
                      example: 20
                    negative_mention:
                      type: number
                      example: 12
                    positive_score:
                      type: number
                      example: 0.92
                    negative_score:
                      type: number
                      example: -0.98
                    score:
                      type: number
                      example: -0.03
                      description: Overall score from -1 to 1
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/sentiment/price-metrics/{identifier}:
    get:
      summary: Price Metrics API
      tags:
        - Sentiment & Analytics
        - eu:w:3
      description: Returns price performance statistics including 52-week high/low,
        moving averages, beta, and YTD return
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns price metrics
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  symbol:
                    type: string
                    example: AAPL
                  52WeekHigh:
                    type: number
                    example: 199.62
                    nullable: true
                  52WeekLow:
                    type: number
                    example: 124.17
                    nullable: true
                  10DayAverageTradingVolume:
                    type: number
                    example: 53717320
                    nullable: true
                  beta:
                    type: number
                    example: 1.29
                    nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/sentiment/fund-ownership/{identifier}:
    get:
      summary: Fund Ownership API
      tags:
        - Sentiment & Analytics
        - eu:w:4
      description: Returns mutual fund holders for the given security, including
        allocation percentages
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns fund ownership data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    fund_name:
                      type: string
                      example: Vanguard Total Stock Market Index Fund
                    ownership_pct:
                      type: number
                      example: 1.88
                      nullable: true
                    shares:
                      type: number
                      example: 5145353
                      nullable: true
                    change:
                      type: number
                      example: 57427
                      nullable: true
                    filing_date:
                      type: string
                      example: 2024-03-31
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/sentiment/institutional-ownership/{identifier}:
    get:
      summary: Institutional Ownership API
      tags:
        - Sentiment & Analytics
        - eu:w:5
      description: Returns institutional investors holding the given security from
        13-F filings
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns institutional ownership data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    holder_name:
                      type: string
                      example: BlackRock Institutional Trust Co NA
                    shares:
                      type: number
                      example: 187354850
                    change:
                      type: number
                      example: -2500563
                      nullable: true
                    change_pct:
                      type: number
                      example: -1.32
                      nullable: true
                    value:
                      type: number
                      example: 28500000000
                      nullable: true
                    filing_date:
                      type: string
                      example: 2024-03-31
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/sentiment/sector-metrics:
    get:
      summary: Sector Metrics API
      tags:
        - Sentiment & Analytics
        - eu:w:6
      description: Returns average and median financial ratios by sector for a given region
      parameters:
        - schema:
            type: string
          in: query
          name: region
          required: false
          description: "Region code (default NA). Supported: NA, EU, Asia"
      security:
        - token: []
      responses:
        "200":
          description: Returns sector metrics keyed by sector name
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                description: Map of sector -> metrics
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/sentiment/social/{ticker}:
    get:
      summary: Reddit Social Sentiment API
      tags:
        - Sentiment & Analytics
        - eu:w:7
      description: Returns aggregated Reddit and social media sentiment data for a
        stock from the markets.social_sentiment table. Covers mentions, upvotes,
        sentiment scores, and trending status.
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol (e.g. AAPL, GME, TSLA)
      security:
        - token: []
      responses:
        "200":
          description: Returns social sentiment data
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/equity-extended/aaqs/{identifier}:
    get:
      summary: AAQS (Quality Score) API
      tags:
        - Equity Extended
        - eu:w:0
      description: Returns the AlleAktien Quality Score (AAQS) for the given security.
        Evaluates companies across 10 dimensions including revenue growth, EBIT
        growth, profit continuity, leverage, ROE, and ROCE. Score ranges from 0
        to 10.
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns AAQS data
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  ticker:
                    type: string
                    example: MSFT
                  score:
                    type: number
                    example: 9
                    description: Overall quality score (0-10)
                  revenueGrowth10Y:
                    type: number
                    nullable: true
                    description: 10-year revenue CAGR
                  ebitGrowth10Y:
                    type: number
                    nullable: true
                    description: 10-year EBIT CAGR
                  profitContinuity10Y:
                    type: number
                    nullable: true
                    description: Consecutive profitable years (max 10)
                  revenueGrowth3Y:
                    type: number
                    nullable: true
                    description: 3-year revenue CAGR
                  ebitGrowth3Y:
                    type: number
                    nullable: true
                    description: 3-year EBIT CAGR
                  netDebtToEBIT:
                    type: number
                    nullable: true
                    description: Net debt / EBIT ratio
                  ebitMaxDrawdown10Y:
                    type: number
                    nullable: true
                    description: Max EBIT drawdown over 10 years
                  returnOnEquity:
                    type: number
                    nullable: true
                    description: Return on equity
                  roce:
                    type: number
                    nullable: true
                    description: Return on capital employed
                  expectedReturn:
                    type: number
                    nullable: true
                    description: Expected return
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity-extended/options-chain/{identifier}:
    get:
      summary: Options Chain API
      tags:
        - Equity Extended
        - eu:w:1
      description: Returns the options chain (calls and puts) for the given security
        from CBOE, grouped by expiration. Defaults to the nearest upcoming
        expiration; pass ?expiration=YYYY-MM-DD for a specific expiry or
        ?expiration=all for the full chain.
      parameters:
        - schema:
            type: string
          in: query
          name: expiration
          required: false
          description: Expiration date (YYYY-MM-DD), "all" for the full chain, or omit for
            the nearest expiration
        - schema:
            type: number
          in: query
          name: strike
          required: false
          description: Filter by exact strike price
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns options chain data grouped by expiration
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity-extended/technical-signals/{identifier}:
    get:
      summary: Technical Signals API
      tags:
        - Equity Extended
        - eu:w:2
      description: Returns aggregate technical indicator signals (buy/sell/neutral
        counts) and trend data for the given security
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns technical signals
          content:
            application/json:
              schema:
                type: object
                properties:
                  buy:
                    type: number
                    example: 6
                  neutral:
                    type: number
                    example: 7
                  sell:
                    type: number
                    example: 4
                  signal:
                    type: string
                    example: neutral
                  adx:
                    type: number
                    example: 24.46
                    nullable: true
                  trending:
                    type: boolean
                    example: false
                    nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity-extended/basic-financials/{identifier}:
    get:
      summary: Basic Financials (Key Ratios) API
      tags:
        - Equity Extended
        - eu:w:3
      description: Returns key financial ratios and metrics including P/E, P/B,
        dividend yield, margins, debt ratios, and time-series data
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns basic financials
          content:
            application/json:
              schema:
                type: object
                properties:
                  metrics_json:
                    type: object
                    description: Key financial metrics (P/E, margins, etc.)
                  series_annual:
                    type: object
                    description: Annual time series of ratios
                    nullable: true
                  series_quarterly:
                    type: object
                    description: Quarterly time series of ratios
                    nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity-extended/ebitda-estimates/{identifier}:
    get:
      summary: EBITDA Estimates API
      tags:
        - Equity Extended
        - eu:w:4
      description: Returns analyst EBITDA estimates for the given security
      parameters:
        - schema:
            type: string
          in: query
          name: freq
          required: false
          description: "Frequency: annual or quarterly (default annual)"
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns EBITDA estimates
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    period:
                      type: string
                      example: 2024-12-31
                    ebitda_avg:
                      type: number
                      example: 58800000000
                      nullable: true
                    ebitda_high:
                      type: number
                      example: 64060000000
                      nullable: true
                    ebitda_low:
                      type: number
                      example: 54072000000
                      nullable: true
                    number_analysts:
                      type: number
                      example: 31
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity-extended/sec-filings/{identifier}:
    get:
      summary: SEC Filings API
      tags:
        - Equity Extended
        - eu:w:5
      description: Returns recent SEC filings (10-K, 10-Q, 8-K, etc.) for the given security
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns SEC filing data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    form:
                      type: string
                      example: 10-K
                    filedDate:
                      type: string
                      example: 2024-10-31
                    acceptedDate:
                      type: string
                      example: 2024-10-30 18:12:36
                    reportUrl:
                      type: string
                      example: https://www.sec.gov/...
                      nullable: true
                    filingUrl:
                      type: string
                      example: https://www.sec.gov/...
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity-extended/earnings-calendar/{identifier}:
    get:
      summary: Earnings Calendar API
      tags:
        - Equity Extended
        - eu:w:6
      description: Returns upcoming and historical earnings dates with EPS
        actual/estimate and surprises
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns earnings calendar data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    date:
                      type: string
                      example: 2024-01-25
                    epsActual:
                      type: number
                      example: 2.18
                      nullable: true
                    epsEstimate:
                      type: number
                      example: 2.1
                      nullable: true
                    revenueActual:
                      type: number
                      example: 119580000000
                      nullable: true
                    revenueEstimate:
                      type: number
                      example: 118260000000
                      nullable: true
                    quarter:
                      type: number
                      example: 1
                      nullable: true
                    year:
                      type: number
                      example: 2024
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Security not found
  /api/1/equity-extended/tech-indicators/{identifier}:
    get:
      summary: Technical Indicators Time Series API
      tags:
        - Equity Extended
        - eu:w:8
      description: Returns technical indicator time series (SMA, EMA, RSI, MACD,
        Bollinger Bands) for the given security. Data from Finnhub.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: indicator
          required: false
          description: "Filter by indicator: sma, ema, rsi, macd, bbands (default: all)"
        - schema:
            type: string
            nullable: true
          in: query
          name: resolution
          required: false
          description: "Resolution: D, W, M (default D)"
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns tech indicator data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    indicator:
                      type: string
                      example: sma
                    resolution:
                      type: string
                      example: D
                    timestamps:
                      type: array
                      items:
                        type: number
                      description: UNIX timestamps
                    values:
                      type: object
                      description: Indicator values keyed by series name
                    last_updated:
                      type: string
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/price-target-history/{identifier}:
    get:
      summary: Price Target History API
      tags:
        - Equity Extended
        - eu:w:9
      description: Returns historical analyst price target consensus over time for the
        given security. Up to 5 years of weekly snapshots including high, low,
        mean, median targets and analyst count.
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns price target history
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    last_updated:
                      type: string
                      example: 2024-01-15
                    target_high:
                      type: number
                      example: 250
                      nullable: true
                    target_low:
                      type: number
                      example: 150
                      nullable: true
                    target_mean:
                      type: number
                      example: 200
                      nullable: true
                    target_median:
                      type: number
                      example: 195
                      nullable: true
                    num_analysts:
                      type: number
                      example: 38
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/peers/{identifier}:
    get:
      summary: Company Peers API
      tags:
        - Equity Extended
        - eu:w:10
      description: Returns a list of peer/comparable company symbols for the given security
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns peer symbols
          content:
            application/json:
              schema:
                type: object
                properties:
                  symbol:
                    type: string
                    example: AAPL
                  peers:
                    type: array
                    items:
                      type: string
                    example:
                      - MSFT
                      - GOOG
                      - META
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/short-interest/{identifier}:
    get:
      summary: Short Interest API
      tags:
        - Equity Extended
        - eu:w:11
      description: "Returns FINRA short interest data: short shares outstanding, days
        to cover, and changes"
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns short interest data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    settlement_date:
                      type: string
                      example: 2024-01-15
                    short_shares:
                      type: number
                      example: 12345678
                    prev_short_shares:
                      type: number
                      nullable: true
                    change_pct:
                      type: number
                      example: 3.5
                      nullable: true
                    days_to_cover:
                      type: number
                      example: 1.8
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/short-volume/{identifier}:
    get:
      summary: Short Volume API
      tags:
        - Equity Extended
        - eu:w:12
      description: "Returns daily short volume data from FINRA: short volume, exempt
        volume, total volume, and short ratio"
      parameters:
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Days of data (default 30, max 365)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns daily short volume
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    date:
                      type: string
                      example: 2024-01-15
                    short_volume:
                      type: number
                      example: 5000000
                    total_volume:
                      type: number
                      example: 12000000
                    short_ratio:
                      type: number
                      example: 0.42
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/index-history/{symbol}:
    get:
      summary: Index Historical Constituents API
      tags:
        - Equity Extended
        - eu:w:13
      description: Returns historical additions and removals from a stock market index
        (S&P 500, etc.)
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Index symbol (e.g. ^GSPC for S&P 500, ^DJI for Dow Jones)
      security:
        - token: []
      responses:
        "200":
          description: Returns index constituent changes
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    action:
                      type: string
                      example: add
                    ticker:
                      type: string
                      example: UBER
                    name:
                      type: string
                      example: Uber Technologies
                      nullable: true
                    effective_date:
                      type: string
                      example: 2023-12-18
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/market-news:
    get:
      summary: Market News API
      tags:
        - Equity Extended
        - eu:w:7
      description: Returns the latest general market news from major financial news sources
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of articles (default 50, max 200)
      security:
        - token: []
      responses:
        "200":
          description: Returns market news
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    headline:
                      type: string
                      example: Fed Holds Rates Steady
                    source:
                      type: string
                      example: CNBC
                    url:
                      type: string
                      example: https://...
                    summary:
                      type: string
                      example: ...
                      nullable: true
                    image:
                      type: string
                      example: https://...
                      nullable: true
                    category:
                      type: string
                      example: general
                      nullable: true
                    datetime:
                      type: number
                      example: 1706122800
                      nullable: true
                    related:
                      type: string
                      example: AAPL,MSFT
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/equity-extended/symbol-changes:
    get:
      summary: Symbol Change History API
      tags:
        - Equity Extended
        - eu:w:14
      description: Returns ticker symbol changes (renames, mergers) over the past
        year. Useful for data quality and corporate action tracking.
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of results (default 100, max 500)
      security:
        - token: []
      responses:
        "200":
          description: Returns symbol changes
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    old_symbol:
                      type: string
                      example: FB
                    new_symbol:
                      type: string
                      example: META
                    at_date:
                      type: string
                      example: 2022-06-09
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/isin-changes:
    get:
      summary: ISIN Change History API
      tags:
        - Equity Extended
        - eu:w:15
      description: Returns ISIN changes over the past year. Useful for tracking
        security identifier changes after corporate actions.
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of results (default 100, max 500)
      security:
        - token: []
      responses:
        "200":
          description: Returns ISIN changes
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    old_isin:
                      type: string
                      example: US30303M1027
                    new_isin:
                      type: string
                      example: US30303M1036
                    at_date:
                      type: string
                      example: 2022-06-09
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/financials-reported/{identifier}:
    get:
      summary: As-Reported Financials API
      tags:
        - Equity Extended
        - eu:w:16
      description: Returns raw as-reported financial data from SEC filings (10-K,
        10-Q) for the given security. This is the original XBRL data as filed,
        not standardized. Includes all line items from the filing.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: form
          required: false
          description: "Filter by form type: 10-K (annual), 10-Q (quarterly). Default: all"
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of filings (default 10, max 50)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns as-reported financial filings
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    accessNumber:
                      type: string
                      example: 0000320193-23-000106
                    form:
                      type: string
                      example: 10-K
                    cik:
                      type: string
                      example: "320193"
                      nullable: true
                    year:
                      type: number
                      example: 2023
                      nullable: true
                    quarter:
                      type: number
                      example: 0
                      nullable: true
                    startDate:
                      type: string
                      example: 2022-10-01
                      nullable: true
                    endDate:
                      type: string
                      example: 2023-09-30
                      nullable: true
                    filedDate:
                      type: string
                      example: 2023-11-03
                      nullable: true
                    report:
                      type: object
                      description: Raw XBRL report data with all line items
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/aggregate-signals/{identifier}:
    get:
      summary: Aggregate Technical Signals API
      tags:
        - Equity Extended
        - eu:w:17
      description: Returns consolidated technical indicator signals (buy/sell/neutral
        counts, ADX trend strength, overall signal) across multiple resolutions
        (1min, 5min, 15min, 30min, 1h, D, W, M)
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN"
      security:
        - token: []
      responses:
        "200":
          description: Returns aggregate signals by resolution
          content:
            application/json:
              schema:
                type: object
                properties:
                  isin:
                    type: string
                  symbol:
                    type: string
                  signals:
                    type: array
                    items:
                      type: object
                      properties:
                        resolution:
                          type: string
                          example: D
                        signal:
                          type: string
                          example: buy
                          description: "Overall signal: buy, sell, or neutral"
                        buy:
                          type: number
                          example: 8
                          description: Number of indicators signaling buy
                        neutral:
                          type: number
                          example: 3
                          description: Number of indicators neutral
                        sell:
                          type: number
                          example: 1
                          description: Number of indicators signaling sell
                        adx:
                          type: number
                          example: 32.5
                          nullable: true
                          description: ADX trend strength (>25 = trending)
                        trending:
                          type: boolean
                          example: true
                          nullable: true
                  summary:
                    type: object
                    properties:
                      signal:
                        type: string
                        example: buy
                        description: Consensus across all resolutions
                      buyCount:
                        type: number
                      sellCount:
                        type: number
                      neutralCount:
                        type: number
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/xbrl/facts/{ticker}:
    get:
      summary: SEC XBRL Facts API
      tags:
        - Equity Extended
        - eu:w:18
      description: Returns SEC XBRL financial facts (e.g., Revenue, NetIncomeLoss,
        Assets) filed by a company. 44M+ facts from SEC EDGAR covering all US
        public companies.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: tag
          required: false
          description: XBRL tag filter (e.g. Revenues, NetIncomeLoss, Assets)
        - schema:
            type: string
            nullable: true
          in: query
          name: taxonomy
          required: false
          description: Taxonomy filter (e.g. us-gaap, ifrs-full)
        - schema:
            type: string
            nullable: true
          in: query
          name: period
          required: false
          description: Fiscal period filter (e.g. FY, Q1, Q2, Q3, Q4)
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Max results (default 500, max 5000)
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol (e.g. AAPL)
      security:
        - token: []
      responses:
        "200":
          description: Returns XBRL financial facts
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    ticker:
                      type: string
                      example: AAPL
                    tag:
                      type: string
                      example: Revenues
                    taxonomy:
                      type: string
                      example: us-gaap
                    unit:
                      type: string
                      example: USD
                      nullable: true
                    period_end:
                      type: string
                      example: 2024-09-30
                      nullable: true
                    fiscal_period:
                      type: string
                      example: FY
                      nullable: true
                    val:
                      type: number
                      example: 394328000000
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/xbrl/fact/{ticker}/{tag}:
    get:
      summary: XBRL Fact Time Series API
      tags:
        - Equity Extended
        - eu:w:19
      description: Returns the historical time series for a specific XBRL fact (e.g.,
        Revenue over multiple years) for a company
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: taxonomy
          required: false
          description: "Taxonomy filter (default: all)"
        - schema:
            type: string
            nullable: true
          in: query
          name: unit
          required: false
          description: Unit filter (e.g. USD, shares)
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
        - schema:
            type: string
          in: path
          name: tag
          required: true
          description: XBRL tag (e.g. Revenues, NetIncomeLoss, Assets,
            EarningsPerShareBasic)
      security:
        - token: []
      responses:
        "200":
          description: Returns fact time series
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    period_end:
                      type: string
                      example: 2024-09-30
                    fiscal_period:
                      type: string
                      example: FY
                      nullable: true
                    val:
                      type: number
                      example: 394328000000
                    unit:
                      type: string
                      example: USD
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/corporate-events/{ticker}:
    get:
      summary: Corporate Events (8-K) API
      tags:
        - Equity Extended
        - eu:w:20
      description: Returns 8-K corporate events (material announcements, M&A,
        leadership changes, restatements) for a company from SEC EDGAR
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Max results (default 50, max 200)
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol (e.g. AAPL)
      security:
        - token: []
      responses:
        "200":
          description: Returns corporate events
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/supply-chain/{ticker}:
    get:
      summary: Supply Chain Relationships API
      tags:
        - Equity Extended
        - eu:w:21
      description: Returns supply chain relationships (customers, suppliers) extracted
        from SEC 10-K filings for a company
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol (e.g. AAPL)
      security:
        - token: []
      responses:
        "200":
          description: Returns supply chain relationships
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/equity-extended/sec-company/{ticker}:
    get:
      summary: SEC Company Info API
      tags:
        - Equity Extended
        - eu:w:22
      description: Returns SEC EDGAR company metadata including CIK, SIC code, state
        of incorporation, fiscal year end, and filing history
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol (e.g. AAPL)
      security:
        - token: []
      responses:
        "200":
          description: Returns SEC company info
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Company not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/commodity/profile/{ticker}:
    get:
      summary: Commodity Profile API
      tags:
        - Commodities
        - eu:w:0
      description: Returns profile information for a commodity (Gold, Crude Oil,
        Silver, Natural Gas, etc.)
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Commodity ticker (e.g. GC=F for Gold, CL=F for Crude Oil)
      security:
        - token: []
      responses:
        "200":
          description: Returns commodity profile
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Commodity not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/commodity/quotes/{ticker}:
    get:
      summary: Commodity Quotes API
      tags:
        - Commodities
        - eu:w:1
      description: Returns historical price data for a commodity
      parameters:
        - schema:
            type: number
            nullable: true
            example: 1704067200000
          in: query
          name: startdate
          required: false
          description: Start date in ms since 1970
        - schema:
            type: number
            nullable: true
            example: 1735689600000
          in: query
          name: enddate
          required: false
          description: End date in ms since 1970
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Commodity ticker
      security:
        - token: []
      responses:
        "200":
          description: Returns commodity price history
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    timestamp:
                      type: number
                      example: 1705276800000
                    price:
                      type: number
                      example: 2045.5
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Commodity not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/commodity/list:
    get:
      summary: Commodities List API
      tags:
        - Commodities
        - eu:w:2
      description: Returns a list of all available commodities with their current
        prices and metadata
      security:
        - token: []
      responses:
        "200":
          description: Returns commodity list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/commodity/futures-curve/{product}:
    get:
      summary: Futures Term Structure API
      tags:
        - Commodities
        - eu:w:3
      description: Returns the current futures term structure (contango/backwardation)
        for a commodity
      parameters:
        - schema:
            type: string
          in: path
          name: product
          required: true
          description: Product code (e.g. CL, GC, NG, ES, NQ)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/commodity/futures-curve/{product}/history:
    get:
      summary: Futures Curve History API
      tags:
        - Commodities
        - eu:w:4
      description: Returns historical contango/backwardation analytics for a commodity
        futures curve
      parameters:
        - schema:
            type: number
            default: 90
          in: query
          name: days
          required: false
          description: Number of days (default 90)
        - schema:
            type: string
          in: path
          name: product
          required: true
          description: Product code (e.g. CL, GC, NG)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/commodity/prices/{symbol}:
    get:
      summary: Commodity Prices API
      tags:
        - Commodities
        - eu:w:5
      description: Returns historical price data from the markets.commodity_prices
        table for a specific commodity
      parameters:
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Number of days of history (default 365, max 3650)
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Commodity symbol (e.g. GOLD, WTI, BRENT, NATGAS, SILVER)
      security:
        - token: []
      responses:
        "200":
          description: Returns commodity price data
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
                  properties:
                    symbol:
                      type: string
                      example: GOLD
                    date:
                      type: string
                      example: 2026-04-01
                    price:
                      type: number
                      example: 2350.5
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/commodity/prices:
    get:
      summary: Latest Commodity Prices API
      tags:
        - Commodities
        - eu:w:6
      description: Returns the latest price for all available commodities from
        markets.commodity_prices
      security:
        - token: []
      responses:
        "200":
          description: Returns latest commodity prices
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/private-markets/companies:
    get:
      summary: Private Companies
      tags:
        - Private Markets
      description: Returns a list of private/pre-IPO companies with funding data
      parameters:
        - schema:
            type: string
            default: private
          in: query
          name: status
          required: false
          description: Filter by status (private, ipo_filed, public)
        - schema:
            type: number
            default: 50
          in: query
          name: limit
          required: false
        - schema:
            type: number
            default: 0
          in: query
          name: offset
          required: false
      security: *a1
      responses:
        "200":
          description: Private companies list
          content:
            application/json:
              schema:
                description: Private companies list
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/private-markets/funding/{company}:
    get:
      summary: Funding Rounds
      tags:
        - Private Markets
      description: Returns funding round history for a private company
      parameters:
        - schema:
            type: string
          in: path
          name: company
          required: true
          description: Company permalink or ID
      security: *a1
      responses:
        "200":
          description: Funding rounds
          content:
            application/json:
              schema:
                description: Funding rounds
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/crypto-extended/top-coins:
    get:
      summary: Top Cryptocurrencies API
      tags:
        - Crypto Extended
        - eu:w:0
      description: Returns top 100 cryptocurrencies ranked by market cap with price,
        volume, 24h/7d change, sparklines, and supply data
      security:
        - token: []
      responses:
        "200":
          description: Returns top coins
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    rank:
                      type: number
                      example: 1
                    symbol:
                      type: string
                      example: BTC
                    name:
                      type: string
                      example: Bitcoin
                    price:
                      type: number
                      example: 62345
                    market_cap:
                      type: number
                      nullable: true
                    volume_24h:
                      type: number
                      nullable: true
                    change_24h:
                      type: number
                      example: 2.5
                      nullable: true
                    change_7d:
                      type: number
                      example: -1.2
                      nullable: true
                    circulating_supply:
                      type: number
                      nullable: true
                    sparkline_7d:
                      type: array
                      items:
                        type: number
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/market-overview:
    get:
      summary: Crypto Market Overview API
      tags:
        - Crypto Extended
        - eu:w:1
      description: "Returns a comprehensive crypto market overview: Fear & Greed
        index, top gainers/losers, DeFi TVL by chain, top DeFi protocols,
        stablecoin market caps, and bridge volumes"
      security:
        - token: []
      responses:
        "200":
          description: Returns market overview
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  fearGreed:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  topGainers:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  topLosers:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  defiProtocols:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  stablecoins:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  bridges:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  totalTvlHistory:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  chainTvl:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/analysis/{symbol}:
    get:
      summary: Crypto Analysis Summary API
      tags:
        - Crypto Extended
        - eu:w:2
      description: "Returns a comprehensive analysis for a crypto pair: technical
        indicators (RSI, MACD, SMA, EMA, Bollinger Bands), BTC correlation, and
        derivatives data (funding rate, open interest, long/short ratios)"
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Crypto symbol (e.g. BTC, ETH). Automatically resolved to USDT pair.
      security:
        - token: []
      responses:
        "200":
          description: Returns analysis data
          content:
            application/json:
              schema:
                type: object
                properties:
                  symbol:
                    type: string
                    example: BTCUSDT
                  technical:
                    type: object
                    description: Technical indicators (RSI, MACD, SMA, EMA, Bollinger Bands, ATR,
                      volatility)
                    nullable: true
                  correlation:
                    type: object
                    description: BTC correlation (30d, 90d) and beta
                    nullable: true
                  derivatives:
                    type: object
                    description: Funding rate, open interest, long/short, taker ratios
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Symbol not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/derivatives/{symbol}:
    get:
      summary: Crypto Derivatives API
      tags:
        - Crypto Extended
        - eu:w:3
      description: "Returns 30-day time series of futures derivatives data: funding
        rates, open interest, long/short ratios, taker buy/sell volumes, and top
        trader positions"
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Crypto symbol (e.g. BTC, ETH)
      security:
        - token: []
      responses:
        "200":
          description: Returns derivatives time series
          content:
            application/json:
              schema:
                type: object
                properties:
                  symbol:
                    type: string
                    example: BTCUSDT
                  funding:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  openInterest:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  longShort:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  takerBuySell:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  topTrader:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Symbol not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/onchain/{symbol}:
    get:
      summary: On-Chain Metrics API
      tags:
        - Crypto Extended
        - eu:w:4
      description: "Returns 90-day on-chain metrics for BTC or ETH: hash rate,
        difficulty, active addresses, transaction count, fees, block size,
        supply, miner revenue, mempool, NVT ratio"
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: BTC or ETH
      security:
        - token: []
      responses:
        "200":
          description: Returns on-chain metrics
          content:
            application/json:
              schema:
                type: object
                properties:
                  symbol:
                    type: string
                    example: BTC
                  metrics:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          example: 2024-01-15
                        hash_rate:
                          type: number
                          nullable: true
                        active_addresses:
                          type: number
                          nullable: true
                        tx_count:
                          type: number
                          nullable: true
                        avg_tx_fee:
                          type: number
                          nullable: true
                        miner_revenue:
                          type: number
                          nullable: true
                        market_cap:
                          type: number
                          nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Symbol not found (only BTC, ETH supported)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/defi/{symbol}:
    get:
      summary: DeFi Protocol Stats API
      tags:
        - Crypto Extended
        - eu:w:5
      description: "Returns DeFi protocol details by symbol/slug: TVL history,
        fees/revenue, top yield pools, and protocol metadata. Data sourced from
        DefiLlama."
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Protocol symbol (e.g. AAVE, UNI) or slug (e.g. aave, uniswap)
      security:
        - token: []
      responses:
        "200":
          description: Returns DeFi protocol stats
          content:
            application/json:
              schema:
                type: object
                properties:
                  protocol:
                    type: object
                  tvlHistory:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  fees:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  yields:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Protocol not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/defi-protocols:
    get:
      summary: DeFi Protocols List API
      tags:
        - Crypto Extended
        - eu:w:6
      description: Returns top DeFi protocols ranked by TVL with 1d/7d change,
        category, and chain info
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of protocols (default 50, max 200)
      security:
        - token: []
      responses:
        "200":
          description: Returns DeFi protocols
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    slug:
                      type: string
                      example: lido
                    name:
                      type: string
                      example: Lido
                    symbol:
                      type: string
                      example: LDO
                      nullable: true
                    category:
                      type: string
                      example: Liquid Staking
                      nullable: true
                    chain:
                      type: string
                      example: Ethereum
                      nullable: true
                    tvl:
                      type: number
                      example: 14500000000
                    change_1d:
                      type: number
                      nullable: true
                    change_7d:
                      type: number
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/defi-yields:
    get:
      summary: DeFi Yields API
      tags:
        - Crypto Extended
        - eu:w:7
      description: Returns top DeFi yield farming opportunities across all protocols
        and chains, ranked by APY
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: chain
          required: false
          description: Filter by chain (e.g. Ethereum, Arbitrum)
        - schema:
            type: boolean
            nullable: true
          in: query
          name: stableOnly
          required: false
          description: Only show stablecoin pools
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of results (default 50, max 200)
      security:
        - token: []
      responses:
        "200":
          description: Returns DeFi yields
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    pool_id:
                      type: string
                    chain:
                      type: string
                      example: Ethereum
                    project:
                      type: string
                      example: aave-v3
                    symbol:
                      type: string
                      example: USDC
                    tvl_usd:
                      type: number
                    apy:
                      type: number
                      example: 5.23
                    apy_base:
                      type: number
                      nullable: true
                    apy_reward:
                      type: number
                      nullable: true
                    stable_coin:
                      type: boolean
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/dex-volumes:
    get:
      summary: DEX Volumes API
      tags:
        - Crypto Extended
        - eu:w:8
      description: Returns daily DEX trading volumes by protocol (Uniswap, dYdX, etc.)
        for the last 30 days
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: protocol
          required: false
          description: Filter by protocol name
      security:
        - token: []
      responses:
        "200":
          description: Returns DEX volumes
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    protocol:
                      type: string
                      example: uniswap
                    chain:
                      type: string
                      example: Ethereum
                      nullable: true
                    date:
                      type: string
                      example: 2024-01-15
                    volume:
                      type: number
                      example: 1500000000
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/stablecoins:
    get:
      summary: Stablecoin Market Caps API
      tags:
        - Crypto Extended
        - eu:w:9
      description: Returns current and historical market capitalizations for major
        stablecoins (USDT, USDC, DAI, etc.)
      parameters:
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Days of history (default 30, max 365)
      security:
        - token: []
      responses:
        "200":
          description: Returns stablecoin data
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  current:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                    description: Latest market caps
                  history:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                    description: Historical market caps
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/fear-greed-history:
    get:
      summary: Crypto Fear & Greed History API
      tags:
        - Crypto Extended
        - eu:w:10
      description: Returns daily Crypto Fear & Greed Index values with classification
        (Extreme Fear to Extreme Greed)
      parameters:
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Days of history (default 90, max 365)
      security:
        - token: []
      responses:
        "200":
          description: Returns F&G history
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    date:
                      type: string
                      example: 2024-01-15
                    value:
                      type: number
                      example: 72
                      description: 0-100 (0=Extreme Fear, 100=Extreme Greed)
                    classification:
                      type: string
                      example: Greed
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/candles/{symbol}:
    get:
      summary: Crypto OHLCV Candles API
      tags:
        - Crypto Extended
        - eu:w:11
      description: "Returns OHLCV candle data from Binance for the given crypto pair.
        Available intervals: 1h, 4h, 1d, 1w."
      parameters:
        - schema:
            type: string
          in: query
          name: interval
          required: false
          description: "Candle interval: 1h, 4h, 1d, 1w (default 1d)"
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of candles (default 365, max 1000)
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Trading pair symbol (e.g. BTCUSDT, ETHUSDT)
      security:
        - token: []
      responses:
        "200":
          description: Returns OHLCV candles
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    open_time:
                      type: number
                      example: 1705276800000
                    open:
                      type: number
                      example: 42150.5
                    high:
                      type: number
                      example: 42500
                    low:
                      type: number
                      example: 41900
                    close:
                      type: number
                      example: 42300
                    volume:
                      type: number
                      example: 15234.5
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/chain-tvl:
    get:
      summary: Chain TVL API
      tags:
        - Crypto Extended
        - eu:w:12
      description: Returns Total Value Locked (TVL) by blockchain over time (Ethereum,
        Solana, Arbitrum, etc.). Essential for crypto macro analysis.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: chain
          required: false
          description: Filter by chain name (e.g. Ethereum, Solana)
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Days of history (default 90, max 365)
      security:
        - token: []
      responses:
        "200":
          description: Returns chain TVL data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    chain:
                      type: string
                      example: Ethereum
                    date:
                      type: string
                      example: 2024-01-15
                    tvl:
                      type: number
                      example: 32000000000
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/defi-fees:
    get:
      summary: DeFi Fees & Revenue API
      tags:
        - Crypto Extended
        - eu:w:13
      description: Returns daily protocol fees and revenue for DeFi protocols.
        Protocol revenue is the "earnings" equivalent for DeFi — critical for
        fundamental analysis.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: protocol
          required: false
          description: Filter by protocol name (e.g. uniswap, aave)
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Days of history (default 30, max 365)
      security:
        - token: []
      responses:
        "200":
          description: Returns DeFi fees/revenue
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    protocol:
                      type: string
                      example: uniswap
                    date:
                      type: string
                      example: 2024-01-15
                    total_fees:
                      type: number
                      example: 2500000
                      nullable: true
                    total_revenue:
                      type: number
                      example: 500000
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/stablecoin-supply:
    get:
      summary: Stablecoin Supply History API
      tags:
        - Crypto Extended
        - eu:w:14
      description: Returns granular per-stablecoin circulating supply over time.
        Stablecoin flows are a leading indicator for crypto market movements.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: symbol
          required: false
          description: Filter by stablecoin symbol (e.g. USDT, USDC)
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Days of history (default 90, max 365)
      security:
        - token: []
      responses:
        "200":
          description: Returns stablecoin supply data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    symbol:
                      type: string
                      example: USDT
                    date:
                      type: string
                      example: 2024-01-15
                    circulating:
                      type: number
                      example: 95000000000
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/bridge-volumes:
    get:
      summary: Bridge Volumes API
      tags:
        - Crypto Extended
        - eu:w:15
      description: Returns cross-chain bridge daily volumes. Standalone access to
        bridge flow data for cross-chain analytics.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: bridge
          required: false
          description: Filter by bridge name
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Days of history (default 30, max 365)
      security:
        - token: []
      responses:
        "200":
          description: Returns bridge volume data
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    bridge_name:
                      type: string
                      example: Stargate
                    date:
                      type: string
                      example: 2024-01-15
                    volume_24h:
                      type: number
                      example: 50000000
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/funding-rates/{symbol}:
    get:
      summary: Crypto Funding Rates API
      tags:
        - Crypto Extended
        - eu:w:16
      description: "Returns Binance perpetual futures funding rate time series for the
        given crypto pair. Funding rate is the #1 signal for crypto futures
        traders."
      parameters:
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Days of history (default 30, max 180)
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Crypto symbol (e.g. BTC, ETH, BTCUSDT)
      security:
        - token: []
      responses:
        "200":
          description: Returns funding rate time series
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    symbol:
                      type: string
                      example: BTCUSDT
                    funding_time:
                      type: number
                      example: 1705276800000
                    funding_rate:
                      type: number
                      example: 0.0001
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/open-interest/{symbol}:
    get:
      summary: Crypto Open Interest API
      tags:
        - Crypto Extended
        - eu:w:17
      description: Returns open interest time series for Binance perpetual futures.
        Tracks the total outstanding contracts for the given crypto pair.
      parameters:
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Days of history (default 30, max 180)
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Crypto symbol (e.g. BTC, ETH, BTCUSDT)
      security:
        - token: []
      responses:
        "200":
          description: Returns open interest time series
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    symbol:
                      type: string
                      example: BTCUSDT
                    timestamp:
                      type: number
                      example: 1705276800000
                    open_interest:
                      type: number
                      example: 52345.67
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/intraday/{symbol}:
    get:
      summary: Crypto Intraday Quotes API
      tags:
        - Crypto Extended
        - eu:w:18
      description: Returns 7-day rolling intraday price ticks for a cryptocurrency.
        Includes price, volume, market cap, and dominance at each tick.
      parameters:
        - schema:
            type: number
          in: query
          name: hours
          required: false
          description: Limit to last N hours (default 24, max 168 = 7 days)
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Crypto identifier (e.g. BTC, ETH)
      security:
        - token: []
      responses:
        "200":
          description: Returns intraday ticks
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    timestamp:
                      type: number
                      example: 1705276800000
                    price:
                      type: number
                      example: 42300
                    volume:
                      type: number
                      nullable: true
                    market_cap:
                      type: number
                      nullable: true
                    dominance:
                      type: number
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Symbol not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/categories:
    get:
      summary: Crypto Categories API
      tags:
        - Crypto Extended
        - eu:w:20
      description: Returns crypto market categories (DeFi, Layer 1, Meme, etc.) with
        market cap, volume, and 24h change. Essential for sector rotation
        analysis.
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of categories (default 50, max 200)
      security:
        - token: []
      responses:
        "200":
          description: Returns crypto categories
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    category_id:
                      type: string
                      example: decentralized-finance-defi
                    name:
                      type: string
                      example: Decentralized Finance (DeFi)
                    market_cap:
                      type: number
                      nullable: true
                    market_cap_change_24h:
                      type: number
                      nullable: true
                    volume_24h:
                      type: number
                      nullable: true
                    top_3_coins:
                      type: array
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/public-treasury:
    get:
      summary: Public Treasury Holdings API
      tags:
        - Crypto Extended
        - eu:w:21
      description: Returns public companies and governments holding BTC or ETH,
        including total holdings, entry value, current value, and percentage of
        total supply
      parameters:
        - schema:
            type: string
          in: query
          name: coin
          required: false
          description: "Filter by coin: bitcoin, ethereum (default: all)"
      security:
        - token: []
      responses:
        "200":
          description: Returns treasury holdings
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    coin:
                      type: string
                      example: bitcoin
                    company_name:
                      type: string
                      example: MicroStrategy
                    symbol:
                      type: string
                      example: MSTR
                      nullable: true
                    country:
                      type: string
                      example: US
                      nullable: true
                    total_holdings:
                      type: number
                      example: 190000
                    total_entry_value_usd:
                      type: number
                      nullable: true
                    total_current_value_usd:
                      type: number
                      nullable: true
                    pct_of_total_supply:
                      type: number
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/global:
    get:
      summary: Global Crypto Market Data API
      tags:
        - Crypto Extended
        - eu:w:22
      description: "Returns daily global crypto market snapshots: total market cap,
        volume, BTC/ETH dominance, active coins, DeFi market cap. The definitive
        crypto macro dashboard."
      parameters:
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Days of history (default 90, max 365)
      security:
        - token: []
      responses:
        "200":
          description: Returns global market data
          content:
            application/json:
              schema:
                type: object
                properties:
                  latest:
                    type: object
                    description: Most recent snapshot
                  history:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/trending:
    get:
      summary: Trending Cryptocurrencies API
      tags:
        - Crypto Extended
        - eu:w:23
      description: Returns the most trending cryptocurrencies based on CoinGecko
        search trends. Updated multiple times per day.
      security:
        - token: []
      responses:
        "200":
          description: Returns trending coins
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    rank:
                      type: number
                      example: 1
                    coin_id:
                      type: string
                      example: bitcoin
                    name:
                      type: string
                      example: Bitcoin
                    symbol:
                      type: string
                      example: BTC
                    market_cap_rank:
                      type: number
                      nullable: true
                    price_btc:
                      type: number
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/top-movers:
    get:
      summary: Crypto Top Movers API
      tags:
        - Crypto Extended
        - eu:w:24
      description: Returns top gainers and losers for a given timeframe (24h, 7d, 30d)
      parameters:
        - schema:
            type: string
          in: query
          name: timeframe
          required: false
          description: "Timeframe: 24h, 7d, 30d (default 24h)"
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of gainers/losers each (default 10, max 50)
      security:
        - token: []
      responses:
        "200":
          description: Returns top movers
          content:
            application/json:
              schema:
                type: object
                properties:
                  gainers:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  losers:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/newly-listed:
    get:
      summary: Newly Listed Cryptocurrencies API
      tags:
        - Crypto Extended
        - eu:w:25
      description: Returns recently listed cryptocurrencies with activation date
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of results (default 50, max 200)
      security:
        - token: []
      responses:
        "200":
          description: Returns newly listed coins
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    coin_id:
                      type: string
                      example: new-token
                    name:
                      type: string
                      example: New Token
                    symbol:
                      type: string
                      example: NT
                    activated_at:
                      type: string
                      example: 2024-01-15T00:00:00Z
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/derivatives-exchanges:
    get:
      summary: Derivatives Exchanges API
      tags:
        - Crypto Extended
        - eu:w:26
      description: Returns directory of crypto derivatives exchanges with open
        interest, 24h volume, number of pairs, and establishment year
      security:
        - token: []
      responses:
        "200":
          description: Returns derivatives exchanges
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    id:
                      type: string
                      example: binance_futures
                    name:
                      type: string
                      example: Binance Futures
                    open_interest_btc:
                      type: number
                      nullable: true
                    trade_volume_24h_btc:
                      type: number
                      nullable: true
                    number_of_perpetual_pairs:
                      type: number
                      nullable: true
                    number_of_futures_pairs:
                      type: number
                      nullable: true
                    year_established:
                      type: number
                      nullable: true
                    country:
                      type: string
                      nullable: true
                    url:
                      type: string
                      nullable: true
                    image:
                      type: string
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/exchange-volume/{exchangeId}:
    get:
      summary: Exchange Volume History API
      tags:
        - Crypto Extended
        - eu:w:27
      description: Returns historical BTC-denominated trading volume for a specific exchange
      parameters:
        - schema:
            type: number
          in: query
          name: days
          required: false
          description: Days of history (default 90, max 365)
        - schema:
            type: string
          in: path
          name: exchangeId
          required: true
          description: Exchange ID (e.g. binance, coinbase)
      security:
        - token: []
      responses:
        "200":
          description: Returns exchange volume history
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    exchange_id:
                      type: string
                    date:
                      type: string
                    volume_btc:
                      type: number
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/coin-tickers/{coinId}:
    get:
      summary: Coin Tickers API
      tags:
        - Crypto Extended
        - eu:w:28
      description: Returns all trading pairs for a cryptocurrency across all
        exchanges, with price, volume, spread, and trust score
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: exchange
          required: false
          description: Filter by exchange ID (e.g. binance)
        - schema:
            type: string
          in: path
          name: coinId
          required: true
          description: CoinGecko coin ID (e.g. bitcoin, ethereum)
      security:
        - token: []
      responses:
        "200":
          description: Returns coin tickers
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    exchange_id:
                      type: string
                      example: binance
                    base:
                      type: string
                      example: BTC
                    target:
                      type: string
                      example: USDT
                    last_price:
                      type: number
                      nullable: true
                    volume:
                      type: number
                      nullable: true
                    converted_volume_usd:
                      type: number
                      nullable: true
                    bid_ask_spread:
                      type: number
                      nullable: true
                    trust_score:
                      type: string
                      nullable: true
                    trade_url:
                      type: string
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/btc-exchange-rates:
    get:
      summary: BTC Exchange Rates API
      tags:
        - Crypto Extended
        - eu:w:29
      description: Returns current BTC exchange rates to all supported fiat currencies
        and crypto assets
      security:
        - token: []
      responses:
        "200":
          description: Returns BTC exchange rates
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    currency:
                      type: string
                      example: usd
                    name:
                      type: string
                      example: US Dollar
                    unit:
                      type: string
                      example: $
                    type:
                      type: string
                      example: fiat
                    rate:
                      type: number
                      example: 62345
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/asset-platforms:
    get:
      summary: Asset Platforms (Blockchains) API
      tags:
        - Crypto Extended
        - eu:w:30
      description: Returns list of all blockchain platforms with chain identifiers,
        native coin, and metadata
      security:
        - token: []
      responses:
        "200":
          description: Returns asset platforms
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    id:
                      type: string
                      example: ethereum
                    name:
                      type: string
                      example: Ethereum
                    shortname:
                      type: string
                      nullable: true
                    chain_identifier:
                      type: number
                      nullable: true
                    native_coin_id:
                      type: string
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/derivatives-tickers:
    get:
      summary: Derivatives Tickers API
      tags:
        - Crypto Extended
        - eu:w:31
      description: "Returns cross-exchange derivatives data: perpetual/futures
        contracts with price, funding rate, open interest, and basis"
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: symbol
          required: false
          description: Filter by symbol (e.g. BTC, ETH)
        - schema:
            type: string
            nullable: true
          in: query
          name: market
          required: false
          description: Filter by market/exchange
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of results (default 50, max 200)
      security:
        - token: []
      responses:
        "200":
          description: Returns derivatives tickers
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    market:
                      type: string
                      example: Binance (Futures)
                    symbol:
                      type: string
                      example: BTC/USDT
                    contract_type:
                      type: string
                      nullable: true
                    price:
                      type: number
                      nullable: true
                    index_price:
                      type: number
                      nullable: true
                    basis:
                      type: number
                      nullable: true
                    spread:
                      type: number
                      nullable: true
                    funding_rate:
                      type: number
                      nullable: true
                    open_interest_usd:
                      type: number
                      nullable: true
                    volume_24h:
                      type: number
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/symbol-map:
    get:
      summary: Binance Symbol Map API
      tags:
        - Crypto Extended
        - eu:w:19
      description: Returns the mapping between Binance trading pair symbols and
        internal crypto identifiers. Useful for resolving which pairs are
        available and their trading status.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: status
          required: false
          description: Filter by trading status (e.g. TRADING)
        - schema:
            type: string
            nullable: true
          in: query
          name: base
          required: false
          description: Filter by base asset (e.g. BTC, ETH)
        - schema:
            type: string
            nullable: true
          in: query
          name: quote
          required: false
          description: Filter by quote asset (e.g. USDT, BTC)
      security:
        - token: []
      responses:
        "200":
          description: Returns symbol mappings
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    binance_symbol:
                      type: string
                      example: BTCUSDT
                    base_asset:
                      type: string
                      example: BTC
                    quote_asset:
                      type: string
                      example: USDT
                    identifier:
                      type: string
                      example: BTC
                      nullable: true
                    status:
                      type: string
                      example: TRADING
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/crypto-extended/exchanges:
    get:
      summary: Crypto Exchanges Directory
      tags:
        - Crypto Extended
        - eu:w:5
      description: Returns a directory of cryptocurrency exchanges with trust score,
        volume, and metadata.
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/crypto-extended/exchange-listings/{symbol}:
    get:
      summary: Exchange Listings for a Coin
      tags:
        - Crypto Extended
        - eu:w:8
      description: Returns which exchanges list a given cryptocurrency, with trading
        pair details.
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/crypto-extended/exchange-tickers/{exchangeId}:
    get:
      summary: Exchange Trading Pairs
      tags:
        - Crypto Extended
        - eu:w:8
      description: Returns all trading pairs available on a specific cryptocurrency
        exchange.
      parameters:
        - schema:
            type: integer
            default: 100
          in: query
          name: limit
          required: false
        - schema:
            type: string
          in: path
          name: exchangeId
          required: true
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/crypto-extended/liquidations/{symbol}:
    get:
      summary: Crypto Liquidation Events
      tags:
        - Crypto Extended
        - eu:w:10
      description: Returns recent liquidation events for a cryptocurrency (long/short,
        exchange, amount).
      parameters:
        - schema:
            type: integer
            default: 100
          in: query
          name: limit
          required: false
        - schema:
            type: string
          in: path
          name: symbol
          required: true
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/crypto-extended/faq/{symbol}:
    get:
      summary: Crypto FAQ Content
      tags:
        - Crypto Extended
        - eu:w:3
      description: Returns FAQ/educational content for a cryptocurrency. Useful for
        SEO structured data.
      parameters:
        - schema:
            type: string
          in: path
          name: symbol
          required: true
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/institutional/profile/{cik}:
    get:
      summary: Institutional Investor Profile API
      tags:
        - Institutional
        - eu:w:0
      description: Returns the profile of an institutional investor (hedge fund, asset
        manager) by their SEC CIK number. Includes fund name, manager, and AUM.
      parameters:
        - schema:
            type: string
          in: path
          name: cik
          required: true
          description: SEC CIK number (e.g. 1067983 for Berkshire Hathaway)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/institutional/portfolio/{cik}:
    get:
      summary: Institutional 13-F Portfolio API
      tags:
        - Institutional
        - eu:w:1
      description: Returns the full 13-F portfolio holdings of an institutional
        investor. Includes all positions with share counts, values, and changes
        from the latest filing.
      parameters:
        - schema:
            type: string
          in: path
          name: cik
          required: true
          description: SEC CIK number
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/institutional/13f/{cik}:
    get:
      summary: SEC 13F Holdings by Filer
      tags:
        - Institutional
        - eu:w:2
      description: Returns the latest 13F-HR portfolio holdings for an institutional
        investor by CIK, parsed directly from SEC EDGAR
      parameters:
        - schema:
            type: number
            default: 100
          in: query
          name: limit
          required: false
        - schema:
            type: string
          in: path
          name: cik
          required: true
          description: SEC CIK number
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/institutional/13f-holders/{ticker}:
    get:
      summary: SEC 13F Institutional Holders of a Stock
      tags:
        - Institutional
        - eu:w:3
      description: Returns all institutional investors holding a stock from the latest
        13F filings
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/institutional/13f-filers:
    get:
      summary: Top 13F Filers
      tags:
        - Institutional
        - eu:w:4
      description: Returns the largest institutional investors tracked by 13F filings,
        sorted by AUM
      parameters:
        - schema:
            type: number
            default: 50
          in: query
          name: limit
          required: false
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/institutional/fund-holdings/{cik}:
    get:
      summary: Fund Institutional Holdings by Filer
      tags:
        - Institutional
        - eu:w:5
      description: Returns institutional holdings from parsed SEC filings
        (funds.institutional_holdings) for a given filer CIK. Includes CUSIP,
        issuer name, share type, value, and share count.
      parameters:
        - schema:
            type: number
            default: 200
          in: query
          name: limit
          required: false
        - schema:
            type: string
          in: path
          name: cik
          required: true
          description: SEC CIK number
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/institutional/fund-holders/{ticker}:
    get:
      summary: Fund Institutional Holders of a Stock
      tags:
        - Institutional
        - eu:w:6
      description: Returns all institutional fund holders of a stock from
        funds.institutional_holdings, using CUSIP lookup from the profile table
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/institutional/top-holders:
    get:
      summary: Top Institutional Holders
      tags:
        - Institutional
        - eu:w:7
      description: Returns the largest institutional holders across all stocks from
        funds.institutional_holdings, ranked by total USD value held
      parameters:
        - schema:
            type: number
            default: 50
          in: query
          name: limit
          required: false
          description: Number of holders to return (default 50, max 200)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/analytics/fama-french:
    get:
      summary: Fama-French Factors
      tags:
        - Analytics
      description: Returns Fama-French factor returns (market, SMB, HML, RMW, CMA,
        momentum, risk-free rate) used for asset pricing models and portfolio
        attribution.
      parameters:
        - schema:
            type: string
          in: query
          name: start_date
          required: false
          description: Start date (YYYY-MM-DD)
        - schema:
            type: string
          in: query
          name: end_date
          required: false
          description: End date (YYYY-MM-DD)
        - schema:
            type: number
            default: 252
          in: query
          name: days
          required: false
          description: Number of days of history (default 252, max 5000)
      security: *a1
      responses:
        "200":
          description: Fama-French factor returns
          content:
            application/json:
              schema:
                description: Fama-French factor returns
                type: array
                items:
                  type: object
                  properties:
                    date:
                      type: string
                      example: 2026-04-01
                    mkt_rf:
                      type: number
                      example: 0.45
                      description: Market excess return (%)
                    smb:
                      type: number
                      example: -0.12
                      description: Small minus Big (%)
                    hml:
                      type: number
                      example: 0.08
                      description: High minus Low (%)
                    rmw:
                      type: number
                      example: 0.15
                      description: Robust minus Weak (%)
                    cma:
                      type: number
                      example: -0.05
                      description: Conservative minus Aggressive (%)
                    umd:
                      type: number
                      example: 0.3
                      nullable: true
                      description: Momentum factor (%)
                    rf:
                      type: number
                      example: 0.02
                      description: Risk-free rate (%)
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/analytics/cftc/tff/{market_code}:
    get:
      summary: CFTC TFF Report
      tags:
        - Analytics
      description: Returns CFTC Traders in Financial Futures (TFF) positioning data
        for a specific market. Shows dealer, asset manager, leveraged fund, and
        other reportable positions.
      parameters:
        - schema:
            type: number
            default: 365
          in: query
          name: days
          required: false
          description: Number of days of history (default 365, max 3650)
        - schema:
            type: string
          in: path
          name: market_code
          required: true
          description: CFTC market code (e.g. 099741 for VIX futures, 043602 for Eurodollar)
      security: *a1
      responses:
        "200":
          description: CFTC TFF positioning data
          content:
            application/json:
              schema:
                description: CFTC TFF positioning data
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/analytics/cftc/tff:
    get:
      summary: CFTC TFF Markets
      tags:
        - Analytics
      description: Returns the list of available CFTC TFF market codes and their names.
      security: *a1
      responses:
        "200":
          description: Available TFF markets
          content:
            application/json:
              schema:
                description: Available TFF markets
                type: array
                items:
                  type: object
                  properties:
                    market_code:
                      type: string
                    market_name:
                      type: string
                    latest_date:
                      type: string
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/analytics/corporate-events/{ticker}:
    get:
      summary: Corporate Events
      tags:
        - Analytics
      description: Returns SEC 8-K corporate events for a company (material events,
        earnings releases, acquisitions, management changes, etc.)
      parameters:
        - schema:
            type: number
            default: 365
          in: query
          name: days
          required: false
          description: Number of days of history (default 365, max 1825)
        - schema:
            type: number
            default: 50
          in: query
          name: limit
          required: false
          description: Max results (default 50, max 200)
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Corporate events
          content:
            application/json:
              schema:
                description: Corporate events
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/analytics/corporate-events:
    get:
      summary: Recent Corporate Events
      tags:
        - Analytics
      description: Returns the most recent SEC 8-K corporate events across all companies.
      parameters:
        - schema:
            type: number
            default: 7
          in: query
          name: days
          required: false
          description: Number of days to look back (default 7, max 90)
        - schema:
            type: number
            default: 100
          in: query
          name: limit
          required: false
          description: Max results (default 100, max 500)
      security: *a1
      responses:
        "200":
          description: Recent corporate events
          content:
            application/json:
              schema:
                description: Recent corporate events
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/analytics/earnings-calendar:
    get:
      summary: Earnings Calendar
      tags:
        - Analytics
      description: Returns upcoming and recent earnings release dates with estimated
        and actual EPS where available.
      parameters:
        - schema:
            type: string
          in: query
          name: start_date
          required: false
          description: "Start date (YYYY-MM-DD). Default: 7 days ago"
        - schema:
            type: string
          in: query
          name: end_date
          required: false
          description: "End date (YYYY-MM-DD). Default: 30 days from now"
        - schema:
            type: string
          in: query
          name: ticker
          required: false
          description: Filter by ticker symbol
        - schema:
            type: number
            default: 200
          in: query
          name: limit
          required: false
          description: Max results (default 200, max 1000)
      security: *a1
      responses:
        "200":
          description: Earnings calendar
          content:
            application/json:
              schema:
                description: Earnings calendar
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/analytics/options-volume:
    get:
      summary: Options Volume
      tags:
        - Analytics
      description: Returns aggregate options volume data including put/call ratios,
        total volume, and open interest.
      parameters:
        - schema:
            type: number
            default: 30
          in: query
          name: days
          required: false
          description: Number of days of history (default 30, max 365)
        - schema:
            type: string
          in: query
          name: ticker
          required: false
          description: Filter by ticker symbol
      security: *a1
      responses:
        "200":
          description: Options volume data
          content:
            application/json:
              schema:
                description: Options volume data
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/ecb/exchange-rates:
    get:
      summary: ECB exchange rates
      tags:
        - ECB
      description: Returns ECB euro foreign exchange reference rates (EUR vs other
        currencies). Without from/to, returns the latest published date for all
        currencies (or one currency if filtered).
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: currency
          required: false
          description: Optional ISO currency code (e.g. USD, GBP)
        - schema:
            type: string
            nullable: true
          in: query
          name: from
          required: false
          description: Start date (YYYY-MM-DD)
        - schema:
            type: string
            nullable: true
          in: query
          name: to
          required: false
          description: End date (YYYY-MM-DD)
      security: *a1
      responses:
        "200":
          description: Rows from macro.ecb_exchange_rates
          content:
            application/json:
              schema:
                description: Rows from macro.ecb_exchange_rates
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/ecb/exchange-rates/{currency}:
    get:
      summary: ECB exchange rate history
      tags:
        - ECB
      description: Historical EUR reference rate for a single currency (date + rate).
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: from
          required: false
          description: Start date (YYYY-MM-DD)
        - schema:
            type: string
            nullable: true
          in: query
          name: to
          required: false
          description: End date (YYYY-MM-DD)
        - schema:
            type: number
            default: 365
          in: query
          name: limit
          required: false
          description: Max rows (default 365, max 10000)
        - schema:
            type: string
          in: path
          name: currency
          required: true
          description: ISO currency code (e.g. USD, GBP, JPY)
      security: *a1
      responses:
        "200":
          description: date and rate
          content:
            application/json:
              schema:
                description: date and rate
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          example: 2024-12-31
                        rate:
                          type: number
                          example: 1.085
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/ecb/key-rates:
    get:
      summary: ECB key interest rates
      tags:
        - ECB
      description: "ECB key policy rates: main refinancing, deposit facility, marginal
        lending (macro.ecb_key_rates)."
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: from
          required: false
          description: Optional start date (YYYY-MM-DD)
        - schema:
            type: number
            default: 100
          in: query
          name: limit
          required: false
          description: Max rows (default 100, max 5000)
      security: *a1
      responses:
        "200":
          description: ECB key rates rows
          content:
            application/json:
              schema:
                description: ECB key rates rows
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/ecb/yield-curves:
    get:
      summary: ECB euro area yield curves
      tags:
        - ECB
      description: AAA euro area government spot yields by tenor
        (macro.ecb_yield_curves). Maturities include 1Y, 2Y, 3Y, 5Y, 10Y, 30Y.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: date
          required: false
          description: Filter by observation date (YYYY-MM-DD)
        - schema:
            type: string
            nullable: true
          in: query
          name: maturity
          required: false
          description: Tenor label (e.g. 10Y)
        - schema:
            type: number
            default: 500
          in: query
          name: limit
          required: false
          description: Max rows when no date filter (default 500, max 10000)
      security: *a1
      responses:
        "200":
          description: Yield curve rows
          content:
            application/json:
              schema:
                description: Yield curve rows
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/interest-rates/rates:
    get:
      summary: US key interest rates (latest)
      tags:
        - Interest rates
      description: Latest FRED observation per series for Fed funds, Treasuries,
        spreads, prime, mortgage, SOFR, AMERIBOR (macro.fred_observations).
      security: *a1
      responses:
        "200":
          description: Latest rate rows
          content:
            application/json:
              schema:
                description: Latest rate rows
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        series_id:
                          type: string
                          example: DGS10
                        date:
                          type: string
                          example: 2026-04-04
                        value:
                          type: number
                          nullable: true
                        title:
                          type: string
                          nullable: true
                        units:
                          type: string
                          nullable: true
                        frequency:
                          type: string
                          nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/interest-rates/yield-curve:
    get:
      summary: US Treasury yield curve (latest)
      tags:
        - Interest rates
      description: Latest daily observations for 1Y, 2Y, 5Y, 10Y, 30Y constant
        maturity (DGS1–DGS30).
      security: *a1
      responses:
        "200":
          description: Yield curve points
          content:
            application/json:
              schema:
                description: Yield curve points
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        tenor:
                          type: string
                          example: 10Y
                        series_id:
                          type: string
                          example: DGS10
                        date:
                          type: string
                        value:
                          type: number
                          nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/interest-rates/spreads:
    get:
      summary: US Treasury spreads (latest)
      tags:
        - Interest rates
      description: Latest 10Y–2Y and 10Y–3M spreads (T10Y2Y, T10Y3M).
      security: *a1
      responses:
        "200":
          description: Spread rows
          content:
            application/json:
              schema:
                description: Spread rows
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        series_id:
                          type: string
                        date:
                          type: string
                        value:
                          type: number
                          nullable: true
                        title:
                          type: string
                          nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/interest-rates/rates/{series_id}:
    get:
      summary: FRED interest rate history
      tags:
        - Interest rates
      description: Historical observations for one FRED series (allowlisted).
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: from
          required: false
          description: Start date (YYYY-MM-DD)
        - schema:
            type: string
            nullable: true
          in: query
          name: to
          required: false
          description: End date (YYYY-MM-DD)
        - schema:
            type: number
            default: 365
          in: query
          name: limit
          required: false
          description: Max rows (default 365, max 50000)
        - schema:
            type: string
          in: path
          name: series_id
          required: true
          description: FRED series id (e.g. DGS10, SOFR)
      security: *a1
      responses:
        "200":
          description: date and value
          content:
            application/json:
              schema:
                description: date and value
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          example: 2026-04-01
                        value:
                          type: number
                          nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/certificates/profile/{identifier}:
    get:
      summary: Certificate Profile API
      tags:
        - Certificates
        - eu:w:0
      description: Returns profile data for a structured product / certificate by
        identifier (ISIN), including underlying, strike, barrier, and issuer
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: Certificate identifier (ISIN)
      security:
        - token: []
      responses:
        "200":
          description: Returns certificate profile
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/certificates/list:
    get:
      summary: Certificate List API
      tags:
        - Certificates
        - eu:w:1
      description: Returns a paginated list of available certificates / structured products
      parameters:
        - schema:
            type: number
          in: query
          name: offset
          required: false
          description: Start index (default 0)
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of results (default 50, max 200)
      security:
        - token: []
      responses:
        "200":
          description: Returns certificate list with total count
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  total:
                    type: number
                    example: 5432
                  offset:
                    type: number
                    example: 0
                  limit:
                    type: number
                    example: 50
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/certificates/quotes/{identifier}:
    get:
      summary: Certificate Quotes API
      tags:
        - Certificates
        - eu:w:2
      description: Returns historical price data for a certificate by identifier (ISIN)
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: Certificate identifier (ISIN)
      security:
        - token: []
      responses:
        "200":
          description: Returns certificate price history
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    timestamp:
                      type: number
                      example: 1705276800000
                    price:
                      type: number
                      example: 102.5
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Security not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/patents/list/{ticker}:
    get:
      summary: Company Patents API
      tags:
        - Alternative Data
        - eu:w:0
      description: Returns patent filings for a company by ticker symbol
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 100, max 500)
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Returns patent list
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    patent_id:
                      type: string
                      example: "11234567"
                    title:
                      type: string
                      example: System and method for...
                    grant_date:
                      type: string
                      example: 2025-01-15
                    num_claims:
                      type: number
                      example: 20
                    patent_type:
                      type: string
                      example: utility
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/patents/stats/{ticker}:
    get:
      summary: Patent Statistics API
      tags:
        - Alternative Data
        - eu:w:1
      description: Returns annual patent statistics for a company
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Returns patent stats by year
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    year:
                      type: number
                      example: 2025
                    patent_count:
                      type: number
                      example: 150
                    avg_claims:
                      type: number
                      example: 18.5
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/government/contracts/{ticker}:
    get:
      summary: Government Contracts API
      tags:
        - Alternative Data
        - eu:w:0
      description: Returns federal government contracts awarded to a company
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 100, max 500)
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Returns government contracts
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    contract_id:
                      type: string
                      example: CONT_AWD_12345
                    award_amount:
                      type: number
                      example: 5000000
                    agency_name:
                      type: string
                      example: Department of Defense
                    start_date:
                      type: string
                      example: 2024-01-15
                    description:
                      type: string
                      example: Software development services
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/government/stats/{ticker}:
    get:
      summary: Government Contract Statistics API
      tags:
        - Alternative Data
        - eu:w:1
      description: Returns annual government contract statistics for a company
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Stock ticker symbol
      security:
        - token: []
      responses:
        "200":
          description: Returns contract stats by fiscal year
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    fiscal_year:
                      type: number
                      example: 2025
                    total_value:
                      type: number
                      example: 50000000
                    contract_count:
                      type: number
                      example: 15
                    top_agencies:
                      type: array
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/government/treasury/auctions:
    get:
      summary: Treasury Auction Results API
      tags:
        - Macro
        - eu:w:2
      description: Returns recent US Treasury auction results
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: type
          required: false
          description: Security type filter (e.g. Bill, Note, Bond)
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 100)
      security:
        - token: []
      responses:
        "200":
          description: Returns auction results
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/government/treasury/debt:
    get:
      summary: US National Debt API
      tags:
        - Macro
        - eu:w:3
      description: Returns historical US national debt outstanding data
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 100)
      security:
        - token: []
      responses:
        "200":
          description: Returns debt outstanding history
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/government/treasury/yields:
    get:
      summary: Daily Treasury Yield Curve API
      tags:
        - Macro
        - eu:w:4
      description: Returns daily US Treasury yield curve data across maturities
      parameters:
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of days (default 365)
      security:
        - token: []
      responses:
        "200":
          description: Returns daily yield data
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
  /api/1/portfolio/portfolios:
    get:
      summary: List portfolios
      tags:
        - Portfolio
        - eu:w:0
      description: Returns all portfolios for the authenticated user
      security:
        - token: []
      responses:
        "200":
          description: Default Response
    post:
      summary: Create portfolio
      tags:
        - Portfolio
        - eu:w:1
      description: Creates a new portfolio for the authenticated user
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/portfolio/portfolios/{id}/positions:
    get:
      summary: Portfolio positions
      tags:
        - Portfolio
        - eu:w:0
      description: Returns positions with current prices for a portfolio
      security:
        - token: []
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        "200":
          description: Default Response
  /api/1/portfolio/portfolios/{id}/valuations:
    get:
      summary: Portfolio daily valuations
      tags:
        - Portfolio
        - eu:w:0
      description: Returns daily valuation history for a portfolio
      parameters:
        - schema:
            type: number
            default: 365
          in: query
          name: days
          required: false
        - schema:
            type: string
          in: path
          name: id
          required: true
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/portfolio/portfolios/{id}:
    delete:
      summary: Delete portfolio
      tags:
        - Portfolio
        - eu:w:2
      description: Deletes a portfolio and all its positions/transactions
      security:
        - token: []
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        "200":
          description: Default Response
  /api/1/portfolio/portfolios/{id}/transactions:
    post:
      summary: Add transaction
      tags:
        - Portfolio
        - eu:w:3
      description: Records a buy/sell/dividend transaction and updates the portfolio
        position
      security:
        - token: []
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        "200":
          description: Default Response
  /api/1/portfolio/portfolios/{id}/analytics:
    get:
      summary: Portfolio analytics
      tags:
        - Portfolio
        - eu:w:4
      description: "Returns comprehensive portfolio analytics: P&L, sector/country
        allocation, risk metrics"
      security:
        - token: []
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        "200":
          description: Default Response
  /api/1/portfolio/portfolios/{id}/alerts:
    get:
      summary: Portfolio alerts
      tags:
        - Portfolio
        - eu:w:5
      description: Returns all alerts configured for a portfolio
      security:
        - token: []
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        "200":
          description: Default Response
    post:
      summary: Create alert
      tags:
        - Portfolio
        - eu:w:6
      description: Creates a price/volume alert for a portfolio position
      security:
        - token: []
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        "200":
          description: Default Response
  /api/1/portfolio-risk/attribution/{portfolioId}:
    get:
      summary: Brinson Attribution
      tags:
        - Portfolio Risk
      description: Brinson-Fachler performance attribution decomposing active return
        into allocation, selection, and interaction effects
      parameters:
        - schema:
            type: string
            default: 1y
          in: query
          name: period
          required: false
          description: "Period: 1m, 3m, 6m, 1y, ytd"
        - schema:
            type: string
          in: path
          name: portfolioId
          required: true
          description: Portfolio UUID
      security: *a1
      responses:
        "200":
          description: Brinson-Fachler attribution
          content:
            application/json:
              schema:
                description: Brinson-Fachler attribution
                type: object
                properties:
                  totalActiveReturn:
                    type: number
                  allocation:
                    type: array
                    items:
                      type: object
                      properties:
                        sector:
                          type: string
                        effect:
                          type: number
                  selection:
                    type: array
                    items:
                      type: object
                      properties:
                        sector:
                          type: string
                        effect:
                          type: number
                  interaction:
                    type: array
                    items:
                      type: object
                      properties:
                        sector:
                          type: string
                        effect:
                          type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/portfolio-risk/var/{portfolioId}:
    get:
      summary: Value at Risk
      tags:
        - Portfolio Risk
      description: Computes VaR using historical, parametric, and Monte Carlo methods
        plus Expected Shortfall
      parameters:
        - schema:
            type: number
            default: 0.95
          in: query
          name: confidence
          required: false
          description: Confidence level (default 0.95)
        - schema:
            type: number
            default: 1
          in: query
          name: horizon
          required: false
          description: "Horizon in days: 1, 5, or 10"
        - schema:
            type: string
            default: historical
          in: query
          name: method
          required: false
          description: "Method: historical, parametric, montecarlo"
        - schema:
            type: string
          in: path
          name: portfolioId
          required: true
          description: Portfolio UUID
      security: *a1
      responses:
        "200":
          description: Value at Risk
          content:
            application/json:
              schema:
                description: Value at Risk
                type: object
                properties:
                  confidence:
                    type: number
                  horizon:
                    type: number
                  historical:
                    type: number
                  parametric:
                    type: number
                  monteCarlo:
                    type: number
                  expectedShortfall:
                    type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/portfolio-risk/risk-metrics/{portfolioId}:
    get:
      summary: Risk Metrics
      tags:
        - Portfolio Risk
      description: "Returns comprehensive risk/return metrics: Sharpe, Sortino, max
        drawdown, tracking error, beta, alpha, volatility"
      parameters:
        - schema:
            type: string
          in: path
          name: portfolioId
          required: true
          description: Portfolio UUID
      security: *a1
      responses:
        "200":
          description: Risk metrics
          content:
            application/json:
              schema:
                description: Risk metrics
                type: object
                properties:
                  sharpe:
                    type: number
                  sortino:
                    type: number
                  maxDrawdown:
                    type: number
                  maxDrawdownDuration:
                    type: number
                  calmar:
                    type: number
                  beta:
                    type: number
                  alpha:
                    type: number
                  volatility:
                    type: number
                  annualizedReturn:
                    type: number
                  trackingError:
                    type: number
                    nullable: true
                  informationRatio:
                    type: number
                    nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/portfolio-risk/stress-test/{portfolioId}:
    post:
      summary: Stress Test
      tags:
        - Portfolio Risk
      description: "Applies predefined and custom stress scenarios to portfolio
        positions. Predefined: GFC 2008, COVID Crash, Rate Shock +200bp, Tech
        Selloff -30%, EM Crisis"
      parameters:
        - schema:
            type: string
          in: path
          name: portfolioId
          required: true
          description: Portfolio UUID
      security: *a1
      responses:
        "200":
          description: Stress test results
          content:
            application/json:
              schema:
                description: Stress test results
                type: object
                properties:
                  scenarios:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        portfolioImpact:
                          type: number
                        positionImpacts:
                          type: array
                          items:
                            type: object
                            properties:
                              ticker:
                                type: string
                              impact:
                                type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/portfolio-risk/correlation/{portfolioId}:
    get:
      summary: Correlation Matrix
      tags:
        - Portfolio Risk
      description: Returns pairwise correlation matrix for all portfolio positions
        with concentrated risk warnings
      parameters:
        - schema:
            type: string
          in: path
          name: portfolioId
          required: true
          description: Portfolio UUID
      security: *a1
      responses:
        "200":
          description: Correlation matrix
          content:
            application/json:
              schema:
                description: Correlation matrix
                type: object
                properties:
                  tickers:
                    type: array
                    items:
                      type: string
                  matrix:
                    type: array
                    items:
                      type: array
                      items:
                        type: number
                  warnings:
                    type: array
                    items:
                      type: object
                      properties:
                        pair:
                          type: string
                        correlation:
                          type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/portfolio-risk/tracking/{portfolioId}:
    get:
      summary: Tracking Error
      tags:
        - Portfolio Risk
      description: Rolling and current tracking error, information ratio, and active
        share versus benchmark
      parameters:
        - schema:
            type: string
          in: path
          name: portfolioId
          required: true
          description: Portfolio UUID
      security: *a1
      responses:
        "200":
          description: Tracking error analysis
          content:
            application/json:
              schema:
                description: Tracking error analysis
                type: object
                properties:
                  benchmark:
                    type: string
                    nullable: true
                  trackingError:
                    type: number
                  informationRatio:
                    type: number
                  activeShare:
                    type: number
                    nullable: true
                  rollingTE:
                    type: array
                    items:
                      type: object
                      properties:
                        window:
                          type: number
                        trackingError:
                          type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/singapore/mas/interest-rates:
    get:
      summary: MAS Interest Rates API
      tags:
        - Singapore
        - eu:w:0
      description: Returns Singapore interest rates (SORA, prime rate, fixed deposit
        rates) from the Monetary Authority of Singapore
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: series
          required: false
          description: Filter by series_id (e.g. sora, prime_rate, fd_3m)
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 365)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/singapore/mas/exchange-rates:
    get:
      summary: MAS Exchange Rates API
      tags:
        - Singapore
        - eu:w:1
      description: Returns SGD exchange rates from the Monetary Authority of Singapore
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: currency
          required: false
          description: Filter by currency code (e.g. USD, EUR, JPY)
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 365)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/singapore/mas/money-supply:
    get:
      summary: MAS Money Supply API
      tags:
        - Singapore
        - eu:w:2
      description: Returns Singapore money supply data (M1, M2, M3) from the Monetary
        Authority of Singapore
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: aggregate
          required: false
          description: Filter by aggregate (M1, M2, M3)
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 120)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/singapore/corporate-actions:
    get:
      summary: SGX Corporate Actions API
      tags:
        - Singapore
        - eu:w:3
      description: Returns dividends, splits, rights issues, and bonus issues for
        SGX-listed companies
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: isin
          required: false
          description: Filter by ISIN
        - schema:
            type: string
            nullable: true
          in: query
          name: type
          required: false
          description: Filter by action type (DIVIDEND, SPLIT, RIGHTS, BONUS)
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 100)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/singapore/insider-trades:
    get:
      summary: SGX Insider Trades API
      tags:
        - Singapore
        - eu:w:4
      description: Returns substantial shareholder notifications and director dealings
        for SGX-listed companies
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: isin
          required: false
          description: Filter by ISIN
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 100)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/singapore/reits:
    get:
      summary: S-REIT Metrics API
      tags:
        - Singapore
        - eu:w:5
      description: Returns key metrics for Singapore REITs including DPU, NAV,
        occupancy, WALE, and gearing
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: isin
          required: false
          description: Filter by ISIN
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 100)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/singapore/reits/list:
    get:
      summary: S-REIT List API
      tags:
        - Singapore
        - eu:w:6
      description: Returns a list of all Singapore REITs with their latest metrics
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/singapore/announcements:
    get:
      summary: SGX Announcements API
      tags:
        - Singapore
        - eu:w:7
      description: Returns corporate announcements from SGXNet for SGX-listed companies
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: isin
          required: false
          description: Filter by ISIN
        - schema:
            type: string
            nullable: true
          in: query
          name: category
          required: false
          description: Filter by announcement category
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 50)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/singapore/economic-stats:
    get:
      summary: Singapore Economic Statistics API
      tags:
        - Singapore
        - eu:w:8
      description: Returns economic statistics for Singapore (GDP, CPI, trade, labour,
        housing) from data.gov.sg
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: category
          required: false
          description: Filter by category (gdp, inflation, trade, labour, business, housing)
        - schema:
            type: string
            nullable: true
          in: query
          name: series
          required: false
          description: Filter by series_id
        - schema:
            type: number
            nullable: true
          in: query
          name: limit
          required: false
          description: Number of results (default 500)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/singapore/economic-stats/series:
    get:
      summary: Singapore Economic Stats Series List
      tags:
        - Singapore
        - eu:w:9
      description: Returns available economic data series with their categories and
        latest dates
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/nft/list:
    get:
      summary: NFT Collections List API
      tags:
        - NFT
        - eu:w:0
      description: Returns a paginated list of NFT collections ranked by market cap,
        with floor price, volume, and holder data
      parameters:
        - schema:
            type: number
          in: query
          name: offset
          required: false
          description: Pagination offset (default 0)
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Number of results (default 50, max 200)
        - schema:
            type: string
          in: query
          name: sort
          required: false
          description: "Sort field: market_cap, volume_24h, floor_price (default
            market_cap)"
        - schema:
            type: string
          in: query
          name: order
          required: false
          description: "Sort order: desc, asc (default desc)"
        - schema:
            type: string
            nullable: true
          in: query
          name: platform
          required: false
          description: Filter by asset platform (e.g. ethereum, solana)
      security:
        - token: []
      responses:
        "200":
          description: Returns NFT collections
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: number
                  offset:
                    type: number
                  limit:
                    type: number
                  results:
                    type: array
                    items:
                      properties:
                        id:
                          type: string
                          example: bored-ape-yacht-club
                        name:
                          type: string
                          example: Bored Ape Yacht Club
                        symbol:
                          type: string
                          example: BAYC
                          nullable: true
                        floor_price_usd:
                          type: number
                          nullable: true
                        market_cap_usd:
                          type: number
                          nullable: true
                        volume_24h_usd:
                          type: number
                          nullable: true
                        floor_price_24h_pct_change:
                          type: number
                          nullable: true
                        total_supply:
                          type: number
                          nullable: true
                        number_of_unique_addresses:
                          type: number
                          nullable: true
                        native_currency:
                          type: string
                          nullable: true
                        asset_platform_id:
                          type: string
                          nullable: true
                        image_small:
                          type: string
                          nullable: true
                      type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/nft/profile/{id}:
    get:
      summary: NFT Collection Profile API
      tags:
        - NFT
        - eu:w:1
      description: Returns detailed profile for a specific NFT collection including
        floor price, market cap, volume, supply, holder count, and social links
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
          description: NFT collection ID (e.g. bored-ape-yacht-club, cryptopunks)
      security:
        - token: []
      responses:
        "200":
          description: Returns NFT collection profile
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  symbol:
                    type: string
                    nullable: true
                  description:
                    type: string
                    nullable: true
                  contract_address:
                    type: string
                    nullable: true
                  asset_platform_id:
                    type: string
                    nullable: true
                  native_currency:
                    type: string
                    nullable: true
                  floor_price_usd:
                    type: number
                    nullable: true
                  market_cap_usd:
                    type: number
                    nullable: true
                  volume_24h_usd:
                    type: number
                    nullable: true
                  floor_price_24h_pct_change:
                    type: number
                    nullable: true
                  market_cap_24h_pct_change:
                    type: number
                    nullable: true
                  total_supply:
                    type: number
                    nullable: true
                  number_of_unique_addresses:
                    type: number
                    nullable: true
                  one_day_sales:
                    type: number
                    nullable: true
                  one_day_average_sale_price:
                    type: number
                    nullable: true
                  image_url:
                    type: string
                    nullable: true
                  banner_image:
                    type: string
                    nullable: true
                  links:
                    type: object
                    nullable: true
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        "404":
          description: Collection not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/nft/search/{query}:
    get:
      summary: NFT Collection Search API
      tags:
        - NFT
        - eu:w:2
      description: Search NFT collections by name or symbol
      parameters:
        - schema:
            type: number
          in: query
          name: limit
          required: false
          description: Max results (default 20, max 50)
        - schema:
            type: string
          in: path
          name: query
          required: true
          description: Search query (name or symbol)
      security:
        - token: []
      responses:
        "200":
          description: Returns matching NFT collections
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    id:
                      type: string
                    name:
                      type: string
                    symbol:
                      type: string
                      nullable: true
                    floor_price_usd:
                      type: number
                      nullable: true
                    market_cap_usd:
                      type: number
                      nullable: true
                    image_small:
                      type: string
                      nullable: true
                    asset_platform_id:
                      type: string
                      nullable: true
                  type: object
        "401":
          description: Token not valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/1/nft/market-chart/{id}:
    get:
      summary: NFT Collection Price History
      tags:
        - NFT
        - eu:w:10
      description: Returns historical floor price, market cap, and 24h volume for an
        NFT collection.
      parameters:
        - schema:
            type: integer
            default: 365
          in: query
          name: days
          required: false
          description: "Number of days of history (default: all)"
        - schema:
            type: string
          in: path
          name: id
          required: true
          description: NFT collection ID (CoinGecko slug)
      security:
        - token: []
      responses:
        "200":
          description: Default Response
  /api/1/fundamentals/financials/{identifier}:
    get:
      summary: XBRL Financial Facts
      tags:
        - Fundamentals
      description: Returns all SEC XBRL financial facts for a company identified by
        ticker or CIK number. Supports filtering by tag, fiscal period, and form
        type.
      parameters:
        - schema:
            type: string
          in: query
          name: tag
          required: false
          description: Filter by specific XBRL tag (e.g. Revenues, NetIncomeLoss)
        - schema:
            type: string
          in: query
          name: fiscal_period
          required: false
          description: Filter by fiscal period (e.g. FY, Q1, Q2, Q3, Q4)
        - schema:
            type: string
          in: query
          name: form
          required: false
          description: Filter by SEC form type (e.g. 10-K, 10-Q)
        - schema:
            type: integer
            minimum: 1
            maximum: 2000
          in: query
          name: limit
          required: false
          description: Max results (default 500, max 2000)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: XBRL financial facts
          content:
            application/json:
              schema:
                description: XBRL financial facts
                type: array
                items:
                  type: object
                  properties:
                    cik:
                      type: integer
                      example: 320193
                    ticker:
                      type: string
                      example: AAPL
                    taxonomy:
                      type: string
                      example: us-gaap
                    tag:
                      type: string
                      example: Revenues
                    period_end:
                      type: string
                      example: 2024-09-28
                    fiscal_year:
                      type: integer
                      example: 2024
                    fiscal_period:
                      type: string
                      example: FY
                    form:
                      type: string
                      example: 10-K
                    val:
                      type: number
                      example: 391035000000
                    unit:
                      type: string
                      example: USD
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/fundamentals/financials/{identifier}/income-statement:
    get:
      summary: Income Statement
      tags:
        - Fundamentals
      description: Returns income statement items (revenue, net income, EPS, gross
        profit, operating expenses) from SEC XBRL filings.
      parameters:
        - schema:
            type: string
          in: query
          name: fiscal_period
          required: false
          description: Filter by fiscal period (FY, Q1, Q2, Q3, Q4)
        - schema:
            type: string
          in: query
          name: form
          required: false
          description: Filter by SEC form type (10-K, 10-Q)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Income statement data
          content:
            application/json:
              schema:
                description: Income statement data
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/fundamentals/financials/{identifier}/balance-sheet:
    get:
      summary: Balance Sheet
      tags:
        - Fundamentals
      description: Returns balance sheet items (assets, liabilities, equity, debt,
        cash) from SEC XBRL filings.
      parameters:
        - schema:
            type: string
          in: query
          name: fiscal_period
          required: false
          description: Filter by fiscal period (FY, Q1, Q2, Q3, Q4)
        - schema:
            type: string
          in: query
          name: form
          required: false
          description: Filter by SEC form type (10-K, 10-Q)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Balance sheet data
          content:
            application/json:
              schema:
                description: Balance sheet data
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/fundamentals/financials/{identifier}/cash-flow:
    get:
      summary: Cash Flow Statement
      tags:
        - Fundamentals
      description: Returns cash flow statement items (operating, investing, financing
        activities) from SEC XBRL filings.
      parameters:
        - schema:
            type: string
          in: query
          name: fiscal_period
          required: false
          description: Filter by fiscal period (FY, Q1, Q2, Q3, Q4)
        - schema:
            type: string
          in: query
          name: form
          required: false
          description: Filter by SEC form type (10-K, 10-Q)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Cash flow data
          content:
            application/json:
              schema:
                description: Cash flow data
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/fundamentals/financials/{identifier}/ratios:
    get:
      summary: Financial Ratios
      tags:
        - Fundamentals
      description: Computes key financial ratios (P/E, P/B, Debt/Equity, ROE, profit
        margin) from SEC XBRL data. Requires a current stock price via the price
        query parameter for market-based ratios.
      parameters:
        - schema:
            type: number
          in: query
          name: price
          required: false
          description: Current stock price (required for P/E, P/B)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Computed financial ratios
          content:
            application/json:
              schema:
                description: Computed financial ratios
                type: object
                properties:
                  ticker:
                    type: string
                  fiscal_year:
                    type: integer
                  pe_ratio:
                    type: number
                    nullable: true
                  pb_ratio:
                    type: number
                    nullable: true
                  debt_to_equity:
                    type: number
                    nullable: true
                  roe:
                    type: number
                    nullable: true
                  profit_margin:
                    type: number
                    nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/fundamentals/facts/search:
    get:
      summary: XBRL Tag Search
      tags:
        - Fundamentals
      description: Search for a specific XBRL tag across all companies. Returns the
        latest value for each company matching the tag.
      parameters:
        - schema:
            type: string
          in: query
          name: tag
          required: true
          description: XBRL tag name to search (e.g. Revenues, NetIncomeLoss)
        - schema:
            type: string
          in: query
          name: fiscal_period
          required: false
          description: Filter by fiscal period (FY, Q1, Q2, Q3, Q4)
        - schema:
            type: string
          in: query
          name: form
          required: false
          description: Filter by SEC form type (10-K, 10-Q)
        - schema:
            type: number
          in: query
          name: min_val
          required: false
          description: Minimum value filter
        - schema:
            type: integer
            minimum: 1
            maximum: 500
          in: query
          name: limit
          required: false
          description: Max results (default 100, max 500)
      security: *a1
      responses:
        "200":
          description: XBRL tag search results
          content:
            application/json:
              schema:
                description: XBRL tag search results
                type: array
                items:
                  type: object
                  properties:
                    cik:
                      type: integer
                    ticker:
                      type: string
                    tag:
                      type: string
                    period_end:
                      type: string
                    fiscal_year:
                      type: integer
                    fiscal_period:
                      type: string
                    form:
                      type: string
                    val:
                      type: number
                    unit:
                      type: string
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/fundamentals/company/{identifier}:
    get:
      summary: SEC Company Info
      tags:
        - Fundamentals
      description: Returns SEC company registration info including CIK, ticker, SIC
        industry code, state of incorporation, and fiscal year end.
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: SEC company info
          content:
            application/json:
              schema:
                description: SEC company info
                type: object
                properties:
                  cik:
                    type: integer
                    example: 320193
                  ticker:
                    type: string
                    example: AAPL
                  company_name:
                    type: string
                    example: Apple Inc.
                  sic:
                    type: string
                    example: "3571"
                  sic_description:
                    type: string
                    example: Electronic Computers
                  state:
                    type: string
                    example: CA
                  fiscal_year_end:
                    type: string
                    example: "0928"
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/energy/petroleum/weekly:
    get:
      summary: Petroleum Weekly
      tags:
        - Energy
      description: Returns EIA weekly petroleum status data. Filter by series_id for
        specific metrics (e.g. crude oil production, stocks, imports).
      parameters:
        - schema:
            type: string
          in: query
          name: series_id
          required: false
          description: Filter by EIA series identifier
        - schema:
            type: string
          in: query
          name: start_date
          required: false
          description: Start date (YYYY-MM-DD)
        - schema:
            type: string
          in: query
          name: end_date
          required: false
          description: End date (YYYY-MM-DD)
        - schema:
            type: integer
            minimum: 1
            maximum: 5000
          in: query
          name: limit
          required: false
          description: Max results (default 500, max 5000)
      security: *a1
      responses:
        "200":
          description: EIA petroleum weekly data
          content:
            application/json:
              schema:
                description: EIA petroleum weekly data
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/energy/natural-gas/weekly:
    get:
      summary: Natural Gas Weekly
      tags:
        - Energy
      description: Returns EIA weekly natural gas storage and supply data.
      parameters:
        - schema:
            type: string
          in: query
          name: series_id
          required: false
          description: Filter by EIA series identifier
        - schema:
            type: string
          in: query
          name: start_date
          required: false
          description: Start date (YYYY-MM-DD)
        - schema:
            type: string
          in: query
          name: end_date
          required: false
          description: End date (YYYY-MM-DD)
        - schema:
            type: integer
            minimum: 1
            maximum: 2000
          in: query
          name: limit
          required: false
          description: Max results (default 500, max 2000)
      security: *a1
      responses:
        "200":
          description: EIA natural gas weekly data
          content:
            application/json:
              schema:
                description: EIA natural gas weekly data
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/energy/storage/facilities:
    get:
      summary: Storage Facilities
      tags:
        - Energy
      description: List global oil/gas storage facilities with locations and capacities.
      parameters:
        - schema:
            type: string
          in: query
          name: facility_type
          required: false
          description: underground_gas, tank_farm, spr, lng_terminal, floating
        - schema:
            type: string
          in: query
          name: country_code
          required: false
          description: ISO country code
        - schema:
            type: integer
            minimum: 1
            maximum: 500
          in: query
          name: limit
          required: false
          description: Max results (default 200)
      security: *a1
      responses:
        "200":
          description: Storage facilities GeoJSON
          content:
            application/json:
              schema:
                description: Storage facilities GeoJSON
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/energy/storage/facilities/{id}/levels:
    get:
      summary: Facility Storage Levels
      tags:
        - Energy
      description: Time-series fill levels for a specific storage facility.
      parameters:
        - schema:
            type: string
          in: query
          name: start_date
          required: false
          description: Start date (YYYY-MM-DD)
        - schema:
            type: string
          in: query
          name: end_date
          required: false
          description: End date (YYYY-MM-DD)
        - schema:
            type: integer
            minimum: 1
            maximum: 2000
          in: query
          name: limit
          required: false
          description: Max results (default 365)
        - schema:
            type: integer
          in: path
          name: id
          required: true
      security: *a1
      responses:
        "200":
          description: Storage levels time-series
          content:
            application/json:
              schema:
                description: Storage levels time-series
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/energy/storage/latest:
    get:
      summary: Latest Storage Levels
      tags:
        - Energy
      description: Latest fill level for every tracked storage facility.
      security: *a1
      responses:
        "200":
          description: Latest storage levels
          content:
            application/json:
              schema:
                description: Latest storage levels
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/energy/storage/summary:
    get:
      summary: Storage Summary
      tags:
        - Energy
      description: Aggregate storage statistics by country and facility type.
      parameters:
        - schema:
            type: string
          in: query
          name: country_code
          required: false
        - schema:
            type: string
          in: query
          name: facility_type
          required: false
      security: *a1
      responses:
        "200":
          description: Storage summary
          content:
            application/json:
              schema:
                description: Storage summary
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/energy/energy/latest:
    get:
      summary: Latest Energy Data
      tags:
        - Energy
      description: Returns the most recent data point for each energy series across
        petroleum and natural gas datasets.
      security: *a1
      responses:
        "200":
          description: Latest energy readings
          content:
            application/json:
              schema:
                description: Latest energy readings
                type: object
                properties:
                  petroleum:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  natural_gas:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/shipping/vessels:
    get:
      summary: List Vessels
      tags:
        - Shipping
      description: Search and filter the global tanker/LNG/LPG vessel registry.
      parameters:
        - schema:
            type: string
          in: query
          name: vessel_type
          required: false
          description: Filter by vessel type (tanker, lng, lpg, chemical)
        - schema:
            type: string
          in: query
          name: vessel_class
          required: false
          description: Filter by class (VLCC, Suezmax, Aframax, Panamax, MR)
        - schema:
            type: string
          in: query
          name: flag
          required: false
          description: ISO 3166-1 alpha-2 country code
        - schema:
            type: string
          in: query
          name: search
          required: false
          description: Search vessel name or IMO
        - schema:
            type: integer
            minimum: 1
            maximum: 1000
          in: query
          name: limit
          required: false
          description: Max results (default 100)
        - schema:
            type: integer
            minimum: 0
          in: query
          name: offset
          required: false
          description: Pagination offset
      security: *a1
      responses:
        "200":
          description: Vessel registry
          content:
            application/json:
              schema:
                description: Vessel registry
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/shipping/vessels/{imo}:
    get:
      summary: Vessel Details
      tags:
        - Shipping
      description: Get a single vessel by IMO number including its current position.
      parameters:
        - schema:
            type: integer
          in: path
          name: imo
          required: true
      security: *a1
      responses:
        "200":
          description: Vessel with current position
          content:
            application/json:
              schema:
                description: Vessel with current position
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/shipping/vessels/{imo}/track:
    get:
      summary: Vessel Track
      tags:
        - Shipping
      description: Historical AIS positions for a vessel over the last N days.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 90
          in: query
          name: days
          required: false
          description: Number of days (default 7)
        - schema:
            type: integer
            minimum: 1
            maximum: 5000
          in: query
          name: limit
          required: false
          description: Max positions (default 1000)
        - schema:
            type: integer
          in: path
          name: imo
          required: true
      security: *a1
      responses:
        "200":
          description: Vessel track GeoJSON
          content:
            application/json:
              schema:
                description: Vessel track GeoJSON
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/shipping/positions:
    get:
      summary: Current Positions
      tags:
        - Shipping
      description: All current vessel positions within a bounding box. Designed for
        map tile rendering.
      parameters:
        - schema:
            type: string
          in: query
          name: bbox
          required: false
          description: "Bounding box: west,south,east,north (e.g. -10,35,40,60)"
        - schema:
            type: string
          in: query
          name: vessel_type
          required: false
          description: Filter by vessel type
        - schema:
            type: number
          in: query
          name: min_speed
          required: false
          description: Minimum speed in knots (filters out anchored)
      security: *a1
      responses:
        "200":
          description: GeoJSON positions
          content:
            application/json:
              schema:
                description: GeoJSON positions
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/shipping/voyages:
    get:
      summary: Active Voyages
      tags:
        - Shipping
      description: List active and recent voyages with filtering.
      parameters:
        - schema:
            type: string
          in: query
          name: status
          required: false
          description: underway, arrived, anchored
        - schema:
            type: string
          in: query
          name: cargo_type
          required: false
          description: Filter by cargo type
        - schema:
            type: integer
          in: query
          name: imo
          required: false
          description: Filter by vessel IMO
        - schema:
            type: integer
          in: query
          name: origin_port
          required: false
          description: Origin port ID
        - schema:
            type: integer
          in: query
          name: destination_port
          required: false
          description: Destination port ID
        - schema:
            type: integer
            minimum: 1
            maximum: 500
          in: query
          name: limit
          required: false
          description: Max results (default 100)
        - schema:
            type: integer
            minimum: 0
          in: query
          name: offset
          required: false
      security: *a1
      responses:
        "200":
          description: Voyages list
          content:
            application/json:
              schema:
                description: Voyages list
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/shipping/cargoes:
    get:
      summary: Cargo Movements
      tags:
        - Shipping
      description: Track cargo movements by product, origin, destination, and date range.
      parameters:
        - schema:
            type: string
          in: query
          name: product
          required: false
          description: crude, gasoline, diesel, naphtha, lng, lpg, jet_fuel
        - schema:
            type: string
          in: query
          name: origin_country
          required: false
          description: ISO 3166 origin country
        - schema:
            type: string
          in: query
          name: destination_country
          required: false
          description: ISO 3166 destination country
        - schema:
            type: string
          in: query
          name: start_date
          required: false
          description: Start date (YYYY-MM-DD)
        - schema:
            type: string
          in: query
          name: end_date
          required: false
          description: End date (YYYY-MM-DD)
        - schema:
            type: integer
            minimum: 1
            maximum: 1000
          in: query
          name: limit
          required: false
        - schema:
            type: integer
            minimum: 0
          in: query
          name: offset
          required: false
      security: *a1
      responses:
        "200":
          description: Cargo movements
          content:
            application/json:
              schema:
                description: Cargo movements
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/shipping/ports:
    get:
      summary: Ports
      tags:
        - Shipping
      description: List global oil/LNG ports and terminals.
      parameters:
        - schema:
            type: string
          in: query
          name: country_code
          required: false
        - schema:
            type: string
          in: query
          name: port_type
          required: false
          description: oil, lng, multi
        - schema:
            type: string
          in: query
          name: search
          required: false
        - schema:
            type: integer
            minimum: 1
            maximum: 500
          in: query
          name: limit
          required: false
      security: *a1
      responses:
        "200":
          description: Ports GeoJSON
          content:
            application/json:
              schema:
                description: Ports GeoJSON
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/shipping/ports/{id}/activity:
    get:
      summary: Port Activity
      tags:
        - Shipping
      description: Recent voyages arriving at or departing from a port.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 90
          in: query
          name: days
          required: false
          description: Lookback days (default 30)
        - schema:
            type: integer
            minimum: 1
            maximum: 200
          in: query
          name: limit
          required: false
        - schema:
            type: integer
          in: path
          name: id
          required: true
      security: *a1
      responses:
        "200":
          description: Port activity
          content:
            application/json:
              schema:
                description: Port activity
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/energy/pipelines/:
    get:
      summary: Pipelines
      tags:
        - Energy
      description: List global oil and gas pipelines with GeoJSON routes.
      parameters:
        - schema:
            type: string
          in: query
          name: commodity
          required: false
          description: "Filter by commodity: crude, gas, products"
        - schema:
            type: string
          in: query
          name: country
          required: false
          description: Filter by country code (pipelines crossing this country)
        - schema:
            type: string
          in: query
          name: status
          required: false
          description: active, under_construction, decommissioned
        - schema:
            type: integer
            minimum: 1
            maximum: 1000
          in: query
          name: limit
          required: false
          description: Max results (default 200)
      security: *a1
      responses:
        "200":
          description: Pipelines GeoJSON
          content:
            application/json:
              schema:
                description: Pipelines GeoJSON
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/energy/pipelines/{id}:
    get:
      summary: Pipeline Details
      tags:
        - Energy
      description: Get pipeline details including latest flow reading.
      parameters:
        - schema:
            type: integer
          in: path
          name: id
          required: true
      security: *a1
      responses:
        "200":
          description: Pipeline detail
          content:
            application/json:
              schema:
                description: Pipeline detail
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/energy/pipelines/{id}/flows:
    get:
      summary: Pipeline Flows
      tags:
        - Energy
      description: Historical flow time-series for a pipeline.
      parameters:
        - schema:
            type: string
          in: query
          name: start_date
          required: false
          description: Start date (YYYY-MM-DD)
        - schema:
            type: string
          in: query
          name: end_date
          required: false
          description: End date (YYYY-MM-DD)
        - schema:
            type: integer
            minimum: 1
            maximum: 5000
          in: query
          name: limit
          required: false
          description: Max results (default 500)
        - schema:
            type: integer
          in: path
          name: id
          required: true
      security: *a1
      responses:
        "200":
          description: Pipeline flow data
          content:
            application/json:
              schema:
                description: Pipeline flow data
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/energy/pipelines/flows/latest:
    get:
      summary: Latest Pipeline Flows
      tags:
        - Energy
      description: Latest flow reading for every pipeline.
      security: *a1
      responses:
        "200":
          description: Latest pipeline flows
          content:
            application/json:
              schema:
                description: Latest pipeline flows
                type: array
                items:
                  type: object
                  additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/data/catalog:
    get:
      summary: Data catalog
      tags:
        - Data
      description: "Snapshot of major datasets: approximate or exact row counts and
        latest observation dates. Cached for one hour."
      security: *a1
      responses:
        "200":
          description: Data catalog snapshot
          content:
            application/json:
              schema:
                description: Data catalog snapshot
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        category:
                          type: string
                        table:
                          type: string
                        rows:
                          type: number
                          nullable: true
                        latest_date:
                          type: string
                          nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/data/health:
    get:
      summary: Data health
      tags:
        - Data
      description: Lightweight data-availability summary for monitoring. Uses the same
        cache as the catalog endpoint.
      security: *a1
      responses:
        "200":
          description: Data health
          content:
            application/json:
              schema:
                description: Data health
                type: object
                properties:
                  status:
                    type: string
                    example: healthy
                  tables_with_data:
                    type: number
                  total_rows:
                    type: string
                    example: 500M+
                  last_update:
                    type: string
                    format: date-time
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/derivatives/options/greeks/{identifier}:
    get:
      summary: Options Greeks
      tags:
        - Derivatives
      description: Compute Greeks (delta, gamma, theta, vega, rho) for the options
        chain of a security. Defaults to the nearest upcoming expiration; pass
        ?expiration= for a specific date or ?expiration=all for the full chain.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: expiration
          required: false
          description: 'Expiration date (YYYY-MM-DD), or "all" for every expiration.
            Default: nearest upcoming expiration.'
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Options chain enriched with Greeks
          content:
            application/json:
              schema:
                description: Options chain enriched with Greeks
                type: array
                items:
                  type: object
                  additionalProperties: true
                  properties:
                    ticker:
                      type: string
                    strike:
                      type: number
                    expiration_date:
                      type: string
                    option_type:
                      type: string
                    greeks:
                      type: object
                      properties:
                        delta:
                          type: number
                        gamma:
                          type: number
                        theta:
                          type: number
                        vega:
                          type: number
                        rho:
                          type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/derivatives/options/iv-surface/{identifier}:
    get:
      summary: IV Surface
      tags:
        - Derivatives
      description: Compute the implied volatility surface from the options chain.
        Returns a matrix of IV values indexed by expiration and strike.
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Implied volatility surface
          content:
            application/json:
              schema:
                description: Implied volatility surface
                type: object
                properties:
                  ticker:
                    type: string
                  spot:
                    type: number
                  expirations:
                    type: array
                    items:
                      type: string
                  strikes:
                    type: array
                    items:
                      type: number
                  surface:
                    type: array
                    items:
                      type: array
                      items:
                        type: number
                        nullable: true
                  skew:
                    type: object
                    nullable: true
                    description: IV skew for nearest expiration
                    additionalProperties: true
                  termStructure:
                    type: array
                    nullable: true
                    items:
                      type: object
                      properties:
                        expiration:
                          type: string
                        atmIv:
                          type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/derivatives/options/price:
    post:
      summary: Price Option
      tags:
        - Derivatives
      description: Price a custom option using Black-Scholes and binomial tree models.
        Returns both prices plus full Greeks.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - spot
                - strike
                - expiry
                - rate
                - volatility
              properties:
                spot:
                  type: number
                  description: Current underlying price
                strike:
                  type: number
                  description: Option strike price
                expiry:
                  type: number
                  description: Time to expiry in years
                rate:
                  type: number
                  description: Risk-free rate (e.g. 0.045 for 4.5%)
                volatility:
                  type: number
                  description: Implied volatility (e.g. 0.25 for 25%)
                type:
                  type: string
                  enum:
                    - call
                    - put
                  default: call
                style:
                  type: string
                  enum:
                    - european
                    - american
                  default: european
        required: true
      security: *a1
      responses:
        "200":
          description: Option pricing result
          content:
            application/json:
              schema:
                description: Option pricing result
                type: object
                properties:
                  bsPrice:
                    type: number
                  binomialPrice:
                    type: number
                  earlyExercisePremium:
                    type: number
                  greeks:
                    type: object
                    properties:
                      delta:
                        type: number
                      gamma:
                        type: number
                      theta:
                        type: number
                      vega:
                        type: number
                      rho:
                        type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/derivatives/options/strategy:
    post:
      summary: Strategy Analysis
      tags:
        - Derivatives
      description: Analyze a multi-leg options strategy. Returns net debit/credit, max
        profit/loss, breakeven points, payoff curve, and aggregate Greeks.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - identifier
                - legs
              properties:
                identifier:
                  type: string
                  description: Underlying security identifier
                legs:
                  type: array
                  items:
                    type: object
                    required:
                      - type
                      - strike
                      - expiration
                      - quantity
                      - side
                    properties:
                      type:
                        type: string
                        enum:
                          - call
                          - put
                      strike:
                        type: number
                      expiration:
                        type: string
                      quantity:
                        type: number
                      side:
                        type: string
                        enum:
                          - buy
                          - sell
        required: true
      security: *a1
      responses:
        "200":
          description: Strategy analysis
          content:
            application/json:
              schema:
                description: Strategy analysis
                type: object
                properties:
                  netDebit:
                    type: number
                  maxProfit:
                    type: number
                  maxLoss:
                    type: number
                  breakeven:
                    type: array
                    items:
                      type: number
                  payoffCurve:
                    type: object
                    properties:
                      prices:
                        type: array
                        items:
                          type: number
                      payoff:
                        type: array
                        items:
                          type: number
                  greeksNet:
                    type: object
                    properties:
                      delta:
                        type: number
                      gamma:
                        type: number
                      theta:
                        type: number
                      vega:
                        type: number
                      rho:
                        type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/derivatives/options/unusual-activity:
    get:
      summary: Unusual Options Activity
      tags:
        - Derivatives
      description: "Scan for unusual options activity: high volume relative to open
        interest, large block trades, and IV spikes"
      parameters:
        - schema:
            type: number
            default: 1000
          in: query
          name: minVolume
          required: false
          description: Minimum volume threshold
        - schema:
            type: number
            default: 100
          in: query
          name: minOI
          required: false
          description: Minimum open interest
        - schema:
            type: string
            enum:
              - calls
              - puts
              - all
            default: all
          in: query
          name: type
          required: false
        - schema:
            type: number
            default: 50
          in: query
          name: limit
          required: false
      security: *a1
      responses:
        "200":
          description: Unusual options activity
          content:
            application/json:
              schema:
                description: Unusual options activity
                type: array
                items:
                  type: object
                  additionalProperties: true
                  properties:
                    ticker:
                      type: string
                    strike:
                      type: number
                    expiration_date:
                      type: string
                    option_type:
                      type: string
                    volume:
                      type: number
                    open_interest:
                      type: number
                    volOiRatio:
                      type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/derivatives/options/flow/{identifier}:
    get:
      summary: Options Flow
      tags:
        - Derivatives
      description: Returns recent large options trades for a symbol sorted by premium
      parameters:
        - schema:
            type: number
            default: 7
          in: query
          name: days
          required: false
          description: Lookback period in days
        - schema:
            type: number
            default: 50
          in: query
          name: limit
          required: false
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Options flow data
          content:
            application/json:
              schema:
                description: Options flow data
                type: array
                items:
                  type: object
                  additionalProperties: true
                  properties:
                    ticker:
                      type: string
                    strike:
                      type: number
                    expiration_date:
                      type: string
                    option_type:
                      type: string
                    volume:
                      type: number
                    premium:
                      type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/excel-addin/functions:
    post:
      summary: Execute Function
      tags:
        - Excel Add-in
      description: Executes a single Excel custom function (e.g. EP.PRICE,
        EP.MARKETCAP) and returns the computed value
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - function
                - args
              properties:
                function:
                  type: string
                  description: Function name (e.g. EP.PRICE, EP.MARKETCAP)
                  example: EP.PRICE
                args:
                  type: array
                  items: {}
                  description: Function arguments (first is always the identifier)
        required: true
      security: *a1
      responses:
        "200":
          description: Function result
          content:
            application/json:
              schema:
                description: Function result
                type: object
                properties:
                  value:
                    description: The computed value (number, string, or null)
                    nullable: true
                  error:
                    type: string
                    nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/excel-addin/batch:
    post:
      summary: Batch Functions
      tags:
        - Excel Add-in
      description: Executes multiple Excel custom functions in a single request, ideal
        for populating spreadsheet ranges
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - requests
              properties:
                requests:
                  type: array
                  maxItems: 100
                  items:
                    type: object
                    required:
                      - id
                      - function
                      - args
                    properties:
                      id:
                        type: string
                        description: Unique request ID (cell reference)
                      function:
                        type: string
                        description: Function name
                      args:
                        type: array
                        items: {}
        required: true
      security: *a1
      responses:
        "200":
          description: Batch results
          content:
            application/json:
              schema:
                description: Batch results
                type: object
                properties:
                  responses:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        value:
                          nullable: true
                        error:
                          type: string
                          nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/excel-addin/manifest:
    get:
      summary: Add-in Manifest
      tags:
        - Excel Add-in
      description: Returns the Excel add-in manifest metadata (name, version,
        permissions, endpoints) for configuring the add-in in Excel
      security: *a1
      responses:
        "200":
          description: Add-in manifest
          content:
            application/json:
              schema:
                description: Add-in manifest
                type: object
                properties:
                  id:
                    type: string
                  version:
                    type: string
                  name:
                    type: string
                  description:
                    type: string
                  publisher:
                    type: string
                  permissions:
                    type: array
                    items:
                      type: string
                  functions:
                    type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/excel-addin/functions/metadata:
    get:
      summary: Function Catalog
      tags:
        - Excel Add-in
      description: Returns the full catalog of available Excel custom functions with
        names, descriptions, and parameter definitions
      security: *a1
      responses:
        "200":
          description: Function catalog
          content:
            application/json:
              schema:
                description: Function catalog
                type: object
                properties:
                  functions:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: EP.PRICE
                        description:
                          type: string
                        parameters:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                              description:
                                type: string
                              type:
                                type: string
                              optional:
                                type: boolean
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/charting/ohlcv/{identifier}:
    get:
      summary: OHLCV Candles
      tags:
        - Charting
      description: Returns OHLCV candle data for charting. Supports intraday
        (1,5,15,30,60 min) and daily/weekly/monthly resolutions.
      parameters:
        - schema:
            type: string
            default: D
          in: query
          name: resolution
          required: false
          description: "Candle resolution: 1, 5, 15, 30, 60 (minutes), D (day), W (week),
            M (month)"
        - schema:
            type: number
          in: query
          name: from
          required: false
          description: Start timestamp (Unix seconds)
        - schema:
            type: number
          in: query
          name: to
          required: false
          description: End timestamp (Unix seconds)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: OHLCV candle arrays
          content:
            application/json:
              schema:
                description: OHLCV candle arrays
                type: object
                properties:
                  t:
                    type: array
                    items:
                      type: number
                    description: Timestamps (Unix seconds)
                  o:
                    type: array
                    items:
                      type: number
                    description: Open prices
                  h:
                    type: array
                    items:
                      type: number
                    description: High prices
                  l:
                    type: array
                    items:
                      type: number
                    description: Low prices
                  c:
                    type: array
                    items:
                      type: number
                    description: Close prices
                  v:
                    type: array
                    items:
                      type: number
                    description: Volumes
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/charting/indicators/{identifier}:
    get:
      summary: Technical Indicators
      tags:
        - Charting
      description: Computes technical indicators from OHLCV data. Supports SMA, EMA,
        RSI, MACD, Bollinger Bands, Stochastic, ATR, OBV, VWAP, ADX, CCI,
        Williams %R, and MFI.
      parameters:
        - schema:
            type: string
          in: query
          name: indicator
          required: true
          description: "Indicator: sma, ema, rsi, macd, bbands, stoch, atr, obv, vwap,
            adx, cci, williams_r, mfi"
        - schema:
            type: number
            default: 14
          in: query
          name: period
          required: false
          description: Lookback period (default 14)
        - schema:
            type: string
            default: D
          in: query
          name: resolution
          required: false
          description: Candle resolution (default D)
        - schema:
            type: number
          in: query
          name: from
          required: false
          description: Start timestamp (Unix seconds)
        - schema:
            type: number
          in: query
          name: to
          required: false
          description: End timestamp (Unix seconds)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Indicator values aligned with timestamps
          content:
            application/json:
              schema:
                description: Indicator values aligned with timestamps
                type: object
                properties:
                  timestamps:
                    type: array
                    items:
                      type: number
                  values:
                    type: object
                    additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/charting/patterns/{identifier}:
    get:
      summary: Candlestick Patterns
      tags:
        - Charting
      description: Detects candlestick patterns (doji, hammer, engulfing,
        morning/evening star, three white soldiers/black crows, harami) in the
        last 100 candles
      parameters:
        - schema:
            type: string
            default: D
          in: query
          name: resolution
          required: false
          description: Candle resolution (default D)
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Detected candlestick patterns
          content:
            application/json:
              schema:
                description: Detected candlestick patterns
                type: object
                properties:
                  patterns:
                    type: array
                    items:
                      type: object
                      properties:
                        pattern:
                          type: string
                          example: hammer
                        date:
                          type: number
                          description: Timestamp of the pattern
                        type:
                          type: string
                          enum:
                            - bullish
                            - bearish
                            - neutral
                        confidence:
                          type: number
                          example: 0.75
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/charting/overlay/{identifier}:
    get:
      summary: Chart Overlays
      tags:
        - Charting
      description: "Returns chart overlay data: Fibonacci retracement levels, pivot
        points (standard, Woodie, Camarilla, DeMark), or support/resistance
        levels"
      parameters:
        - schema:
            type: string
            enum:
              - fibonacci
              - pivot
              - support_resistance
          in: query
          name: type
          required: true
          description: "Overlay type: fibonacci, pivot, support_resistance"
        - schema:
            type: string
            default: standard
          in: query
          name: pivot_method
          required: false
          description: "Pivot method: standard, woodie, camarilla, demark (default
            standard)"
        - schema:
            type: string
            default: D
          in: query
          name: resolution
          required: false
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Overlay levels
          content:
            application/json:
              schema:
                description: Overlay levels
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/charting/compare:
    get:
      summary: Multi-Symbol Compare
      tags:
        - Charting
      description: Compares price performance of multiple symbols over a time range,
        with optional normalization (rebase to 100)
      parameters:
        - schema:
            type: string
          in: query
          name: symbols
          required: true
          description: Comma-separated identifiers (max 10)
        - schema:
            type: number
          in: query
          name: from
          required: false
          description: Start timestamp (Unix seconds)
        - schema:
            type: number
          in: query
          name: to
          required: false
          description: End timestamp (Unix seconds)
        - schema:
            type: boolean
            default: false
          in: query
          name: normalize
          required: false
          description: Rebase all series to 100 at the start
      security: *a1
      responses:
        "200":
          description: Comparison data
          content:
            application/json:
              schema:
                description: Comparison data
                type: object
                properties:
                  symbols:
                    type: array
                    items:
                      type: object
                      properties:
                        symbol:
                          type: string
                        data:
                          type: array
                          items:
                            type: object
                            properties:
                              t:
                                type: number
                              c:
                                type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/risk-models/factors:
    get:
      summary: Available Risk Factors
      tags:
        - Risk Models
      description: Returns all available risk factors grouped by category (Style,
        Industry, Country)
      security: *a1
      responses:
        "200":
          description: Risk factor definitions
          content:
            application/json:
              schema:
                description: Risk factor definitions
                type: object
                properties:
                  factors:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: VALUE
                        name:
                          type: string
                          example: Value
                        category:
                          type: string
                          example: Style
                        description:
                          type: string
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/risk-models/factor-returns:
    get:
      summary: Factor Returns
      tags:
        - Risk Models
      description: Returns historical daily factor returns. Style factors come from
        the Fama-French research library (daily, decimal returns); sector and
        country factors are computed as equal-weighted average returns of the
        constituent stocks.
      parameters:
        - schema:
            type: string
          in: query
          name: factors
          required: false
          description: "Comma-separated factor IDs (e.g. VALUE,SIZE,MOMENTUM). Default:
            all factors."
        - schema:
            type: string
          in: query
          name: from
          required: false
          description: "Start date YYYY-MM-DD (default: 1 year ago)"
        - schema:
            type: string
          in: query
          name: to
          required: false
          description: "End date YYYY-MM-DD (default: today)"
        - schema:
            type: string
            enum:
              - D
              - W
              - M
            default: D
          in: query
          name: frequency
          required: false
          description: D (daily), W (weekly), M (monthly)
      security: *a1
      responses:
        "200":
          description: Factor return series
          content:
            application/json:
              schema:
                description: Factor return series
                type: object
                properties:
                  factors:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        returns:
                          type: array
                          items:
                            type: object
                            properties:
                              date:
                                type: string
                              value:
                                type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/risk-models/exposure/{identifier}:
    get:
      summary: Factor Exposure
      tags:
        - Risk Models
      description: Returns single-stock factor loadings computed via OLS regression of
        the trailing 60 daily returns against Fama-French factor returns
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Stock factor exposures
          content:
            application/json:
              schema:
                description: Stock factor exposures
                type: object
                properties:
                  identifier:
                    type: string
                  exposures:
                    type: array
                    items:
                      type: object
                      properties:
                        factor:
                          type: string
                        loading:
                          type: number
                          example: 0.85
                        tStat:
                          type: number
                          nullable: true
                          example: 2.4
                  r2:
                    type: number
                    example: 0.42
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/risk-models/portfolio-risk:
    post:
      summary: Portfolio Risk Decomposition
      tags:
        - Risk Models
      description: Decomposes portfolio risk into Fama-French factor and specific
        components using trailing 60 days of returns
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - positions
              properties:
                positions:
                  type: array
                  items:
                    type: object
                    required:
                      - identifier
                      - weight
                    properties:
                      identifier:
                        type: string
                        description: ISIN, ticker, or other identifier
                      weight:
                        type: number
                        description: Portfolio weight (0-1 or percentage)
        required: true
      security: *a1
      responses:
        "200":
          description: Portfolio risk decomposition
          content:
            application/json:
              schema:
                description: Portfolio risk decomposition
                type: object
                properties:
                  totalVolatility:
                    type: number
                    description: Annualised portfolio volatility (%)
                  factorContributions:
                    type: array
                    items:
                      type: object
                      properties:
                        factor:
                          type: string
                        contribution:
                          type: number
                          description: Percentage of total variance explained
                  specificRisk:
                    type: number
                    description: Idiosyncratic share of variance (%)
                  topRiskContributors:
                    type: array
                    items:
                      type: object
                      properties:
                        identifier:
                          type: string
                        marginalContribution:
                          type: number
                  covarianceDiagonal:
                    type: object
                    additionalProperties:
                      type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/risk-models/covariance:
    get:
      summary: Factor Covariance Matrix
      tags:
        - Risk Models
      description: Returns the annualised covariance matrix of Fama-French factor
        returns computed from the trailing 252 trading days
      parameters:
        - schema:
            type: string
          in: query
          name: factors
          required: false
          description: 'Comma-separated factor IDs or "all" (default: all style factors)'
      security: *a1
      responses:
        "200":
          description: Covariance matrix
          content:
            application/json:
              schema:
                description: Covariance matrix
                type: object
                properties:
                  factors:
                    type: array
                    items:
                      type: string
                  matrix:
                    type: array
                    items:
                      type: array
                      items:
                        type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/peer-comparison/metrics:
    get:
      summary: Available Metrics
      tags:
        - Peer Comparison
      description: Lists all metric IDs accepted by the compare, scatter, and
        benchmarking endpoints
      security: *a1
      responses:
        "200":
          description: Metric definitions
          content:
            application/json:
              schema:
                description: Metric definitions
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      example: pe
                    label:
                      type: string
                      example: P/E
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/peer-comparison/peers/{identifier}:
    get:
      summary: Auto-Detect Peers
      tags:
        - Peer Comparison
      description: Finds up to 20 comparable companies based on GICS sector, industry,
        country, and market cap proximity
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Peer companies
          content:
            application/json:
              schema:
                description: Peer companies
                type: object
                properties:
                  target:
                    type: object
                    additionalProperties: true
                  peers:
                    type: array
                    items:
                      type: object
                      properties:
                        ticker:
                          type: string
                        isin:
                          type: string
                          nullable: true
                        name:
                          type: string
                        marketCap:
                          type: number
                          nullable: true
                          description: Market cap in EUR
                        sector:
                          type: string
                          nullable: true
                        industry:
                          type: string
                          nullable: true
                        country:
                          type: string
                          nullable: true
                        similarity:
                          type: number
                          description: 0-1 similarity score
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/peer-comparison/compare:
    post:
      summary: Compare Companies
      tags:
        - Peer Comparison
      description: Side-by-side metric comparison for up to 50 companies with
        per-metric ranking. See GET /peer-comparison/metrics for valid metric
        IDs.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - identifiers
                - metrics
              properties:
                identifiers:
                  type: array
                  items:
                    type: string
                  description: Tickers or ISINs (max 50)
                metrics:
                  type: array
                  items:
                    type: string
                    enum:
                      - marketCap
                      - revenue
                      - netIncome
                      - ebitda
                      - freeCashFlow
                      - pe
                      - ps
                      - pb
                      - evEbitda
                      - dividendYield
                      - fcfYield
                      - roe
                      - roa
                      - roic
                      - roce
                      - grossMargin
                      - operatingMargin
                      - netMargin
                      - debtToEquity
                      - equityRatio
                      - revenueGrowth
                      - piotroskiScore
                  description: Metric IDs to compare
        required: true
      security: *a1
      responses:
        "200":
          description: Comparison data
          content:
            application/json:
              schema:
                description: Comparison data
                type: object
                properties:
                  companies:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  metrics:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  rankings:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/peer-comparison/scatter:
    get:
      summary: Scatter Plot Data
      tags:
        - Peer Comparison
      description: Returns x/y metric pairs for peer analysis scatter charts. See GET
        /peer-comparison/metrics for valid metric IDs.
      parameters:
        - schema:
            type: string
            enum:
              - marketCap
              - revenue
              - netIncome
              - ebitda
              - freeCashFlow
              - pe
              - ps
              - pb
              - evEbitda
              - dividendYield
              - fcfYield
              - roe
              - roa
              - roic
              - roce
              - grossMargin
              - operatingMargin
              - netMargin
              - debtToEquity
              - equityRatio
              - revenueGrowth
              - piotroskiScore
          in: query
          name: xMetric
          required: true
          description: X-axis metric ID (e.g. pe)
        - schema:
            type: string
            enum:
              - marketCap
              - revenue
              - netIncome
              - ebitda
              - freeCashFlow
              - pe
              - ps
              - pb
              - evEbitda
              - dividendYield
              - fcfYield
              - roe
              - roa
              - roic
              - roce
              - grossMargin
              - operatingMargin
              - netMargin
              - debtToEquity
              - equityRatio
              - revenueGrowth
              - piotroskiScore
          in: query
          name: yMetric
          required: true
          description: Y-axis metric ID (e.g. revenueGrowth)
        - schema:
            type: string
          in: query
          name: identifiers
          required: true
          description: Comma-separated tickers or ISINs (max 100)
      security: *a1
      responses:
        "200":
          description: Scatter plot points
          content:
            application/json:
              schema:
                description: Scatter plot points
                type: object
                properties:
                  points:
                    type: array
                    items:
                      type: object
                      properties:
                        ticker:
                          type: string
                        name:
                          type: string
                        x:
                          type: number
                          nullable: true
                        y:
                          type: number
                          nullable: true
                        marketCap:
                          type: number
                          nullable: true
                          description: Market cap in EUR (for bubble sizing)
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/peer-comparison/relative-valuation/{identifier}:
    get:
      summary: Relative Valuation
      tags:
        - Peer Comparison
      description: Computes premium/discount for each valuation metric vs the median
        of sector peers in a similar market-cap range
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Relative valuation
          content:
            application/json:
              schema:
                description: Relative valuation
                type: object
                properties:
                  target:
                    type: object
                    additionalProperties: true
                  peerCount:
                    type: number
                  metrics:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        label:
                          type: string
                        targetValue:
                          type: number
                          nullable: true
                        peerMedian:
                          type: number
                          nullable: true
                        premiumDiscount:
                          type: number
                          nullable: true
                          description: Premium (+) or discount (-) vs peer median, in %
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/peer-comparison/financial-benchmarking/{identifier}:
    get:
      summary: Financial Benchmarking
      tags:
        - Peer Comparison
      description: Benchmarks a company against sector and industry medians,
        quartiles, and percentile ranks
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Benchmarking data
          content:
            application/json:
              schema:
                description: Benchmarking data
                type: object
                properties:
                  target:
                    type: object
                    additionalProperties: true
                  sectorPeerCount:
                    type: number
                  industryPeerCount:
                    type: number
                  benchmarks:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        label:
                          type: string
                        targetValue:
                          type: number
                          nullable: true
                        sectorMedian:
                          type: number
                          nullable: true
                        sectorP25:
                          type: number
                          nullable: true
                        sectorP75:
                          type: number
                          nullable: true
                        industryMedian:
                          type: number
                          nullable: true
                        percentileRank:
                          type: number
                          nullable: true
                          description: Percentile within sector (0-100)
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/deals/ma:
    get:
      summary: M&A Deals
      tags:
        - Deals
      description: Returns M&A deal announcements parsed from SEC EDGAR merger
        filings, newest first. Filter by status, date range, or free-text search
        on company names.
      parameters:
        - schema:
            type: string
            nullable: true
          in: query
          name: status
          required: false
          description: Filter by deal status (e.g. announced, completed)
        - schema:
            type: string
            format: date
            nullable: true
          in: query
          name: from
          required: false
          description: Announced on or after (YYYY-MM-DD)
        - schema:
            type: string
            format: date
            nullable: true
          in: query
          name: to
          required: false
          description: Announced on or before (YYYY-MM-DD)
        - schema:
            type: string
            nullable: true
          in: query
          name: q
          required: false
          description: Search in acquirer/target name or ticker
        - schema:
            type: number
            default: 50
            maximum: 200
          in: query
          name: limit
          required: false
        - schema:
            type: number
            default: 0
          in: query
          name: offset
          required: false
      security: *a1
      responses:
        "200":
          description: M&A deals
          content:
            application/json:
              schema:
                description: M&A deals
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        acquirerName:
                          type: string
                          nullable: true
                        acquirerTicker:
                          type: string
                          nullable: true
                        targetName:
                          type: string
                          nullable: true
                        targetTicker:
                          type: string
                          nullable: true
                        announcedDate:
                          type: string
                          nullable: true
                          example: 2026-06-09
                        closeDate:
                          type: string
                          nullable: true
                        dealValue:
                          type: number
                          nullable: true
                          description: Deal value in USD if disclosed
                        dealType:
                          type: string
                          nullable: true
                        status:
                          type: string
                          nullable: true
                          example: announced
                        premiumPct:
                          type: number
                          nullable: true
                        paymentType:
                          type: string
                          nullable: true
                        filingUrl:
                          type: string
                          nullable: true
                          description: Link to the SEC filing
                        source:
                          type: string
                          nullable: true
                          example: edgar
                  total:
                    type: number
                  offset:
                    type: number
                  limit:
                    type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/deals/ma/{ticker}:
    get:
      summary: M&A Deals by Ticker
      tags:
        - Deals
      description: Returns M&A deal announcements where the given ticker appears as
        acquirer or target
      parameters:
        - schema:
            type: string
          in: path
          name: ticker
          required: true
          description: Ticker symbol (e.g. NUVL)
      security: *a1
      responses:
        "200":
          description: M&A deals for ticker
          content:
            application/json:
              schema:
                description: M&A deals for ticker
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: number
                    acquirerName:
                      type: string
                      nullable: true
                    acquirerTicker:
                      type: string
                      nullable: true
                    targetName:
                      type: string
                      nullable: true
                    targetTicker:
                      type: string
                      nullable: true
                    announcedDate:
                      type: string
                      nullable: true
                      example: 2026-06-09
                    closeDate:
                      type: string
                      nullable: true
                    dealValue:
                      type: number
                      nullable: true
                      description: Deal value in USD if disclosed
                    dealType:
                      type: string
                      nullable: true
                    status:
                      type: string
                      nullable: true
                      example: announced
                    premiumPct:
                      type: number
                      nullable: true
                    paymentType:
                      type: string
                      nullable: true
                    filingUrl:
                      type: string
                      nullable: true
                      description: Link to the SEC filing
                    source:
                      type: string
                      nullable: true
                      example: edgar
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/deals/ma/stats/monthly:
    get:
      summary: M&A Monthly Activity
      tags:
        - Deals
      description: Returns monthly M&A deal counts and disclosed deal value totals for
        the trailing 24 months
      security: *a1
      responses:
        "200":
          description: Monthly M&A activity
          content:
            application/json:
              schema:
                description: Monthly M&A activity
                type: array
                items:
                  type: object
                  properties:
                    month:
                      type: string
                      example: 2026-06
                    dealCount:
                      type: number
                    disclosedValueUsd:
                      type: number
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/economic-forecasts/indicators:
    get:
      summary: Forecast Indicators
      tags:
        - Economic Forecasts
      description: Lists all available IMF World Economic Outlook indicators with
        descriptions and units
      security: *a1
      responses:
        "200":
          description: Available indicators
          content:
            application/json:
              schema:
                description: Available indicators
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      example: NGDP_RPCH
                    name:
                      type: string
                      example: Real GDP growth
                    units:
                      type: string
                      nullable: true
                      example: Annual percent change
                    countries:
                      type: number
                      description: Number of countries covered
                    minYear:
                      type: number
                    maxYear:
                      type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/economic-forecasts/{country}:
    get:
      summary: Country Forecasts
      tags:
        - Economic Forecasts
      description: "Returns IMF World Economic Outlook projections for all indicators
        of a country: GDP growth, inflation, unemployment, current account,
        government debt, and more. Points with isForecast=true are IMF
        projections."
      parameters:
        - schema:
            type: number
          in: query
          name: from
          required: false
          description: "Start year (default: 5 years ago)"
        - schema:
            type: string
          in: path
          name: country
          required: true
          description: ISO3 country code (e.g. USA, DEU, JPN) or an IMF aggregate code
      security: *a1
      responses:
        "200":
          description: Country economic forecasts
          content:
            application/json:
              schema:
                description: Country economic forecasts
                type: object
                properties:
                  country:
                    type: string
                    example: USA
                  forecastFromYear:
                    type: number
                    example: 2026
                  indicators:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: NGDP_RPCH
                        name:
                          type: string
                          example: Real GDP growth
                        units:
                          type: string
                          nullable: true
                        series:
                          type: array
                          items:
                            type: object
                            properties:
                              year:
                                type: number
                              value:
                                type: number
                              isForecast:
                                type: boolean
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/economic-forecasts/{country}/{indicator}:
    get:
      summary: Country Indicator Forecast
      tags:
        - Economic Forecasts
      description: Returns the full history and IMF projection for one indicator of a
        country (e.g. USA/NGDP_RPCH for US real GDP growth). See
        /economic-forecasts/indicators for available indicator IDs.
      parameters:
        - schema:
            type: string
          in: path
          name: country
          required: true
          description: ISO3 country code (e.g. USA, DEU, JPN) or an IMF aggregate code
        - schema:
            type: string
          in: path
          name: indicator
          required: true
          description: Indicator ID (e.g. NGDP_RPCH, PCPIPCH, LUR)
      security: *a1
      responses:
        "200":
          description: Indicator forecast series
          content:
            application/json:
              schema:
                description: Indicator forecast series
                type: object
                properties:
                  country:
                    type: string
                  indicator:
                    type: string
                  name:
                    type: string
                  units:
                    type: string
                    nullable: true
                  forecastFromYear:
                    type: number
                  series:
                    type: array
                    items:
                      type: object
                      properties:
                        year:
                          type: number
                        value:
                          type: number
                        isForecast:
                          type: boolean
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/fixed-income/curve/spot:
    get:
      summary: Spot Curve
      tags:
        - Fixed Income Analytics
      description: Returns bootstrapped zero-coupon spot rates derived from the US
        Treasury par yield curve
      parameters:
        - schema:
            type: string
            default: US
          in: query
          name: country
          required: false
          description: Country code (only US currently available)
      security: *a1
      responses:
        "200":
          description: Bootstrapped spot curve
          content:
            application/json:
              schema:
                description: Bootstrapped spot curve
                type: object
                properties:
                  country:
                    type: string
                  date:
                    type: string
                  spotRates:
                    type: array
                    items:
                      type: object
                      properties:
                        maturity:
                          type: number
                        rate:
                          type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/fixed-income/curve/forward:
    get:
      summary: Forward Curve
      tags:
        - Fixed Income Analytics
      description: Returns forward rates derived from the bootstrapped US Treasury
        spot curve
      parameters:
        - schema:
            type: string
            default: US
          in: query
          name: country
          required: false
          description: Country code (only US currently available)
        - schema:
            type: string
            default: 1y
          in: query
          name: term
          required: false
          description: "Forward term: 1y, 2y, 5y (default 1y)"
      security: *a1
      responses:
        "200":
          description: Forward rate curve
          content:
            application/json:
              schema:
                description: Forward rate curve
                type: object
                properties:
                  country:
                    type: string
                  term:
                    type: string
                  forwardRates:
                    type: array
                    items:
                      type: object
                      properties:
                        startYear:
                          type: number
                        endYear:
                          type: number
                        rate:
                          type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/transcripts/calls/{identifier}:
    get:
      summary: List Earning Calls
      tags:
        - Transcripts
      description: Returns a list of earnings call transcripts for a given security
      parameters:
        - schema:
            type: number
            default: 20
          in: query
          name: limit
          required: false
          description: Max results (default 20)
        - schema:
            type: number
            nullable: true
          in: query
          name: year
          required: false
          description: Filter by fiscal year
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: List of earning calls
          content:
            application/json:
              schema:
                description: List of earning calls
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: number
                    ticker:
                      type: string
                      example: AAPL
                    date:
                      type: string
                      example: 2026-01-30
                    quarter:
                      type: number
                      example: 1
                    year:
                      type: number
                      example: 2026
                    title:
                      type: string
                      nullable: true
                    participants:
                      type: array
                      items:
                        type: string
                      nullable: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/transcripts/calls/{identifier}/{callId}:
    get:
      summary: Full Transcript
      tags:
        - Transcripts
      description: Returns the full transcript text for a specific earnings call
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: Security identifier (ISIN, ticker, etc.)
        - schema:
            type: number
          in: path
          name: callId
          required: true
          description: Earning call ID
      security: *a1
      responses:
        "200":
          description: Full transcript
          content:
            application/json:
              schema:
                description: Full transcript
                type: object
                properties:
                  id:
                    type: number
                  ticker:
                    type: string
                  date:
                    type: string
                  sections:
                    type: array
                    items:
                      type: object
                      properties:
                        speaker:
                          type: string
                        role:
                          type: string
                          nullable: true
                        text:
                          type: string
                  metadata:
                    type: object
                    additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/transcripts/calls/{identifier}/{callId}/nlp:
    get:
      summary: Transcript NLP Analysis
      tags:
        - Transcripts
      description: Returns NLP analysis of an earnings call transcript including
        sentiment, topics, management tone, forward guidance, and key metrics
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: Security identifier
        - schema:
            type: number
          in: path
          name: callId
          required: true
          description: Earning call ID
      security: *a1
      responses:
        "200":
          description: NLP analysis
          content:
            application/json:
              schema:
                description: NLP analysis
                type: object
                properties:
                  sentiment:
                    type: object
                    additionalProperties: true
                  keyTopics:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  managementTone:
                    type: object
                    additionalProperties: true
                  forwardGuidance:
                    type: array
                    items:
                      type: string
                  keyMetrics:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/transcripts/search:
    get:
      summary: Search Transcripts
      tags:
        - Transcripts
      description: Full-text search across earnings call transcripts with excerpt
        highlighting
      parameters:
        - schema:
            type: string
          in: query
          name: q
          required: false
          description: Search term
        - schema:
            type: string
            nullable: true
          in: query
          name: ticker
          required: false
          description: Filter by ticker
        - schema:
            type: string
            nullable: true
          in: query
          name: dateFrom
          required: false
          description: Start date (YYYY-MM-DD)
        - schema:
            type: string
            nullable: true
          in: query
          name: dateTo
          required: false
          description: End date (YYYY-MM-DD)
        - schema:
            type: number
            default: 20
          in: query
          name: limit
          required: false
          description: Max results (default 20)
      security: *a1
      responses:
        "200":
          description: Search results with highlighted excerpts
          content:
            application/json:
              schema:
                description: Search results with highlighted excerpts
                type: array
                items:
                  type: object
                  properties:
                    callId:
                      type: number
                    ticker:
                      type: string
                    date:
                      type: string
                    speaker:
                      type: string
                    excerpt:
                      type: string
                    rank:
                      type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/transcripts/sentiment-trend/{identifier}:
    get:
      summary: Sentiment Trend
      tags:
        - Transcripts
      description: Returns sentiment scores over time across multiple earnings calls
        for trend analysis
      parameters:
        - schema:
            type: string
          in: path
          name: identifier
          required: true
          description: "Security identifier: ISIN, ticker, CUSIP, SEDOL, or WKN (e.g.
            US0378331005, AAPL, 037833100)"
      security: *a1
      responses:
        "200":
          description: Sentiment trend over calls
          content:
            application/json:
              schema:
                description: Sentiment trend over calls
                type: array
                items:
                  type: object
                  properties:
                    date:
                      type: string
                      example: 2026-01-30
                    quarter:
                      type: number
                    overallSentiment:
                      type: object
                      additionalProperties: true
                    managementTone:
                      type: object
                      additionalProperties: true
                    keywordChanges:
                      type: object
                      additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/backtest/run:
    post:
      summary: Run Backtest
      tags:
        - Backtesting
      description: Runs a multi-asset backtest with configurable strategy rules,
        rebalancing, and transaction costs
      security: *a1
      responses:
        "200":
          description: Backtest results
          content:
            application/json:
              schema:
                description: Backtest results
                type: object
                properties:
                  performance:
                    type: object
                    additionalProperties: true
                  equityCurve:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  trades:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  monthlyReturns:
                    type: array
                    items:
                      type: array
                      items:
                        type: number
                  drawdowns:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/backtest/optimize:
    post:
      summary: Optimize Strategy
      tags:
        - Backtesting
      description: Grid-search parameter optimization to find the best parameter
        combinations for a strategy
      security: *a1
      responses:
        "200":
          description: Optimization results
          content:
            application/json:
              schema:
                description: Optimization results
                type: array
                items:
                  type: object
                  properties:
                    params:
                      type: object
                      additionalProperties: true
                    sharpe:
                      type: number
                    totalReturn:
                      type: number
                    maxDrawdown:
                      type: number
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/backtest/templates:
    get:
      summary: Strategy Templates
      tags:
        - Backtesting
      description: Returns pre-built strategy templates for common investment strategies
      security: *a1
      responses:
        "200":
          description: Strategy templates
          content:
            application/json:
              schema:
                description: Strategy templates
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    description:
                      type: string
                    strategy:
                      type: object
                      additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/backtest/walk-forward:
    post:
      summary: Walk-Forward Analysis
      tags:
        - Backtesting
      description: Performs walk-forward analysis splitting time series into
        train/test windows for robust out-of-sample validation
      security: *a1
      responses:
        "200":
          description: Walk-forward results
          content:
            application/json:
              schema:
                description: Walk-forward results
                type: object
                properties:
                  windows:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  aggregatedPerformance:
                    type: object
                    additionalProperties: true
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/partner/alleaktien/fundamentals:
    get:
      summary: AlleAktien Fundamentals
      tags:
        - Partner
      description: Batch fundamental metrics for AlleAktien by ISINs
      parameters:
        - schema:
            type: string
            example: US5949181045,DE0007164600
          in: query
          name: isins
          required: true
          description: Comma-separated ISINs (max 50)
      security: *a1
      responses:
        "200":
          description: Fundamental metrics keyed by ISIN
          content:
            application/json:
              schema:
                description: Fundamental metrics keyed by ISIN
                type: object
                additionalProperties: true
        "401":
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Missing or invalid API key. Pass ?token=YOUR_KEY or Authorization:
                      Bearer YOUR_KEY. Get a key at
                      https://eulerpool.com/developers."
        "404":
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
  /api/1/logo/ticker/{symbol}:
    get:
      summary: Logo by Ticker
      tags:
        - Logo
      description: Returns a company logo image by ticker symbol (e.g. AAPL, MSFT)
      parameters:
        - schema:
            type: integer
            minimum: 16
            maximum: 300
            default: 128
          in: query
          name: size
          required: false
          description: Image size in pixels (16–300)
        - schema:
            type: string
            enum:
              - jpg
              - png
              - webp
          in: query
          name: format
          required: false
          description: Image format
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: greyscale
          required: false
          description: Greyscale mode
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: retina
          required: false
          description: Retina (2×) resolution
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
        "404":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
  /api/1/logo/crypto/{symbol}:
    get:
      summary: Logo by Crypto Symbol
      tags:
        - Logo
      description: Returns a cryptocurrency logo image by symbol (e.g. BTC, ETH)
      parameters:
        - schema:
            type: integer
            minimum: 16
            maximum: 300
            default: 128
          in: query
          name: size
          required: false
          description: Image size in pixels (16–300)
        - schema:
            type: string
            enum:
              - jpg
              - png
              - webp
          in: query
          name: format
          required: false
          description: Image format
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: greyscale
          required: false
          description: Greyscale mode
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: retina
          required: false
          description: Retina (2×) resolution
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Crypto symbol (e.g. BTC)
      security: *a1
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
        "404":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
  /api/1/logo/isin/{code}:
    get:
      summary: Logo by ISIN
      tags:
        - Logo
      description: Returns a company logo image by ISIN (e.g. US0378331005)
      parameters:
        - schema:
            type: integer
            minimum: 16
            maximum: 300
            default: 128
          in: query
          name: size
          required: false
          description: Image size in pixels (16–300)
        - schema:
            type: string
            enum:
              - jpg
              - png
              - webp
          in: query
          name: format
          required: false
          description: Image format
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: greyscale
          required: false
          description: Greyscale mode
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: retina
          required: false
          description: Retina (2×) resolution
        - schema:
            type: string
          in: path
          name: code
          required: true
          description: ISIN code (e.g. US0378331005)
      security: *a1
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
        "404":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
  /api/1/logo/name/{name}:
    get:
      summary: Logo by Company Name
      tags:
        - Logo
      description: Returns a company logo image by name (e.g. Apple, Microsoft)
      parameters:
        - schema:
            type: integer
            minimum: 16
            maximum: 300
            default: 128
          in: query
          name: size
          required: false
          description: Image size in pixels (16–300)
        - schema:
            type: string
            enum:
              - jpg
              - png
              - webp
          in: query
          name: format
          required: false
          description: Image format
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: greyscale
          required: false
          description: Greyscale mode
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: retina
          required: false
          description: Retina (2×) resolution
        - schema:
            type: string
          in: path
          name: name
          required: true
          description: Company name (e.g. Apple)
      security: *a1
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
        "404":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
  /api/1/logo/{domain}:
    get:
      summary: Logo by Domain
      tags:
        - Logo
      description: Returns a company logo image by website domain (e.g. apple.com)
      parameters:
        - schema:
            type: integer
            minimum: 16
            maximum: 300
            default: 128
          in: query
          name: size
          required: false
          description: Image size in pixels (16–300)
        - schema:
            type: string
            enum:
              - jpg
              - png
              - webp
          in: query
          name: format
          required: false
          description: Image format
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: greyscale
          required: false
          description: Greyscale mode
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: retina
          required: false
          description: Retina (2×) resolution
        - schema:
            type: string
          in: path
          name: domain
          required: true
          description: Website domain (e.g. apple.com)
      security: *a1
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
        "404":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
  /api/logo/ticker/{symbol}:
    get:
      summary: Logo by Ticker
      tags:
        - Logo
      description: Returns a company logo image by ticker symbol (e.g. AAPL, MSFT)
      parameters:
        - schema:
            type: integer
            minimum: 16
            maximum: 300
            default: 128
          in: query
          name: size
          required: false
          description: Image size in pixels (16–300)
        - schema:
            type: string
            enum:
              - jpg
              - png
              - webp
          in: query
          name: format
          required: false
          description: Image format
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: greyscale
          required: false
          description: Greyscale mode
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: retina
          required: false
          description: Retina (2×) resolution
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Ticker symbol (e.g. AAPL)
      security: *a1
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
        "404":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
  /api/logo/crypto/{symbol}:
    get:
      summary: Logo by Crypto Symbol
      tags:
        - Logo
      description: Returns a cryptocurrency logo image by symbol (e.g. BTC, ETH)
      parameters:
        - schema:
            type: integer
            minimum: 16
            maximum: 300
            default: 128
          in: query
          name: size
          required: false
          description: Image size in pixels (16–300)
        - schema:
            type: string
            enum:
              - jpg
              - png
              - webp
          in: query
          name: format
          required: false
          description: Image format
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: greyscale
          required: false
          description: Greyscale mode
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: retina
          required: false
          description: Retina (2×) resolution
        - schema:
            type: string
          in: path
          name: symbol
          required: true
          description: Crypto symbol (e.g. BTC)
      security: *a1
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
        "404":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
  /api/logo/isin/{code}:
    get:
      summary: Logo by ISIN
      tags:
        - Logo
      description: Returns a company logo image by ISIN (e.g. US0378331005)
      parameters:
        - schema:
            type: integer
            minimum: 16
            maximum: 300
            default: 128
          in: query
          name: size
          required: false
          description: Image size in pixels (16–300)
        - schema:
            type: string
            enum:
              - jpg
              - png
              - webp
          in: query
          name: format
          required: false
          description: Image format
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: greyscale
          required: false
          description: Greyscale mode
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: retina
          required: false
          description: Retina (2×) resolution
        - schema:
            type: string
          in: path
          name: code
          required: true
          description: ISIN code (e.g. US0378331005)
      security: *a1
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
        "404":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
  /api/logo/name/{name}:
    get:
      summary: Logo by Company Name
      tags:
        - Logo
      description: Returns a company logo image by name (e.g. Apple, Microsoft)
      parameters:
        - schema:
            type: integer
            minimum: 16
            maximum: 300
            default: 128
          in: query
          name: size
          required: false
          description: Image size in pixels (16–300)
        - schema:
            type: string
            enum:
              - jpg
              - png
              - webp
          in: query
          name: format
          required: false
          description: Image format
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: greyscale
          required: false
          description: Greyscale mode
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: retina
          required: false
          description: Retina (2×) resolution
        - schema:
            type: string
          in: path
          name: name
          required: true
          description: Company name (e.g. Apple)
      security: *a1
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
        "404":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
  /api/logo/{domain}:
    get:
      summary: Logo by Domain
      tags:
        - Logo
      description: Returns a company logo image by website domain (e.g. apple.com)
      parameters:
        - schema:
            type: integer
            minimum: 16
            maximum: 300
            default: 128
          in: query
          name: size
          required: false
          description: Image size in pixels (16–300)
        - schema:
            type: string
            enum:
              - jpg
              - png
              - webp
          in: query
          name: format
          required: false
          description: Image format
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: greyscale
          required: false
          description: Greyscale mode
        - schema:
            type: string
            enum:
              - "true"
              - "false"
          in: query
          name: retina
          required: false
          description: Retina (2×) resolution
        - schema:
            type: string
          in: path
          name: domain
          required: true
          description: Website domain (e.g. apple.com)
      security: *a1
      responses:
        "200":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
        "404":
          description: Default Response
          content:
            application/json:
              schema:
                type: string
servers:
  - url: https://api.eulerpool.com
tags:
  - name: Equity
    description: "Stock fundamentals: profile, financials, ownership, dividends,
      insider trades, ESG, short interest, and more."
  - name: ETF
    description: ETF profile, holdings, sector/country allocation, and historical quotes.
  - name: Market Data
    description: Real-time and delayed quotes, intraday data, options chains,
      52-week analytics, market indicators, and FX rates.
  - name: Research
    description: Analyst recommendations, price targets, company news, and press releases.
  - name: Calendar
    description: IPO calendar, dividend calendar, earnings reports, and earnings surprises.
  - name: Mutual Funds
    description: Mutual fund profiles, holdings, sector and country allocation.
  - name: Indices
    description: Index constituents for major indices (S&P 500, DAX, NASDAQ 100, etc.).
  - name: Screener
    description: Stock screener, universe metadata, and symbol search.
  - name: News
    description: Eulerpool financial news feed.
  - name: Ticker/Trends
    description: Ticker-based trend data.
  - name: Macro
    description: Macroeconomic data and calendar.
  - name: Forex
    description: Forex spot rates for all currencies.
  - name: Equity Extended
    description: "Extended equity data: AAQS score, SEC filings, financial metrics,
      market cap history, and options chain."
  - name: Bonds
    description: Bond profiles, listings, yields, and yield curves.
  - name: Sentiment & Analytics
    description: Insider sentiment, social media sentiment, news sentiment, and
      analyst score aggregation.
  - name: Alternative Data
    description: Superinvestor holdings, Fear & Greed index, congressional trading,
      patents, lobbying, and H-1B visa data.
  - name: Earning Calls
    description: Earnings call transcripts and audio recordings.
  - name: ICE-SWAP
    description: ICE swap rate data.
  - name: Certificates
    description: "Structured products and certificates: profiles, listings, and
      historical prices."
  - name: Commodities
    description: Commodity profiles and historical price data (Gold, Crude Oil,
      Silver, Natural Gas, etc.).
  - name: Crypto
    description: Cryptocurrency listings, profiles, and historical quotes.
  - name: Crypto Extended
    description: "Extended cryptocurrency analytics: social stats, developer
      activity, market data, and exchange tickers."
  - name: Institutional
    description: Institutional investor profiles (13-F filers) and portfolio
      holdings by SEC CIK number.
  - name: Shipping
    description: Global vessel tracking, tanker/LNG positions, voyages, cargo
      movements, and port data.
  - name: Energy
    description: "Energy infrastructure: pipelines, storage facilities, fill levels,
      and flow data."
  - name: Peer Comparison
    description: Peer detection, side-by-side metric comparison, relative valuation,
      and sector benchmarking.
  - name: Deals
    description: M&A deal announcements from SEC EDGAR merger filings with deal feed
      and activity stats.
  - name: Economic Forecasts
    description: "IMF World Economic Outlook projections: GDP growth, inflation,
      unemployment, debt — history from 1980, forecasts to 2031."
  - name: Risk Models
    description: Fama-French factor returns, single-stock factor exposures,
      portfolio risk decomposition, and factor covariance.
