{
  "openapi": "3.0.4",
  "info": {
    "title": "Equibles API",
    "description": "Public REST API for Equibles financial data. Authenticate with an API key from your dashboard (Authorization: Bearer eq_...). Requests share your plan's daily quota with MCP tool calls.",
    "version": "v1"
  },
  "paths": {
    "/v1/stocks/{ticker}/buyback-programs": {
      "get": {
        "tags": [
          "Buybacks"
        ],
        "summary": "A company's share-repurchase picture: tracked buyback programs, the latest authorization figures, and the repurchase history (cash spent, shares, average price) by fiscal year and recent quarters. Figures are XBRL facts plus verified extractions; empty when nothing is on file.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BuybackProgramsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/atm-programs": {
      "get": {
        "tags": [
          "Buybacks"
        ],
        "summary": "A company's at-the-market (ATM) equity offering programs: establishment date, capacity, cumulative sold, remaining availability, expiry, derived utilization/expiry flags, and source filings. Figures come from verified extractions of the company's own 10-K/10-Q/8-K filings scanned over roughly the last 13 months (ATM programs have no tagged XBRL equivalent) — an empty list means no program was captured there, NOT proof the company runs no ATM program.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AtmProgramsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/fda/catalysts": {
      "get": {
        "tags": [
          "Catalysts"
        ],
        "summary": "Scheduled FDA advisory-committee (AdComm) meetings — announced regulatory catalyst dates for biotech and pharma — soonest first. Sourced from the FDA.gov advisory-committee calendar: a forward-looking calendar whose historical coverage begins November 2025, with no stock-ticker linkage; follow each row's sourceUrl to see the product or sponsor under review.",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (yyyy-MM-dd, defaults to 90 days after the start; floored at the start date).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum meetings to return (default 60, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FdaCatalystDtoListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/cftc/contracts": {
      "get": {
        "tags": [
          "Cftc"
        ],
        "summary": "Search CFTC futures contracts by market code or name keyword, sorted by category then market name. The tracked universe is a curated set of ~35 major contracts; omit query to list all of them (the default limit fits the full universe).",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "Search query — market code or name keyword (e.g. gold, crude, S&P, 088691). Omit to list every tracked contract.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum results (default 50, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CftcContractDtoListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/cftc/contracts/{marketCode}/positions": {
      "get": {
        "tags": [
          "Cftc"
        ],
        "summary": "Weekly Commitments of Traders (COT) positioning reports for a futures contract, newest first.",
        "parameters": [
          {
            "name": "marketCode",
            "in": "path",
            "description": "CFTC contract market code (e.g. 067651 for Crude Oil, 088691 for Gold).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start report date (yyyy-MM-dd, defaults to 1 year ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End report date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CftcPositionDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/cftc/positions/latest": {
      "get": {
        "tags": [
          "Cftc"
        ],
        "summary": "Latest COT positioning snapshot across all tracked futures contracts, sorted by category then market name. Net positions are long minus short; report fields are null for contracts without stored reports yet.",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "description": "Category filter: Agriculture, Energy, Metals, EquityIndices, InterestRates, Currencies (defaults to all).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CftcLatestPositionDtoListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/congress/members": {
      "get": {
        "tags": [
          "Congress"
        ],
        "summary": "Search members of Congress by partial or full name, sorted by name. hasMore flags a truncated match set.",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "Search query — partial or full name (e.g. Pelosi, Cruz, Dan).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum results (default 20, max 500; values outside the range are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CongressMemberSearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/congress/trades": {
      "get": {
        "tags": [
          "Congress"
        ],
        "summary": "Congressional stock trades filtered by ticker and/or member, newest first. At least one of ticker or memberId is required; when both are given the filters combine. Amounts are the disclosed STOCK Act band bounds, never exact figures; filingDate is when the market could first know of the trade.",
        "parameters": [
          {
            "name": "ticker",
            "in": "query",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "memberId",
            "in": "query",
            "description": "Congress member id (from /v1/congress/members).",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "transactionType",
            "in": "query",
            "description": "Filter by transaction type: Purchase or Sale (defaults to all).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start transaction date (yyyy-MM-dd, defaults to 1 year ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End transaction date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CongressTradeDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/congress/members/{id}/net-worth": {
      "get": {
        "tags": [
          "Congress"
        ],
        "summary": "A congress member's net worth history from annual financial disclosures, newest first. Values are bands (minimum-maximum), read from electronically filed reports only — a missing year means no electronic filing, not zero net worth.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Congress member id (from /v1/congress/members).",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum years to return (default 20, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CongressNetWorthDtoListResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/congress/market-activity": {
      "get": {
        "tags": [
          "Congress"
        ],
        "summary": "Market-wide congressional trading activity: per-stock aggregates of every trade disclosed in the trailing window across all members and tickers, ranked by estimated net flow. Flows are estimates — each trade counts as the midpoint of its disclosed amount range. The window is anchored on the disclosure (filing) date because STOCK Act filings lag the trade by up to ~45 days.",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "description": "Trailing disclosure window in days (default 30, max 365; values outside the range are clamped — the response echoes the applied window).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "description": "Ranking direction: buys (most net congressional buying first, default) or sells (most net selling first).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chamber",
            "in": "query",
            "description": "Filter by chamber: senate or house (defaults to both).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum stocks to return (default 25, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CongressionalActivityResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/correlated": {
      "get": {
        "tags": [
          "Correlations"
        ],
        "summary": "Stocks whose daily price returns are most (or least) correlated with one stock —\nPearson correlation of daily log returns on split- and dividend-adjusted closes,\ncomputed over the trading days both stocks priced (never on raw price levels).\nCandidates need a $100M market cap and enough overlapping trading days; each row\nreports the observation count behind its coefficient.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Exact listed ticker (e.g. GOOG or GOOGL). The requested listing's own daily series is the correlation subject; dot class-share spelling such as BRK.B is accepted as BRK-B.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scope",
            "in": "query",
            "description": "Candidate universe: Industry (default), Sector, or Market (~1,500 largest listed names).",
            "schema": {
              "type": "string",
              "default": "Industry"
            }
          },
          {
            "name": "days",
            "in": "query",
            "description": "Trailing calendar window in days for the return series (default 180, clamped to 30-730).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 180
            }
          },
          {
            "name": "direction",
            "in": "query",
            "description": "Positive (default) for the strongest co-movers, Negative for the strongest inverse movers.",
            "schema": {
              "type": "string",
              "default": "Positive"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of stocks to return (default 10, max 50).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CorrelatedStocksResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/investor-events": {
      "get": {
        "tags": [
          "EarningsCalls"
        ],
        "summary": "A company's investor events — earnings calls plus other webcast events (conferences, investor days, shareholder meetings) — newest first. Event ids feed the per-event speakers and slides endpoints.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Company ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum events to return (default 25, max 100; values outside the range are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvestorEventDtoListResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/earnings-calls/{fiscalYear}/{fiscalQuarter}": {
      "get": {
        "tags": [
          "EarningsCalls"
        ],
        "summary": "The earnings-call event for a fiscal quarter — the record grouping the quarter's call artefacts (audio, transcript, slide deck, 8-K earnings release), with the release's extracted guidance rows when approved ones exist.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Company ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fiscalYear",
            "in": "path",
            "description": "Fiscal year the quarter belongs to (e.g. 2025).",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fiscalQuarter",
            "in": "path",
            "description": "Fiscal quarter, 1-4.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EarningsCallEventResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/earnings-calls/{fiscalYear}/{fiscalQuarter}/speakers": {
      "get": {
        "tags": [
          "EarningsCalls"
        ],
        "summary": "The speaker-labelled transcript of a fiscal quarter's earnings call — every turn in order, attributed to the real person only when the identity resolution is trusted. Long calls page via offset; totalTurnCount and hasMore signal the remainder.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Company ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fiscalYear",
            "in": "path",
            "description": "Fiscal year the quarter belongs to (e.g. 2025).",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fiscalQuarter",
            "in": "path",
            "description": "Fiscal quarter, 1-4.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum speaker turns to return (default 50, max 200; values outside 1-200 are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Speaker turns to skip before the first returned one (default 0) — pages past the per-request cap.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpeakerTurnsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/investor-events/{eventId}/speakers": {
      "get": {
        "tags": [
          "EarningsCalls"
        ],
        "summary": "The speaker-labelled transcript of an investor event by its event id — the route for conferences and other non-earnings events, which have no fiscal quarter to key on. Long events page via offset; totalTurnCount and hasMore signal the remainder.",
        "parameters": [
          {
            "name": "eventId",
            "in": "path",
            "description": "Investor event id from the investor-events list.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum speaker turns to return (default 50, max 200; values outside 1-200 are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Speaker turns to skip before the first returned one (default 0) — pages past the per-request cap.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpeakerTurnsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/earnings-briefs": {
      "get": {
        "tags": [
          "EarningsCalls"
        ],
        "summary": "The AI earnings brief for a company's recent calls — a verifier-approved TL;DR, bullish and bearish points, and verbatim pull-quotes. Newest quarter first.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Company ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum quarterly briefs to return (default 2, max 8; values outside the range are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EarningsBriefDtoListResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/call-insights": {
      "get": {
        "tags": [
          "EarningsCalls"
        ],
        "summary": "The AI-scored insights for a company's recent calls — management tone and hedging scores plus key themes with mention counts. Newest call first, verifier-approved.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Company ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum scored calls to return (default 2, max 8; values outside the range are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CallInsightsDtoListResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/investor-events/{eventId}/slides": {
      "get": {
        "tags": [
          "EarningsCalls"
        ],
        "summary": "Metadata for an investor event's captured slide deck: a PDF deck links to the file stream, an image-slideshow deck lists its slide-image URLs in order.",
        "parameters": [
          {
            "name": "eventId",
            "in": "path",
            "description": "Investor event id from the investor-events list.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SlideDeckResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/investor-events/{eventId}/slides/file": {
      "get": {
        "tags": [
          "EarningsCalls"
        ],
        "summary": "Streams an investor event's captured slide-deck PDF.",
        "parameters": [
          {
            "name": "eventId",
            "in": "path",
            "description": "Investor event id from the investor-events list.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/filings": {
      "get": {
        "tags": [
          "Filings"
        ],
        "summary": "SEC filings and earnings call transcripts for a stock, newest first. Document ids feed the per-document line and keyword-search endpoints. Investor-relations news items are excluded from the unfiltered list (they are news, not filings) and are reachable via documentType=IrNews.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "documentType",
            "in": "query",
            "description": "Document type filter, by value (e.g. TenK) or form label (e.g. 10-K). Also accepts EarningsCallTranscript for call transcripts and IrNews for investor-relations news; an unknown value returns a 400 listing every valid value.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Earliest filing date (yyyy-MM-dd).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "Latest filing date (yyyy-MM-dd).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FilingDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/filings/{documentId}/lines": {
      "get": {
        "tags": [
          "Filings"
        ],
        "summary": "A range of numbered text lines from one filing or transcript.",
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "description": "Document id from the filings list.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startLine",
            "in": "query",
            "description": "First line to read (1-based, inclusive; required).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "endLine",
            "in": "query",
            "description": "Last line to read (1-based, inclusive; required, capped at the document's last line; window limited to 500 lines per request).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentLinesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/filings/{documentId}/keyword-search": {
      "get": {
        "tags": [
          "Filings"
        ],
        "summary": "Case-insensitive exact keyword search within one filing or transcript, matching typographic punctuation (curly quotes, dashes) interchangeably with ASCII. Returns matching lines with one line of context each; matchCount is the returned-row count and totalMatchingLines the document-wide total.",
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "description": "Document id from the filings list.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "keyword",
            "in": "query",
            "description": "Keyword or phrase to search for (required).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum matches to return (default 20, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentKeywordSearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/filings/{documentId}/assets/{name}": {
      "get": {
        "tags": [
          "Filings"
        ],
        "summary": "One of a filing's as-filed images (an 8-K deck slide, logo, figure), stored at capture time. Image names come from the slides metadata endpoint's imageUrls.",
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "description": "Document id from the filings list.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The image's bare EDGAR filename within the filing.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/fails-to-deliver": {
      "get": {
        "tags": [
          "Filings"
        ],
        "summary": "SEC fails-to-deliver (FTD) records for a stock, newest first. Each row is the aggregate outstanding fail position on its settlement date (a balance, not a flow) at the prior trading day's closing price; the SEC publishes FTD data in half-month batches with a roughly two-week lag, and absent dates mean no reported fails.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start settlement date (yyyy-MM-dd, defaults to 3 months ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End settlement date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FailToDeliverDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/exempt-offerings": {
      "get": {
        "tags": [
          "Filings"
        ],
        "summary": "Exempt securities offerings (Regulation D private placements) reported by a company on SEC Form D, newest first. A \"D/A\" amendment row restates a prior notice for the SAME offering (issuers re-amend annually), so summing amounts across rows overcounts capital raised — group rows by dateOfFirstSale and keep the latest filing per offering.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Company ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Earliest filing date (yyyy-MM-dd).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "Latest filing date (yyyy-MM-dd).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExemptOfferingDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/fred/series": {
      "get": {
        "tags": [
          "Fred"
        ],
        "summary": "Search FRED economic indicator series by series id or title keyword, sorted by category then series id.",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "Search query — series id or title keyword (e.g. inflation, unemployment, FEDFUNDS). Required.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum results (default 20, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FredSeriesDtoListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/fred/series/{seriesId}/observations": {
      "get": {
        "tags": [
          "Fred"
        ],
        "summary": "Historical observations for a FRED series, newest first, with the series metadata embedded.",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "description": "FRED series id (e.g. FEDFUNDS, CPIAUCSL, UNRATE, GDP, T10Y2Y, VIXCLS).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (yyyy-MM-dd, defaults to 1 year ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FredObservationsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/fred/latest": {
      "get": {
        "tags": [
          "Fred"
        ],
        "summary": "Latest observation for every tracked economic indicator series, sorted by category then series id. Date and value are null for series without stored values yet.",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "description": "Category filter: InterestRates, YieldSpreads, CorporateBondSpreads, Inflation, Employment, GdpAndOutput, MoneySupply, Sentiment, Housing, ExchangeRates, Market (defaults to all).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FredLatestObservationDtoListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/fred/calendar": {
      "get": {
        "tags": [
          "Fred"
        ],
        "summary": "Economic release calendar — scheduled (upcoming) and recent publication dates of US macro data releases, chronological, with the FRED series each release updates and an importance tier per release (High = tier-1 scheduled market movers such as CPI, PPI, jobs, GDP, PCE, retail sales; Medium = other genuine scheduled prints; Low = daily rate/market levels). FOMC meetings are NOT included — FRED's release feed has no real FOMC meeting dates; use the Federal Reserve's published meeting calendar for those. The low tier emits several daily-rate rows per business day, so the default page can clip the window — check meta.hasMore, raise limit, or pass minImportance=medium/high.",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (yyyy-MM-dd, defaults to 30 days after the start date).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "minImportance",
            "in": "query",
            "description": "Minimum importance tier to include: low, medium, or high (defaults to low = everything).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum release dates to return (default 100, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FredReleaseDateDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/revenue-breakdown": {
      "get": {
        "tags": [
          "Fundamentals"
        ],
        "summary": "A company's revenue disaggregated by business segment, geography, and product/service from its dimensional XBRL facts, annual fiscal years only, latest restated values. Also carries per-segment operating income and margin when tagged. Empty axes mean the issuer reports revenue only as a consolidated total. Axis members may overlap hierarchically (a parent line tagged alongside its children), so never sum members — consolidatedRevenue carries the real per-year totals.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueBreakdownResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/customer-concentration": {
      "get": {
        "tags": [
          "Fundamentals"
        ],
        "summary": "A company's customer-concentration risk disclosure (\"one customer accounted for 31% of revenue\"): each figure's basis, customer count, percentage, period, and verbatim quote, with the source filing. hasDisclosure is false when nothing is on file — missReason then says why: a tagged-XBRL filer the narrative lane skips by design, a scanned filing that stated nothing, or a company not processed yet. Never a statement of no risk.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerConcentrationResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/going-concern": {
      "get": {
        "tags": [
          "Fundamentals"
        ],
        "summary": "Whether a company's latest SEC filing states substantial doubt about its ability to continue as a going concern, with the verbatim disclosure, the source filing, and the history of examined filings showing when doubt appeared, was alleviated, or cleared. Coverage begins at coverageStartDate — filings before it were never examined, so an episode predating it is invisible here, not disproven. examined is false when no filing has been checked yet.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoingConcernResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/funds": {
      "get": {
        "tags": [
          "Funds"
        ],
        "summary": "Search the directory of registered investment companies (mutual funds and ETFs) that file SEC Form NPORT-P, largest by net assets first. Covers the multi-series trusts (iShares, Vanguard, Fidelity) that have no ticker of their own; each row's profileId also resolves on /v1/funds/{ticker}/holdings. Multi-class mutual funds carry no ticker in the directory (share-class tickers like VOO or VFIAX will not match) — search those by fund name.",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "Fund name, ticker or registrant to search for (e.g. 'Russell 2000', 'iShares', 'IWM'); required. Share-class tickers of multi-class mutual funds (e.g. VOO, VFIAX) do not match — search by fund name instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum funds to return (default 20, max 500; out-of-range values are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundSearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/funds/{ticker}/holdings": {
      "get": {
        "tags": [
          "Funds"
        ],
        "summary": "Portfolio holdings of a fund or ETF from its most recent SEC Form NPORT-P report, largest position first. Accepts the fund's ticker or a profileId from /v1/funds, so it also reaches fund series that have no ticker of their own (share-class tickers like VOO or VFIAX do not resolve — find the fund by name via /v1/funds and pass its profileId). Only registered funds file NPORT-P; operating companies return 404.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Fund or ETF ticker symbol (e.g. SPY, IWM) or a fund profileId from /v1/funds (e.g. 'vanguard-500-index-fund-s000002839').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundHoldingsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/funds/{ticker}/operations": {
      "get": {
        "tags": [
          "Funds"
        ],
        "summary": "Operational data for a fund from its SEC Form N-CEN annual reports, newest first, each with the service providers named on it (advisers, custodians, transfer agents, auditors, underwriters).",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Fund or ETF ticker symbol (e.g. MXF, SPY).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum annual reports to return (default 10, max 500; out-of-range values are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundOperationsReportDtoListResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/fund-owners": {
      "get": {
        "tags": [
          "Funds"
        ],
        "summary": "Registered funds and ETFs holding a stock on each fund series' most recent SEC Form NPORT-P report, largest position first. Matched by the stock's CUSIP, and series that stopped filing more than 18 months ago are excluded, so an exited position never shows as current. Report dates differ per series (each fund files on its own fiscal quarter), so values are as of each row's reportPeriodDate.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum fund positions to return (default 20, max 500; out-of-range values are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundOwnersResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/investment-advisers": {
      "get": {
        "tags": [
          "Funds"
        ],
        "summary": "Search SEC-registered investment advisers (Form ADV) by firm name, largest by regulatory assets under management first. Matches both the legal name and the \"doing business as\" name.",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "Part of the firm's legal or business name (e.g. \"Vanguard\", \"Renaissance\"); required.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum advisers to return (default 20, max 500; out-of-range values are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdviserSearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/investment-advisers/{crd}": {
      "get": {
        "tags": [
          "Funds"
        ],
        "summary": "Full Form ADV profile of one SEC-registered investment adviser by its Organization CRD number.",
        "parameters": [
          {
            "name": "crd",
            "in": "path",
            "description": "The adviser's Organization CRD number (e.g. 231).",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvestmentAdviserDetailDto"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/government-contracts": {
      "get": {
        "tags": [
          "GovernmentContracts"
        ],
        "summary": "Federal government contract awards (from USAspending.gov) won by a public company, largest award first. latestActionDate echoes the dataset's coverage as-of so an empty window is distinguishable from a coverage gap.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. LMT, RTX, BA). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start action date (yyyy-MM-dd, defaults to 1 year ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End action date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GovernmentContractsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/government-contracts/top": {
      "get": {
        "tags": [
          "GovernmentContracts"
        ],
        "summary": "Public companies ranked by total federal contract dollars awarded (from USAspending.gov) over a date range, largest total first. latestActionDate echoes the dataset's coverage as-of so an empty ranking is distinguishable from a coverage gap.",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "Start action date (yyyy-MM-dd, defaults to 1 year ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End action date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum companies to return (default 25, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopGovernmentContractorsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/guidance": {
      "get": {
        "tags": [
          "Guidance"
        ],
        "summary": "A company's earnings guidance from its Item-2.02 8-K releases and earnings-call transcripts — each guided metric with its range, unit, GAAP/non-GAAP basis, period, the verbatim disclosure, and as-announced provenance, newest release first. Revenue and diluted-EPS guidance also carries the reported actual and an above/within/below verdict once the facts land.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuidanceResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/institutional-holders": {
      "get": {
        "tags": [
          "Holdings"
        ],
        "summary": "Top institutional holders (13F filers) of a stock, ranked by shares held. While the\nnewest quarter's 45-day filing window is open the positions are the combined view\n(new filings + prior-quarter carry-forward for funds yet to file). Share counts are\nrestated onto today's split basis.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportDate",
            "in": "query",
            "description": "13F report date (yyyy-MM-dd, defaults to the latest available). Must be one of the stock's 13F report dates — any other date returns 400 listing the available dates.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopHoldersResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/institutional-ownership": {
      "get": {
        "tags": [
          "Holdings"
        ],
        "summary": "Institutional ownership history for a stock across quarterly 13F report dates, oldest\nfirst. The newest quarter is the combined view while its filing window is open, so\nthe trend does not end on a fabricated collapse. Share totals are restated onto\ntoday's split basis before the quarter-over-quarter change.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "periods",
            "in": "query",
            "description": "Maximum number of quarterly periods to return (default 8, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 8
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnershipPeriodDtoListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/institutional-activity": {
      "get": {
        "tags": [
          "Holdings"
        ],
        "summary": "Top institutional buyers and sellers of a stock — biggest absolute share additions\nand reductions versus the previous 13F report date, including new and sold-out\npositions. Sellers are counted only among funds that filed a 13F for the target\nquarter: while the filing window is open a fund that has not filed yet is not a\nseller, and on closed quarters a fund that stopped filing under its CIK (entity\nmigration, deregistration) is not shown as a mass seller. New-position buyers whose\nfirst 13F on record is the target quarter carry isFirst13F=true — often the\nreceiving entity of a CIK migration rather than fresh buying. Share counts are\nrestated onto today's split basis.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportDate",
            "in": "query",
            "description": "13F report date (yyyy-MM-dd, defaults to the latest available). Must be one of the stock's 13F report dates — any other date returns 400 listing the available dates.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum buyers and sellers to return per side (default 10, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HoldingsActivityResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/13f/market-activity": {
      "get": {
        "tags": [
          "Holdings"
        ],
        "summary": "Market-wide 13F leaderboards for a quarter — which stocks were most bought, most\nsold, most initiated or most exited across all 13F filers versus the prior quarter.\nMover deltas are restated onto today's split basis; ordering is by Δ reported value,\nwhich is the change in reported position value and therefore includes the quarter's\nprice move on held positions, not just net buying or selling.",
        "parameters": [
          {
            "name": "bucket",
            "in": "query",
            "description": "Required: top-buys, top-sells, new-positions or sold-out-positions.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportDate",
            "in": "query",
            "description": "13F report date (yyyy-MM-dd, defaults to the latest available).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum stocks to return (default 20, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketActivityResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/13f/most-held": {
      "get": {
        "tags": [
          "Holdings"
        ],
        "summary": "Cross-sectional ranking of stocks by institutional 13F breadth for a quarter —\nstocks ranked by number of 13F filers (default), by quarter-over-quarter change in\nfiler count, or by total reported value, with Δ filers, Δ value and the stock's\nshare of the 13F filer universe.",
        "parameters": [
          {
            "name": "reportDate",
            "in": "query",
            "description": "13F report date (yyyy-MM-dd, defaults to the latest available).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "filers (default), filersDelta or value.",
            "schema": {
              "type": "string",
              "default": "filers"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum stocks to return (default 25, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MostHeldResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/insider-transactions": {
      "get": {
        "tags": [
          "InsiderTrading"
        ],
        "summary": "Insider transactions for a stock from SEC Form 3/4/5 filings, newest first. transactionType is the coarse Buy/Sell/Award/Gift/Exercise label; transactionCode carries the filed SEC code's meaning (Conversion, Tax Payment, …) — non-market codes surface there, so check it before reading a row as an open-market trade.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InsiderTransactionDtoPagedResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/insider-ownership": {
      "get": {
        "tags": [
          "InsiderTrading"
        ],
        "summary": "Current insider ownership for a stock: each insider's latest position, largest holding first (positions restated onto today's split basis before ranking).",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum insiders to return (default 30, max 100; values outside the range are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InsiderOwnershipDtoListResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/proposed-sales": {
      "get": {
        "tags": [
          "InsiderTrading"
        ],
        "summary": "Proposed insider sales for a stock from SEC Form 144 notices, newest filing first.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProposedSaleDtoPagedResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/insiders": {
      "get": {
        "tags": [
          "InsiderTrading"
        ],
        "summary": "Search corporate insiders (directors, officers, 10% owners) by name. Sorted by name; each result carries the insider's most recent filing's company so namesakes are tellable apart.",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "Search query for insider name (required). Names are matched against the SEC legal name — often \"LAST FIRST MIDDLE\" — and EVERY whitespace-separated token must match, so \"Jensen Huang\" finds nothing while \"Huang\" finds \"HUANG JEN HSUN\"; retry with the surname alone when a full name returns empty.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum results (default 10, max 500; values outside the range are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InsiderSearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/insider-sentiment-scores": {
      "get": {
        "tags": [
          "InsiderTrading"
        ],
        "summary": "Stocks ranked by composite insider-sentiment score — a peer-relative 0-100 measure of how aggressively insiders are accumulating over a trailing 90-day window, from open-market Form 3/4/5 buys and sells. Highest score first. Rank reflects the full scored universe and does not renumber when liquidity filters are applied. Pass ticker for one stock's score and universe rank (the other filters do not apply then).",
        "parameters": [
          {
            "name": "clusterBuysOnly",
            "in": "query",
            "description": "Return only cluster buys (three or more distinct insiders buying in the window).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "minMarketCap",
            "in": "query",
            "description": "Minimum market capitalization in USD (default 0 = no floor; stocks with unknown market cap are excluded when set).",
            "schema": {
              "type": "number",
              "format": "double",
              "default": 0.0
            }
          },
          {
            "name": "minSharePrice",
            "in": "query",
            "description": "Minimum share price in USD (default 0 = no floor; unknown price excluded when set).",
            "schema": {
              "type": "number",
              "format": "double",
              "default": 0.0
            }
          },
          {
            "name": "minDollarVolume",
            "in": "query",
            "description": "Minimum trailing 3-month average daily dollar volume in USD (default 0 = no floor; unknown volume excluded when set).",
            "schema": {
              "type": "number",
              "format": "double",
              "default": 0.0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum stocks to return (default 25, max 200; values outside the range are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ticker",
            "in": "query",
            "description": "Optional stock ticker (e.g. NVDA): returns that one stock's score and universe rank instead of the leaderboard; 404 when the stock is not in the scored universe.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InsiderSentimentScoresResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/institutions": {
      "get": {
        "tags": [
          "Institutions"
        ],
        "summary": "Search institutional investors (13F filers) by name or SEC CIK, largest recently-active 13F filers\nfirst, so a famous partial name resolves to the flagship filer rather than an\nalphabetically-earlier minor namesake. The returned CIK is the identifier every\nv1/institutions/{cik}/* endpoint resolves by. EDGAR's internal state-or-country\ncodes are decoded to human-readable names; meta reports the total match count so\ntruncation is visible.",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "Institution name, partial name, or CIK (required).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum results to return (default 10, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstitutionSearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/institutions/{cik}/portfolio": {
      "get": {
        "tags": [
          "Institutions"
        ],
        "summary": "The stock portfolio reported by an institution for a 13F report date, ranked by\nreported value. Share counts are restated onto today's split basis by each\nposition's own stock's splits; values stay as reported.",
        "parameters": [
          {
            "name": "cik",
            "in": "path",
            "description": "SEC CIK of the institution (see GET v1/institutions).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportDate",
            "in": "query",
            "description": "13F report date (yyyy-MM-dd, defaults to the institution's latest). Must be one the institution reported — any other date returns 400 listing the available dates.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstitutionPortfolioResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/institutions/{cik}/summary": {
      "get": {
        "tags": [
          "Institutions"
        ],
        "summary": "Portfolio summary header for an institution — reported AUM, position count,\ntop-10/top-25 concentration and quarter-over-quarter turnover, computed over the\ninstitution's 13F filings for the resolved report date.",
        "parameters": [
          {
            "name": "cik",
            "in": "path",
            "description": "SEC CIK of the institution (see GET v1/institutions).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportDate",
            "in": "query",
            "description": "13F report date (yyyy-MM-dd, defaults to the institution's latest). Must be one the institution reported — any other date returns 400 listing the available dates.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstitutionSummaryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/institutions/{cik}/sector-allocation": {
      "get": {
        "tags": [
          "Institutions"
        ],
        "summary": "An institution's 13F portfolio allocation grouped by industry, sorted by percent of\nportfolio descending with unclassified holdings collapsed into one final slice.",
        "parameters": [
          {
            "name": "cik",
            "in": "path",
            "description": "SEC CIK of the institution (see GET v1/institutions).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportDate",
            "in": "query",
            "description": "13F report date (yyyy-MM-dd, defaults to the institution's latest). Must be one the institution reported — any other date returns 400 listing the available dates.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SectorAllocationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/institutions/{cik}/activity": {
      "get": {
        "tags": [
          "Institutions"
        ],
        "summary": "An institution's quarterly position-change activity — initiated / increased /\nreduced / exited stocks diffed against the immediately prior quarter, each bucket\nsorted by absolute Δ value descending. Share counts are restated onto today's split\nbasis before bucketing so a split does not surface as a phantom move.",
        "parameters": [
          {
            "name": "cik",
            "in": "path",
            "description": "SEC CIK of the institution (see GET v1/institutions).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportDate",
            "in": "query",
            "description": "13F report date (yyyy-MM-dd, defaults to the institution's latest). Must be one the institution reported — any other date returns 400 listing the available dates.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "bucket",
            "in": "query",
            "description": "Optional filter: initiated, increased, reduced or exited.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum stocks to return per bucket (default 20, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstitutionActivityResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/ir-news": {
      "get": {
        "tags": [
          "InvestorRelations"
        ],
        "summary": "Press releases scraped from the company's investor-relations website, newest first. Coverage is partial — the coverage block states whether the company's IR page has been discovered and scraped, so an empty page is interpretable.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Company ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IrNewsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/ir-events": {
      "get": {
        "tags": [
          "InvestorRelations"
        ],
        "summary": "Upcoming investor-relations events (earnings webcasts, conferences, presentations, shareholder meetings) from the company's IR website, soonest first. Coverage is partial — the coverage block states whether the company's IR page has been discovered and scraped, so an empty list is interpretable.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Company ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum events to return (default 20, max 500; values outside the range are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IrEventsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/super-investors": {
      "get": {
        "tags": [
          "Investors"
        ],
        "summary": "The curated superinvestor directory — well-known value investors and fund managers, each with their 13F filer CIK and latest reported portfolio value, position count, quarter-over-quarter change, and report date. Use the CIK with the institution endpoints for a manager's full holdings.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuperInvestorDtoListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/consensus-holdings": {
      "get": {
        "tags": [
          "Investors"
        ],
        "summary": "The consensus (combined) portfolio of 2-25 institutions for their latest common 13F report date — stocks ranked by how many of the funds hold them, then by combined value. Answers \"what do these funds agree on?\".",
        "parameters": [
          {
            "name": "institutions",
            "in": "query",
            "description": "Comma- or semicolon-separated institution names or CIKs (partial names resolve to the largest matching 13F filer). 2-25 distinct institutions.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportDate",
            "in": "query",
            "description": "13F report date (yyyy-MM-dd, defaults to the latest common quarter). Must be a report date all resolved funds share — any other date returns 400 listing the shared dates.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "minFunds",
            "in": "query",
            "description": "Minimum number of funds a stock must be held by to appear (default 1 — note that 1 also includes stocks held by a single fund; set 2 or more for true consensus).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum stocks to return (default 30, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsensusHoldingsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/ipos": {
      "get": {
        "tags": [
          "Ipos"
        ],
        "summary": "US IPO pipeline: companies with an S-1/F-1 registration statement on file at the SEC, newest filing activity first — each with its lifecycle status (Filed, Priced, Listed, Withdrawn), latest filing, proposed ticker and exchange, the verified offer terms extracted from the prospectus, and the latest full fiscal year's revenue, growth, gross margin and net income from the filer's own XBRL-tagged statements (in the filer's reporting currency). Use /v1/ipos/{cik} for the full picture including insights and the filing chain.",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "description": "Optional lifecycle filter: Filed, Priced, Listed, or Withdrawn.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filerType",
            "in": "query",
            "description": "Optional company-type filter: Operating (non-SPAC) or Spac (SEC's SIC 6770 blank-check classification).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpoRegistrationDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/ipos/{cik}": {
      "get": {
        "tags": [
          "Ipos"
        ],
        "summary": "One IPO registration's full picture by the filer's SEC CIK (as listed by /v1/ipos): status and offer terms with their verbatim prospectus quotes, the extracted business summary, use of proceeds, underwriters and key risk factors, the annual pre-IPO financials, and the complete S-1/amendment/prospectus filing chain with EDGAR links. Fields the prospectus does not state are null — never estimated.",
        "parameters": [
          {
            "name": "cik",
            "in": "path",
            "description": "The filer's SEC CIK, with or without leading zeros.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpoDetailsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/kpis": {
      "get": {
        "tags": [
          "Kpis"
        ],
        "summary": "A company's own KPIs (subscribers, ARR, units, adjusted EBITDA, free cash flow, …) extracted from its earnings releases, call transcripts and MD&A — each a time series with the latest value, period, year-over-year change, and a GAAP-to-non-GAAP bridge when stated. Pass metric to return one metric's full history.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "metric",
            "in": "query",
            "description": "Optional metric name to return on its own (case-insensitive; matches the company's own labels). Omit for every metric. An ambiguous name that matches several metrics is a 400 listing the candidates; a name matching nothing is a 404 listing everything on file.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KpisResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/non-gaap-bridge": {
      "get": {
        "tags": [
          "Kpis"
        ],
        "summary": "A company's non-GAAP-to-GAAP reconciliations extracted from its earnings releases — for each stated measure, the GAAP starting line, each adjustment in order, and the non-GAAP result, with period, unit and source quote. Verifier-approved, newest filing first. filingsExamined says how many filings the pipeline has read: an empty data list with filingsExamined > 0 means the filings were read and stated no reconciliation, while filingsExamined 0 means the company has not been processed yet.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum source filings to read, newest first (default 6, max 20; values outside the range are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NonGaapBridgeResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/market/put-call-ratios": {
      "get": {
        "tags": [
          "Market"
        ],
        "summary": "CBOE put/call ratio history for one ratio type, newest first. Only rows whose ratio reconciles with its own volumes are served. Data runs from late 2006 to present; the Vix ratio type starts October 2019, and pre-2013 history is sampled roughly weekly.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "Ratio type: Total, Equity, Index, Vix, Etp (default Equity).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (yyyy-MM-dd, defaults to 3 months ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PutCallRatioDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/market/vix": {
      "get": {
        "tags": [
          "Market"
        ],
        "summary": "CBOE Volatility Index (VIX) daily OHLC history, newest first. Data available from 1990 to present.",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (yyyy-MM-dd, defaults to 3 months ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VixBarDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/market/status": {
      "get": {
        "tags": [
          "Market"
        ],
        "summary": "Current US equity market status (NYSE/Nasdaq), evaluated in America/New_York: whether the market is open, the current session (pre-market, regular, after-hours, or closed), whether today is a full-day holiday or a 1:00 p.m. ET early close, today's regular hours, and the next open and close. Backed by the exchange's curated holiday and early-close calendar.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketStatusDto"
                }
              }
            }
          }
        }
      }
    },
    "/v1/market/calendar": {
      "get": {
        "tags": [
          "Market"
        ],
        "summary": "US equity market holidays and early-close (1:00 p.m. ET) half days for a calendar year (NYSE/Nasdaq), in date order. Defaults to the current year. The calendar is curated for 2025 through 2027; a year outside that range is rejected.",
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "description": "Calendar year, e.g. 2026 (defaults to the current year).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketCalendarDayDtoListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/valuation-multiples": {
      "get": {
        "tags": [
          "Multiples"
        ],
        "summary": "A company's current valuation multiples (EV/Revenue, EV/EBIT, P/E on TTM figures) with a peer median and quartiles for context — computed over similar-size industry peers (a market-cap decade band around the company, sizeBanded true) when the industry holds enough of them, else industry-wide. REITs also carry P/FFO and P/AFFO from the company's SEC-stated FFO/AFFO reconciliation.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuationMultiplesResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/valuation-multiples/history": {
      "get": {
        "tags": [
          "Multiples"
        ],
        "summary": "A company's valuation multiples over time — EV/Revenue, EV/EBIT, and P/E recomputed point-in-time at each past quarter's filing date, oldest first (up to ~10 years). Each sample uses only the facts filed by that date and that day's close.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuationMultiplesHistoryResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/options/expirations": {
      "get": {
        "tags": [
          "Options"
        ],
        "summary": "The available option expiration dates for a stock, ascending, with the number of listed contracts at each. Use one of these as the `expiration` for the option chain. Data is 15-minute delayed; an empty successful response means the stock has no listed options, while an unavailable feed returns 503.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Exact listed underlying (e.g. GOOG, GOOGL, BRK-A, or BRK-B). A listing never falls through to its sibling; dot class-share spelling such as BRK.B is accepted as BRK-B.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptionExpirationsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/options/chain": {
      "get": {
        "tags": [
          "Options"
        ],
        "summary": "The option chain (calls and puts) for a stock for ONE expiration: strike, greeks (delta/gamma/theta/vega), implied volatility, open interest, and the latest daily price. Defaults to the nearest upcoming expiration; pass `expiration=YYYY-MM-DD` to pick another. When the expiration holds more contracts than `limit`, the ones nearest the money are returned (`truncated` flags the cut). Narrow with `minStrike`/`maxStrike` and `type` (call/put) to reach the wings. Data is 15-minute delayed; bid/ask populated only when the plan entitles quotes.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Exact listed underlying (e.g. GOOG, GOOGL, BRK-A, or BRK-B). A listing never falls through to its sibling; dot class-share spelling such as BRK.B is accepted as BRK-B.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expiration",
            "in": "query",
            "description": "Expiration date in YYYY-MM-DD format (default: nearest upcoming).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "minStrike",
            "in": "query",
            "description": "Only include strikes at or above this price.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxStrike",
            "in": "query",
            "description": "Only include strikes at or below this price.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Contract type filter: call or put (default: both).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum contracts to return, taken nearest the money (default: 250, max: 500).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 250
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptionChainResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/options/contract": {
      "get": {
        "tags": [
          "Options"
        ],
        "summary": "A single option contract's snapshot by its OCC symbol (e.g. O:AAPL260724C00110000): greeks, implied volatility, open interest, the latest daily price, and bid/ask when the plan entitles quotes. Data is 15-minute delayed.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Exact listed underlying (e.g. GOOG, GOOGL, BRK-A, or BRK-B). A listing never falls through to its sibling; dot class-share spelling such as BRK.B is accepted as BRK-B.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "symbol",
            "in": "query",
            "description": "OCC option symbol (e.g. O:AAPL260724C00110000).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptionContractResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/executive-changes": {
      "get": {
        "tags": [
          "People"
        ],
        "summary": "A company's executive and director changes (appointments, resignations, terminations, retirements) from its 8-K Item 5.02 filings, newest filing first. Extracted and verified before publication. meta signals truncation; page past it with offset.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum changes to return (default 25, max 100; values outside the range are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Changes to skip before the first returned one (default 0) — pages past the per-request cap.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutiveChangesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/executive-compensation": {
      "get": {
        "tags": [
          "People"
        ],
        "summary": "A company's named-executive compensation from its DEF 14A proxy Summary Compensation Tables — salary, bonus, stock and option awards, non-equity incentive, other, and the company-reported total per executive per fiscal year, newest year first. Figures are exactly as disclosed. Coverage reflects the proxies imported so far and may trail the company's newest DEF 14A — the newest year returned is the newest IMPORTED, not necessarily the newest disclosed.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "years",
            "in": "query",
            "description": "Maximum fiscal years to return, newest first (default all on file; values below 1 are a 400).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutiveCompensationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/quote": {
      "get": {
        "tags": [
          "Quotes"
        ],
        "summary": "Current intraday quote for one stock — the live market reading, not a daily bar. Returns the last trade price, its UTC timestamp, whether the reading is real-time or 15-minute delayed, and bid/ask when the feed carries them. Readings only move while the US market is open; outside market hours this serves the session's last reading. Use /v1/stocks/{ticker}/prices for the most recent close and daily history.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Exact listed ticker (e.g. GOOG, GOOGL, BRK-A, or BRK-B). A missing listing is never replaced by its sibling; dot class-share spelling such as BRK.B is accepted as BRK-B.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveQuoteDto"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/quotes": {
      "get": {
        "tags": [
          "Quotes"
        ],
        "summary": "Current intraday quotes for up to 25 stocks in one call. Same reading as /v1/stocks/{ticker}/quote. Tickers with no live reading are omitted from the response rather than returned with a placeholder price, so compare the returned tickers against the ones you asked for.",
        "parameters": [
          {
            "name": "tickers",
            "in": "query",
            "description": "Comma-separated exact listed tickers (e.g. GOOG,GOOGL,BRK-A,BRK-B), max 25.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveQuoteDtoListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/screener/stocks": {
      "get": {
        "tags": [
          "Screener"
        ],
        "summary": "Screen the stock universe by combining optional range filters across datasets — market cap and price, sector and industry, 13F filer count and its change, short interest and days to cover, composite short-squeeze and insider-sentiment scores, net insider buying (90d), the going-concern doubt flag, and fundamentals from daily-refreshed SEC filings (trailing P/E, dividend yield, revenue growth YoY, gross margin, average daily dollar volume, TTM net income). A bound on a metric excludes stocks with no data on that axis. Sorted by the chosen metric (default market cap, descending); page walks past the first page and vintages state each dataset's freshness.",
        "parameters": [
          {
            "name": "minMarketCap",
            "in": "query",
            "description": "Minimum market capitalization in USD.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxMarketCap",
            "in": "query",
            "description": "Maximum market capitalization in USD.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minPrice",
            "in": "query",
            "description": "Minimum share price in USD.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxPrice",
            "in": "query",
            "description": "Maximum share price in USD.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minFilerCount",
            "in": "query",
            "description": "Minimum number of 13F institutional filers.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "maxFilerCount",
            "in": "query",
            "description": "Maximum number of 13F institutional filers.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "minFilerDelta",
            "in": "query",
            "description": "Minimum quarter-over-quarter change in filer count.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "maxFilerDelta",
            "in": "query",
            "description": "Maximum quarter-over-quarter change in filer count.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "minShortInterestPercent",
            "in": "query",
            "description": "Minimum short interest as a percent of shares outstanding (0-100).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxShortInterestPercent",
            "in": "query",
            "description": "Maximum short interest as a percent of shares outstanding (0-100).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minDaysToCover",
            "in": "query",
            "description": "Minimum days to cover.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxDaysToCover",
            "in": "query",
            "description": "Maximum days to cover.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minSqueezeScore",
            "in": "query",
            "description": "Minimum composite short-squeeze score (0-100).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxSqueezeScore",
            "in": "query",
            "description": "Maximum composite short-squeeze score (0-100).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minInsiderSentiment",
            "in": "query",
            "description": "Minimum composite insider-sentiment score (0-100).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxInsiderSentiment",
            "in": "query",
            "description": "Maximum composite insider-sentiment score (0-100).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minNetInsiderBuy",
            "in": "query",
            "description": "Minimum net insider buying in USD over the trailing 90 days.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxNetInsiderBuy",
            "in": "query",
            "description": "Maximum net insider buying in USD over the trailing 90 days.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "hasGoingConcernDoubt",
            "in": "query",
            "description": "True keeps only companies with unalleviated going-concern doubt; false keeps only companies without it.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "sector",
            "in": "query",
            "description": "Exact sector name (e.g. Technology, Healthcare). An unknown name is a 400 listing the accepted sectors.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "industry",
            "in": "query",
            "description": "Exact industry name (e.g. Semiconductors). Prefer sector for broad groups; an unknown name is a 400.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "minPe",
            "in": "query",
            "description": "Minimum trailing-twelve-month price-to-earnings ratio.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxPe",
            "in": "query",
            "description": "Maximum trailing-twelve-month price-to-earnings ratio (e.g. 15 for value screens).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minDividendYield",
            "in": "query",
            "description": "Minimum trailing dividend yield in percent (e.g. 3 = 3%).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxDividendYield",
            "in": "query",
            "description": "Maximum trailing dividend yield in percent.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minRevenueGrowth",
            "in": "query",
            "description": "Minimum revenue growth in percent, latest quarter vs the same quarter a year earlier.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxRevenueGrowth",
            "in": "query",
            "description": "Maximum revenue growth in percent, latest quarter vs the same quarter a year earlier.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minGrossMargin",
            "in": "query",
            "description": "Minimum gross margin in percent (0-100).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxGrossMargin",
            "in": "query",
            "description": "Maximum gross margin in percent (0-100).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minDollarVolume",
            "in": "query",
            "description": "Minimum trailing-3-month average daily dollar volume in USD (e.g. 5000000 = $5M/day).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxDollarVolume",
            "in": "query",
            "description": "Maximum trailing-3-month average daily dollar volume in USD.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minNetIncome",
            "in": "query",
            "description": "Minimum trailing-twelve-month net income in USD (0 keeps profitable companies only).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxNetIncome",
            "in": "query",
            "description": "Maximum trailing-twelve-month net income in USD.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Sort key: marketcap, ticker, name, price, filers, filerdelta, sipct, dtc, squeeze, sentiment, insiderbuy, pe, divyield, revgrowth, grossmargin, dollarvol, or netincome (default marketcap). An unknown key is a 400, never silently ignored.",
            "schema": {
              "type": "string",
              "default": "marketcap"
            }
          },
          {
            "name": "sortAscending",
            "in": "query",
            "description": "Sort ascending instead of descending.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (default 50, max 200; values outside the range are clamped).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Result page, 1-based (default 1) — combine with limit to walk past the first page. A page past the end returns the last real page (see the response's page field).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScreenerResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/filings/search": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Hybrid keyword and semantic search across all companies' SEC filings and earnings call transcripts. Returns matching excerpts with their document ids. When too few excerpts match every query word, the search automatically broadens to match any of the words — precise matches keep their rank and broader hits only fill the remainder.",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "Search query — plain keywords or a short natural-language phrase (required). Concise, filing-phrased terms (e.g. 'Data Center revenue') still rank best.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "documentType",
            "in": "query",
            "description": "Document type filter — one value or a comma-separated list (e.g. TenK,TenQ), by value or form label (e.g. 10-K).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Earliest filing date (yyyy-MM-dd).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "Latest filing date (yyyy-MM-dd).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum excerpts to return (default 5, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "excludeTickers",
            "in": "query",
            "description": "Tickers whose filings are excluded from the results — one value or a comma-separated list (e.g. AAPL,MSFT). Use when a company's own filings would dominate the results for a query about its market.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxResultsPerCompany",
            "in": "query",
            "description": "Maximum excerpts from any single company (default 0 = unlimited). Set a small value to spread results across more companies for discovery-style queries.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentSearchResultDtoListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/filings/search": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Hybrid keyword and semantic search across one company's SEC filings and earnings call transcripts. When too few excerpts match every query word, the search automatically broadens to match any of the words — precise matches keep their rank and broader hits only fill the remainder.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Company ticker symbol (e.g. AAPL).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "Search query — plain keywords or a short natural-language phrase (required). Concise, filing-phrased terms (e.g. 'Data Center revenue') still rank best.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "documentType",
            "in": "query",
            "description": "Document type filter — one value or a comma-separated list (e.g. TenK,TenQ), by value or form label (e.g. 10-K).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Earliest filing date (yyyy-MM-dd).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "Latest filing date (yyyy-MM-dd).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum excerpts to return (default 5, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentSearchResultDtoListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/filings/{documentId}/search": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Hybrid keyword and semantic search within one filing or transcript. When too few excerpts match every query word, the search automatically broadens to match any of the words — precise matches keep their rank and broader hits only fill the remainder.",
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "description": "Document id from the filings list or a search result.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "Search query — plain keywords or a short natural-language phrase (required).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum excerpts to return (default 5, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentSearchResultDtoListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/short-volume": {
      "get": {
        "tags": [
          "ShortData"
        ],
        "summary": "Daily FINRA short volume for a stock, newest first. Volumes cover FINRA-reported off-exchange facility trades only (roughly 40% of consolidated tape volume, so a 40-50% short percentage is the normal baseline) and are restated onto today's split basis. Daily coverage begins 2026-04-06 — earlier dates return an empty page (use short-interest for deep history).",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (yyyy-MM-dd, defaults to 3 months ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShortVolumeDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/short-interest": {
      "get": {
        "tags": [
          "ShortData"
        ],
        "summary": "Bi-monthly FINRA short interest for a stock, newest first. Share counts are restated onto today's split basis; days to cover is as reported (FINRA caps it at 999.99).",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start settlement date (yyyy-MM-dd, defaults to 1 year ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End settlement date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShortInterestDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/off-exchange-volume": {
      "get": {
        "tags": [
          "ShortData"
        ],
        "summary": "Weekly off-exchange (dark pool / OTC) volume for a stock from the FINRA OTC/ATS Transparency data, newest first. FINRA publishes Tier 1 weeks on a ~2-week delay.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Stock ticker symbol (e.g. AAPL). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start week (yyyy-MM-dd, defaults to 6 months ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End week (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OffExchangeVolumeDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/short-interest/snapshot": {
      "get": {
        "tags": [
          "ShortData"
        ],
        "summary": "Latest market-wide short interest snapshot, sorted by days to cover descending. FINRA caps days to cover at 999.99: capped rows are a sentinel (almost always illiquid names with a tiny average-daily-volume denominator) and rank after real readings; pass minAverageDailyVolume (e.g. 100000) to drop illiquid names entirely.",
        "parameters": [
          {
            "name": "minDaysToCover",
            "in": "query",
            "description": "Minimum days to cover filter (default 0 = no filter).",
            "schema": {
              "type": "number",
              "format": "double",
              "default": 0.0
            }
          },
          {
            "name": "minAverageDailyVolume",
            "in": "query",
            "description": "Minimum average daily share volume — set a floor (e.g. 100000) to drop illiquid names whose days-to-cover is inflated by a tiny volume denominator (default 0 = no floor).",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum results (default 50, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShortInterestSnapshotResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/short-volume/largest": {
      "get": {
        "tags": [
          "ShortData"
        ],
        "summary": "Stocks with the largest daily short volume for a single trading day, sorted by short volume descending. Volumes cover FINRA-reported off-exchange facility trades only, so a 40-50% short percentage is the normal baseline.",
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "description": "Trading day (yyyy-MM-dd, defaults to the latest available day).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "minShortVolume",
            "in": "query",
            "description": "Minimum short volume filter (default 0 = no filter).",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum results (default 50, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LargestShortVolumeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/short-squeeze-scores": {
      "get": {
        "tags": [
          "ShortData"
        ],
        "summary": "Highest composite short-squeeze scores — a peer-relative 0-100 rank: a weighted mean of six factor percentiles (short interest % of shares 30%, days to cover 20%, price vs trailing VWAP 15%, short-volume trend 15%, short-interest change 10%, fails-to-deliver pressure 10%) plus catalyst boosts for an unusual price spike, volume surge, or a scheduled earnings call within a few weekdays (+10 each, capped at +20, clamped to 100), highest score first. Untradeable micro-caps dominate the raw board; pass minMarketCap and/or minDollarVolume to keep only names clearing your liquidity bar (scores stay peer-relative to the full universe).",
        "parameters": [
          {
            "name": "minMarketCap",
            "in": "query",
            "description": "Minimum market capitalization in US dollars (default 0 = no floor). Stocks with an unknown market cap are excluded when set.",
            "schema": {
              "type": "number",
              "format": "double",
              "default": 0.0
            }
          },
          {
            "name": "minDollarVolume",
            "in": "query",
            "description": "Minimum average daily dollar volume in US dollars, approximated as the FINRA average daily share volume times the market-cap-implied share price (default 0 = no floor). Stocks with unknown volume or market cap are excluded when set.",
            "schema": {
              "type": "number",
              "format": "double",
              "default": 0.0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum results (default 25, max 200).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShortSqueezeScoresResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/prices": {
      "get": {
        "tags": [
          "StockPrices"
        ],
        "summary": "Daily OHLCV price history for a stock, newest first. Prices are in US dollars on the current split basis; adjustedClose additionally backs out dividends.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Exact listed ticker (e.g. GOOG, GOOGL, BRK-A, or BRK-B). Each listing has an independent price series; dot class-share spelling such as BRK.B is accepted as BRK-B.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (yyyy-MM-dd, defaults to 1 year ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (1–500; default varies per endpoint).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip before the first returned row (default 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceBarDtoPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prices/latest": {
      "get": {
        "tags": [
          "StockPrices"
        ],
        "summary": "Most recent closing price, volume, and trailing 52-week range for up to 25 stocks. Prices are in US dollars on the current split basis. Each row is that ticker's newest settled daily bar: shortly after a US close some tickers may still show the prior session while the fresh bar settles, so anchor on each row's date, not the wall clock.",
        "parameters": [
          {
            "name": "tickers",
            "in": "query",
            "description": "Comma-separated exact listed tickers (e.g. GOOG,GOOGL,BRK-A,BRK-B), max 25. A missing listing is never replaced by its sibling; dot class-share spelling such as BRK.B is accepted as BRK-B.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LatestPricesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/technicals/atr": {
      "get": {
        "tags": [
          "StockPrices"
        ],
        "summary": "Average True Range (ATR) — a volatility measure — over a stock's daily bars, newest first. Extra look-back bars are fetched before the window so in-range points are fully computed; atr is null only when the stock's history itself is shorter than the lookback.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Exact listed ticker (e.g. GOOG or GOOGL). Each listing uses its own bars; dot class-share spelling such as BRK.B is accepted as BRK-B.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (yyyy-MM-dd, defaults to 6 months ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "period",
            "in": "query",
            "description": "Lookback period (default 14, minimum 2).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 14
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Most recent points to return (default 60, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AverageTrueRangeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/technicals/bollinger-bands": {
      "get": {
        "tags": [
          "StockPrices"
        ],
        "summary": "Bollinger Bands — a moving average with ± standard-deviation envelopes — over a stock's daily closes, newest first. Extra look-back bars are fetched before the window so in-range points are fully computed; bands are null only when the stock's history itself is shorter than the period.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Exact listed ticker (e.g. GOOG or GOOGL). Each listing uses its own bars; dot class-share spelling such as BRK.B is accepted as BRK-B.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (yyyy-MM-dd, defaults to 6 months ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "period",
            "in": "query",
            "description": "Moving-average period (default 20, minimum 2).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "stdDev",
            "in": "query",
            "description": "Standard-deviation multiple for the bands (default 2, must be greater than 0).",
            "schema": {
              "type": "number",
              "format": "double",
              "default": 2.0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Most recent points to return (default 60, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BollingerBandsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/technicals/obv": {
      "get": {
        "tags": [
          "StockPrices"
        ],
        "summary": "On-Balance Volume (OBV) — a cumulative volume flow indicator — over a stock's daily bars, newest first. OBV is seeded at 0 on the window's first bar, so the level is comparable only within one requested window.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Exact listed ticker (e.g. GOOG or GOOGL). Each listing uses its own bars; dot class-share spelling such as BRK.B is accepted as BRK-B.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (yyyy-MM-dd, defaults to 6 months ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Most recent points to return (default 60, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OnBalanceVolumeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/stocks/{ticker}/technicals/stochastic": {
      "get": {
        "tags": [
          "StockPrices"
        ],
        "summary": "Stochastic oscillator (%K and its %D smoothing) over a stock's daily bars, newest first. Extra look-back bars are fetched before the window so in-range points are fully computed; values are null only when the stock's history itself is shorter than the lookback.",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "description": "Exact listed ticker (e.g. GOOG or GOOGL). Each listing uses its own bars; dot class-share spelling such as BRK.B is accepted as BRK-B.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (yyyy-MM-dd, defaults to 6 months ago).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (yyyy-MM-dd, defaults to today).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "kPeriod",
            "in": "query",
            "description": "%K lookback period (default 14, minimum 2).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 14
            }
          },
          {
            "name": "dPeriod",
            "in": "query",
            "description": "%D smoothing period (default 3, minimum 1).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 3
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Most recent points to return (default 60, max 500).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StochasticOscillatorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AdviserSearchResponse": {
        "type": "object",
        "properties": {
          "totalMatches": {
            "type": "integer",
            "description": "Total advisers matching the query, before the limit truncation — when it\nexceeds the number of rows returned, narrow the query or raise limit.",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvestmentAdviserSummaryDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiErrorBody": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ApiErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiErrorBody"
          }
        },
        "additionalProperties": false
      },
      "AtmProgramDto": {
        "type": "object",
        "properties": {
          "announcedDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "capacity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "expiresDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "soldAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "soldAsOf": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "remainingAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "remainingAsOf": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "lastObservedFiledDate": {
            "type": "string",
            "format": "date"
          },
          "latestForm": {
            "type": "string",
            "nullable": true
          },
          "latestFilingUrl": {
            "type": "string",
            "nullable": true
          },
          "isFullyUtilized": {
            "type": "boolean",
            "description": "True when the company's own reported figures show the program fully\n            used (soldAmount ≥ capacity) — arithmetic on reported numbers, not an\n            estimate. False when either figure is unstated."
          },
          "isExpired": {
            "type": "boolean",
            "description": "True when the program's stated run-through date is in the past at\n            response time. False when no expiry was stated."
          }
        },
        "additionalProperties": false
      },
      "AtmProgramsResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "programs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AtmProgramDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AtrPointDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "close": {
            "type": "number",
            "format": "double"
          },
          "atr": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AverageTrueRangeResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "period": {
            "type": "integer",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AtrPointDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/TechnicalsMeta"
          }
        },
        "additionalProperties": false
      },
      "BollingerBandPointDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "close": {
            "type": "number",
            "format": "double"
          },
          "lower": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "middle": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "upper": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BollingerBandsResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "period": {
            "type": "integer",
            "format": "int32"
          },
          "stdDev": {
            "type": "number",
            "format": "double"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BollingerBandPointDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/TechnicalsMeta"
          }
        },
        "additionalProperties": false
      },
      "BriefQuoteDto": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "nullable": true
          },
          "speakerName": {
            "type": "string",
            "nullable": true
          },
          "speakerRole": {
            "type": "string",
            "nullable": true
          },
          "startSeconds": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BuybackPeriodDto": {
        "type": "object",
        "properties": {
          "periodStart": {
            "type": "string",
            "format": "date"
          },
          "periodEnd": {
            "type": "string",
            "format": "date"
          },
          "dollarsRepurchased": {
            "type": "number",
            "format": "double"
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "sharesRepurchased": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "impliedAveragePrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "reportedAveragePrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "form": {
            "type": "string",
            "nullable": true
          },
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "dollarsDerived": {
            "type": "boolean"
          },
          "sharesFromFiling": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BuybackProgramDto": {
        "type": "object",
        "properties": {
          "announcedDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "authorizedAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "expiresDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "remainingAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "remainingAsOf": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "lastObservedFiledDate": {
            "type": "string",
            "format": "date"
          },
          "latestForm": {
            "type": "string",
            "nullable": true
          },
          "latestFilingUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BuybackProgramsResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "dollarsAreCombinedEquity": {
            "type": "boolean"
          },
          "authorizedAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "authorizedUnit": {
            "type": "string",
            "nullable": true
          },
          "authorizedAsOf": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "remainingAuthorizedAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "remainingAuthorizedUnit": {
            "type": "string",
            "nullable": true
          },
          "remainingAuthorizedAsOf": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "programExpires": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "programs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuybackProgramDto"
            },
            "nullable": true
          },
          "yearToDate": {
            "$ref": "#/components/schemas/BuybackPeriodDto"
          },
          "annualHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuybackPeriodDto"
            },
            "nullable": true
          },
          "quarterlyHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuybackPeriodDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CallGuidanceItemDto": {
        "type": "object",
        "properties": {
          "metric": {
            "type": "string",
            "nullable": true
          },
          "period": {
            "type": "string",
            "nullable": true
          },
          "fiscalYear": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fiscalQuarter": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "low": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "high": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "midpoint": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "basis": {
            "type": "string",
            "description": "\"GAAP\" or \"Non-GAAP\"; null when the release did not state a basis.",
            "nullable": true
          },
          "fromTable": {
            "type": "boolean"
          },
          "quote": {
            "type": "string",
            "nullable": true
          },
          "actual": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "actualVerdict": {
            "type": "string",
            "nullable": true
          },
          "actualIsDerived": {
            "type": "boolean",
            "description": "True when the actual was derived arithmetically from reported facts\n            (a Q4 figure computed as full year minus nine-month YTD) rather than read from\n            a filed XBRL fact directly. False for filed facts and while actual is null."
          }
        },
        "additionalProperties": false
      },
      "CallInsightsDto": {
        "type": "object",
        "properties": {
          "fiscalYear": {
            "type": "integer",
            "format": "int32"
          },
          "fiscalQuarter": {
            "type": "integer",
            "format": "int32"
          },
          "callDate": {
            "type": "string",
            "format": "date-time"
          },
          "toneScore": {
            "type": "integer",
            "description": "Management-tone read on a -100..+100 scale: -100 cautious, 0 neutral,\n            +100 bullish.",
            "format": "int32"
          },
          "hedgingScore": {
            "type": "integer",
            "description": "How qualified the language was on a 0..100 scale: 0 plain statements,\n            100 heavily hedged.",
            "format": "int32"
          },
          "themes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CallThemeDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CallInsightsDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CallInsightsDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CallThemeDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "tone": {
            "type": "string",
            "nullable": true
          },
          "mentionCount": {
            "type": "integer",
            "format": "int32"
          },
          "keywords": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CftcContractDto": {
        "type": "object",
        "properties": {
          "marketCode": {
            "type": "string",
            "description": "CFTC contract market code (e.g. 088691 for Gold) — the key for /v1/cftc/contracts/{marketCode}/positions.",
            "nullable": true
          },
          "marketName": {
            "type": "string",
            "description": "Market name as published by the CFTC (e.g. \"Gold (COMEX)\").",
            "nullable": true
          },
          "category": {
            "type": "string",
            "description": "Contract category (Agriculture, Energy, Metals, EquityIndices, InterestRates, Currencies, Other), as a string.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One tracked CFTC futures contract from the curated ~35-contract universe."
      },
      "CftcContractDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CftcContractDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CftcLatestPositionDto": {
        "type": "object",
        "properties": {
          "marketCode": {
            "type": "string",
            "description": "CFTC contract market code — the key for /v1/cftc/contracts/{marketCode}/positions.",
            "nullable": true
          },
          "marketName": {
            "type": "string",
            "description": "Market name as published by the CFTC.",
            "nullable": true
          },
          "category": {
            "type": "string",
            "description": "Contract category, as a string.",
            "nullable": true
          },
          "reportDate": {
            "type": "string",
            "description": "The Tuesday the latest stored report is as of; null when no report is stored yet.",
            "format": "date",
            "nullable": true
          },
          "openInterest": {
            "type": "integer",
            "description": "Total open interest, in contracts; null when no report is stored yet.",
            "format": "int64",
            "nullable": true
          },
          "commNet": {
            "type": "integer",
            "description": "Commercial net position (long minus short), in contracts; null when no report is stored yet.",
            "format": "int64",
            "nullable": true
          },
          "nonCommNet": {
            "type": "integer",
            "description": "Non-commercial net position (long minus short), in contracts; null when no report is stored yet.",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Latest COT snapshot row for one tracked contract. All position values are\n            CONTRACT counts. Report fields are null when the contract has no stored position\n            report yet."
      },
      "CftcLatestPositionDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CftcLatestPositionDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CftcPositionDto": {
        "type": "object",
        "properties": {
          "reportDate": {
            "type": "string",
            "description": "The Tuesday the positions are as of.",
            "format": "date"
          },
          "openInterest": {
            "type": "integer",
            "description": "Total open interest, in contracts.",
            "format": "int64"
          },
          "commLong": {
            "type": "integer",
            "description": "Commercial (hedger) long positions, in contracts.",
            "format": "int64"
          },
          "commShort": {
            "type": "integer",
            "description": "Commercial (hedger) short positions, in contracts.",
            "format": "int64"
          },
          "nonCommLong": {
            "type": "integer",
            "description": "Non-commercial (large speculator) long positions, in contracts.",
            "format": "int64"
          },
          "nonCommShort": {
            "type": "integer",
            "description": "Non-commercial (large speculator) short positions, in contracts.",
            "format": "int64"
          },
          "nonCommSpreads": {
            "type": "integer",
            "description": "Non-commercial spread positions, in contracts.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "One weekly Commitments of Traders (COT) report for a contract. All position\n            values are CONTRACT counts (not shares or dollars), from the legacy futures-only COT\n            report; positions are as of the report date (a Tuesday), released the same Friday."
      },
      "CftcPositionDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CftcPositionDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "ConcentrationFigureDto": {
        "type": "object",
        "properties": {
          "basis": {
            "type": "string",
            "nullable": true
          },
          "customerCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "percent": {
            "type": "number",
            "format": "double"
          },
          "period": {
            "type": "string",
            "nullable": true
          },
          "quote": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CongressMemberDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "position": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CongressMemberSearchResponse": {
        "type": "object",
        "properties": {
          "hasMore": {
            "type": "boolean",
            "description": "True when more members matched than were returned — raise limit to\n            see them."
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CongressMemberDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CongressNetWorthDto": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "format": "int32"
          },
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "netWorthMinimum": {
            "type": "integer",
            "format": "int64"
          },
          "netWorthMaximum": {
            "type": "integer",
            "format": "int64"
          },
          "assetCount": {
            "type": "integer",
            "format": "int32"
          },
          "liabilityCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CongressNetWorthDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CongressNetWorthDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CongressTradeDto": {
        "type": "object",
        "properties": {
          "transactionDate": {
            "type": "string",
            "description": "The date the member traded. Compare with filingDate — STOCK Act\n            disclosures lag the trade by up to ~45 days.",
            "format": "date"
          },
          "filingDate": {
            "type": "string",
            "description": "The date the disclosure was filed — when the market could first know\n            about the trade.",
            "format": "date"
          },
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "memberId": {
            "type": "string",
            "format": "uuid"
          },
          "memberName": {
            "type": "string",
            "nullable": true
          },
          "memberPosition": {
            "type": "string",
            "nullable": true
          },
          "transactionType": {
            "type": "string",
            "nullable": true
          },
          "assetName": {
            "type": "string",
            "nullable": true
          },
          "ownerType": {
            "type": "string",
            "description": "Who owns the traded asset: Self, Spouse, Joint, Child, or the filing's\n            own label; empty when the disclosure states none. House raw codes (SP/JT/DC)\n            are normalized to the spelled-out labels.",
            "nullable": true
          },
          "amountFrom": {
            "type": "integer",
            "description": "Lower bound of the disclosed STOCK Act amount range in USD — members\n            disclose a band, never an exact figure.",
            "format": "int64"
          },
          "amountTo": {
            "type": "integer",
            "description": "Upper bound of the disclosed STOCK Act amount range in USD.",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "CongressTradeDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CongressTradeDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "CongressionalActivityDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "distinctBuyers": {
            "type": "integer",
            "description": "Distinct members with at least one disclosed purchase in the window.",
            "format": "int32"
          },
          "distinctSellers": {
            "type": "integer",
            "description": "Distinct members with at least one disclosed sale in the window.",
            "format": "int32"
          },
          "buyTrades": {
            "type": "integer",
            "description": "Disclosed purchase transactions in the window.",
            "format": "int32"
          },
          "sellTrades": {
            "type": "integer",
            "description": "Disclosed sale transactions in the window.",
            "format": "int32"
          },
          "estimatedBuyFlowUsd": {
            "type": "number",
            "description": "Estimated purchase dollars in the window (sum of disclosed-range midpoints).",
            "format": "double"
          },
          "estimatedSellFlowUsd": {
            "type": "number",
            "description": "Estimated sale dollars in the window (sum of disclosed-range midpoints).",
            "format": "double"
          },
          "estimatedNetFlowUsd": {
            "type": "number",
            "description": "Estimated buy flow minus estimated sell flow.",
            "format": "double"
          },
          "topBuyers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Buying members by estimated purchase dollars, largest first (up to three).",
            "nullable": true
          },
          "topSellers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Selling members by estimated sale dollars, largest first (up to three).",
            "nullable": true
          },
          "latestFilingDate": {
            "type": "string",
            "description": "The most recent disclosure (filing) date in the window.",
            "format": "date"
          },
          "latestTransactionDate": {
            "type": "string",
            "description": "The most recent underlying transaction date among the window's disclosures.",
            "format": "date"
          }
        },
        "additionalProperties": false
      },
      "CongressionalActivityResponse": {
        "type": "object",
        "properties": {
          "windowDays": {
            "type": "integer",
            "description": "Trailing disclosure window in days the board aggregates over.",
            "format": "int32"
          },
          "direction": {
            "type": "string",
            "description": "Ranking direction applied: buys (net buying first) or sells (net selling first).",
            "nullable": true
          },
          "chamber": {
            "type": "string",
            "description": "Chamber filter applied: \"senate\", \"house\", or null when the board\n            spans both chambers.",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CongressionalActivityDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsensusFundDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "cik": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsensusHoldingDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "heldByFundCount": {
            "type": "integer",
            "description": "How many of the funds hold this stock, out of the total supplied.",
            "format": "int32"
          },
          "totalFundCount": {
            "type": "integer",
            "format": "int32"
          },
          "combinedValue": {
            "type": "integer",
            "description": "Combined position value across the funds, in USD.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "One stock in the combined portfolio, ranked by how many of the supplied funds hold it."
      },
      "ConsensusHoldingsResponse": {
        "type": "object",
        "properties": {
          "reportDate": {
            "type": "string",
            "description": "The common 13F report date the consensus was computed for; null when the funds share no common report date.",
            "format": "date",
            "nullable": true
          },
          "funds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsensusFundDto"
            },
            "description": "The distinct funds that were resolved and combined (two inputs resolving to the same filer count once).",
            "nullable": true
          },
          "unresolved": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Any supplied names that could not be resolved to an institution.",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsensusHoldingDto"
            },
            "description": "Stocks ranked by number of funds holding them, then combined value.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CorrelatedStockDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "industry": {
            "type": "string",
            "nullable": true
          },
          "sector": {
            "type": "string",
            "nullable": true
          },
          "correlation": {
            "type": "number",
            "format": "double"
          },
          "observations": {
            "type": "integer",
            "format": "int32"
          },
          "marketCap": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "CorrelatedStocksResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "scope": {
            "type": "string",
            "nullable": true
          },
          "direction": {
            "type": "string",
            "nullable": true
          },
          "windowDays": {
            "type": "integer",
            "format": "int32"
          },
          "method": {
            "type": "string",
            "nullable": true
          },
          "universeSize": {
            "type": "integer",
            "format": "int32"
          },
          "subjectObservations": {
            "type": "integer",
            "format": "int32"
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CorrelatedStockDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerConcentrationResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "hasDisclosure": {
            "type": "boolean"
          },
          "form": {
            "type": "string",
            "nullable": true
          },
          "filedDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "filingUrl": {
            "type": "string",
            "nullable": true
          },
          "headline": {
            "$ref": "#/components/schemas/ConcentrationFigureDto"
          },
          "figures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConcentrationFigureDto"
            },
            "nullable": true
          },
          "missReason": {
            "type": "string",
            "description": "Why hasDisclosure is false (null when it is true): \"tagged-xbrl\" — the\n            issuer tags the disclosure in structured XBRL, so the narrative-extraction lane\n            skips it by design; \"nothing-found\" — the latest scanned filing states no\n            disclosure (see lastScannedForm/lastScannedFiledDate); \"not-processed\" — the\n            company's filings have not been examined yet.",
            "nullable": true
          },
          "lastScannedForm": {
            "type": "string",
            "description": "Form of the latest scanned filing when missReason is \"nothing-found\";\n            null otherwise.",
            "nullable": true
          },
          "lastScannedFiledDate": {
            "type": "string",
            "description": "Filed date of that filing; null unless missReason is\n            \"nothing-found\".",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DocumentKeywordSearchResponse": {
        "type": "object",
        "properties": {
          "documentId": {
            "type": "string",
            "format": "uuid"
          },
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "documentType": {
            "type": "string",
            "nullable": true
          },
          "documentTypeName": {
            "type": "string",
            "nullable": true
          },
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "keyword": {
            "type": "string",
            "nullable": true
          },
          "matchCount": {
            "type": "integer",
            "description": "Matching lines returned in THIS response (the length of data, bounded by limit)\n— not the document-wide total; see totalMatchingLines for that.",
            "format": "int32"
          },
          "totalMatchingLines": {
            "type": "integer",
            "description": "Total lines in the document containing the keyword, before the limit truncation.",
            "format": "int32"
          },
          "hasMore": {
            "type": "boolean",
            "description": "True when more matching lines exist than were returned — raise limit (max 500)\nto retrieve them."
          },
          "totalLines": {
            "type": "integer",
            "description": "Total text lines in the document.",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeywordMatchDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DocumentLineDto": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "text": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DocumentLinesResponse": {
        "type": "object",
        "properties": {
          "documentId": {
            "type": "string",
            "format": "uuid"
          },
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "documentType": {
            "type": "string",
            "nullable": true
          },
          "documentTypeName": {
            "type": "string",
            "nullable": true
          },
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "startLine": {
            "type": "integer",
            "format": "int32"
          },
          "endLine": {
            "type": "integer",
            "format": "int32"
          },
          "totalLines": {
            "type": "integer",
            "format": "int32"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentLineDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DocumentSearchResultDto": {
        "type": "object",
        "properties": {
          "documentId": {
            "type": "string",
            "format": "uuid"
          },
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "documentType": {
            "type": "string",
            "nullable": true
          },
          "documentTypeName": {
            "type": "string",
            "nullable": true
          },
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "chunkIndex": {
            "type": "integer",
            "format": "int32"
          },
          "startLineNumber": {
            "type": "integer",
            "format": "int32"
          },
          "text": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DocumentSearchResultDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentSearchResultDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EarningsBriefDto": {
        "type": "object",
        "properties": {
          "fiscalYear": {
            "type": "integer",
            "format": "int32"
          },
          "fiscalQuarter": {
            "type": "integer",
            "format": "int32"
          },
          "callDate": {
            "type": "string",
            "format": "date-time"
          },
          "tldr": {
            "type": "string",
            "nullable": true
          },
          "bullish": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "bearish": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "quotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BriefQuoteDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EarningsBriefDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EarningsBriefDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EarningsCallEventResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "guidance": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CallGuidanceItemDto"
            },
            "nullable": true
          },
          "guidanceStatus": {
            "type": "string",
            "description": "Why guidance is (or is not) populated: \"approved\" when a verifier-approved\n            extraction backs the rows (an empty list then means the release genuinely guided\n            nothing), \"notExtracted\" when the release exists but no approved extraction does\n            yet, null when no 8-K earnings release is linked to the event.",
            "nullable": true
          },
          "corrections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranscriptCorrectionDto"
            },
            "nullable": true
          },
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "eventType": {
            "type": "string",
            "nullable": true
          },
          "eventTypeName": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "callDate": {
            "type": "string",
            "format": "date-time"
          },
          "fiscalYear": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fiscalQuarter": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "statusName": {
            "type": "string",
            "nullable": true
          },
          "webcastUrl": {
            "type": "string",
            "nullable": true
          },
          "transcriptDocumentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "earningsReleaseDocumentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "hasAudio": {
            "type": "boolean"
          },
          "hasSlides": {
            "type": "boolean"
          },
          "hasTranscript": {
            "type": "boolean",
            "description": "Whether a speaker-labelled transcript is available via the speakers\n            endpoints. Broader than transcriptDocumentId: an audio-pipeline transcription\n            stores speaker turns without a transcript document, so gate on this flag, not\n            the document id."
          }
        },
        "additionalProperties": false
      },
      "ExecutiveChangeDto": {
        "type": "object",
        "properties": {
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "personName": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "type": "string",
            "nullable": true
          },
          "roleText": {
            "type": "string",
            "nullable": true
          },
          "action": {
            "type": "string",
            "nullable": true
          },
          "effectiveDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "disclosure": {
            "type": "string",
            "nullable": true
          },
          "form": {
            "type": "string",
            "nullable": true
          },
          "filingUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExecutiveChangesResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecutiveChangeDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExecutiveCompensationResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "years": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecutiveCompensationYearDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExecutiveCompensationRowDto": {
        "type": "object",
        "properties": {
          "personId": {
            "type": "string",
            "format": "uuid"
          },
          "fullName": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "type": "string",
            "nullable": true
          },
          "salary": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bonus": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "stockAwards": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "optionAwards": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "nonEquityIncentive": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "otherCompensation": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "total": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExecutiveCompensationYearDto": {
        "type": "object",
        "properties": {
          "fiscalYear": {
            "type": "integer",
            "format": "int32"
          },
          "executives": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecutiveCompensationRowDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExemptOfferingDto": {
        "type": "object",
        "properties": {
          "filedDate": {
            "type": "string",
            "description": "Date the notice was filed with the SEC.",
            "format": "date"
          },
          "accessionNumber": {
            "type": "string",
            "description": "SEC accession number of this filing — the stable per-filing identifier.",
            "nullable": true
          },
          "isAmendment": {
            "type": "boolean",
            "description": "True when the submission is a \"D/A\" amendment restating a prior \"D\" for the same offering."
          },
          "dateOfFirstSale": {
            "type": "string",
            "description": "Date of first sale when reported; null when the issuer marked it as yet to occur.\nRows sharing a first-sale date describe the same offering — the natural key for\ncollapsing an original notice and its amendments.",
            "format": "date",
            "nullable": true
          },
          "industryGroup": {
            "type": "string",
            "description": "Reported industry group, e.g. \"Pooled Investment Fund\", \"Technology\".",
            "nullable": true
          },
          "totalOfferingAmount": {
            "type": "integer",
            "description": "Total dollar amount of the offering; null when reported as \"Indefinite\"\n(see isOfferingAmountIndefinite).",
            "format": "int64",
            "nullable": true
          },
          "isOfferingAmountIndefinite": {
            "type": "boolean",
            "description": "True when the issuer reported the total offering amount as \"Indefinite\"."
          },
          "totalAmountSold": {
            "type": "integer",
            "description": "Dollar amount sold to date, as of this filing.",
            "format": "int64"
          },
          "totalRemaining": {
            "type": "integer",
            "description": "Dollar amount still being offered as of this filing; null when reported as\n\"Indefinite\" (see isRemainingIndefinite).",
            "format": "int64",
            "nullable": true
          },
          "isRemainingIndefinite": {
            "type": "boolean",
            "description": "True when the issuer reported the remaining amount as \"Indefinite\"."
          },
          "minimumInvestmentAccepted": {
            "type": "integer",
            "description": "Minimum investment the issuer will accept, in dollars.",
            "format": "int64"
          },
          "totalInvestors": {
            "type": "integer",
            "description": "Total number of investors who have already invested in the offering.",
            "format": "int32"
          },
          "federalExemptions": {
            "type": "string",
            "description": "Claimed Regulation D exemptions, e.g. \"06b, 3C, 3C.7\".",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One SEC Form D notice — an exempt (Regulation D) securities offering. A \"D/A\" row\n(isAmendment true) RESTATES a prior notice for the same offering rather than\nreporting a new one, so summing amounts across rows overcounts capital raised:\ngroup rows by dateOfFirstSale and keep only the latest filing per offering."
      },
      "ExemptOfferingDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExemptOfferingDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "FailToDeliverDto": {
        "type": "object",
        "properties": {
          "settlementDate": {
            "type": "string",
            "description": "Settlement date the outstanding fail position is reported for.",
            "format": "date"
          },
          "quantity": {
            "type": "integer",
            "description": "Aggregate shares failed to deliver outstanding on the settlement date (a level,\nnot an increment — do not sum across dates).",
            "format": "int64"
          },
          "price": {
            "type": "number",
            "description": "The PRIOR trading day's closing price per the SEC file convention, in US dollars\n— not the price at settlement.",
            "format": "double"
          },
          "value": {
            "type": "number",
            "description": "Quantity x the prior-day closing price, in US dollars.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "One SEC fails-to-deliver record. Each row is the aggregate OUTSTANDING fail position\non its settlement date — a balance, not a daily flow — so summing quantity across\ndates is meaningless; compare levels over time instead."
      },
      "FailToDeliverDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FailToDeliverDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "FdaCatalystDto": {
        "type": "object",
        "properties": {
          "meetingDate": {
            "type": "string",
            "description": "First day of the meeting.",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "description": "Last day of the meeting; null when the calendar lists no distinct end.",
            "format": "date",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "Meeting title as announced by the FDA (usually a committee announcement, not a drug name).",
            "nullable": true
          },
          "center": {
            "type": "string",
            "description": "FDA organizational center, e.g. \"Center for Drug Evaluation and Research\".",
            "nullable": true
          },
          "catalystType": {
            "type": "string",
            "description": "Human-readable catalyst type, e.g. \"Advisory Committee Meeting\".",
            "nullable": true
          },
          "sourceUrl": {
            "type": "string",
            "description": "The FDA.gov page for this meeting — the only place the product/sponsor under review is identified.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One scheduled FDA regulatory catalyst (advisory-committee meeting). No\n            stock-ticker linkage is populated; follow sourceUrl to see which product or sponsor\n            a meeting concerns."
      },
      "FdaCatalystDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FdaCatalystDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FilingDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "documentType": {
            "type": "string",
            "nullable": true
          },
          "documentTypeName": {
            "type": "string",
            "nullable": true
          },
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "reportingForDate": {
            "type": "string",
            "format": "date"
          },
          "lineCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "FilingDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FilingDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "FredLatestObservationDto": {
        "type": "object",
        "properties": {
          "seriesId": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "units": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "value": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FredLatestObservationDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FredLatestObservationDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FredObservationDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "value": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FredObservationsResponse": {
        "type": "object",
        "properties": {
          "series": {
            "$ref": "#/components/schemas/FredSeriesHeaderDto"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FredObservationDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "FredReleaseDateDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "release": {
            "type": "string",
            "nullable": true
          },
          "importance": {
            "type": "string",
            "description": "Curated importance tier of the release: High (tier-1 scheduled market movers), Medium, or Low (daily rate/market levels).",
            "nullable": true
          },
          "series": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FredReleaseDateDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FredReleaseDateDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "FredSeriesDto": {
        "type": "object",
        "properties": {
          "seriesId": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "frequency": {
            "type": "string",
            "nullable": true
          },
          "units": {
            "type": "string",
            "nullable": true
          },
          "seasonalAdjustment": {
            "type": "string",
            "description": "Seasonal-adjustment basis as published by FRED (e.g. \"Seasonally Adjusted\", \"Not Seasonally Adjusted\") — SA and NSA values of the same indicator differ materially; null when FRED lists none.",
            "nullable": true
          },
          "lastUpdated": {
            "type": "string",
            "description": "When FRED last updated the series (UTC) — the natural as-of for its data; null when unknown.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FredSeriesDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FredSeriesDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FredSeriesHeaderDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "units": {
            "type": "string",
            "nullable": true
          },
          "frequency": {
            "type": "string",
            "nullable": true
          },
          "seasonalAdjustment": {
            "type": "string",
            "description": "Seasonal-adjustment basis as published by FRED (e.g. \"Seasonally Adjusted\", \"Not Seasonally Adjusted\"); null when FRED lists none.",
            "nullable": true
          },
          "lastUpdated": {
            "type": "string",
            "description": "When FRED last updated the series (UTC); null when unknown.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FundDto": {
        "type": "object",
        "properties": {
          "seriesName": {
            "type": "string",
            "nullable": true
          },
          "registrantName": {
            "type": "string",
            "nullable": true
          },
          "profileId": {
            "type": "string",
            "description": "Stable profile id (slug) of the fund series in the fund directory. Also accepted\nin place of the ticker on /v1/funds/{ticker}/holdings — the way to reach series\nthat have no ticker of their own.",
            "nullable": true
          },
          "ticker": {
            "type": "string",
            "description": "The fund's own ticker when it is itself listed; null for multi-series trusts and\nmulti-class mutual funds (share-class tickers are not carried).",
            "nullable": true
          },
          "fundType": {
            "type": "string",
            "description": "N-CEN registration type when on record, e.g. \"N-1A\" open-end/ETF, \"N-2\"\nclosed-end. Null for most sweep-discovered trust series — it is populated only\nwhen the fund is matched to an N-CEN filing.",
            "nullable": true
          },
          "netAssets": {
            "type": "number",
            "description": "Net assets in USD from the latest report header.",
            "format": "double"
          },
          "holdingCount": {
            "type": "integer",
            "description": "Stored holding rows on the latest report (tracked-stock positions only for trusts).",
            "format": "int32"
          },
          "latestReportPeriodDate": {
            "type": "string",
            "description": "Reporting period of the series' latest NPORT-P report.",
            "format": "date"
          }
        },
        "additionalProperties": false,
        "description": "One registered-fund series from the NPORT-P fund directory."
      },
      "FundHoldingDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "cusip": {
            "type": "string",
            "nullable": true
          },
          "balance": {
            "type": "number",
            "description": "Position size in the reported units.",
            "format": "double"
          },
          "units": {
            "type": "string",
            "description": "NPORT unit code the balance is expressed in: \"NS\" shares, \"PA\" principal amount, \"NC\" contracts.",
            "nullable": true
          },
          "valueUsd": {
            "type": "number",
            "description": "US-dollar value of the position as of the report period date.",
            "format": "double"
          },
          "percentOfNetAssets": {
            "type": "number",
            "description": "Share of the fund's net assets, as a percentage (negative for shorts).",
            "format": "double"
          },
          "assetCategory": {
            "type": "string",
            "description": "NPORT asset-category code, e.g. \"EC\" equity-common, \"DBT\" debt, \"DE\" derivative.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "ISO country code of the investment, as reported.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One portfolio position from a fund's schedule of investments (Form NPORT-P)."
      },
      "FundHoldingsResponse": {
        "type": "object",
        "properties": {
          "seriesName": {
            "type": "string",
            "nullable": true
          },
          "ticker": {
            "type": "string",
            "description": "The fund's own ticker when it has one; null for tickerless series resolved by profileId.",
            "nullable": true
          },
          "reportPeriodDate": {
            "type": "string",
            "description": "The date the reported portfolio is as of.",
            "format": "date"
          },
          "netAssets": {
            "type": "number",
            "description": "Net assets of the series in US dollars, from the report header.",
            "format": "double"
          },
          "totalHoldings": {
            "type": "integer",
            "description": "Total holding rows on the report (paging spans this count).",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FundHoldingDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false,
        "description": "Paged holdings of a fund's most recent NPORT-P report, with the report header\nfacts alongside the standard paged envelope."
      },
      "FundOperationsReportDto": {
        "type": "object",
        "properties": {
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "reportPeriodEnd": {
            "type": "string",
            "description": "The last day of the fiscal period the report covers.",
            "format": "date"
          },
          "investmentCompanyType": {
            "type": "string",
            "description": "Investment-company registration type, e.g. \"N-1A\" open-end/ETF, \"N-2\" closed-end.",
            "nullable": true
          },
          "investmentCompanyFileNumber": {
            "type": "string",
            "description": "Investment Company Act file number, e.g. \"811-02409\".",
            "nullable": true
          },
          "isAmendment": {
            "type": "boolean"
          },
          "isFirstFiling": {
            "type": "boolean"
          },
          "isLastFiling": {
            "type": "boolean"
          },
          "serviceProviders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FundServiceProviderDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One Form N-CEN annual report with the service providers named on it."
      },
      "FundOperationsReportDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FundOperationsReportDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FundOwnerDto": {
        "type": "object",
        "properties": {
          "registrantName": {
            "type": "string",
            "nullable": true
          },
          "seriesName": {
            "type": "string",
            "nullable": true
          },
          "reportPeriodDate": {
            "type": "string",
            "description": "Reporting period of the series' most recent NPORT-P report — the row's as-of date.",
            "format": "date"
          },
          "balance": {
            "type": "number",
            "description": "Position size in the reported units.",
            "format": "double"
          },
          "units": {
            "type": "string",
            "description": "NPORT unit code the balance is expressed in: \"NS\" shares, \"PA\" principal amount, \"NC\" contracts.",
            "nullable": true
          },
          "valueUsd": {
            "type": "number",
            "description": "US-dollar value of the position as of the report period date.",
            "format": "double"
          },
          "percentOfNetAssets": {
            "type": "number",
            "description": "Share of the fund's net assets, as a percentage (negative for shorts).",
            "format": "double"
          },
          "payoffProfile": {
            "type": "string",
            "description": "Payoff profile, \"Long\" or \"Short\".",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One fund's position in a stock, from the fund series' most recent NPORT-P report.\nReport dates differ per series (each fund files on its own fiscal quarter), so\nvalues are as of each row's reportPeriodDate and cross-row totals mix as-of dates."
      },
      "FundOwnersResponse": {
        "type": "object",
        "properties": {
          "totalPositions": {
            "type": "integer",
            "description": "Total current fund positions in the stock across all series whose latest report\nis recent enough to count as current (series that stopped filing more than 18\nmonths ago are excluded).",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FundOwnerDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Funds holding a stock on each series' most recent NPORT-P report: the total\nnumber of current fund positions plus the largest ones."
      },
      "FundSearchResponse": {
        "type": "object",
        "properties": {
          "totalMatches": {
            "type": "integer",
            "description": "Total fund series matching the query, before the limit truncation — when it\nexceeds the number of rows returned, narrow the query or raise limit.",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FundDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FundServiceProviderDto": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "description": "Human-readable role, e.g. \"Investment Adviser\", \"Custodian\", \"Transfer Agent\".",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "isAffiliated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "description": "A firm named on a Form N-CEN report as serving the fund in a particular role."
      },
      "GoingConcernCurrentDto": {
        "type": "object",
        "properties": {
          "isActive": {
            "type": "boolean"
          },
          "flaggedDate": {
            "type": "string",
            "format": "date"
          },
          "clearedDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "quote": {
            "type": "string",
            "nullable": true
          },
          "form": {
            "type": "string",
            "nullable": true
          },
          "filingUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GoingConcernHistoryDto": {
        "type": "object",
        "properties": {
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "form": {
            "type": "string",
            "nullable": true
          },
          "filingUrl": {
            "type": "string",
            "nullable": true
          },
          "substantialDoubt": {
            "type": "boolean"
          },
          "alleviated": {
            "type": "boolean"
          },
          "quote": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GoingConcernResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "examined": {
            "type": "boolean"
          },
          "coverageStartDate": {
            "type": "string",
            "description": "Filed date of the oldest examined filing — where coverage begins. The\n            worker examines filings forward from lane launch, so a doubt episode BEFORE\n            this date is invisible here, not disproven. Null when examined is\n            false.",
            "format": "date",
            "nullable": true
          },
          "currentStatus": {
            "$ref": "#/components/schemas/GoingConcernCurrentDto"
          },
          "history": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GoingConcernHistoryDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GovernmentContractDto": {
        "type": "object",
        "properties": {
          "actionDate": {
            "type": "string",
            "description": "The award's action date — USAspending's base obligation date, i.e. the date the base award was signed/first obligated (NOT the period-of-performance start); null when not reported.",
            "format": "date",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "Period-of-performance current end date; null when not reported.",
            "format": "date",
            "nullable": true
          },
          "awardingAgency": {
            "type": "string",
            "description": "Awarding agency name.",
            "nullable": true
          },
          "awardType": {
            "type": "string",
            "description": "Human-readable award type, e.g. \"Definitive Contract\", \"Delivery Order\".",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "description": "Total award value (current obligated + potential), in US dollars — the contract ceiling including unexercised options, not dollars disbursed.",
            "format": "double"
          },
          "totalOutlays": {
            "type": "number",
            "description": "Total outlays disbursed against the award to date, in US dollars; null when not reported.",
            "format": "double",
            "nullable": true
          },
          "recipientName": {
            "type": "string",
            "description": "USAspending recipient (awardee) legal name as reported — useful when the award went to a subsidiary of the public company.",
            "nullable": true
          },
          "awardId": {
            "type": "string",
            "description": "Human-readable contract/PIID award number.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Free-form award description; null when blank.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One federal procurement contract award (from USAspending.gov)."
      },
      "GovernmentContractsResponse": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Resolved start of the queried window.",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "description": "Resolved end of the queried window.",
            "format": "date"
          },
          "latestActionDate": {
            "type": "string",
            "description": "Most recent action date stored across the whole government-contracts dataset — the coverage as-of. Null when no contract data is loaded (an empty page then means no coverage, not no awards).",
            "format": "date",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GovernmentContractDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false,
        "description": "Paged federal contract awards for one company, with the resolved window and\n            the dataset's coverage as-of echoed so an empty page is interpretable."
      },
      "GuidanceItemDto": {
        "type": "object",
        "properties": {
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "form": {
            "type": "string",
            "nullable": true
          },
          "filingUrl": {
            "type": "string",
            "nullable": true
          },
          "metric": {
            "type": "string",
            "nullable": true
          },
          "metricKind": {
            "type": "string",
            "nullable": true
          },
          "period": {
            "type": "string",
            "nullable": true
          },
          "fiscalYear": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fiscalQuarter": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "low": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "high": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "midpoint": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "basis": {
            "type": "string",
            "nullable": true
          },
          "fromTable": {
            "type": "boolean"
          },
          "quote": {
            "type": "string",
            "nullable": true
          },
          "actual": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "actualVerdict": {
            "type": "string",
            "nullable": true
          },
          "actualIsDerived": {
            "type": "boolean",
            "description": "True when actual was derived arithmetically from reported facts (a Q4\n            figure computed as full year minus the nine-month YTD — most filers never\n            report a discrete Q4) rather than read from a filed XBRL fact directly.\n            Arithmetic on reported facts, never an estimate. False for filed facts and\n            while actual is null."
          },
          "priorActual": {
            "type": "number",
            "description": "The most recent reported figure for the same metric before the guided\n            period — the baseline the guided range reads against. Null when no baseline\n            fact exists.",
            "format": "double",
            "nullable": true
          },
          "priorActualIsAnnual": {
            "type": "boolean",
            "description": "True when priorActual is a full-year figure (annual guidance); false\n            for a discrete-quarter baseline."
          },
          "midpointVsPriorPercent": {
            "type": "number",
            "description": "Guided midpoint vs priorActual, in percent; null without a baseline\n            or when the baseline is zero.",
            "format": "double",
            "nullable": true
          },
          "changeVsPrior": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GuidanceResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GuidanceItemDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HolderActivityDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "cik": {
            "type": "string",
            "description": "SEC CIK of the institution — the identifier accepted by the v1/institutions/{cik}/* endpoints.",
            "nullable": true
          },
          "previousShares": {
            "type": "integer",
            "description": "Prior-quarter share count, restated onto today's split basis.",
            "format": "int64"
          },
          "currentShares": {
            "type": "integer",
            "description": "Target-quarter share count, restated onto today's split basis.",
            "format": "int64"
          },
          "deltaShares": {
            "type": "integer",
            "description": "Share-count change across the two quarters on today's split basis, so it reflects a real position change rather than a split.",
            "format": "int64"
          },
          "deltaValue": {
            "type": "integer",
            "description": "Change in reported market value in dollars, as filed (split-invariant). Includes the quarter's price move on the held position — a seller can show a positive value change when the stock rose during the quarter.",
            "format": "int64"
          },
          "isNewPosition": {
            "type": "boolean",
            "description": "True when the institution reported no position in the prior quarter (the delta is the full position)."
          },
          "isSoldOut": {
            "type": "boolean",
            "description": "True when the institution exited entirely this quarter (the delta is the negated prior position)."
          },
          "isFirst13F": {
            "type": "boolean",
            "description": "For new-position buyers only: true when the target quarter is the filer's first 13F on record — often the receiving entity of a CIK migration rather than fresh buying. Null when the row is not a new position.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HoldingsActivityResponse": {
        "type": "object",
        "properties": {
          "reportDate": {
            "type": "string",
            "format": "date"
          },
          "previousReportDate": {
            "type": "string",
            "description": "Prior 13F quarter the movement is computed against; null when the target quarter is the oldest on record (everything then reads as a new position).",
            "format": "date",
            "nullable": true
          },
          "isFilingWindowOpen": {
            "type": "boolean",
            "description": "True while the target quarter's 45-day filing window is still open — movement is then computed only across funds that have already filed (a fund that simply has not filed yet is not a seller)."
          },
          "buyers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HolderActivityDto"
            },
            "description": "Sellers are counted only among funds that filed a 13F for the target quarter, so a fund that stopped filing under its CIK (entity migration, deregistration) is not shown as a mass seller.",
            "nullable": true
          },
          "sellers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HolderActivityDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IndustryMultiplesDto": {
        "type": "object",
        "properties": {
          "industry": {
            "type": "string",
            "nullable": true
          },
          "companyCount": {
            "type": "integer",
            "format": "int32"
          },
          "peerCompanyCount": {
            "type": "integer",
            "format": "int32"
          },
          "sizeBanded": {
            "type": "boolean"
          },
          "marketCapFloor": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "marketCapCeiling": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "evToRevenueMedian": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "evToRevenueP25": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "evToRevenueP75": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "evToEbitMedian": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "evToEbitP25": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "evToEbitP75": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "peMedian": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "peP25": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "peP75": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceToFfoMedian": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceToFfoP25": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceToFfoP75": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceToAffoMedian": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceToAffoP25": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceToAffoP75": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InsiderDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "cik": {
            "type": "string",
            "description": "SEC CIK of the insider.",
            "nullable": true
          },
          "role": {
            "type": "string",
            "description": "Insider's role(s): director, officer title, 10% owner — or \"Insider\".",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "stateOrCountry": {
            "type": "string",
            "nullable": true
          },
          "latestCompanyTicker": {
            "type": "string",
            "description": "Ticker of the company on the insider's most recent Form 3/4/5 filing —\n            the affiliation that tells namesakes apart; null when the insider has no stored\n            transaction.",
            "nullable": true
          },
          "latestCompanyName": {
            "type": "string",
            "description": "Name of that company; null when the insider has no stored\n            transaction.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InsiderOwnershipDto": {
        "type": "object",
        "properties": {
          "insiderName": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "type": "string",
            "description": "Insider's role(s): director, officer title, 10% owner — or \"Insider\".",
            "nullable": true
          },
          "sharesOwned": {
            "type": "integer",
            "description": "Shares owned after the insider's most recent transaction, restated onto today's split basis.",
            "format": "int64"
          },
          "lastTransactionType": {
            "type": "string",
            "description": "Transaction code of the insider's most recent transaction — one of\n            Purchase, Sale, Award, Conversion, Exercise, TaxPayment, Expiration, Gift,\n            Inheritance, Discretionary, Other, or Holding (a position snapshot with no\n            trade). Note this is the raw code vocabulary, not the coarse Buy/Sell labels\n            the insider-transactions endpoint uses.",
            "nullable": true
          },
          "lastTransactionDate": {
            "type": "string",
            "format": "date"
          }
        },
        "additionalProperties": false
      },
      "InsiderOwnershipDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InsiderOwnershipDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InsiderSearchResponse": {
        "type": "object",
        "properties": {
          "hasMore": {
            "type": "boolean",
            "description": "True when more insiders matched than were returned — raise limit to\n            see them."
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InsiderDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InsiderSentimentScoreDto": {
        "type": "object",
        "properties": {
          "rank": {
            "type": "integer",
            "description": "The stock's position in the full score-descending universe (1 = highest);\n            fixed before any liquidity filter, so filtered lists keep universe ranks.",
            "format": "int32"
          },
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "score": {
            "type": "number",
            "description": "0-100 peer-relative composite; higher = more aggressive insider\n            accumulation over the window.",
            "format": "double"
          },
          "distinctBuyers": {
            "type": "integer",
            "description": "Distinct insiders who bought in the window.",
            "format": "int32"
          },
          "distinctSellers": {
            "type": "integer",
            "description": "Distinct insiders who sold in the window.",
            "format": "int32"
          },
          "netDistinctBuyers": {
            "type": "integer",
            "description": "distinctBuyers minus distinctSellers.",
            "format": "int32"
          },
          "netSharesBoughtPercentOfShares": {
            "type": "number",
            "description": "Net shares bought as a FRACTION of shares outstanding (e.g. 0.012 =\n            1.2%) — not a 0-100 percentile like the *Percentile fields; null when\n            unavailable.",
            "format": "double",
            "nullable": true
          },
          "netBuyValue": {
            "type": "number",
            "description": "Net insider buy value in USD (negative = net selling); null when\n            unavailable.",
            "format": "double",
            "nullable": true
          },
          "isClusterBuy": {
            "type": "boolean",
            "description": "True when three or more distinct insiders bought in the window."
          },
          "marketCapUsd": {
            "type": "number",
            "description": "Market capitalization in USD; null when unknown.",
            "format": "double",
            "nullable": true
          },
          "sharePriceUsd": {
            "type": "number",
            "description": "Share price in USD; null when unknown.",
            "format": "double",
            "nullable": true
          },
          "averageDollarVolume3MonthUsd": {
            "type": "number",
            "description": "Trailing 3-month average daily dollar volume in USD; null when\n            unknown.",
            "format": "double",
            "nullable": true
          },
          "netDistinctBuyersPercentile": {
            "type": "number",
            "description": "0-100 percentile of netDistinctBuyers across the scored universe — one\n            of the factor percentiles the composite averages.",
            "format": "double"
          },
          "netSharesBoughtPercentile": {
            "type": "number",
            "description": "0-100 percentile of netSharesBoughtPercentOfShares; null when that\n            factor was unavailable for the stock (the composite then averages fewer\n            factors).",
            "format": "double",
            "nullable": true
          },
          "netBuyValuePercentile": {
            "type": "number",
            "description": "0-100 percentile of netBuyValue; null when that factor was unavailable\n            for the stock (the composite then averages fewer factors).",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InsiderSentimentScoresResponse": {
        "type": "object",
        "properties": {
          "windowDays": {
            "type": "integer",
            "description": "The trailing window the scores are computed over, in days.",
            "format": "int32"
          },
          "totalScored": {
            "type": "integer",
            "description": "Total stocks in the scored universe (before any liquidity filter).",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InsiderSentimentScoreDto"
            },
            "description": "Highest score first. Ranks are universe positions and may be\n            non-contiguous when filters (or the ticker lookup) narrow the list.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InsiderTransactionDto": {
        "type": "object",
        "properties": {
          "transactionDate": {
            "type": "string",
            "format": "date"
          },
          "insiderName": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "type": "string",
            "description": "Insider's role(s): director, officer title, 10% owner — or \"Insider\".",
            "nullable": true
          },
          "transactionType": {
            "type": "string",
            "description": "Coarse type: Buy, Sell, Award, Gift, or Exercise. Non-market SEC codes\n            (conversions, tax withholding, expirations, …) collapse into Buy/Sell by the\n            acquired/disposed flag — read transactionCode for the real code before treating\n            a row as an open-market trade.",
            "nullable": true
          },
          "transactionCode": {
            "type": "string",
            "description": "The SEC transaction code's meaning as filed: Purchase, Sale, Award,\n            Conversion, Exercise, Tax Payment, Expiration, Gift, Inheritance, Discretionary,\n            or Other.",
            "nullable": true
          },
          "isRule10b5One": {
            "type": "boolean",
            "description": "Whether the transaction was made under a Rule 10b5-1(c) trading plan\n            (the Form 4/5 checkbox, mandatory since April 2023); null on filings that\n            predate the checkbox.",
            "nullable": true
          },
          "shares": {
            "type": "integer",
            "description": "Shares exactly as filed (not split-adjusted, so Shares × PricePerShare = Value holds).",
            "format": "int64"
          },
          "pricePerShare": {
            "type": "number",
            "description": "Per-share price exactly as filed.",
            "format": "double"
          },
          "value": {
            "type": "number",
            "description": "Total transaction value (Shares × PricePerShare) — split-invariant.",
            "format": "double"
          },
          "sharesOwnedAfter": {
            "type": "integer",
            "description": "Post-transaction holding, restated onto today's split basis.",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "InsiderTransactionDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InsiderTransactionDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "InstitutionActivityPositionDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "previousShares": {
            "type": "integer",
            "description": "Prior-quarter share count, restated onto today's split basis.",
            "format": "int64"
          },
          "currentShares": {
            "type": "integer",
            "description": "Target-quarter share count, restated onto today's split basis.",
            "format": "int64"
          },
          "deltaShares": {
            "type": "integer",
            "description": "Share-count change on today's split basis, so a split between the quarters does not surface as a phantom increase or reduction.",
            "format": "int64"
          },
          "deltaValue": {
            "type": "integer",
            "description": "Change in reported market value in dollars, as filed (split-invariant). Includes the quarter's price move on the held position.",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "InstitutionActivityResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "cik": {
            "type": "string",
            "nullable": true
          },
          "reportDate": {
            "type": "string",
            "format": "date"
          },
          "previousReportDate": {
            "type": "string",
            "format": "date"
          },
          "initiated": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstitutionActivityPositionDto"
            },
            "description": "Each bucket is sorted by absolute Δ value descending and capped at the requested limit. When the request filters to a single bucket the other three stay empty.",
            "nullable": true
          },
          "increased": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstitutionActivityPositionDto"
            },
            "nullable": true
          },
          "reduced": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstitutionActivityPositionDto"
            },
            "nullable": true
          },
          "exited": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstitutionActivityPositionDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InstitutionDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "cik": {
            "type": "string",
            "description": "SEC CIK — the identifier accepted by the v1/institutions/{cik}/* endpoints.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Filer's city as registered with EDGAR; null when EDGAR has none on file.",
            "nullable": true
          },
          "stateOrCountry": {
            "type": "string",
            "description": "Filer's state or country, decoded from EDGAR's internal code table to a human-readable name (US state abbreviations pass through); null when EDGAR has none on file.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InstitutionPortfolioMeta": {
        "type": "object",
        "properties": {
          "reportDate": {
            "type": "string",
            "format": "date"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "hasMore": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "description": "Paging meta extended with the report date the portfolio snapshot was resolved to."
      },
      "InstitutionPortfolioResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstitutionPositionDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/InstitutionPortfolioMeta"
          }
        },
        "additionalProperties": false
      },
      "InstitutionPositionDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "shares": {
            "type": "integer",
            "description": "Share count restated onto today's split basis by the position's own stock's splits.",
            "format": "int64"
          },
          "value": {
            "type": "integer",
            "description": "Reported market value in dollars, as filed.",
            "format": "int64"
          },
          "listedTicker": {
            "type": "string",
            "description": "The exact listed share class this position is in; null = the primary listing named by Ticker.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InstitutionSearchMeta": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "description": "The applied result cap.",
            "format": "int32"
          },
          "count": {
            "type": "integer",
            "description": "Number of institutions returned.",
            "format": "int32"
          },
          "totalMatches": {
            "type": "integer",
            "description": "Total institutions matching the query — when it exceeds count, raise limit to see the rest.",
            "format": "int32"
          },
          "hasMore": {
            "type": "boolean",
            "description": "True when more matches exist than were returned."
          }
        },
        "additionalProperties": false
      },
      "InstitutionSearchResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstitutionDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/InstitutionSearchMeta"
          }
        },
        "additionalProperties": false,
        "description": "Institution search results, largest recently-active 13F filers first, with truncation-visible meta."
      },
      "InstitutionSummaryResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "cik": {
            "type": "string",
            "nullable": true
          },
          "reportDate": {
            "type": "string",
            "format": "date"
          },
          "previousReportDate": {
            "type": "string",
            "description": "Prior 13F quarter the turnover is computed against; null when the target quarter is the institution's oldest on record.",
            "format": "date",
            "nullable": true
          },
          "reportedAum": {
            "type": "integer",
            "description": "Total reported 13F market value in dollars.",
            "format": "int64"
          },
          "positionCount": {
            "type": "integer",
            "format": "int32"
          },
          "top10ConcentrationPercent": {
            "type": "number",
            "format": "double"
          },
          "top25ConcentrationPercent": {
            "type": "number",
            "format": "double"
          },
          "qoQTurnoverPercent": {
            "type": "number",
            "description": "QoQ turnover = (Σ |Δ shares × current price proxy|) / (2 × AUM) in percent, where the per-share price proxy is the current quarter's Value / Shares. Serialized as \"qoQTurnoverPercent\" on the wire (frozen for v1).",
            "format": "double"
          },
          "quartersReported": {
            "type": "integer",
            "format": "int32"
          },
          "confidentialTreatmentRequested": {
            "type": "boolean",
            "description": "True when the manager requested confidential treatment for one or more investments in the most recent 13F filing — the portfolio shown may be incomplete."
          }
        },
        "additionalProperties": false
      },
      "InvestmentAdviserDetailDto": {
        "type": "object",
        "properties": {
          "crd": {
            "type": "integer",
            "description": "Organization CRD number — the adviser's stable identifier.",
            "format": "int32"
          },
          "secNumber": {
            "type": "string",
            "description": "SEC file number, e.g. \"801-54739\"; null for state-only firms.",
            "nullable": true
          },
          "legalName": {
            "type": "string",
            "nullable": true
          },
          "primaryBusinessName": {
            "type": "string",
            "description": "\"Doing business as\" name when it differs from the legal name.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "website": {
            "type": "string",
            "description": "Website exactly as filed on Form ADV Item 1.I — may be a social-media URL\n(e.g. an X/Twitter handle) and typically appears in the SEC's all-caps form.",
            "nullable": true
          },
          "secStatus": {
            "type": "string",
            "description": "Reported registration status with the SEC, e.g. \"Approved\".",
            "nullable": true
          },
          "numberOfEmployees": {
            "type": "integer",
            "description": "Employees performing investment advisory functions; null when not reported.",
            "format": "int32",
            "nullable": true
          },
          "totalRegulatoryAum": {
            "type": "integer",
            "description": "Regulatory assets under management in US dollars; null when not reported.",
            "format": "int64",
            "nullable": true
          },
          "discretionaryAum": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "nonDiscretionaryAum": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "chargesPercentageOfAum": {
            "type": "boolean",
            "description": "How the firm is compensated (Form ADV Item 5.E)."
          },
          "chargesHourly": {
            "type": "boolean"
          },
          "chargesSubscription": {
            "type": "boolean"
          },
          "chargesFixed": {
            "type": "boolean"
          },
          "chargesCommissions": {
            "type": "boolean"
          },
          "chargesPerformanceBased": {
            "type": "boolean"
          },
          "chargesOther": {
            "type": "boolean"
          },
          "asOfDate": {
            "type": "string",
            "description": "Date of the SEC's monthly Form ADV bulk extract this profile was imported from —\nnot the adviser's own filing date; the underlying Item 5.F figures may be older.",
            "format": "date"
          }
        },
        "additionalProperties": false,
        "description": "The full Form ADV Part 1A profile of one SEC-registered investment adviser."
      },
      "InvestmentAdviserSummaryDto": {
        "type": "object",
        "properties": {
          "crd": {
            "type": "integer",
            "description": "Organization CRD number — the adviser's stable identifier; use it with\nGET v1/investment-advisers/{crd} for full detail.",
            "format": "int32"
          },
          "legalName": {
            "type": "string",
            "nullable": true
          },
          "primaryBusinessName": {
            "type": "string",
            "description": "\"Doing business as\" name when it differs from the legal name.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "totalRegulatoryAum": {
            "type": "integer",
            "description": "Total regulatory assets under management in US dollars; null when not reported.",
            "format": "int64",
            "nullable": true
          },
          "numberOfEmployees": {
            "type": "integer",
            "description": "Employees performing investment advisory functions; null when not reported.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One SEC-registered investment adviser (Form ADV) search result. Values are as of\nthe SEC's monthly Form ADV bulk extract (see the profile endpoint's asOfDate)."
      },
      "InvestorEventDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "eventType": {
            "type": "string",
            "nullable": true
          },
          "eventTypeName": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "callDate": {
            "type": "string",
            "format": "date-time"
          },
          "fiscalYear": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fiscalQuarter": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "statusName": {
            "type": "string",
            "nullable": true
          },
          "webcastUrl": {
            "type": "string",
            "nullable": true
          },
          "transcriptDocumentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "earningsReleaseDocumentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "hasAudio": {
            "type": "boolean"
          },
          "hasSlides": {
            "type": "boolean"
          },
          "hasTranscript": {
            "type": "boolean",
            "description": "Whether a speaker-labelled transcript is available via the speakers\n            endpoints. Broader than transcriptDocumentId: an audio-pipeline transcription\n            stores speaker turns without a transcript document, so gate on this flag, not\n            the document id."
          }
        },
        "additionalProperties": false
      },
      "InvestorEventDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvestorEventDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IpoDetailsResponse": {
        "type": "object",
        "properties": {
          "registration": {
            "$ref": "#/components/schemas/IpoRegistrationDto"
          },
          "extractionForm": {
            "type": "string",
            "description": "Form of the prospectus the extracted fields come from; null when no\n            extraction is approved yet.",
            "nullable": true
          },
          "extractionFiledDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "businessSummary": {
            "type": "string",
            "nullable": true
          },
          "useOfProceeds": {
            "type": "string",
            "nullable": true
          },
          "offerPriceQuote": {
            "type": "string",
            "description": "Verbatim prospectus sentence stating the offer price range.",
            "nullable": true
          },
          "sharesOfferedQuote": {
            "type": "string",
            "description": "Verbatim prospectus sentence stating the shares offered.",
            "nullable": true
          },
          "underwriters": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Underwriting banks in the prospectus cover's own order (lead banks first).",
            "nullable": true
          },
          "riskFactors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IpoRiskFactorDto"
            },
            "nullable": true
          },
          "financials": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IpoFinancialYearDto"
            },
            "description": "Annual financials from the filer's own XBRL-tagged statements, newest first.",
            "nullable": true
          },
          "filings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IpoFilingDto"
            },
            "description": "The registration's filing chain, newest first.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One IPO registration's full picture: the feed row plus the extracted\n            insights, the annual pre-IPO financial history, and the EDGAR filing chain."
      },
      "IpoFilingDto": {
        "type": "object",
        "properties": {
          "formType": {
            "type": "string",
            "description": "EDGAR form type (\"S-1\", \"S-1/A\", \"F-1\", \"424B4\", \"RW\").",
            "nullable": true
          },
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "accessionNumber": {
            "type": "string",
            "nullable": true
          },
          "edgarUrl": {
            "type": "string",
            "description": "Direct EDGAR link to the filing's primary document (or its archive folder).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One EDGAR filing in the registration's chain."
      },
      "IpoFinancialYearDto": {
        "type": "object",
        "properties": {
          "fiscalYear": {
            "type": "integer",
            "format": "int32"
          },
          "periodEnd": {
            "type": "string",
            "format": "date"
          },
          "currency": {
            "type": "string",
            "description": "ISO 4217 currency every figure on this row is stated in.",
            "nullable": true
          },
          "revenue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "revenueGrowthPercent": {
            "type": "number",
            "description": "Year-over-year revenue growth in percent.",
            "format": "double",
            "nullable": true
          },
          "grossProfit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "grossMarginPercent": {
            "type": "number",
            "description": "Gross margin in percent of revenue.",
            "format": "double",
            "nullable": true
          },
          "operatingIncome": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "netIncome": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "operatingCashFlow": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalAssets": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "cashAndEquivalents": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "stockholdersEquity": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One full fiscal year of the filer's XBRL-tagged financials, in the filer's\n            reporting currency."
      },
      "IpoRegistrationDto": {
        "type": "object",
        "properties": {
          "cik": {
            "type": "string",
            "description": "The filer's SEC CIK without leading zeros — the detail endpoint's key.",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "isBlankCheck": {
            "type": "boolean",
            "description": "SEC classifies the filer as a blank-check company (SIC 6770 — a SPAC shell)."
          },
          "financialsCurrency": {
            "type": "string",
            "description": "ISO 4217 currency of the revenue/netIncome figures below; null when no financials exist.",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "Lifecycle status: Filed, Priced, Listed, or Withdrawn.",
            "nullable": true
          },
          "firstFiledDate": {
            "type": "string",
            "format": "date"
          },
          "latestFilingDate": {
            "type": "string",
            "format": "date"
          },
          "latestFormType": {
            "type": "string",
            "description": "The newest filing's EDGAR form (\"S-1\", \"S-1/A\", \"424B4\", ...).",
            "nullable": true
          },
          "proposedTicker": {
            "type": "string",
            "description": "The proposed listing symbol from the prospectus cover; null until stated.",
            "nullable": true
          },
          "listedTicker": {
            "type": "string",
            "description": "Ticker of the listed stock once the company starts trading; null before.",
            "nullable": true
          },
          "exchange": {
            "type": "string",
            "nullable": true
          },
          "offerPriceLow": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "offerPriceHigh": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sharesOffered": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "revenueFiscalYear": {
            "type": "integer",
            "description": "Fiscal year of the financial figures below; null when no annual XBRL facts exist.",
            "format": "int32",
            "nullable": true
          },
          "revenue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "revenueGrowthPercent": {
            "type": "number",
            "description": "Year-over-year revenue growth in percent (e.g. -27.7).",
            "format": "double",
            "nullable": true
          },
          "grossMarginPercent": {
            "type": "number",
            "description": "Gross margin in percent of revenue (e.g. 51.0).",
            "format": "double",
            "nullable": true
          },
          "netIncome": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One IPO registration in the feed: identity, lifecycle status, the newest\n            verified offer terms, and the latest full fiscal year's headline financials."
      },
      "IpoRegistrationDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IpoRegistrationDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "IpoRiskFactorDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Short label for the risk.",
            "nullable": true
          },
          "sourceQuote": {
            "type": "string",
            "description": "Verbatim prospectus sentence stating the risk.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IrCoverageDto": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "\"scraped\" — the IR page's content has been scraped (an empty feed then\n            reflects what the scraper extracted); \"discovered\" — the IR page is known but its\n            content has not been scraped yet; \"none\" — no IR page has been discovered for the\n            company. For \"discovered\" and \"none\" an empty feed is a coverage gap, not an\n            absence of news or events.",
            "nullable": true
          },
          "lastScrapedAt": {
            "type": "string",
            "description": "When the IR content scrapers last pulled the company's news/events\n            (UTC); null unless status is \"scraped\".",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "How far the IR-website pipeline has gotten for the company, so an empty feed is\ninterpretable: a coverage gap is not evidence the company publishes nothing."
      },
      "IrEventDto": {
        "type": "object",
        "properties": {
          "startsAt": {
            "type": "string",
            "format": "date-time"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IrEventsResponse": {
        "type": "object",
        "properties": {
          "coverage": {
            "$ref": "#/components/schemas/IrCoverageDto"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IrEventDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IrNewsDto": {
        "type": "object",
        "properties": {
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "summary": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IrNewsResponse": {
        "type": "object",
        "properties": {
          "coverage": {
            "$ref": "#/components/schemas/IrCoverageDto"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IrNewsDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "KeywordMatchDto": {
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "format": "int32"
          },
          "text": {
            "type": "string",
            "nullable": true
          },
          "contextBefore": {
            "type": "string",
            "nullable": true
          },
          "contextAfter": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KpiBridgeAdjustmentDto": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "amountFormatted": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KpiBridgeDto": {
        "type": "object",
        "properties": {
          "gaapMetricName": {
            "type": "string",
            "nullable": true
          },
          "gaapValue": {
            "type": "number",
            "format": "double"
          },
          "gaapValueFormatted": {
            "type": "string",
            "nullable": true
          },
          "nonGaapMetricName": {
            "type": "string",
            "nullable": true
          },
          "nonGaapValue": {
            "type": "number",
            "format": "double"
          },
          "nonGaapValueFormatted": {
            "type": "string",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "sourceQuote": {
            "type": "string",
            "nullable": true
          },
          "adjustments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KpiBridgeAdjustmentDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KpiPointDto": {
        "type": "object",
        "properties": {
          "periodLabel": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "number",
            "format": "double"
          },
          "valueFormatted": {
            "type": "string",
            "nullable": true
          },
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "sourceQuote": {
            "type": "string",
            "nullable": true
          },
          "isAnnual": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "KpiSeriesDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "isNonGaap": {
            "type": "boolean"
          },
          "latestValueFormatted": {
            "type": "string",
            "nullable": true
          },
          "latestPeriodText": {
            "type": "string",
            "nullable": true
          },
          "yoYPercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KpiPointDto"
            },
            "nullable": true
          },
          "bridge": {
            "$ref": "#/components/schemas/KpiBridgeDto"
          }
        },
        "additionalProperties": false
      },
      "KpisResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KpiSeriesDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LargestShortVolumeDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Company name; null when the security is not enriched yet.",
            "nullable": true
          },
          "shortVolume": {
            "type": "integer",
            "description": "Short volume rounded to the nearest whole share for the v1 integer contract.",
            "format": "int64"
          },
          "shortExemptVolume": {
            "type": "integer",
            "description": "Short exempt volume rounded to the nearest whole share for the v1 integer contract.",
            "format": "int64"
          },
          "totalVolume": {
            "type": "integer",
            "description": "Total FINRA-facility volume for the day, rounded to the nearest whole share for the v1 integer contract — off-exchange trades reported to FINRA facilities only, NOT the consolidated tape (typically ~40% of it).",
            "format": "int64"
          },
          "shortVolumePercent": {
            "type": "number",
            "description": "Short volume as a percentage of FINRA-facility volume (0-100). Because the denominator is facility volume, 40-50% is the normal baseline — do not read it as a share of the stock's consolidated volume.",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "LargestShortVolumeResponse": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LargestShortVolumeDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LatestPriceDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "description": "The ticker as requested (upper-cased), so rows correlate to the request.",
            "nullable": true
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "close": {
            "type": "number",
            "format": "double"
          },
          "adjustedClose": {
            "type": "number",
            "description": "Dividend- and split-adjusted close in US dollars (backs out dividends).",
            "format": "double"
          },
          "volume": {
            "type": "integer",
            "format": "int64"
          },
          "high52Week": {
            "type": "number",
            "description": "Highest daily close in the 365 days ending on this row's date (current split basis).",
            "format": "double",
            "nullable": true
          },
          "low52Week": {
            "type": "number",
            "description": "Lowest daily close in the 365 days ending on this row's date (current split basis).",
            "format": "double",
            "nullable": true
          },
          "changeFrom52WeekHighPercent": {
            "type": "number",
            "description": "Percent distance of the close from the 52-week high (zero or negative, e.g. -12.3).",
            "format": "double",
            "nullable": true
          },
          "changeFrom52WeekLowPercent": {
            "type": "number",
            "description": "Percent distance of the close from the 52-week low (zero or positive, e.g. 45.6).",
            "format": "double",
            "nullable": true
          },
          "range52WeekIsPartial": {
            "type": "boolean",
            "description": "True when the stored history behind the 52-week figures is shorter than a full\n            year (for example a recent listing), so they cover the listed history only; null when\n            the row has no 52-week range at all.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Most recent daily bar for one requested ticker. Prices are in US dollars\n            on the current split basis."
      },
      "LatestPricesResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LatestPriceDto"
            },
            "nullable": true
          },
          "notFound": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LiveQuoteDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bidPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "askPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "asOf": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "delayed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "LiveQuoteDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LiveQuoteDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MarketActivityResponse": {
        "type": "object",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "The requested leaderboard: top-buys, top-sells, new-positions or sold-out-positions.",
            "nullable": true
          },
          "reportDate": {
            "type": "string",
            "format": "date"
          },
          "previousReportDate": {
            "type": "string",
            "format": "date"
          },
          "isFilingWindowOpen": {
            "type": "boolean",
            "description": "True while the target quarter's 45-day filing window is still open — figures then cover only the funds that have already filed (combined-view queries carry non-filers forward at a zero delta so only real reported moves rank)."
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MarketActivityStockDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MarketActivityStockDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "deltaShares": {
            "type": "integer",
            "description": "For the top-buys / top-sells buckets: share-count change restated onto today's split basis. Null for the churn buckets.",
            "format": "int64",
            "nullable": true
          },
          "deltaValue": {
            "type": "integer",
            "description": "For the top-buys / top-sells buckets: change in reported position value in dollars. Includes the quarter's price move on held positions — a large positive value can accompany a small share change. Null for the churn buckets.",
            "format": "int64",
            "nullable": true
          },
          "filerCount": {
            "type": "integer",
            "description": "For the new-positions / sold-out-positions buckets: the count of 13F filers initiating (or exiting) the stock this quarter. Null for the mover buckets.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MarketCalendarDayDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "kind": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "isTradingDay": {
            "type": "boolean"
          },
          "regularOpen": {
            "type": "string",
            "nullable": true
          },
          "regularClose": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MarketCalendarDayDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MarketCalendarDayDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MarketStatusDto": {
        "type": "object",
        "properties": {
          "asOf": {
            "type": "string",
            "format": "date-time"
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "session": {
            "type": "string",
            "nullable": true
          },
          "isOpen": {
            "type": "boolean"
          },
          "dayKind": {
            "type": "string",
            "nullable": true
          },
          "holidayName": {
            "type": "string",
            "nullable": true
          },
          "regularOpen": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "regularClose": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "extendedHoursStart": {
            "type": "string",
            "description": "Extended-hours bounds in Eastern Time: pre-market start (04:00) and after-hours end (20:00, or 17:00 on early-close days); null when the market is closed all day. Pre-market runs to regularOpen; after-hours runs from regularClose.",
            "format": "date-time",
            "nullable": true
          },
          "extendedHoursEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "nextOpen": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "nextClose": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "calendarHorizon": {
            "type": "string",
            "description": "Last date the curated exchange calendar covers. A null nextOpen/nextClose means \"unknown beyond this horizon\", not \"none exists\".",
            "format": "date"
          },
          "timeZone": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MostHeldResponse": {
        "type": "object",
        "properties": {
          "reportDate": {
            "type": "string",
            "format": "date"
          },
          "previousReportDate": {
            "type": "string",
            "format": "date"
          },
          "isFilingWindowOpen": {
            "type": "boolean",
            "description": "True while the target quarter's 45-day filing window is still open — the ranking then uses the combined view (funds that have not filed yet carry their prior-quarter positions) so it is not ordered by who happened to file early."
          },
          "sort": {
            "type": "string",
            "description": "The applied sort, normalized to lowercase: filers, filersdelta or value.",
            "nullable": true
          },
          "universeFilerCount": {
            "type": "integer",
            "description": "Count of unique 13F filers in the quarter's universe (denominator of percentOfUniverse).",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MostHeldStockDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MostHeldStockDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "filerCount": {
            "type": "integer",
            "description": "Number of 13F filers reporting the stock this quarter.",
            "format": "int32"
          },
          "deltaFilerCount": {
            "type": "integer",
            "description": "Quarter-over-quarter change in filer count.",
            "format": "int32"
          },
          "totalValue": {
            "type": "integer",
            "description": "Total reported market value in dollars.",
            "format": "int64"
          },
          "deltaValue": {
            "type": "integer",
            "description": "Quarter-over-quarter change in total reported value in dollars. Includes the quarter's price move on held positions, not just net buying or selling.",
            "format": "int64"
          },
          "percentOfUniverse": {
            "type": "number",
            "description": "FilerCount as a percentage of the whole 13F filer universe for the quarter.",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "NonGaapBridgeAdjustmentDto": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "position": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "NonGaapBridgeItemDto": {
        "type": "object",
        "properties": {
          "nonGaapMetricName": {
            "type": "string",
            "nullable": true
          },
          "period": {
            "type": "string",
            "nullable": true
          },
          "fiscalYear": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fiscalQuarter": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "nonGaapValue": {
            "type": "number",
            "format": "double"
          },
          "gaapMetricName": {
            "type": "string",
            "nullable": true
          },
          "gaapValue": {
            "type": "number",
            "format": "double"
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "sourceQuote": {
            "type": "string",
            "nullable": true
          },
          "fromTable": {
            "type": "boolean"
          },
          "form": {
            "type": "string",
            "nullable": true
          },
          "filedDate": {
            "type": "string",
            "format": "date"
          },
          "adjustments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NonGaapBridgeAdjustmentDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NonGaapBridgeResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "filingsExamined": {
            "type": "integer",
            "description": "Filings the extraction pipeline has read for the company, regardless\n            of outcome. 0 with an empty data list means the company has not been processed\n            yet; > 0 with an empty data list means the filings were read and stated no\n            reconciliation.",
            "format": "int32"
          },
          "newestExaminedFiledDate": {
            "type": "string",
            "description": "Filed date of the newest examined filing; null when filingsExamined\n            is 0.",
            "format": "date",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NonGaapBridgeItemDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ObvPointDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "close": {
            "type": "number",
            "format": "double"
          },
          "volume": {
            "type": "integer",
            "format": "int64"
          },
          "obv": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "OffExchangeVolumeDto": {
        "type": "object",
        "properties": {
          "weekStartDate": {
            "type": "string",
            "format": "date"
          },
          "atsVolume": {
            "type": "integer",
            "description": "ATS (dark pool) share volume for the week.",
            "format": "int64"
          },
          "atsTradeCount": {
            "type": "integer",
            "format": "int64"
          },
          "nonAtsOtcVolume": {
            "type": "integer",
            "description": "Non-ATS over-the-counter share volume for the week.",
            "format": "int64"
          },
          "nonAtsOtcTradeCount": {
            "type": "integer",
            "format": "int64"
          },
          "totalOffExchangeVolume": {
            "type": "integer",
            "description": "Total off-exchange volume: ATS + non-ATS OTC.",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "OffExchangeVolumeDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OffExchangeVolumeDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "OnBalanceVolumeResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ObvPointDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/TechnicalsMeta"
          }
        },
        "additionalProperties": false
      },
      "OptionChainResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "expiration": {
            "type": "string",
            "format": "date"
          },
          "quotesAvailable": {
            "type": "boolean"
          },
          "returned": {
            "type": "integer",
            "format": "int32"
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "truncated": {
            "type": "boolean"
          },
          "contracts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OptionContractDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OptionContractDto": {
        "type": "object",
        "properties": {
          "occTicker": {
            "type": "string",
            "nullable": true
          },
          "contractType": {
            "type": "string",
            "nullable": true
          },
          "exerciseStyle": {
            "type": "string",
            "nullable": true
          },
          "strikePrice": {
            "type": "number",
            "format": "double"
          },
          "expirationDate": {
            "type": "string",
            "format": "date"
          },
          "sharesPerContract": {
            "type": "integer",
            "format": "int32"
          },
          "snapshotDate": {
            "type": "string",
            "format": "date"
          },
          "dayOpen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dayHigh": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dayLow": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dayClose": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dayVolume": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "dayVwap": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "impliedVolatility": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "openInterest": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "delta": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "gamma": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "theta": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vega": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bidPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "askPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "delayed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "OptionContractResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "quotesAvailable": {
            "type": "boolean"
          },
          "contract": {
            "$ref": "#/components/schemas/OptionContractDto"
          }
        },
        "additionalProperties": false
      },
      "OptionExpirationDto": {
        "type": "object",
        "properties": {
          "expirationDate": {
            "type": "string",
            "format": "date"
          },
          "contractCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "OptionExpirationsResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "expirations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OptionExpirationDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OwnershipPeriodDto": {
        "type": "object",
        "properties": {
          "reportDate": {
            "type": "string",
            "format": "date"
          },
          "institutions": {
            "type": "integer",
            "format": "int32"
          },
          "totalShares": {
            "type": "integer",
            "description": "Total institutional shares, restated onto today's split basis so a split between two report dates does not read as a real ownership change.",
            "format": "int64"
          },
          "totalValue": {
            "type": "integer",
            "description": "Total reported market value in dollars, as filed.",
            "format": "int64"
          },
          "changePercent": {
            "type": "number",
            "description": "Quarter-over-quarter change of totalShares in percent; null for the oldest returned period (nothing to compare against).",
            "format": "double",
            "nullable": true
          },
          "isCombinedQuarter": {
            "type": "boolean",
            "description": "True when this is the newest quarter presented as the combined view while its 45-day filing window is still open."
          }
        },
        "additionalProperties": false
      },
      "OwnershipPeriodDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnershipPeriodDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PageMeta": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "hasMore": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PriceBarDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "open": {
            "type": "number",
            "format": "double"
          },
          "high": {
            "type": "number",
            "format": "double"
          },
          "low": {
            "type": "number",
            "format": "double"
          },
          "close": {
            "type": "number",
            "format": "double"
          },
          "adjustedClose": {
            "type": "number",
            "description": "Dividend- and split-adjusted close in US dollars: the close additionally\n            backs out dividends, so total-return series compound from this column while\n            `close` tracks the traded price.",
            "format": "double"
          },
          "volume": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "One daily OHLCV bar. Prices are in US dollars, restated onto the CURRENT\n            split basis (a pre-split bar reflects later splits so the series is continuous);\n            `close` does NOT back out dividends."
      },
      "PriceBarDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceBarDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "ProposedSaleDto": {
        "type": "object",
        "properties": {
          "filingDate": {
            "type": "string",
            "format": "date"
          },
          "sellerName": {
            "type": "string",
            "nullable": true
          },
          "relationshipToIssuer": {
            "type": "string",
            "description": "The seller's relationship(s) to the issuer (e.g. \"Director, Officer\").",
            "nullable": true
          },
          "sharesToBeSold": {
            "type": "integer",
            "description": "Proposed shares to be sold, exactly as filed.",
            "format": "int64"
          },
          "aggregateMarketValue": {
            "type": "number",
            "description": "Aggregate market value of the proposed sale, exactly as filed.",
            "format": "double"
          },
          "approxSaleDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "brokerName": {
            "type": "string",
            "nullable": true
          },
          "sharesOutstanding": {
            "type": "integer",
            "description": "Shares outstanding as stated on the notice — the denominator for the\n            standard materiality read (sharesToBeSold ÷ sharesOutstanding); null when the\n            notice omitted it.",
            "format": "int64",
            "nullable": true
          },
          "remarks": {
            "type": "string",
            "description": "The notice's remarks — typically the 10b5-1 trading-plan adoption date,\n            distinguishing planned from discretionary sales; null when blank.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProposedSaleDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProposedSaleDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "PutCallRatioDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "callVolume": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "putVolume": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "totalVolume": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "putCallRatio": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PutCallRatioDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PutCallRatioDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "RevenueBreakdownAxisDto": {
        "type": "object",
        "properties": {
          "unit": {
            "type": "string",
            "nullable": true
          },
          "periodEnds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date"
            },
            "nullable": true
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RevenueBreakdownMemberDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One disaggregation axis (segment, geography, or product/service).\n            periodEnds are oldest first, and each member's values align to them by index.\n            Members may OVERLAP HIERARCHICALLY — issuers tag a parent line alongside its\n            children (e.g. Data Center next to Compute + Networking) — so summing members can\n            double-count; use the response's consolidatedRevenue as the denominator\n            instead."
      },
      "RevenueBreakdownMemberDto": {
        "type": "object",
        "properties": {
          "member": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "values": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double",
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RevenueBreakdownResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "segments": {
            "$ref": "#/components/schemas/RevenueBreakdownAxisDto"
          },
          "geographies": {
            "$ref": "#/components/schemas/RevenueBreakdownAxisDto"
          },
          "products": {
            "$ref": "#/components/schemas/RevenueBreakdownAxisDto"
          },
          "segmentOperatingIncome": {
            "$ref": "#/components/schemas/RevenueBreakdownAxisDto"
          },
          "segmentOperatingMargin": {
            "$ref": "#/components/schemas/RevenueBreakdownAxisDto"
          },
          "consolidatedRevenue": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RevenueConsolidatedTotalDto"
            },
            "description": "Consolidated (no-dimension) total revenue per fiscal year, oldest\n            first — the denominator for member shares. Axis members may overlap\n            hierarchically (a parent line tagged alongside its children), so summing\n            members can exceed this real total; never sum members naively.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RevenueConsolidatedTotalDto": {
        "type": "object",
        "properties": {
          "periodEnd": {
            "type": "string",
            "description": "Fiscal-year period end the total covers.",
            "format": "date"
          },
          "unit": {
            "type": "string",
            "description": "Unit of the value (e.g. USD).",
            "nullable": true
          },
          "value": {
            "type": "number",
            "description": "The consolidated total revenue for the period.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "One consolidated (no-dimension) annual revenue total, as reported — the reference\nfigure the dimensional members of that fiscal year disaggregate."
      },
      "ScreenerResponse": {
        "type": "object",
        "properties": {
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "description": "The page actually served, 1-based. A requested page past the end is\n            clamped to the last real page — compare with the request to detect it.",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Total pages at the requested limit.",
            "format": "int32"
          },
          "vintages": {
            "$ref": "#/components/schemas/ScreenerVintagesDto"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScreenerRowDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ScreenerRowDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "sector": {
            "type": "string",
            "description": "The industry's parent sector from the shared taxonomy; null when\n            unclassified.",
            "nullable": true
          },
          "industry": {
            "type": "string",
            "description": "Exact industry taxonomy name; null when unclassified.",
            "nullable": true
          },
          "marketCap": {
            "type": "number",
            "format": "double"
          },
          "price": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "filerCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "filerDelta": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "shortInterestPercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "daysToCover": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "squeezeScore": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "insiderSentimentScore": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "netInsiderBuy": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "hasGoingConcernDoubt": {
            "type": "boolean"
          },
          "priceToEarnings": {
            "type": "number",
            "description": "Trailing-twelve-month price-to-earnings ratio.",
            "format": "double",
            "nullable": true
          },
          "dividendYieldPercent": {
            "type": "number",
            "description": "Trailing dividend yield in percent (TTM cash dividends over market\n            cap).",
            "format": "double",
            "nullable": true
          },
          "revenueGrowthYoYPercent": {
            "type": "number",
            "description": "Revenue growth in percent, latest quarter vs the same quarter a year\n            earlier.",
            "format": "double",
            "nullable": true
          },
          "grossMarginPercent": {
            "type": "number",
            "description": "Gross margin in percent (0-100).",
            "format": "double",
            "nullable": true
          },
          "averageDollarVolume3Month": {
            "type": "number",
            "description": "Trailing-3-month average daily dollar volume in USD.",
            "format": "double",
            "nullable": true
          },
          "netIncomeTtm": {
            "type": "number",
            "description": "Trailing-twelve-month net income in USD.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ScreenerVintagesDto": {
        "type": "object",
        "properties": {
          "shortInterestSettlementDate": {
            "type": "string",
            "description": "FINRA settlement date behind the short-interest and squeeze columns;\n            null when that axis has no data yet.",
            "format": "date",
            "nullable": true
          },
          "thirteenFQuarterEnd": {
            "type": "string",
            "description": "The completed 13F quarter (report date) behind the filer counts — the\n            QoQ delta compares against the immediately prior quarter; null when that axis\n            has no data yet.",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The data vintages behind the screener's mixed-cadence axes, so consumers can\nstate how fresh each column is. Market cap and price are the latest exchange\nsnapshot, insider flows a trailing-90-day window ending now, and fundamentals\nrefresh daily from SEC filings — none of those carries a vintage date."
      },
      "SectorAllocationResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "cik": {
            "type": "string",
            "nullable": true
          },
          "reportDate": {
            "type": "string",
            "format": "date"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SectorAllocationSliceDto"
            },
            "description": "Sorted by percent of portfolio descending, with the \"Unclassified\" slice last.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SectorAllocationSliceDto": {
        "type": "object",
        "properties": {
          "industry": {
            "type": "string",
            "description": "Industry name (finer-grained than a broad sector); holdings without an industry classification collapse into a single \"Unclassified\" slice.",
            "nullable": true
          },
          "positionCount": {
            "type": "integer",
            "format": "int32"
          },
          "value": {
            "type": "integer",
            "description": "Total reported market value of the slice in dollars.",
            "format": "int64"
          },
          "percentOfPortfolio": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ShortInterestDto": {
        "type": "object",
        "properties": {
          "settlementDate": {
            "type": "string",
            "format": "date"
          },
          "shortPosition": {
            "type": "integer",
            "description": "Current short position (shares), restated onto today's split basis.",
            "format": "int64"
          },
          "changeInShortPosition": {
            "type": "integer",
            "description": "Change from the previous settlement (shares), restated onto today's split basis.",
            "format": "int64"
          },
          "averageDailyVolume": {
            "type": "integer",
            "description": "Average daily volume (shares), restated onto today's split basis.",
            "format": "int64",
            "nullable": true
          },
          "daysToCover": {
            "type": "number",
            "description": "Days to cover as reported — a same-settlement ratio, split-invariant. FINRA caps this value at 999.99; a 999.99 reading means at-or-above the cap, not an exact figure.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShortInterestDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShortInterestDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "ShortInterestSnapshotDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Company name; null when the security is not enriched yet.",
            "nullable": true
          },
          "shortPosition": {
            "type": "integer",
            "description": "Current short position (shares) as reported at the settlement date.",
            "format": "int64"
          },
          "changeInShortPosition": {
            "type": "integer",
            "description": "Change from the previous settlement (shares) as reported.",
            "format": "int64"
          },
          "averageDailyVolume": {
            "type": "integer",
            "description": "Average daily share volume as reported by FINRA.",
            "format": "int64",
            "nullable": true
          },
          "daysToCover": {
            "type": "number",
            "description": "Days to cover as reported. FINRA caps this value at 999.99 — a 999.99 reading is that cap sentinel (\"999.99 or more\", true value unknown, typically an illiquid name), not an exact figure; capped rows rank after real readings.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShortInterestSnapshotResponse": {
        "type": "object",
        "properties": {
          "settlementDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShortInterestSnapshotDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShortSqueezeScoreDto": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "score": {
            "type": "number",
            "description": "Composite 0-100 score: weighted mean of the available factor percentiles\n(short interest 30%, days to cover 20%, price vs trailing VWAP 15%, short-volume\ntrend 15%, short-interest change 10%, fails-to-deliver 10%; peer-relative, missing\nfactors drop out) plus catalyst boosts, capped at +20 and clamped to 100.",
            "format": "double"
          },
          "shortInterestPercentOfShares": {
            "type": "number",
            "description": "Current short position as a fraction of shares outstanding (0-1 scale).",
            "format": "double"
          },
          "daysToCover": {
            "type": "number",
            "description": "FINRA days-to-cover; computed from the average daily volume when not reported.",
            "format": "double",
            "nullable": true
          },
          "shortVolumeShareTrend": {
            "type": "number",
            "description": "Change in the short share of total volume: the most recent two weeks' pooled\nshort-volume ratio minus the prior two weeks'. Positive = rising pressure.",
            "format": "double",
            "nullable": true
          },
          "shortInterestChangePercent": {
            "type": "number",
            "description": "Change in the short position versus the previous FINRA report as a fraction of the\nprevious position (0.15 = shorts grew 15%), both positions split-adjusted; null when\nthe previous position is unknown or zero.",
            "format": "double",
            "nullable": true
          },
          "failsToDeliverPercentOfShares": {
            "type": "number",
            "description": "Worst single-day fails-to-deliver quantity over the trailing 30 days (split-adjusted)\nas a fraction of shares outstanding. Zero = the SEC feed reported no fails for the\nstock; null = the feed had no data.",
            "format": "double",
            "nullable": true
          },
          "priceAboveVwap": {
            "type": "number",
            "description": "Latest close versus the trailing volume-weighted average price (up to 65 trading\ndays, roughly one quarter), as a fraction of that average (0.25 = price sits 25%\nabove where recent volume traded); positive = open shorts underwater. Null without\nenough price history.",
            "format": "double",
            "nullable": true
          },
          "hasPriceSpikeCatalyst": {
            "type": "boolean",
            "description": "True when the last week's return is a 2-sigma outlier versus the stock's own daily volatility (+10 score boost)."
          },
          "hasVolumeSurgeCatalyst": {
            "type": "boolean",
            "description": "True when weekly dollar turnover runs at least twice the stock's baseline on a positive move (+10 score boost)."
          },
          "hasEarningsProximityCatalyst": {
            "type": "boolean",
            "description": "True when a scheduled earnings call sits within the squeeze window (5 weekdays before to 3 after; +10 score boost). False also means the calendar may simply not know the stock's date."
          },
          "marketCapitalization": {
            "type": "number",
            "description": "Market capitalization in USD; null when unknown.",
            "format": "double",
            "nullable": true
          },
          "averageDailyDollarVolume": {
            "type": "number",
            "description": "Approximate average daily dollar volume in USD (FINRA average daily share volume,\nrestated onto today's split basis, times the market-cap-implied share price);\nnull when either input is unknown.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShortSqueezeScoresResponse": {
        "type": "object",
        "properties": {
          "settlementDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShortSqueezeScoreDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShortVolumeDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "shortVolume": {
            "type": "integer",
            "description": "Short volume restated onto today's split basis and rounded to the nearest whole share for the v1 integer contract.",
            "format": "int64"
          },
          "shortExemptVolume": {
            "type": "integer",
            "description": "Short exempt volume restated onto today's split basis and rounded to the nearest whole share for the v1 integer contract.",
            "format": "int64"
          },
          "totalVolume": {
            "type": "integer",
            "description": "Total FINRA-facility volume restated onto today's split basis and rounded to the nearest whole share for the v1 integer contract — off-exchange trades reported to FINRA facilities only, NOT the consolidated tape (typically ~40% of it).",
            "format": "int64"
          },
          "shortVolumePercent": {
            "type": "number",
            "description": "Short volume as a percentage of FINRA-facility volume (0-100). Same-day ratio, split-invariant. Because the denominator is facility volume, 40-50% is the normal baseline — do not read it as a share of the stock's consolidated volume.",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ShortVolumeDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShortVolumeDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      },
      "SlideDeckResponse": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "format": "uuid"
          },
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "eventTitle": {
            "type": "string",
            "nullable": true
          },
          "callDate": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "sourceName": {
            "type": "string",
            "nullable": true
          },
          "presentationKind": {
            "type": "string",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "capturedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "mimeType": {
            "type": "string",
            "nullable": true
          },
          "fileUrl": {
            "type": "string",
            "nullable": true
          },
          "imageUrls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SpeakerTurnDto": {
        "type": "object",
        "properties": {
          "speakerIndex": {
            "type": "integer",
            "format": "int32"
          },
          "speakerName": {
            "type": "string",
            "nullable": true
          },
          "speakerRole": {
            "type": "string",
            "nullable": true
          },
          "text": {
            "type": "string",
            "nullable": true
          },
          "startSeconds": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "endSeconds": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SpeakerTurnsResponse": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "format": "uuid"
          },
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "eventTitle": {
            "type": "string",
            "nullable": true
          },
          "callDate": {
            "type": "string",
            "format": "date-time"
          },
          "fiscalYear": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fiscalQuarter": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "turnCount": {
            "type": "integer",
            "description": "Speaker turns returned in THIS response (the requested page), not the\n            call's total — see totalTurnCount for that.",
            "format": "int32"
          },
          "totalTurnCount": {
            "type": "integer",
            "description": "Total speaker turns on file for the event, across all pages.",
            "format": "int32"
          },
          "offset": {
            "type": "integer",
            "description": "Rows skipped before the first returned turn (the offset applied).",
            "format": "int32"
          },
          "hasMore": {
            "type": "boolean",
            "description": "True when turns beyond this page exist — request them with offset."
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SpeakerTurnDto"
            },
            "nullable": true
          },
          "corrections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranscriptCorrectionDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StochasticOscillatorResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "kPeriod": {
            "type": "integer",
            "format": "int32"
          },
          "dPeriod": {
            "type": "integer",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StochasticPointDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/TechnicalsMeta"
          }
        },
        "additionalProperties": false
      },
      "StochasticPointDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "close": {
            "type": "number",
            "format": "double"
          },
          "percentK": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "percentD": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SuperInvestorDto": {
        "type": "object",
        "properties": {
          "managerName": {
            "type": "string",
            "nullable": true
          },
          "firmName": {
            "type": "string",
            "nullable": true
          },
          "cik": {
            "type": "string",
            "description": "13F filer CIK — pass to the institution endpoints for the full portfolio or quarterly activity.",
            "nullable": true
          },
          "portfolioValue": {
            "type": "integer",
            "description": "Latest reported 13F portfolio value in USD.",
            "format": "int64",
            "nullable": true
          },
          "positionCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "qoqChangePercent": {
            "type": "number",
            "description": "Quarter-over-quarter change in portfolio value; null when fewer than two quarters are on file.",
            "format": "double",
            "nullable": true
          },
          "asOf": {
            "type": "string",
            "description": "The latest 13F report date.",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A curated well-known investor and their latest 13F snapshot. Portfolio fields are null when the manager's CIK has no 13F data on file."
      },
      "SuperInvestorDtoListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SuperInvestorDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TechnicalsMeta": {
        "type": "object",
        "properties": {
          "returned": {
            "type": "integer",
            "description": "Points returned in `data`.",
            "format": "int32"
          },
          "windowPoints": {
            "type": "integer",
            "description": "Computable points inside the requested window (warm-up look-back bars are excluded).",
            "format": "int32"
          },
          "truncated": {
            "type": "boolean",
            "description": "True when `returned` < `windowPoints` — raise `limit` (max 500) or narrow the date range to see the older points."
          }
        },
        "additionalProperties": false,
        "description": "Row accounting for a technical-indicator response, so truncation at the\n            point cap is detectable instead of reading like the series simply ends."
      },
      "TopGovernmentContractorDto": {
        "type": "object",
        "properties": {
          "rank": {
            "type": "integer",
            "description": "1-based rank, largest total first.",
            "format": "int32"
          },
          "ticker": {
            "type": "string",
            "description": "Stock ticker symbol.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Company name.",
            "nullable": true
          },
          "totalAwarded": {
            "type": "number",
            "description": "Sum of award values (obligated + potential ceilings) over the date range, in US dollars.",
            "format": "double"
          },
          "awardCount": {
            "type": "integer",
            "description": "Number of awards over the date range.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "One public company ranked by total federal contract dollars awarded."
      },
      "TopGovernmentContractorsResponse": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Resolved start of the ranked window.",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "description": "Resolved end of the ranked window.",
            "format": "date"
          },
          "latestActionDate": {
            "type": "string",
            "description": "Most recent action date stored across the whole government-contracts dataset — the coverage as-of. Null when no contract data is loaded (an empty ranking then means no coverage, not no awards).",
            "format": "date",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TopGovernmentContractorDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Top federal contractors over a date range. The resolved range is echoed back\n            because both bounds default server-side (1 year ago to today)."
      },
      "TopHolderDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "cik": {
            "type": "string",
            "description": "SEC CIK of the institution — the identifier accepted by the v1/institutions/{cik}/* endpoints.",
            "nullable": true
          },
          "shares": {
            "type": "integer",
            "description": "Share count restated onto today's split basis (matching every other 13F surface).",
            "format": "int64"
          },
          "value": {
            "type": "integer",
            "description": "Reported market value in dollars, as filed.",
            "format": "int64"
          },
          "percentOfTotal": {
            "type": "number",
            "description": "Share of total INSTITUTIONAL shares at the report date (not of shares outstanding). Computed from raw as-filed share counts, so it is split-invariant.",
            "format": "double"
          },
          "listedTicker": {
            "type": "string",
            "description": "The exact listed share class this position is in (e.g. \"GOOG\" beside the primary \"GOOGL\"). Null = the primary listing.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TopHoldersMeta": {
        "type": "object",
        "properties": {
          "reportDate": {
            "type": "string",
            "format": "date"
          },
          "isCombinedQuarter": {
            "type": "boolean",
            "description": "True while the newest quarter's 45-day filing window is open and the positions are presented as the combined view (funds that have not filed yet carry their prior-quarter positions)."
          },
          "totalInstitutions": {
            "type": "integer",
            "format": "int32"
          },
          "totalShares": {
            "type": "integer",
            "description": "Total institutional shares at the report date, restated onto today's split basis.",
            "format": "int64"
          },
          "totalValue": {
            "type": "integer",
            "description": "Total reported market value in dollars, as filed.",
            "format": "int64"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "hasMore": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "description": "Paging meta extended with the report-date context and the whole-quarter totals the MCP GetTopHolders tool reports alongside its ranked list."
      },
      "TopHoldersResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TopHolderDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/TopHoldersMeta"
          }
        },
        "additionalProperties": false
      },
      "TranscriptCorrectionDto": {
        "type": "object",
        "properties": {
          "metricLabel": {
            "type": "string",
            "nullable": true
          },
          "transcriptQuote": {
            "type": "string",
            "nullable": true
          },
          "transcriptValue": {
            "type": "string",
            "nullable": true
          },
          "filingValue": {
            "type": "string",
            "nullable": true
          },
          "filingForm": {
            "type": "string",
            "nullable": true
          },
          "filingFiledDate": {
            "type": "string",
            "format": "date"
          },
          "note": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ValuationMultiplesHistoryPointDto": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "nullable": true
          },
          "asOf": {
            "type": "string",
            "format": "date"
          },
          "close": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "peRatio": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "evToRevenue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "evToEbit": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ValuationMultiplesHistoryResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "omittedAnchorCount": {
            "type": "integer",
            "description": "Sampled quarters dropped because no input was computable at that\n            point in time (mostly quarters predating price history) — non-zero means the\n            series is shorter than the advertised ~10 years by this many\n            anchors.",
            "format": "int32"
          },
          "points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValuationMultiplesHistoryPointDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ValuationMultiplesResponse": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "industry": {
            "type": "string",
            "nullable": true
          },
          "marketCap": {
            "type": "number",
            "format": "double"
          },
          "enterpriseValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ttmRevenue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ttmEbit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ttmEpsDiluted": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "enterpriseValueBalanceSheetDate": {
            "type": "string",
            "description": "The balance-sheet date all the enterprise-value instants share; null\n            exactly when enterpriseValue is null. (Market cap is the latest exchange\n            snapshot and carries no filing date.)",
            "format": "date",
            "nullable": true
          },
          "ttmRevenueWindowEnd": {
            "type": "string",
            "description": "End of the trailing-four-quarter window behind ttmRevenue — how stale\n            the TTM figure is; null exactly when the figure is null.",
            "format": "date",
            "nullable": true
          },
          "ttmEbitWindowEnd": {
            "type": "string",
            "description": "End of the trailing-four-quarter window behind ttmEbit; null exactly\n            when the figure is null.",
            "format": "date",
            "nullable": true
          },
          "ttmEpsWindowEnd": {
            "type": "string",
            "description": "End of the trailing-four-quarter window behind ttmEpsDiluted; null\n            exactly when the figure is null.",
            "format": "date",
            "nullable": true
          },
          "evToRevenue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "evToEbit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "peRatio": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceToFfo": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceToAffo": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ffoPerShare": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "affoPerShare": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ffoBasis": {
            "type": "string",
            "nullable": true
          },
          "affoBasis": {
            "type": "string",
            "nullable": true
          },
          "ffoLabel": {
            "type": "string",
            "nullable": true
          },
          "affoLabel": {
            "type": "string",
            "nullable": true
          },
          "industryContext": {
            "$ref": "#/components/schemas/IndustryMultiplesDto"
          }
        },
        "additionalProperties": false
      },
      "VixBarDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "open": {
            "type": "number",
            "format": "double"
          },
          "high": {
            "type": "number",
            "format": "double"
          },
          "low": {
            "type": "number",
            "format": "double"
          },
          "close": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "VixBarDtoPagedResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VixBarDto"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/PageMeta"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "http",
        "description": "API key from the Equibles dashboard (eq_...).",
        "scheme": "bearer"
      }
    }
  },
  "security": [
    {
      "ApiKey": [ ]
    }
  ],
  "tags": [
    {
      "name": "Buybacks"
    },
    {
      "name": "Catalysts"
    },
    {
      "name": "Cftc"
    },
    {
      "name": "Congress"
    },
    {
      "name": "Correlations"
    },
    {
      "name": "EarningsCalls"
    },
    {
      "name": "Filings"
    },
    {
      "name": "Fred"
    },
    {
      "name": "Fundamentals"
    },
    {
      "name": "Funds"
    },
    {
      "name": "GovernmentContracts"
    },
    {
      "name": "Guidance"
    },
    {
      "name": "Holdings"
    },
    {
      "name": "InsiderTrading"
    },
    {
      "name": "Institutions"
    },
    {
      "name": "InvestorRelations"
    },
    {
      "name": "Investors"
    },
    {
      "name": "Ipos"
    },
    {
      "name": "Kpis"
    },
    {
      "name": "Market"
    },
    {
      "name": "Multiples"
    },
    {
      "name": "Options"
    },
    {
      "name": "People"
    },
    {
      "name": "Quotes"
    },
    {
      "name": "Screener"
    },
    {
      "name": "Search"
    },
    {
      "name": "ShortData"
    },
    {
      "name": "StockPrices"
    }
  ]
}