{
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "description": "API key as a Bearer token. Generate one in your dashboard.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "",
    "title": "Prixe API",
    "version": "1.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/board_members": {
      "post": {
        "description": "Get board members and company officers for a stock ticker. Returns all board members with their compensation data. Use ai_summary=true to generate AI biographical summaries sourced from SEC DEF 14A proxy statements. Summaries are only included for officers found in the proxy filing. Requires Pro+ subscription.",
        "operationId": "post_board_members",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "ai_summary": {
                    "default": false,
                    "description": "If true, generates AI biographical summaries for board members found in the company's SEC DEF 14A proxy statement. Summaries cover the person's role, career history, education, and board memberships. Officers not found in the proxy filing will not have a summary field.",
                    "example": true,
                    "type": "boolean"
                  },
                  "ticker": {
                    "description": "The stock ticker symbol to retrieve board members for.",
                    "example": "TSLA",
                    "type": "string"
                  }
                },
                "required": [
                  "ticker"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "board_members": {
                      "description": "Board members and company officers data",
                      "properties": {
                        "count": {
                          "description": "Number of board members/officers returned",
                          "type": "integer"
                        },
                        "data": {
                          "description": "Array of board member/officer records",
                          "items": {
                            "properties": {
                              "age": {
                                "description": "Age of the person",
                                "type": [
                                  "integer",
                                  "null"
                                ]
                              },
                              "exercisedValue": {
                                "description": "Value of exercised stock options",
                                "type": "number"
                              },
                              "fiscalYear": {
                                "description": "Fiscal year for compensation data",
                                "type": "integer"
                              },
                              "name": {
                                "description": "Name of the board member/officer",
                                "type": "string"
                              },
                              "summary": {
                                "description": "AI-generated biographical summary sourced from SEC DEF 14A proxy statement. Only present when ai_summary=true and the officer was found in the proxy filing.",
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "title": {
                                "description": "Title/position of the person (e.g., 'Chief Executive Officer', 'Director')",
                                "type": "string"
                              },
                              "totalPay": {
                                "description": "Total compensation paid",
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "unexercisedValue": {
                                "description": "Value of unexercised stock options",
                                "type": "number"
                              },
                              "yearBorn": {
                                "description": "Year the person was born",
                                "type": [
                                  "integer",
                                  "null"
                                ]
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "company_name": {
                      "description": "The full name of the company.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates if the request was successfully processed.",
                      "type": "boolean"
                    },
                    "ticker": {
                      "description": "The stock ticker symbol.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Board Members & Company Officers"
      }
    },
    "/api/corporate_actions": {
      "post": {
        "description": "Corporate action events for one or many tickers: cash dividends, forward and reverse splits, spin-offs, mergers, and more. Defaults to the trailing year when no date range is given. **Pro+ Feature**: requires a Pro+ subscription.",
        "operationId": "post_corporate_actions",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "end_date": "2024-06-01",
                "start_date": "2024-01-01",
                "ticker": "AAPL",
                "types": [
                  "cash_dividend"
                ]
              },
              "schema": {
                "properties": {
                  "end_date": {
                    "default": "today",
                    "description": "Inclusive range end. YYYY-MM-DD or unix epoch seconds.",
                    "example": "2024-06-01",
                    "type": "string"
                  },
                  "limit": {
                    "default": 100,
                    "description": "Max events to return (1-1000).",
                    "example": 100,
                    "type": "integer"
                  },
                  "sort": {
                    "default": "desc",
                    "description": "asc or desc by date.",
                    "type": "string"
                  },
                  "start_date": {
                    "default": "1 year ago",
                    "description": "Inclusive range start. YYYY-MM-DD or unix epoch seconds.",
                    "example": "2024-01-01",
                    "type": "string"
                  },
                  "ticker": {
                    "description": "Stock ticker symbol",
                    "example": "AAPL",
                    "type": "string"
                  },
                  "tickers": {
                    "description": "Multiple ticker symbols",
                    "example": [
                      "AAPL",
                      "NVDA"
                    ],
                    "items": {},
                    "type": "array"
                  },
                  "types": {
                    "description": "Filter to specific action types (e.g. cash_dividend, forward_split, reverse_split, spin_off, stock_merger, cash_merger, name_change). Omit for all types.",
                    "example": [
                      "cash_dividend",
                      "forward_split"
                    ],
                    "items": {},
                    "type": "array"
                  }
                },
                "required": [
                  "ticker",
                  "tickers"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "corporate_actions": {
                    "cash_dividends": [
                      {
                        "cusip": "037833100",
                        "ex_date": "2024-02-09",
                        "foreign": false,
                        "payable_date": "2024-02-15",
                        "process_date": "2024-02-15",
                        "rate": 0.24,
                        "record_date": "2024-02-12",
                        "special": false,
                        "ticker": "AAPL"
                      }
                    ]
                  },
                  "next_page_token": null
                },
                "schema": {
                  "properties": {
                    "corporate_actions": {
                      "description": "Events grouped by action type (plural keys), e.g. cash_dividends, forward_splits, reverse_splits, spin_offs.",
                      "properties": {
                        "cash_dividends": {
                          "description": "Each: ticker, cusip, rate, special, foreign, ex_date, record_date, payable_date, process_date",
                          "items": {},
                          "type": "array"
                        },
                        "forward_splits": {
                          "description": "Each: ticker, cusip, new_rate, old_rate, ex_date, record_date, payable_date, process_date",
                          "items": {},
                          "type": "array"
                        },
                        "reverse_splits": {
                          "description": "Each: ticker, old_cusip, new_cusip, new_rate, old_rate, ex_date, record_date, payable_date, process_date",
                          "items": {},
                          "type": "array"
                        },
                        "spin_offs": {
                          "description": "Each: source_ticker, new_ticker, source_rate, new_rate, ex_date, process_date",
                          "items": {},
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "next_page_token": {
                      "description": "Cursor for the next page, or null when complete.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Missing or invalid parameter"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "502": {
            "description": "Upstream unavailable"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Corporate Actions"
      }
    },
    "/api/crypto": {
      "post": {
        "description": "Crypto market data for one or more pairs. Single endpoint with a `type` field that selects between a real-time snapshot (top-of-book quote, OHL, change) and historical OHLC bars. Tickers are the base symbol only (e.g. `BTC`, `ETH`, `SOL`); all pairs are quoted in USD. Use `/api/crypto/list` to discover supported tickers. **Pro+ Feature**.",
        "operationId": "post_crypto_post",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "count": 3,
                "tickers": [
                  "BTC"
                ],
                "timespan": "D",
                "type": "bars"
              },
              "schema": {
                "properties": {
                  "count": {
                    "description": "Bars only. Number of most-recent bars per symbol.",
                    "example": 5,
                    "type": "integer"
                  },
                  "tickers": {
                    "description": "Crypto pair(s) as base symbol(s). Comma-separated string or array, uppercase (e.g. BTC, ETH). All pairs are USD-quoted.",
                    "example": "BTC,ETH"
                  },
                  "timespan": {
                    "description": "Bars only. One of M1, M5, M15, M30, M60, M120, M240, D, W, M, Y. Defaults to D.",
                    "example": "D",
                    "type": "string"
                  },
                  "type": {
                    "description": "One of `snapshot` or `bars`.",
                    "example": "snapshot",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "tickers"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "result": [
                      {
                        "close": "76668.85",
                        "high": "77276.29",
                        "low": "74268.42",
                        "open": "75553.26",
                        "time": "2026-05-23T04:00:00.000+0000"
                      },
                      {
                        "close": "75554.49",
                        "high": "77844.50",
                        "low": "75139.91",
                        "open": "77717.55",
                        "time": "2026-05-22T04:00:00.000+0000"
                      },
                      {
                        "close": "77717.63",
                        "high": "78110.15",
                        "low": "76658.66",
                        "open": "78009.46",
                        "time": "2026-05-21T04:00:00.000+0000"
                      }
                    ],
                    "ticker": "BTC"
                  }
                ],
                "schema": {
                  "properties": {
                    "description": {
                      "description": "For `type=snapshot`: one snapshot object per requested pair. For `type=bars`: one object per pair with a nested `result` array of bars (newest to oldest, OHLC only \u2014 no volume)."
                    },
                    "items": {
                      "properties": {
                        "ask": {
                          "description": "snapshot: best ask",
                          "type": "string"
                        },
                        "ask_size": {
                          "description": "snapshot: best ask size",
                          "type": "string"
                        },
                        "bid": {
                          "description": "snapshot: best bid",
                          "type": "string"
                        },
                        "bid_size": {
                          "description": "snapshot: best bid size",
                          "type": "string"
                        },
                        "change": {
                          "description": "snapshot: price change vs pre_close",
                          "type": "string"
                        },
                        "change_ratio": {
                          "description": "snapshot: change as decimal (e.g. -0.000735 = -0.0735%)",
                          "type": "string"
                        },
                        "close": {
                          "description": "snapshot: current close (equals price during the live session)",
                          "type": "string"
                        },
                        "high": {
                          "description": "snapshot: session high",
                          "type": "string"
                        },
                        "last_trade_time": {
                          "description": "snapshot: last trade timestamp (Unix milliseconds)",
                          "type": "integer"
                        },
                        "low": {
                          "description": "snapshot: session low",
                          "type": "string"
                        },
                        "open": {
                          "description": "snapshot: session open",
                          "type": "string"
                        },
                        "pre_close": {
                          "description": "snapshot: previous session close",
                          "type": "string"
                        },
                        "price": {
                          "description": "snapshot only \u2014 last trade price",
                          "type": "string"
                        },
                        "quote_time": {
                          "description": "snapshot: quote timestamp (Unix milliseconds)",
                          "type": "integer"
                        },
                        "result": {
                          "description": "bars only \u2014 array of OHLC bars",
                          "items": {
                            "properties": {
                              "close": {
                                "type": "string"
                              },
                              "high": {
                                "type": "string"
                              },
                              "low": {
                                "type": "string"
                              },
                              "open": {
                                "type": "string"
                              },
                              "time": {
                                "description": "Bar start time in ISO 8601 with timezone",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "ticker": {
                          "description": "Crypto pair base symbol (e.g. BTC, ETH)",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": {
                      "description": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "invalid_timespan"
          },
          "401": {
            "description": "This endpoint requires a Pro+ subscription."
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Crypto"
      }
    },
    "/api/crypto/list": {
      "get": {
        "description": "List every crypto pair supported by `/api/crypto`. Returns `ticker`, `name`, and quote `currency` for each pair. Tickers are base symbols only (USD quote is implicit). Useful for discovering valid `tickers` values before calling `/api/crypto`. **Pro+ Feature**.",
        "operationId": "get_list_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "currency": "USD",
                    "name": "BTC",
                    "ticker": "BTC"
                  },
                  {
                    "currency": "USD",
                    "name": "ETH",
                    "ticker": "ETH"
                  },
                  {
                    "currency": "USD",
                    "name": "USD Coin",
                    "ticker": "USDC"
                  },
                  {
                    "currency": "USD",
                    "name": "Fantom",
                    "ticker": "FTM"
                  }
                ],
                "schema": {
                  "properties": {
                    "description": {
                      "description": "One object per supported pair."
                    },
                    "items": {
                      "properties": {
                        "currency": {
                          "description": "Quote currency (always `USD` today).",
                          "type": "string"
                        },
                        "name": {
                          "description": "Human-readable name when available (e.g. `USD Coin`, `Fantom`); otherwise equals `ticker`.",
                          "type": "string"
                        },
                        "ticker": {
                          "description": "Crypto pair base symbol (e.g. BTC, ETH, SOL). USD quote is implicit.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": {
                      "description": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "description": "This endpoint requires a Pro+ subscription."
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Crypto Supported Pairs"
      }
    },
    "/api/dividends_calendar": {
      "post": {
        "description": "Dividends calendar for a single day: companies whose ex-dividend date falls on the requested day, with payment/record/announcement dates and dividend amounts. Specify the day as YYYY-MM-DD (defaults to today). Historical data is available from 1988 onward; future days return upcoming ex-dividend dates. Requires Pro+ subscription.",
        "operationId": "post_dividends_calendar",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "date": {
                    "description": "Day to retrieve, YYYY-MM-DD (or unix epoch seconds). Defaults to today. Available from 1988 onward.",
                    "example": "2025-05-21",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "Number of dividend entries for the day.",
                      "type": "integer"
                    },
                    "date": {
                      "description": "The day returned (YYYY-MM-DD).",
                      "type": "string"
                    },
                    "dividends": {
                      "description": "Dividend entries (ex-dividend date = requested day).",
                      "items": {
                        "properties": {
                          "announcement_date": {
                            "description": "Announcement date (YYYY-MM-DD).",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "annual_dividend": {
                            "description": "Indicated annual dividend per share.",
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "company_name": {
                            "description": "Company name.",
                            "type": "string"
                          },
                          "dividend": {
                            "description": "Dividend amount per share for this distribution.",
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "ex_dividend_date": {
                            "description": "Ex-dividend date (YYYY-MM-DD).",
                            "type": "string"
                          },
                          "payment_date": {
                            "description": "Payment date (YYYY-MM-DD).",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "record_date": {
                            "description": "Record date (YYYY-MM-DD).",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "ticker": {
                            "description": "Stock ticker.",
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "success": {
                      "description": "Indicates if the request was successfully processed.",
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          },
          "502": {
            "description": "Failed to fetch calendar data"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Dividends Calendar"
      }
    },
    "/api/earnings_calendar": {
      "post": {
        "description": "Earnings calendar for a single day: companies reporting earnings on the requested day, with reported/forecast EPS, surprise %, market cap, fiscal quarter, and analyst estimate count. Specify the day as YYYY-MM-DD (defaults to today). Historical data is available from ~2009 onward; future days return scheduled earnings. Requires Pro+ subscription.",
        "operationId": "post_earnings_calendar",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "date": {
                    "description": "Day to retrieve, YYYY-MM-DD (or unix epoch seconds). Defaults to today. Available from ~2009 onward.",
                    "example": "2025-05-21",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "Number of companies reporting on the day.",
                      "type": "integer"
                    },
                    "date": {
                      "description": "The day returned (YYYY-MM-DD).",
                      "type": "string"
                    },
                    "earnings": {
                      "description": "Earnings entries for the day.",
                      "items": {
                        "properties": {
                          "company_name": {
                            "description": "Company name.",
                            "type": "string"
                          },
                          "eps": {
                            "description": "Reported EPS (null if not yet reported).",
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "eps_forecast": {
                            "description": "Consensus EPS forecast.",
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "eps_surprise_pct": {
                            "description": "EPS surprise vs. consensus, in percent.",
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "fiscal_quarter_ending": {
                            "description": "Fiscal quarter the report covers (e.g. 'Mar/2025').",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "market_cap": {
                            "description": "Market capitalization (USD).",
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "num_estimates": {
                            "description": "Number of analyst estimates behind the forecast.",
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "ticker": {
                            "description": "Stock ticker.",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "time": {
                            "description": "Reporting time: 'pre_market', 'after_hours', or null when not supplied.",
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "success": {
                      "description": "Indicates if the request was successfully processed.",
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          },
          "502": {
            "description": "Failed to fetch calendar data"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Earnings Calendar"
      }
    },
    "/api/economic_calendar": {
      "post": {
        "description": "Economic events calendar for a single day: scheduled macroeconomic releases by country, with actual/consensus/previous readings and a plain-language description of each indicator. Specify the day as YYYY-MM-DD (defaults to today). Historical data is available from ~2009 onward. Requires Pro+ subscription.",
        "operationId": "post_economic_calendar",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "date": {
                    "description": "Day to retrieve, YYYY-MM-DD (or unix epoch seconds). Defaults to today. Available from ~2009 onward.",
                    "example": "2025-05-21",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "Number of economic events for the day.",
                      "type": "integer"
                    },
                    "date": {
                      "description": "The day returned (YYYY-MM-DD).",
                      "type": "string"
                    },
                    "events": {
                      "description": "Economic events for the day.",
                      "items": {
                        "properties": {
                          "actual": {
                            "description": "Actual reading (units vary by indicator; string).",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "consensus": {
                            "description": "Consensus / forecast reading (string).",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "country": {
                            "description": "Country the indicator pertains to.",
                            "type": "string"
                          },
                          "description": {
                            "description": "Plain-language description of the indicator.",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "event": {
                            "description": "Event / indicator name (e.g. 'GDP', 'Core CPI').",
                            "type": "string"
                          },
                          "previous": {
                            "description": "Previous reading (string).",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "time_gmt": {
                            "description": "Release time in GMT (HH:MM), when supplied.",
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "success": {
                      "description": "Indicates if the request was successfully processed.",
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          },
          "502": {
            "description": "Failed to fetch calendar data"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Economic Calendar"
      }
    },
    "/api/forms": {
      "get": {
        "description": "Get a list of available SEC form types for a stock ticker. Returns unique form types with filing counts within a specific year or all time. Only returns supported form types (see POST /api/forms for the full list). Useful for discovering what SEC filings are available before requesting specific form data. Requires Pro+ subscription.",
        "operationId": "get_forms_get",
        "parameters": [
          {
            "description": "The stock ticker symbol to retrieve available forms for.",
            "in": "query",
            "name": "ticker",
            "required": true,
            "schema": {
              "description": "The stock ticker symbol to retrieve available forms for.",
              "example": "TSLA",
              "type": "string"
            }
          },
          {
            "description": "Optional year to filter forms by filing_date (last 6 years only). If not provided, returns all available forms. Note: This filters by when the form was filed with the SEC, not the fiscal period it covers.",
            "in": "query",
            "name": "year",
            "required": false,
            "schema": {
              "description": "Optional year to filter forms by filing_date (last 6 years only). If not provided, returns all available forms. Note: This filters by when the form was filed with the SEC, not the fiscal period it covers.",
              "example": 2024,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "company_name": {
                      "description": "The full name of the company from SEC EDGAR.",
                      "type": "string"
                    },
                    "filing_date_range": {
                      "description": "The date range of filings found.",
                      "properties": {
                        "end": {
                          "description": "Latest filing date (YYYY-MM-DD format)",
                          "type": "string"
                        },
                        "start": {
                          "description": "Earliest filing date (YYYY-MM-DD format)",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "forms": {
                      "description": "Array of available form types with counts",
                      "items": {
                        "properties": {
                          "count": {
                            "description": "Number of filings of this form type",
                            "type": "integer"
                          },
                          "filing_dates": {
                            "description": "List of filing_date values (when filed with SEC) for each filing of this form type. Length matches 'count'.",
                            "items": {
                              "type": "string"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "form": {
                            "description": "The SEC form type (e.g., '10-K', '8-K', '4')",
                            "type": "string"
                          },
                          "report_dates": {
                            "description": "List of period_of_report dates (fiscal periods covered) for each filing of this form type. Length matches 'count'. For example, a 10-K filed in 2024 might have report_date 2023-12-31.",
                            "items": {
                              "type": "string"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "note": {
                      "description": "Explanation that the year parameter and filing_date_range filter by filing_date. Each form includes both filing_dates and report_dates.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates if the request was successfully processed.",
                      "type": "boolean"
                    },
                    "ticker": {
                      "description": "The stock ticker symbol.",
                      "type": "string"
                    },
                    "total_filings": {
                      "description": "Total number of filings across all form types.",
                      "type": "integer"
                    },
                    "total_form_types": {
                      "description": "Total number of unique form types found.",
                      "type": "integer"
                    },
                    "year": {
                      "description": "The year for which forms were retrieved (by filing_date). Only present if year was provided.",
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Available SEC Forms"
      },
      "post": {
        "description": "Get SEC filing data for a stock ticker. Returns filings within a date range (last 6 years) from SEC EDGAR. Use year for full year, or specify start_date/end_date for custom ranges. Filters by filing_date (when filed with SEC). Each filing includes both filing_date and period_of_report so you can see the fiscal period covered. Requires Pro+ subscription.",
        "operationId": "post_forms_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "ai_summary": {
                    "default": false,
                    "description": "If true, generates a title and 3-4 sentence AI summary for each filing.",
                    "example": true,
                    "type": "boolean"
                  },
                  "end_date": {
                    "description": "End date for filtering filings by filing_date (YYYY-MM-DD format). Defaults to December 31st of the year if not provided.",
                    "example": "2024-12-31",
                    "type": "string"
                  },
                  "form": {
                    "description": "The SEC form type to retrieve. See 'supported_forms' field for the complete list of supported form types. Categories include: Annual/Quarterly Reports (10-K, 10-Q), Insider Transactions (3, 4, 5), Institutional Holdings (13F-HR), Current Reports (8-K), Prospectuses (424B2-8), Tender Offers (SC TO-C/I/T), and more.",
                    "example": "10-K",
                    "type": "string"
                  },
                  "limit": {
                    "default": 10,
                    "description": "Maximum number of filings to return per request. Defaults to 10, maximum is 100.",
                    "example": 10,
                    "type": "integer"
                  },
                  "offset": {
                    "default": 0,
                    "description": "Number of filings to skip for pagination. Defaults to 0.",
                    "example": 0,
                    "type": "integer"
                  },
                  "start_date": {
                    "description": "Start date for filtering filings by filing_date (YYYY-MM-DD format). Defaults to January 1st of the year if not provided.",
                    "example": "2024-01-01",
                    "type": "string"
                  },
                  "ticker": {
                    "description": "The stock ticker symbol to retrieve SEC filings for.",
                    "example": "MSFT",
                    "type": "string"
                  },
                  "year": {
                    "description": "The year to retrieve filings for (last 6 years only). Used as default date range if start_date/end_date not provided.",
                    "example": 2024,
                    "type": "integer"
                  }
                },
                "required": [
                  "ticker",
                  "form",
                  "year"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "company_name": {
                      "description": "The full name of the company from SEC EDGAR.",
                      "type": "string"
                    },
                    "filing_date_range": {
                      "description": "The date range used to filter filings by filing_date.",
                      "properties": {
                        "end": {
                          "description": "End date of the period (YYYY-MM-DD format)",
                          "type": "string"
                        },
                        "start": {
                          "description": "Start date of the period (YYYY-MM-DD format)",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "filings": {
                      "description": "SEC filings data",
                      "properties": {
                        "count": {
                          "description": "Number of filings",
                          "type": "integer"
                        },
                        "data": {
                          "description": "Array of filing records",
                          "items": {
                            "properties": {
                              "accession_number": {
                                "description": "SEC accession number for the filing",
                                "type": "string"
                              },
                              "ai_summary": {
                                "description": "AI-generated summary (only if ai_summary=true)",
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "ai_title": {
                                "description": "AI-generated short title (only if ai_summary=true)",
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "attachments": {
                                "description": "List of attachments with document name, description, and type",
                                "items": {},
                                "type": [
                                  "array",
                                  "null"
                                ]
                              },
                              "description": {
                                "description": "Description of the filing",
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "filing_date": {
                                "description": "Date the form was filed with SEC (ISO format). This is what the 'year' parameter filters on.",
                                "type": "string"
                              },
                              "financials": {
                                "description": "For 10-K/10-Q filings, XBRL financial statements (income_statement, balance_sheet, cash_flow_statement, statement_of_equity, comprehensive_income)",
                                "type": [
                                  "object",
                                  "null"
                                ]
                              },
                              "form": {
                                "description": "The SEC form type",
                                "type": "string"
                              },
                              "holdings": {
                                "description": "For 13F-HR filings, array of institutional holdings",
                                "items": {},
                                "type": [
                                  "array",
                                  "null"
                                ]
                              },
                              "items": {
                                "description": "For 8-K filings, the item numbers reported",
                                "items": {},
                                "type": [
                                  "array",
                                  "null"
                                ]
                              },
                              "period_of_report": {
                                "description": "The fiscal period the filing covers (ISO format). For example, a 10-K filed 2024-02-15 might have period_of_report 2023-12-31. Also known as 'report_date' in some contexts.",
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "text_content": {
                                "description": "For text-only forms (CORRESP, 425, etc.), the extracted text content (limited to 50000 characters)",
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "text_truncated": {
                                "description": "True if the text_content was truncated due to length",
                                "type": [
                                  "boolean",
                                  "null"
                                ]
                              },
                              "transactions": {
                                "description": "For Form 4/3/5 filings, array of insider transactions",
                                "items": {},
                                "type": [
                                  "array",
                                  "null"
                                ]
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "filings_processed": {
                      "description": "Number of filings processed.",
                      "type": "integer"
                    },
                    "form_type": {
                      "description": "The SEC form type requested.",
                      "type": "string"
                    },
                    "pagination": {
                      "description": "Pagination information for the results.",
                      "properties": {
                        "has_more": {
                          "description": "Whether there are more filings available",
                          "type": "boolean"
                        },
                        "limit": {
                          "description": "Maximum filings per page (default 10, max 100)",
                          "type": "integer"
                        },
                        "offset": {
                          "description": "Number of filings skipped",
                          "type": "integer"
                        },
                        "returned": {
                          "description": "Number of filings returned in this response",
                          "type": "integer"
                        },
                        "total": {
                          "description": "Total number of filings matching the query",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "success": {
                      "description": "Indicates if the request was successfully processed.",
                      "type": "boolean"
                    },
                    "ticker": {
                      "description": "The stock ticker symbol.",
                      "type": "string"
                    },
                    "year": {
                      "description": "The year used for the query.",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "SEC Form Data"
      }
    },
    "/api/forms/financials": {
      "post": {
        "description": "Standardized financial fundamentals for a stock ticker, sourced from SEC XBRL filings. Returns quarterly and annual time series of revenue, earnings (net income), gross profit, total assets, total debt (long-term + current portion), book value (stockholders' equity), and return on equity (computed). Accepts a single 'ticker' or a 'tickers' array (up to 10). Requires Pro+ subscription.",
        "operationId": "post_financials",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "limit": {
                    "default": 20,
                    "description": "Maximum number of periods to return per period type. Defaults to 20, maximum is 40.",
                    "example": 8,
                    "type": "integer"
                  },
                  "offset": {
                    "default": 0,
                    "description": "Number of periods to skip for pagination. Defaults to 0.",
                    "example": 0,
                    "type": "integer"
                  },
                  "period": {
                    "default": "both",
                    "description": "Which period type to return: 'quarterly', 'annual', or 'both' (default).",
                    "example": "annual",
                    "type": "string"
                  },
                  "ticker": {
                    "description": "Single stock ticker. Required if 'tickers' is not provided.",
                    "example": "AAPL",
                    "type": "string"
                  },
                  "tickers": {
                    "description": "Array of stock tickers (maximum 10). Required if 'ticker' is not provided. When provided, the response uses a per-ticker 'results' array instead of returning a single ticker's payload.",
                    "example": [
                      "AAPL",
                      "MSFT",
                      "GOOG"
                    ],
                    "items": {},
                    "type": "array"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "annual": {
                      "description": "Annual (fiscal year) time series. Omitted when period='quarterly'.",
                      "properties": {
                        "count": {
                          "description": "Number of periods returned in this page.",
                          "type": "integer"
                        },
                        "data": {
                          "description": "Newest-first array of annual periods.",
                          "items": {
                            "properties": {
                              "accession_number": {
                                "description": "SEC accession number of that filing.",
                                "type": "string"
                              },
                              "filed": {
                                "description": "Filing date (YYYY-MM-DD) of the most recent filing supplying any metric for this period.",
                                "type": "string"
                              },
                              "fiscal_period": {
                                "description": "'FY' for annual periods; 'Q1'/'Q2'/'Q3'/'Q4' for quarterly.",
                                "type": "string"
                              },
                              "fiscal_year": {
                                "description": "Fiscal year as reported by the issuer.",
                                "type": "integer"
                              },
                              "form": {
                                "description": "SEC form type of that filing (10-K, 10-Q, 10-K/A, etc.).",
                                "type": "string"
                              },
                              "metrics": {
                                "description": "Standardized metrics for the period. Any metric may be null if not reported by the issuer for this period.",
                                "properties": {
                                  "book_value": {
                                    "description": "Stockholders' equity (book value) at period end.",
                                    "type": [
                                      "number",
                                      "null"
                                    ]
                                  },
                                  "earnings": {
                                    "description": "Net income (loss) for the period.",
                                    "type": [
                                      "number",
                                      "null"
                                    ]
                                  },
                                  "gross_profit": {
                                    "description": "Gross profit for the period.",
                                    "type": [
                                      "number",
                                      "null"
                                    ]
                                  },
                                  "revenue": {
                                    "description": "Total revenue / net sales for the period.",
                                    "type": [
                                      "number",
                                      "null"
                                    ]
                                  },
                                  "roe": {
                                    "description": "Return on equity for the period, computed as earnings / book_value (closing equity). Null when either input is missing or equity is zero.",
                                    "type": [
                                      "number",
                                      "null"
                                    ]
                                  },
                                  "total_assets": {
                                    "description": "Total assets at period end.",
                                    "type": [
                                      "number",
                                      "null"
                                    ]
                                  },
                                  "total_debt": {
                                    "description": "Sum of long-term debt plus the current portion of long-term debt and short-term borrowings, at period end.",
                                    "type": [
                                      "number",
                                      "null"
                                    ]
                                  }
                                },
                                "type": "object"
                              },
                              "period_end": {
                                "description": "Period end date (YYYY-MM-DD).",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "has_more": {
                          "description": "Whether there are more periods after this page.",
                          "type": "boolean"
                        },
                        "limit": {
                          "description": "Page size used.",
                          "type": "integer"
                        },
                        "offset": {
                          "description": "Page offset used.",
                          "type": "integer"
                        },
                        "total": {
                          "description": "Total number of annual periods available.",
                          "type": "integer"
                        }
                      },
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "company_name": {
                      "description": "Issuer name from the SEC entity facts.",
                      "type": "string"
                    },
                    "currency": {
                      "description": "Currency for all monetary metric values. Always 'USD' for now.",
                      "type": "string"
                    },
                    "period": {
                      "description": "Echoed period filter ('quarterly', 'annual', or 'both').",
                      "type": "string"
                    },
                    "quarterly": {
                      "description": "Quarterly time series. Omitted when period='annual'. Same shape as 'annual'.",
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "results": {
                      "description": "Per-ticker results (multi-ticker requests only). Each entry has the same shape as a single-ticker response, plus a per-ticker 'success' flag.",
                      "items": {},
                      "type": [
                        "array",
                        "null"
                      ]
                    },
                    "success": {
                      "description": "Indicates whether the overall request was processed successfully.",
                      "type": "boolean"
                    },
                    "ticker": {
                      "description": "The stock ticker (single-ticker requests only).",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          },
          "502": {
            "description": "Upstream unavailable"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "SEC Financials"
      }
    },
    "/api/ipo_calendar": {
      "post": {
        "description": "Monthly IPO calendar from Nasdaq: deals that priced, were newly filed, or were withdrawn in the month, plus upcoming/expected IPOs. Specify the month as YYYY-MM (defaults to the current month). Historical data is available from 1996 onward. Requires Pro+ subscription.",
        "operationId": "post_ipo_calendar",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "month": {
                    "description": "Month to retrieve in YYYY-MM format. Defaults to the current month. Data is available from 1996-01 onward; future months return scheduled/upcoming IPOs.",
                    "example": "2025-05",
                    "type": "string"
                  },
                  "month_number": {
                    "description": "Alternative to 'month': the month number (1-12). Used together with 'year' when 'month' is not provided.",
                    "example": 5,
                    "type": "integer"
                  },
                  "year": {
                    "description": "Alternative to 'month': the calendar year. Used together with 'month_number' when 'month' is not provided.",
                    "example": 2025,
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "counts": {
                      "description": "Number of deals in each section.",
                      "properties": {
                        "filed": {
                          "description": "Count of IPOs newly filed during the month.",
                          "type": "integer"
                        },
                        "priced": {
                          "description": "Count of IPOs that priced during the month.",
                          "type": "integer"
                        },
                        "upcoming": {
                          "description": "Count of upcoming/expected IPOs (populated for the current and future months).",
                          "type": "integer"
                        },
                        "withdrawn": {
                          "description": "Count of IPOs withdrawn during the month.",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "filed": {
                      "description": "IPOs newly filed during the month.",
                      "items": {
                        "properties": {
                          "company_name": {
                            "description": "Company name.",
                            "type": "string"
                          },
                          "filed_date": {
                            "description": "Date the registration was filed (YYYY-MM-DD).",
                            "type": "string"
                          },
                          "offer_amount": {
                            "description": "Total dollar value of shares offered (USD).",
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "ticker": {
                            "description": "Proposed ticker symbol.",
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "month": {
                      "description": "The month returned, in YYYY-MM format.",
                      "type": "string"
                    },
                    "month_number": {
                      "description": "Month number (1-12) of the returned month.",
                      "type": "integer"
                    },
                    "priced": {
                      "description": "IPOs that priced during the month.",
                      "items": {
                        "properties": {
                          "company_name": {
                            "description": "Company name.",
                            "type": "string"
                          },
                          "exchange": {
                            "description": "Listing exchange/market.",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "offer_amount": {
                            "description": "Total dollar value of shares offered (USD).",
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "price": {
                            "description": "Offer price per share as a string (e.g. '4.00'). May be null when not disclosed.",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "priced_date": {
                            "description": "Date the IPO priced (YYYY-MM-DD).",
                            "type": "string"
                          },
                          "shares_offered": {
                            "description": "Number of shares offered.",
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "status": {
                            "description": "Deal status (e.g. 'Priced').",
                            "type": "string"
                          },
                          "ticker": {
                            "description": "Proposed ticker symbol.",
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "success": {
                      "description": "Indicates if the request was successfully processed.",
                      "type": "boolean"
                    },
                    "upcoming": {
                      "description": "Upcoming/expected IPOs (populated for the current and future months).",
                      "items": {
                        "properties": {
                          "company_name": {
                            "description": "Company name.",
                            "type": "string"
                          },
                          "exchange": {
                            "description": "Listing exchange/market.",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "expected_price_date": {
                            "description": "Expected IPO/pricing date (YYYY-MM-DD).",
                            "type": "string"
                          },
                          "offer_amount": {
                            "description": "Expected total dollar value of shares offered (USD).",
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "price": {
                            "description": "Expected offer price per share. Often a range string (e.g. '25.00-27.00') for upcoming deals.",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "shares_offered": {
                            "description": "Number of shares expected to be offered.",
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "ticker": {
                            "description": "Proposed ticker symbol.",
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "withdrawn": {
                      "description": "IPOs withdrawn during the month.",
                      "items": {
                        "properties": {
                          "company_name": {
                            "description": "Company name.",
                            "type": "string"
                          },
                          "exchange": {
                            "description": "Listing exchange/market.",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "filed_date": {
                            "description": "Original filing date (YYYY-MM-DD).",
                            "type": "string"
                          },
                          "offer_amount": {
                            "description": "Total dollar value of shares offered (USD).",
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "shares_offered": {
                            "description": "Number of shares that had been offered.",
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "ticker": {
                            "description": "Proposed ticker symbol.",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "withdrawn_date": {
                            "description": "Date the IPO was withdrawn (YYYY-MM-DD).",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "year": {
                      "description": "Calendar year of the returned month.",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          },
          "502": {
            "description": "Failed to fetch IPO calendar"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "IPO Calendar"
      }
    },
    "/api/last_sold": {
      "post": {
        "description": "Get the last sold price data for a specified stock ticker including bid/ask prices, volume, and other market data",
        "operationId": "post_last_sold",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "ticker": "TSLA"
              },
              "schema": {
                "properties": {
                  "callback_url": {
                    "description": "Optional URL to which the API response will be forwarded as a webhook",
                    "example": "https://your-server.com/webhooks/price-callback",
                    "type": "string"
                  },
                  "ticker": {
                    "description": "The stock ticker symbol (e.g., AAPL, MSFT, GOOGL)",
                    "example": "W",
                    "type": "string"
                  }
                },
                "required": [
                  "ticker"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "lastSalePrice": "$58.79",
                  "lastTradeTimestamp": "Jul 10, 2025 6:48 PM ET",
                  "ticker": "W"
                },
                "schema": {
                  "properties": {
                    "lastSalePrice": {
                      "description": "Price of the last executed trade with currency symbol",
                      "type": "string"
                    },
                    "lastTradeTimestamp": {
                      "description": "Timestamp of the last trade",
                      "type": "string"
                    },
                    "ticker": {
                      "description": "Stock ticker symbol",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Missing required parameter: ticker"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Last Sold Price"
      }
    },
    "/api/nasdaq/bars": {
      "get": {
        "description": "Historical OHLCV bars for one ticker. **Pro+ Feature**.",
        "operationId": "get_bars",
        "parameters": [
          {
            "description": "Single ticker",
            "in": "query",
            "name": "ticker",
            "required": true,
            "schema": {
              "description": "Single ticker",
              "example": "AAPL",
              "type": "string"
            }
          },
          {
            "description": "US_STOCK or US_ETF. If the ticker is not found under the requested category, the other category is tried automatically, so either value works for both stocks and ETFs.",
            "in": "query",
            "name": "category",
            "required": true,
            "schema": {
              "description": "US_STOCK or US_ETF. If the ticker is not found under the requested category, the other category is tried automatically, so either value works for both stocks and ETFs.",
              "example": "US_STOCK",
              "type": "string"
            }
          },
          {
            "description": "M1, M5, M15, M30, M60, M120, M240, D, W, M, or Y",
            "in": "query",
            "name": "timespan",
            "required": true,
            "schema": {
              "description": "M1, M5, M15, M30, M60, M120, M240, D, W, M, or Y",
              "example": "D",
              "type": "string"
            }
          },
          {
            "description": "Number of most-recent bars (default 200, server cap typically 200). Accepts integer or string (e.g. 30 or \"30\").",
            "in": "query",
            "name": "count",
            "required": false,
            "schema": {
              "description": "Number of most-recent bars (default 200, server cap typically 200). Accepts integer or string (e.g. 30 or \"30\").",
              "example": 30,
              "type": "integer"
            }
          },
          {
            "description": "Comma-separated sessions to include: RTH (regular), ETH (pre/post), OVN (overnight)",
            "in": "query",
            "name": "trading_sessions",
            "required": false,
            "schema": {
              "description": "Comma-separated sessions to include: RTH (regular), ETH (pre/post), OVN (overnight)",
              "example": "RTH",
              "type": "string"
            }
          },
          {
            "description": "Set to 'true' to include the still-forming current bar",
            "in": "query",
            "name": "real_time_required",
            "required": false,
            "schema": {
              "description": "Set to 'true' to include the still-forming current bar",
              "example": "true",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "close": "294.80",
                    "high": "295.27",
                    "low": "292.56",
                    "open": "292.56",
                    "ticker": "AAPL",
                    "time": "2026-05-12T04:00:00.000+0000",
                    "trading_session": "",
                    "volume": "45687251"
                  },
                  {
                    "close": "292.68",
                    "high": "293.88",
                    "low": "290.23",
                    "open": "291.979",
                    "ticker": "AAPL",
                    "time": "2026-05-11T04:00:00.000+0000",
                    "trading_session": "",
                    "volume": "42247285"
                  }
                ],
                "schema": {
                  "properties": {
                    "description": {
                      "description": "Bars newest to oldest. Returned as a top-level JSON array (not wrapped in an object)."
                    },
                    "items": {
                      "properties": {
                        "close": {
                          "description": "Closing price of the bar",
                          "type": "string"
                        },
                        "high": {
                          "description": "Highest price during the bar",
                          "type": "string"
                        },
                        "low": {
                          "description": "Lowest price during the bar",
                          "type": "string"
                        },
                        "open": {
                          "description": "Opening price of the bar",
                          "type": "string"
                        },
                        "ticker": {
                          "description": "Ticker",
                          "type": "string"
                        },
                        "time": {
                          "description": "Bar start time in ISO 8601 with timezone (e.g. 2026-05-12T19:55:00.000+0000)",
                          "type": "string"
                        },
                        "trading_session": {
                          "description": "RTH / ETH / OVN, or empty string for daily/weekly/monthly bars",
                          "type": "string"
                        },
                        "volume": {
                          "description": "Volume during the bar",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": {
                      "description": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "description": "This endpoint requires a Pro+ subscription."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Nasdaq Bars (single ticker)"
      }
    },
    "/api/nasdaq/batch_bars": {
      "post": {
        "description": "Historical OHLCV bars for multiple tickers in one call. Same fields as /api/nasdaq/bars but `tickers` is an array. **Pro+ Feature**.",
        "operationId": "post_batch_bars",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "category": "US_STOCK",
                "count": 3,
                "tickers": [
                  "AAPL",
                  "MSFT",
                  "NVDA"
                ],
                "timespan": "D"
              },
              "schema": {
                "properties": {
                  "category": {
                    "description": "US_STOCK or US_ETF. If the ticker is not found under the requested category, the other category is tried automatically, so either value works for both stocks and ETFs.",
                    "example": "US_STOCK",
                    "type": "string"
                  },
                  "count": {
                    "description": "Number of most-recent bars per ticker (default 200). Accepts integer or string (e.g. 5 or \"5\").",
                    "example": 5,
                    "type": "integer"
                  },
                  "real_time_required": {
                    "description": "Set to 'true' to include the still-forming current bar",
                    "example": "true",
                    "type": "string"
                  },
                  "tickers": {
                    "description": "Array of tickers. Unknown tickers are omitted from the response \u2014 you get one result per valid ticker. Only if every requested ticker is invalid does the request fail with HTTP 417 error_code INVALID_SYMBOL.",
                    "example": [
                      "AAPL",
                      "MSFT",
                      "NVDA"
                    ],
                    "items": {},
                    "type": "array"
                  },
                  "timespan": {
                    "description": "M1, M5, M15, M30, M60, M120, M240, D, W, M, or Y",
                    "example": "D",
                    "type": "string"
                  },
                  "trading_sessions": {
                    "description": "Sessions to include: RTH, ETH, OVN",
                    "example": [
                      "RTH"
                    ],
                    "items": {},
                    "type": "array"
                  }
                },
                "required": [
                  "tickers",
                  "category",
                  "timespan"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "result": [
                    {
                      "result": [
                        {
                          "close": "294.80",
                          "high": "295.27",
                          "low": "292.56",
                          "open": "292.56",
                          "time": "2026-05-12T04:00:00.000+0000",
                          "trading_session": "",
                          "volume": "45687251"
                        },
                        {
                          "close": "292.68",
                          "high": "293.88",
                          "low": "290.23",
                          "open": "291.979",
                          "time": "2026-05-11T04:00:00.000+0000",
                          "trading_session": "",
                          "volume": "42247285"
                        }
                      ],
                      "ticker": "AAPL"
                    },
                    {
                      "result": [
                        {
                          "close": "407.77",
                          "high": "415.50",
                          "low": "406.64",
                          "open": "414.48",
                          "time": "2026-05-12T04:00:00.000+0000",
                          "trading_session": "",
                          "volume": "38520196"
                        }
                      ],
                      "ticker": "MSFT"
                    }
                  ]
                },
                "schema": {
                  "properties": {
                    "fields": {},
                    "type": {
                      "description": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "description": "This endpoint requires a Pro+ subscription."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Nasdaq Batch Bars (multi-ticker)"
      }
    },
    "/api/nasdaq/quotes": {
      "get": {
        "description": "Top-of-book bid and ask levels (price + size) for a single ticker, sourced from Nasdaq. **Pro+ Feature**.",
        "operationId": "get_quotes",
        "parameters": [
          {
            "description": "Single ticker",
            "in": "query",
            "name": "ticker",
            "required": true,
            "schema": {
              "description": "Single ticker",
              "example": "AAPL",
              "type": "string"
            }
          },
          {
            "description": "US_STOCK or US_ETF. If the ticker is not found under the requested category, the other category is tried automatically, so either value works for both stocks and ETFs.",
            "in": "query",
            "name": "category",
            "required": true,
            "schema": {
              "description": "US_STOCK or US_ETF. If the ticker is not found under the requested category, the other category is tried automatically, so either value works for both stocks and ETFs.",
              "example": "US_STOCK",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "asks": [
                    {
                      "price": "296.86",
                      "size": "33"
                    }
                  ],
                  "bids": [
                    {
                      "price": "273.43",
                      "size": "2"
                    }
                  ],
                  "quote_time": 1778630400252,
                  "ticker": "AAPL"
                },
                "schema": {
                  "properties": {
                    "fields": {},
                    "type": {
                      "description": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "description": "This endpoint requires a Pro+ subscription."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Nasdaq Quotes"
      }
    },
    "/api/nasdaq/snapshot": {
      "get": {
        "description": "Top-of-book bid/ask, last trade, OHL, 52-week high/low, and reference data (market cap, shares outstanding, P/E, dividend yield) for one or more tickers. Sourced from Nasdaq. Fields that are not available for an instrument or at a given moment are returned as null \u2014 always handle null on the nullable fields. **Pro+ Feature**.",
        "operationId": "get_snapshot",
        "parameters": [
          {
            "description": "Comma-separated tickers (e.g. AAPL,MSFT,SPY). Maximum 100 tickers per request. Invalid tickers are omitted from the response \u2014 you get one object per valid ticker (so the array may be shorter than your request). Only if every requested ticker is invalid does the request fail with HTTP 417 error_code INVALID_SYMBOL.",
            "in": "query",
            "name": "tickers",
            "required": true,
            "schema": {
              "description": "Comma-separated tickers (e.g. AAPL,MSFT,SPY). Maximum 100 tickers per request. Invalid tickers are omitted from the response \u2014 you get one object per valid ticker (so the array may be shorter than your request). Only if every requested ticker is invalid does the request fail with HTTP 417 error_code INVALID_SYMBOL.",
              "example": "AAPL,MSFT",
              "type": "string"
            }
          },
          {
            "description": "US_STOCK or US_ETF. If the ticker is not found under the requested category, the other category is tried automatically, so either value works for both stocks and ETFs.",
            "in": "query",
            "name": "category",
            "required": true,
            "schema": {
              "description": "US_STOCK or US_ETF. If the ticker is not found under the requested category, the other category is tried automatically, so either value works for both stocks and ETFs.",
              "example": "US_STOCK",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "ask": "296.86",
                    "ask_size": "33",
                    "bid": "273.43",
                    "bid_size": "2",
                    "change": "2.12",
                    "change_ratio": "0.007243",
                    "close": "294.80",
                    "fifty_two_wk_high": "295.27",
                    "fifty_two_wk_low": "192.695527",
                    "high": "295.27",
                    "last_trade_time": 1778616001065,
                    "low": "292.56",
                    "market_value": "4329832548800.00",
                    "neg_market_value": "4258484204660.40",
                    "open": "292.56",
                    "out_standing_shares": "14445333123",
                    "pb_ratio": "40.604942",
                    "pe_ratio": "35.661578",
                    "pre_close": "292.68",
                    "price": "294.80",
                    "ps_ratio": "9.578270",
                    "quote_time": 1778630400252,
                    "ticker": "AAPL",
                    "total_shares": "14687356000",
                    "volume": "45748129",
                    "yield": "0.003664"
                  }
                ],
                "schema": {
                  "properties": {
                    "description": {
                      "description": "One object per valid requested ticker, in request order. Invalid tickers are omitted."
                    },
                    "items": {
                      "properties": {
                        "ask": {
                          "description": "Best ask price",
                          "type": "string"
                        },
                        "ask_size": {
                          "description": "Best ask size",
                          "type": "string"
                        },
                        "bid": {
                          "description": "Best bid price",
                          "type": "string"
                        },
                        "bid_size": {
                          "description": "Best bid size",
                          "type": "string"
                        },
                        "change": {
                          "description": "Price change vs. pre_close",
                          "type": "string"
                        },
                        "change_ratio": {
                          "description": "Price change as decimal (e.g. 0.0072 = +0.72%)",
                          "type": "string"
                        },
                        "close": {
                          "description": "Today's close (equals price during the live session)",
                          "type": "string"
                        },
                        "fifty_two_wk_high": {
                          "description": "52-week high price",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "fifty_two_wk_low": {
                          "description": "52-week low price",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "high": {
                          "description": "Today's high",
                          "type": "string"
                        },
                        "last_trade_time": {
                          "description": "Last trade timestamp (Unix milliseconds)",
                          "type": "integer"
                        },
                        "low": {
                          "description": "Today's low",
                          "type": "string"
                        },
                        "market_value": {
                          "description": "Market capitalization (stocks only)",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "neg_market_value": {
                          "description": "Free-float market capitalization (stocks only)",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "open": {
                          "description": "Today's opening price",
                          "type": "string"
                        },
                        "out_standing_shares": {
                          "description": "Float shares (stocks only)",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "pb_ratio": {
                          "description": "Price-to-book ratio (stocks only)",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "pe_ratio": {
                          "description": "Price-to-earnings ratio",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "pre_close": {
                          "description": "Previous trading day's closing price",
                          "type": "string"
                        },
                        "price": {
                          "description": "Last trade price",
                          "type": "string"
                        },
                        "ps_ratio": {
                          "description": "Price-to-sales ratio (stocks only)",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "quote_time": {
                          "description": "Quote timestamp (Unix milliseconds)",
                          "type": "integer"
                        },
                        "ticker": {
                          "description": "Ticker",
                          "type": "string"
                        },
                        "total_shares": {
                          "description": "Total shares outstanding (stocks only)",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "volume": {
                          "description": "Today's traded volume",
                          "type": "string"
                        },
                        "yield": {
                          "description": "Dividend yield as decimal (e.g. 0.0037 = 0.37%)",
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "type": "object"
                    },
                    "type": {
                      "description": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "description": "This endpoint requires a Pro+ subscription."
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Nasdaq Snapshot"
      }
    },
    "/api/nasdaq/tick": {
      "get": {
        "description": "Most recent N trade prints (time, price, volume, side) \u2014 per-print trade tape sourced from Nasdaq. **Pro+ Feature**.",
        "operationId": "get_tick",
        "parameters": [
          {
            "description": "Single ticker",
            "in": "query",
            "name": "ticker",
            "required": true,
            "schema": {
              "description": "Single ticker",
              "example": "AAPL",
              "type": "string"
            }
          },
          {
            "description": "US_STOCK or US_ETF. If the ticker is not found under the requested category, the other category is tried automatically, so either value works for both stocks and ETFs.",
            "in": "query",
            "name": "category",
            "required": true,
            "schema": {
              "description": "US_STOCK or US_ETF. If the ticker is not found under the requested category, the other category is tried automatically, so either value works for both stocks and ETFs.",
              "example": "US_STOCK",
              "type": "string"
            }
          },
          {
            "description": "Number of most-recent prints to return (default 10, server cap ~200)",
            "in": "query",
            "name": "count",
            "required": false,
            "schema": {
              "description": "Number of most-recent prints to return (default 10, server cap ~200)",
              "example": 10,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "result": [
                    {
                      "price": "294.53",
                      "side": "S",
                      "time": "1778616055704",
                      "trading_session": "RTH",
                      "volume": "3"
                    },
                    {
                      "price": "294.65",
                      "side": "B",
                      "time": "1778616050197",
                      "trading_session": "RTH",
                      "volume": "1"
                    },
                    {
                      "price": "294.50",
                      "side": "L",
                      "time": "1778616044028",
                      "trading_session": "RTH",
                      "volume": "10"
                    }
                  ],
                  "ticker": "AAPL"
                },
                "schema": {
                  "properties": {
                    "fields": {},
                    "type": {
                      "description": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "description": "This endpoint requires a Pro+ subscription."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Nasdaq Tick"
      }
    },
    "/api/news": {
      "post": {
        "description": "Fetches news data based on a search text. This endpoint communicates with a separate service to perform the action and retrieve news articles. \n\n Please note: Non cached responses can take up to 10 seconds as we are fetching the news in real time.",
        "operationId": "post_news",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "ticker": "TSLA"
              },
              "schema": {
                "properties": {
                  "ai_summary": {
                    "default": false,
                    "description": "If true, generates a 3-4 sentence AI summary for each article.",
                    "example": true,
                    "type": "boolean"
                  },
                  "callback_url": {
                    "description": "Optional URL to which the API response will be forwarded as a webhook",
                    "example": "https://your-server.com/webhooks/news-callback",
                    "type": "string"
                  },
                  "end_date": {
                    "description": "Optional inclusive end of the news date range. YYYY-MM-DD or unix epoch seconds.",
                    "example": "2024-03-01",
                    "type": "string"
                  },
                  "limit": {
                    "default": 10,
                    "description": "Maximum number of articles to return (1-50).",
                    "example": 10,
                    "type": "integer"
                  },
                  "published_date": {
                    "default": false,
                    "description": "If true, includes the published date/time for each article (ISO 8601).",
                    "example": true,
                    "type": "boolean"
                  },
                  "start_date": {
                    "description": "Optional inclusive start of the news date range. YYYY-MM-DD or unix epoch seconds.",
                    "example": "2024-01-01",
                    "type": "string"
                  },
                  "ticker": {
                    "description": "The ticker to use for fetching news data. Must be a valid ticker from the SEC list.",
                    "example": "TSLA",
                    "type": "string"
                  },
                  "tickers": {
                    "description": "Optional additional tickers to include in the news search alongside 'ticker'.",
                    "example": [
                      "TSLA",
                      "NVDA"
                    ],
                    "items": {},
                    "type": "array"
                  }
                },
                "required": [
                  "ticker"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "news_data": {
                    "count": 2,
                    "data": [
                      {
                        "body": "The big driver for Q3 deliveries is the Sept. 30 expiration of the $7,500 U.S. tax credit, pulling forward demand. Buyers can take delivery later and still get the EV tax credit as long as they make a firm order by Sept. 30 with at least a nominal payment......",
                        "title": "Tesla Deliveries Due, But This Is The Big News For TSLA Bulls",
                        "url": "https://www.investors.com/news/tesla-deliveries-due-fsd-v14-tsla-bulls/"
                      },
                      {
                        "body": "It seems to me that fewer and fewer people realize that Tesla (NASDAQ:TSLA) is still primarily a car manufacturer. Sales in Q2 2025 fell by 12% YoY, and CEO Elon Musk himself spoke of a few tough quarters ahead. Two months have passed, and something has changed, so suddenly the next few quarters are looking bright? I don't think so. The company is still not in a position to justify its premium valuation multiples.",
                        "title": "Tesla Board Prints Billions In Pay As Musk Buys $1B, And I'm Shorting The Signal",
                        "url": "https://seekingalpha.com/article/4826258-tesla-board-prints-billions-in-pay-as-musk-buys-1b-and-im-shorting-the-signal"
                      }
                    ],
                    "status": "success",
                    "ticker": "TSLA"
                  },
                  "success": true
                },
                "schema": {
                  "properties": {
                    "news_data": {
                      "description": "The news data retrieved for the search term.",
                      "properties": {
                        "count": {
                          "description": "Number of news articles found",
                          "type": "integer"
                        },
                        "data": {
                          "description": "Array of news articles",
                          "items": {
                            "properties": {
                              "body": {
                                "description": "Article content/excerpt",
                                "type": "string"
                              },
                              "published_date": {
                                "description": "ISO 8601 published date/time of the article (only if published_date=true). Extracted from article metadata using best-effort methods. May not always be available or accurate \u2014 verify independently for time-sensitive use cases.",
                                "example": "2026-04-04T18:27:41+00:00",
                                "type": "string"
                              },
                              "summary": {
                                "description": "AI-generated summary of the article (only if ai_summary=true)",
                                "type": "string"
                              },
                              "title": {
                                "description": "The article title",
                                "type": "string"
                              },
                              "url": {
                                "description": "URL to the full article",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "status": {
                          "description": "Status of the news fetch operation",
                          "type": "string"
                        },
                        "ticker": {
                          "description": "The search term used",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "success": {
                      "description": "Indicates if the request was successfully processed.",
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          },
          "503": {
            "description": "Failed to communicate with external service"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Fetch News"
      }
    },
    "/api/options": {
      "post": {
        "description": "Options market data. The default `type: \"chain\"` returns the option chain for an underlying ticker (each contract's latest trade & quote, greeks, and implied volatility). Use `type: \"bars\"`, `type: \"trades\"`, `type: \"quotes\"`, `type: \"latest_trade\"`, or `type: \"snapshot\"` with `tickers` set to specific OCC contract symbols (e.g. AAPL241220C00300000). `latest_trade` returns the most recent trade per contract; `snapshot` returns the same per-contract detail as the chain (latest trade & quote, greeks, implied volatility) but only for the specific contracts you name. To discover which contracts exist, use `/api/options/contracts`. **Pro+ Feature**: requires a Pro+ subscription.",
        "operationId": "post_options",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "expiration_date": "2024-12-20",
                "option_type": "call",
                "ticker": "AAPL",
                "type": "chain"
              },
              "schema": {
                "properties": {
                  "end_date": {
                    "description": "Range end for bars/trades. YYYY-MM-DD or unix epoch seconds.",
                    "type": "string"
                  },
                  "expiration_date": {
                    "description": "Chain filter (YYYY-MM-DD). Also accepts expiration_date_gte / expiration_date_lte.",
                    "example": "2024-12-20",
                    "type": "string"
                  },
                  "limit": {
                    "default": 100,
                    "description": "Max results (chain: 1-1000; bars/trades: 1-10000).",
                    "type": "integer"
                  },
                  "option_type": {
                    "description": "Chain filter: call or put.",
                    "example": "call",
                    "type": "string"
                  },
                  "start_date": {
                    "description": "Range start for bars/trades. YYYY-MM-DD or unix epoch seconds.",
                    "type": "string"
                  },
                  "strike_price_gte": {
                    "description": "Chain filter: minimum strike.",
                    "example": 150,
                    "type": "number"
                  },
                  "strike_price_lte": {
                    "description": "Chain filter: maximum strike.",
                    "example": 300,
                    "type": "number"
                  },
                  "ticker": {
                    "description": "Underlying ticker for the option chain.",
                    "example": "AAPL",
                    "type": "string"
                  },
                  "tickers": {
                    "description": "OCC option contract symbols.",
                    "example": [
                      "AAPL241220C00300000"
                    ],
                    "items": {},
                    "type": "array"
                  },
                  "timeframe": {
                    "default": "1Day",
                    "description": "Bar size for type=bars (e.g. 1Day).",
                    "type": "string"
                  },
                  "type": {
                    "default": "chain",
                    "description": "chain (default), bars, trades, quotes, latest_trade, or snapshot.",
                    "example": "chain",
                    "type": "string"
                  }
                },
                "required": [
                  "ticker",
                  "tickers"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "next_page_token": null,
                  "snapshots": {
                    "AAPL241220C00300000": {
                      "greeks": {
                        "delta": 0.21,
                        "gamma": 0.01,
                        "rho": 0.04,
                        "theta": -0.03,
                        "vega": 0.12
                      },
                      "implied_volatility": 0.28,
                      "latest_quote": {
                        "ask_price": 1.3,
                        "ask_size": 50,
                        "bid_price": 1.2,
                        "bid_size": 40,
                        "timestamp": "2024-06-01T20:00:00Z"
                      },
                      "latest_trade": {
                        "price": 1.25,
                        "size": 10,
                        "timestamp": "2024-06-01T20:00:00Z"
                      }
                    }
                  }
                },
                "schema": {
                  "properties": {
                    "bars": {
                      "description": "(type=bars) Map of contract symbol to its list of OHLCV bars.",
                      "type": "object"
                    },
                    "next_page_token": {
                      "description": "Cursor for the next page, or null when complete.",
                      "type": "string"
                    },
                    "quotes": {
                      "description": "(type=quotes) Map of contract symbol to its latest quote.",
                      "type": "object"
                    },
                    "snapshots": {
                      "description": "(type=chain or type=snapshot) Map of contract symbol to its snapshot.",
                      "properties": {
                        "daily_bar": {
                          "description": "Current day OHLCV bar for the contract",
                          "type": "object"
                        },
                        "greeks": {
                          "description": "delta, gamma, theta, vega, rho",
                          "type": "object"
                        },
                        "implied_volatility": {
                          "description": "Implied volatility",
                          "type": "number"
                        },
                        "latest_quote": {
                          "description": "Most recent bid/ask for the contract",
                          "type": "object"
                        },
                        "latest_trade": {
                          "description": "Most recent trade for the contract",
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "trades": {
                      "description": "(type=trades) Map of contract symbol to its list of trades. (type=latest_trade) Map of contract symbol to its most recent trade.",
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Missing or invalid parameter"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "502": {
            "description": "Upstream unavailable"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Options"
      }
    },
    "/api/options/contracts": {
      "post": {
        "description": "The tradable option contract catalog for one or more underlying tickers: every listed contract's OCC symbol, expiration, strike, call/put type, exercise style, open interest, and previous close. Use this to discover which contracts exist (and their OCC symbols) before quoting them with `/api/options`. Filter by expiration window, strike range, call/put, style, and active/inactive status. **Pro+ Feature**: requires a Pro+ subscription.",
        "operationId": "post_contracts",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "expiration_date_gte": "2026-09-01",
                "expiration_date_lte": "2026-12-31",
                "option_type": "call",
                "strike_price_gte": 200,
                "strike_price_lte": 250,
                "ticker": "AAPL"
              },
              "schema": {
                "properties": {
                  "expiration_date": {
                    "description": "Exact expiration (YYYY-MM-DD). Also accepts expiration_date_gte / expiration_date_lte for a window.",
                    "example": "2026-12-18",
                    "type": "string"
                  },
                  "limit": {
                    "default": 100,
                    "description": "Max contracts per page (1-10000).",
                    "type": "integer"
                  },
                  "option_type": {
                    "description": "Filter: call or put.",
                    "example": "call",
                    "type": "string"
                  },
                  "page_token": {
                    "description": "Cursor from a previous response's next_page_token.",
                    "type": "string"
                  },
                  "root_ticker": {
                    "description": "Filter by root symbol (distinguishes non-standard contracts after corporate actions).",
                    "example": "AAPL",
                    "type": "string"
                  },
                  "status": {
                    "default": "active",
                    "description": "Filter: active (default) or inactive contracts.",
                    "type": "string"
                  },
                  "strike_price_gte": {
                    "description": "Minimum strike.",
                    "example": 150,
                    "type": "number"
                  },
                  "strike_price_lte": {
                    "description": "Maximum strike.",
                    "example": 300,
                    "type": "number"
                  },
                  "style": {
                    "description": "Filter: american or european exercise style.",
                    "example": "american",
                    "type": "string"
                  },
                  "ticker": {
                    "description": "Underlying ticker to list contracts for.",
                    "example": "AAPL",
                    "type": "string"
                  },
                  "tickers": {
                    "description": "Multiple underlying tickers.",
                    "example": [
                      "AAPL",
                      "MSFT"
                    ],
                    "items": {},
                    "type": "array"
                  }
                },
                "required": [
                  "ticker",
                  "tickers"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "next_page_token": null,
                  "option_contracts": [
                    {
                      "close_price": "18.05",
                      "close_price_date": "2026-06-30",
                      "expiration_date": "2026-12-18",
                      "id": "c0b80911-e56f-46b3-b34d-b72480e43997",
                      "multiplier": "100",
                      "name": "AAPL Dec 18 2026 225 Call",
                      "open_interest": "1204",
                      "open_interest_date": "2026-06-29",
                      "root_ticker": "AAPL",
                      "size": "100",
                      "status": "active",
                      "strike_price": "225",
                      "style": "american",
                      "ticker": "AAPL261218C00225000",
                      "tradable": true,
                      "type": "call",
                      "underlying_ticker": "AAPL"
                    }
                  ]
                },
                "schema": {
                  "properties": {
                    "next_page_token": {
                      "description": "Cursor for the next page, or null when complete.",
                      "type": "string"
                    },
                    "option_contracts": {
                      "description": "The matching contracts.",
                      "items": {},
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Missing or invalid parameter"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "502": {
            "description": "Upstream unavailable"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Option Contracts"
      }
    },
    "/api/politicians": {
      "post": {
        "description": "Returns U.S. Congressional stock transactions (purchases and sales) for both the U.S. House and U.S. Senate, sourced from official Periodic Transaction Report (PTR) filings. When `chamber` is omitted, both are returned. Amounts are disclosed as ranges \u2014 the response includes the raw range string plus parsed min/max. Supports filtering by ticker, politician name, chamber, transaction type, and date range. Note: Senate paper-format PTRs (~11-13% of Senate filings) are scanned image submissions and may not be available \u2014 they contribute zero transactions. **Available on all plans.**",
        "operationId": "post_politicians",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "limit": 10,
                "ticker": "AAPL",
                "transaction_type": "purchase",
                "year": 2024
              },
              "schema": {
                "properties": {
                  "callback_url": {
                    "description": "Optional URL to forward the response to as a webhook.",
                    "type": "string"
                  },
                  "chamber": {
                    "description": "Filter by chamber: 'house' or 'senate'. When omitted, both are returned.",
                    "example": "senate",
                    "type": "string"
                  },
                  "description": {
                    "description": "When true, include the filer's free-text DESCRIPTION for each transaction (e.g. 'Advisor-driven quarterly rebalancing', 'Exercised 50 call options...'). Off by default because descriptions can be long multi-sentence notes and most callers don't need them. Many filings have empty descriptions \u2014 the field will be null for those.",
                    "example": true,
                    "type": "boolean"
                  },
                  "end_date": {
                    "description": "Inclusive transaction-date upper bound (YYYY-MM-DD).",
                    "example": "2024-12-31",
                    "type": "string"
                  },
                  "limit": {
                    "description": "Max transactions per response (default 50, max 500).",
                    "example": 50,
                    "type": "integer"
                  },
                  "offset": {
                    "description": "Pagination offset (default 0).",
                    "example": 0,
                    "type": "integer"
                  },
                  "politician": {
                    "description": "Accepts either an exact politician_slug from /api/politicians/list (e.g. 'hon_nancy_pelosi') or a case-insensitive substring of the full name (e.g. 'pelosi').",
                    "example": "hon_nancy_pelosi",
                    "type": "string"
                  },
                  "start_date": {
                    "description": "Inclusive transaction-date lower bound (YYYY-MM-DD).",
                    "example": "2024-01-01",
                    "type": "string"
                  },
                  "state": {
                    "description": "Filter by 2-letter US state postal code (e.g. 'CA', 'NY', 'DC', 'PR'). 400 on invalid codes. Case-insensitive. Note: state metadata is only available for House transactions, so applying this filter implicitly excludes all Senate rows.",
                    "example": "CA",
                    "type": "string"
                  },
                  "ticker": {
                    "description": "Filter to a single ticker symbol.",
                    "example": "AAPL",
                    "type": "string"
                  },
                  "transaction_type": {
                    "description": "'purchase', 'sale', or 'all' (default 'all'). 'sale' includes partial sales.",
                    "example": "purchase",
                    "type": "string"
                  },
                  "year": {
                    "description": "Disclosure year (defaults to current year). Valid range: 2008 to current year.",
                    "example": 2024,
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "count": 1,
                  "success": true,
                  "total": 1,
                  "transactions": [
                    {
                      "amount_max": 15000,
                      "amount_min": 1001,
                      "amount_range": "$1,001 - $15,000",
                      "asset_name": "Apple Inc.",
                      "asset_type": "ST",
                      "chamber": "house",
                      "filing_date": "04/01/2024",
                      "filing_doc_id": "20020938",
                      "politician": "Hon. Jane Smith",
                      "state_district": "CA12",
                      "ticker": "AAPL",
                      "transaction_date": "03/15/2024",
                      "transaction_type": "purchase"
                    }
                  ],
                  "year": 2024
                },
                "schema": {
                  "properties": {
                    "chambers_missing": {
                      "description": "Chambers that were requested but didn't return data \u2014 typically still scraping, locked, or temporarily unavailable. Retry shortly to pick them up.",
                      "items": {},
                      "type": "array"
                    },
                    "chambers_requested": {
                      "description": "Chambers the request asked for (derived from the `chamber` filter; defaults to both house and senate when omitted).",
                      "items": {},
                      "type": "array"
                    },
                    "chambers_returned": {
                      "description": "Chambers that successfully returned data for this request.",
                      "items": {},
                      "type": "array"
                    },
                    "count": {
                      "description": "Number of transactions in this page.",
                      "type": "integer"
                    },
                    "partial": {
                      "description": "True when the caller asked for multiple chambers but only some answered. When true, the response is a partial view; chambers_missing names the chambers to retry.",
                      "type": "boolean"
                    },
                    "total": {
                      "description": "Total matching transactions across all pages.",
                      "type": "integer"
                    },
                    "transactions": {
                      "description": "Array of transaction objects with politician, ticker, transaction_type ('purchase' | 'sale' | 'sale_partial' | 'exchange'), transaction_date, amount_range, amount_min, amount_max, and filing metadata. Each object also carries a `description` field (filer's free-text note) when the request sets `description: true`.",
                      "items": {},
                      "type": "array"
                    },
                    "year": {
                      "description": "Disclosure year covered by the response.",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          },
          "503": {
            "description": "Data not ready"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Congressional Stock Transactions"
      }
    },
    "/api/politicians/executive_disclosures": {
      "post": {
        "description": "Returns OGE Form 278e annual public financial disclosures for senior White House personnel (cabinet officials and other agencies file separately and are out of scope). Each disclosure has up to 9 schedules: positions held, employment assets & income, employment agreements, compensation sources >$5,000, spouse's employment assets, other assets and income, transactions, liabilities, and gifts/travel reimbursements. Each schedule row carries a parse_quality field ('ok' / 'partial') so callers can filter low-confidence rows. Most filings are 'New Entrant Report' for newly-appointed staff; 'Annual' reports surface holdings as of Dec 31. When a filing's structure can't be decomposed into schedules, parse_status='layout_unsupported' and pdf_url is returned so callers can render the original PDF directly. **Requires Pro+ subscription.**",
        "operationId": "post_executive_disclosures",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "limit": 10,
                "ticker": "TSLA"
              },
              "schema": {
                "properties": {
                  "callback_url": {
                    "description": "Optional URL to forward the response to as a webhook.",
                    "type": "string"
                  },
                  "limit": {
                    "description": "Max filings per response (default 50, max 500). With no ticker / report_type filter, paginated requests are fast (a default 50-filer page returns in seconds). Adding ticker or report_type requires scanning every disclosure to find matches, which can be slow for large pages \u2014 narrow with `politician` or use a smaller `limit` to keep responses snappy.",
                    "example": 50,
                    "type": "integer"
                  },
                  "offset": {
                    "description": "Pagination offset (default 0).",
                    "example": 0,
                    "type": "integer"
                  },
                  "politician": {
                    "description": "Accepts either an exact filer_slug (e.g. 'president_donald_j_trump', 'vice_president_jd_vance', 'wiles_susie') OR a case-insensitive substring of the full filer name (e.g. 'trump', 'Vance', 'Sacks'). When set, the upstream scrape is narrowed to just the matching filer so requests don't wait on the full ~258-PDF scrape. Same matching pattern as the politician param on /api/politicians/holdings.",
                    "example": "president_donald_j_trump",
                    "type": "string"
                  },
                  "report_type": {
                    "description": "Filter by report type: 'Annual Report', 'New Entrant Report', 'Termination Report', or 'Annual/Final Report'.",
                    "example": "New Entrant Report",
                    "type": "string"
                  },
                  "ticker": {
                    "description": "Filter to filers who hold this ticker in any of their asset schedules. Tickers are extracted from parenthesized symbols like 'Apple Inc. (AAPL)' in the filing.",
                    "example": "TSLA",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "count": 1,
                  "filings": [
                    {
                      "filer_name": "Adolphsen, Samuel",
                      "filer_slug": "adolphsen_samuel",
                      "header": {
                        "appointment_type": "Non-Career",
                        "date_of_appointment": "01/2025",
                        "filer_information": {
                          "name_line": "Adolphsen, Samuel",
                          "position_line": "Deputy Assistant to the President for Domestic Policy"
                        },
                        "report_type": "New Entrant Report"
                      },
                      "parse_status": "ok",
                      "pdf_url": "https://www.whitehouse.gov/wp-content/uploads/2025/06/Adolphsen-Samuel.pdf",
                      "schedules": {
                        "other_assets": [
                          {
                            "description": "Tesla, Inc. (TSLA)",
                            "eif": "N/A",
                            "income_amount": "$1,001 - $2,500",
                            "parse_quality": "ok",
                            "row": "1.6",
                            "schedule": "other_assets",
                            "ticker": "TSLA",
                            "value": "$1,001 - $15,000"
                          }
                        ],
                        "positions": [
                          {
                            "description": "The Foundation for Government Accountability Naples, Florida Non-Profit Vice President",
                            "from": "8/2018",
                            "parse_quality": "ok",
                            "row": 1,
                            "to": "1/2025"
                          }
                        ]
                      },
                      "tickers": [
                        "AAPL",
                        "MSFT",
                        "SPY",
                        "TSLA"
                      ],
                      "upload_year": 2025
                    }
                  ],
                  "success": true,
                  "total": 1
                },
                "schema": {
                  "properties": {
                    "count": {
                      "description": "Number of filings in this page.",
                      "type": "integer"
                    },
                    "filings": {
                      "description": "Array of filing objects. Each filing includes filer_name, filer_slug, pdf_url, upload_year, parse_status ('ok' / 'layout_unsupported' / 'scanned_no_text' / 'download_failed'), header (report_type / annual_year / dates / appointment_type / filer_information), tickers (sorted unique list extracted from asset schedules), and schedules (positions, employment_assets, employment_agreements, compensation_sources, spouse_employment_assets, other_assets, transactions, liabilities, gifts_travel). Each schedule row carries `parse_quality: 'ok' | 'partial'` \u2014 'partial' means structured fields like value/amount/date weren't recovered (description is still present). Trump and Vice President annual reports surface with parse_status='layout_unsupported' \u2014 render the pdf_url directly for those.",
                      "items": {},
                      "type": "array"
                    },
                    "total": {
                      "description": "Total filings matching the filter across all pages.",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "503": {
            "description": "Data temporarily unavailable"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Executive Branch Disclosures"
      }
    },
    "/api/politicians/holdings": {
      "post": {
        "description": "Returns per-ticker NET DISCLOSED TRADING ACTIVITY for a specific politician (House or Senate) in the requested year/range \u2014 computed as purchases minus sales using the midpoint of each disclosed amount range. This is NOT a current portfolio balance: PTRs disclose dollar ranges and we do not ingest Annual FD asset schedules, so starting positions are unknown. Response sets `is_true_holding: false` for clarity. **Available on all plans.**",
        "operationId": "post_holdings",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "limit": 50,
                "politician": "Pelosi",
                "year": 2024
              },
              "schema": {
                "properties": {
                  "callback_url": {
                    "description": "Optional webhook URL.",
                    "type": "string"
                  },
                  "end_date": {
                    "description": "Transaction-date upper bound (YYYY-MM-DD).",
                    "type": "string"
                  },
                  "limit": {
                    "description": "Max activity rows per response (default 50, max 500).",
                    "example": 50,
                    "type": "integer"
                  },
                  "offset": {
                    "description": "Pagination offset (default 0).",
                    "example": 0,
                    "type": "integer"
                  },
                  "politician": {
                    "description": "Accepts either an exact politician_slug from /api/politicians/list (e.g. 'hon_nancy_pelosi') or a case-insensitive substring of the full name (e.g. 'pelosi').",
                    "example": "hon_nancy_pelosi",
                    "type": "string"
                  },
                  "start_date": {
                    "description": "Transaction-date lower bound (YYYY-MM-DD).",
                    "type": "string"
                  },
                  "ticker": {
                    "description": "Restrict output to a single ticker.",
                    "type": "string"
                  },
                  "year": {
                    "description": "Disclosure year (default current year).",
                    "example": 2024,
                    "type": "integer"
                  }
                },
                "required": [
                  "politician"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "activity": [
                    {
                      "asset_name": "NVIDIA Corp",
                      "asset_type": "ST",
                      "chamber": "house",
                      "gross_purchased_midpoint": 2750000,
                      "gross_sold_midpoint": 0,
                      "net_activity_midpoint": 2750000,
                      "politician": "Hon. Nancy Pelosi",
                      "politician_slug": "hon_nancy_pelosi",
                      "purchase_count": 2,
                      "sale_count": 0,
                      "ticker": "NVDA"
                    }
                  ],
                  "count": 1,
                  "is_true_holding": false,
                  "limit": 50,
                  "matched_politicians": [
                    {
                      "chamber": "house",
                      "politician": "Hon. Nancy Pelosi",
                      "politician_slug": "hon_nancy_pelosi",
                      "transaction_count": 2
                    }
                  ],
                  "note": "Values are NET DISCLOSED TRADING ACTIVITY \u2014 not a current portfolio balance.",
                  "offset": 0,
                  "politician": "Pelosi",
                  "success": true,
                  "total": 1,
                  "year": 2024
                },
                "schema": {
                  "properties": {
                    "activity": {
                      "description": "Array of {politician, politician_slug, chamber, ticker, asset_name, asset_type, purchase_count, sale_count, gross_purchased_midpoint, gross_sold_midpoint, net_activity_midpoint}. Rows are grouped by (politician_slug, ticker), so when multiple politicians matched, each person's activity stays separate. Sorted with same-politician rows adjacent and biggest |net_activity_midpoint| first within a politician.",
                      "items": {},
                      "type": "array"
                    },
                    "chambers_missing": {
                      "description": "Chambers that were requested but didn't return data \u2014 retry shortly.",
                      "items": {},
                      "type": "array"
                    },
                    "chambers_requested": {
                      "description": "Chambers the request asked for (always both for /holdings since this endpoint has no chamber filter).",
                      "items": {},
                      "type": "array"
                    },
                    "chambers_returned": {
                      "description": "Chambers that successfully returned data.",
                      "items": {},
                      "type": "array"
                    },
                    "count": {
                      "description": "Number of activity rows in this page.",
                      "type": "integer"
                    },
                    "is_true_holding": {
                      "description": "Always false \u2014 the figures represent net disclosed activity, not portfolio balances.",
                      "type": "boolean"
                    },
                    "matched_politicians": {
                      "description": "Politicians whose names matched the politician filter, with their per-person transaction count. Useful when a substring match returned more than one person (e.g. 'Scott' matches both Tim Scott and Rick Scott). Pass an exact politician_slug from this list to narrow to one person.",
                      "items": {},
                      "type": "array"
                    },
                    "partial": {
                      "description": "True when only one chamber's data was available for this request.",
                      "type": "boolean"
                    },
                    "total": {
                      "description": "Total activity rows matching the filter across all pages.",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "'politician' is required"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "503": {
            "description": "Data not ready"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Politician Net Trading Activity"
      }
    },
    "/api/politicians/list": {
      "post": {
        "description": "Returns the set of politicians (House Representatives and U.S. Senators) that filed PTRs in the requested year, along with aggregate counts (total transactions, purchases, sales, distinct tickers traded, and midpoint notional total). Useful as an index view before drilling into /api/politicians or /api/politicians/holdings. Each row includes a `politician_slug` that can be passed back as the `politician` param on the other two endpoints for an exact match. **Available on all plans.**",
        "operationId": "post_list_post",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "limit": 50,
                "year": 2024
              },
              "schema": {
                "properties": {
                  "callback_url": {
                    "description": "Optional webhook URL.",
                    "type": "string"
                  },
                  "chamber": {
                    "description": "Filter to one chamber: 'house' or 'senate'. When omitted, both are returned.",
                    "example": "senate",
                    "type": "string"
                  },
                  "limit": {
                    "description": "Max politicians per response (default 50, max 500).",
                    "example": 50,
                    "type": "integer"
                  },
                  "offset": {
                    "description": "Pagination offset (default 0).",
                    "example": 0,
                    "type": "integer"
                  },
                  "state": {
                    "description": "Filter by 2-letter US state postal code (e.g. 'CA', 'NY', 'DC', 'PR'). 400 on invalid codes. Note: state metadata is only available for House politicians \u2014 applying this filter excludes all Senate rows.",
                    "example": "CA",
                    "type": "string"
                  },
                  "year": {
                    "description": "Disclosure year (default current year). Senate data is available from 2012 onward; House data from 2008.",
                    "example": 2024,
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "count": 1,
                  "limit": 50,
                  "offset": 0,
                  "politicians": [
                    {
                      "chamber": "house",
                      "notional_midpoint": 2350000,
                      "politician": "Hon. Jane Smith",
                      "politician_slug": "hon_jane_smith",
                      "purchases": 30,
                      "sales": 12,
                      "state_district": "CA12",
                      "tickers": [
                        "AAPL",
                        "MSFT",
                        "NVDA"
                      ],
                      "transactions": 42
                    }
                  ],
                  "success": true,
                  "total": 1,
                  "year": 2024
                },
                "schema": {
                  "properties": {
                    "chambers_missing": {
                      "description": "Chambers that were requested but didn't return data \u2014 retry shortly.",
                      "items": {},
                      "type": "array"
                    },
                    "chambers_requested": {
                      "description": "Chambers the request asked for.",
                      "items": {},
                      "type": "array"
                    },
                    "chambers_returned": {
                      "description": "Chambers that successfully returned data.",
                      "items": {},
                      "type": "array"
                    },
                    "count": {
                      "description": "Number of politicians in this page.",
                      "type": "integer"
                    },
                    "partial": {
                      "description": "True when only some of the requested chambers returned data.",
                      "type": "boolean"
                    },
                    "politicians": {
                      "description": "Array of {politician, politician_slug, state_district, chamber, transactions, purchases, sales, tickers, notional_midpoint} sorted by transaction count desc.",
                      "items": {},
                      "type": "array"
                    },
                    "total": {
                      "description": "Total politicians matching the filter across all pages.",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "503": {
            "description": "Data not ready"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Politicians List"
      }
    },
    "/api/price": {
      "post": {
        "description": "Get historical price data for a specified stock ticker and time range. Supports both Unix timestamp and YYYY-MM-DD string formats for date inputs. **Pro+ Feature**: Multiple tickers (up to 20) can be requested at once using the 'tickers' array parameter. Derived intervals (2m, 5m, 15m, 30m, 90m) are resampled from 1-minute data; 5d, 1wk, 1mo, 3mo are resampled from daily data. **Important**: 1-minute based intervals (1m, 2m, 5m, 15m, 30m, 90m) are limited to approximately the last 5 days of data. Hourly data (60m, 1h) is available for approximately the last 2 years. Daily and above (1d, 5d, 1wk, 1mo, 3mo) have full historical data.",
        "operationId": "post_price",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "end_date": 1752186964,
                "interval": "1d",
                "start_date": 1752108881,
                "ticker": "W"
              },
              "schema": {
                "properties": {
                  "adjust": {
                    "default": "adjusted",
                    "description": "Price adjustment mode. 'adjusted' (default) returns prices adjusted for stock splits so the series is continuous across split dates, and is available on all plans. 'raw' returns split-unadjusted prices, so historical bars before a split show the actual higher pre-split price (e.g. a stock that did a 4:1 split shows ~4x higher prices before the split date, then a discontinuity at the split). **'raw' is a Pro+ Feature**: requests with adjust=raw on a non-Pro+ key are rejected with HTTP 401 before any data is fetched; 'adjusted'/omitted is unaffected.",
                    "enum": [
                      "adjusted",
                      "raw"
                    ],
                    "example": "raw",
                    "type": "string"
                  },
                  "callback_url": {
                    "description": "Optional URL to which the API response will be forwarded as a webhook",
                    "example": "https://your-server.com/webhooks/price-callback",
                    "type": "string"
                  },
                  "end_date": {
                    "description": "End date for historical data. Accepts Unix timestamp (integer) or YYYY-MM-DD format (string)."
                  },
                  "full_data": {
                    "description": "If true, the response includes a 'full_data' object with company info and analyst price targets. Default false.",
                    "example": true,
                    "type": "boolean"
                  },
                  "interval": {
                    "description": "Time interval for the data points. Note specific date range limitations for intraday intervals.",
                    "enum": [
                      "1m",
                      "2m",
                      "5m",
                      "15m",
                      "30m",
                      "60m",
                      "90m",
                      "1h",
                      "1d",
                      "5d",
                      "1wk",
                      "1mo",
                      "3mo"
                    ],
                    "example": "1d",
                    "type": "string"
                  },
                  "start_date": {
                    "description": "Start date for historical data. Accepts Unix timestamp (integer) or YYYY-MM-DD format (string)."
                  },
                  "ticker": {
                    "description": "Single stock ticker symbol (e.g., AAPL, MSFT, GOOGL)",
                    "example": "MSFT",
                    "type": "string"
                  },
                  "tickers": {
                    "description": "Array of stock ticker symbols (up to 20). Requires Pro+ subscription.",
                    "example": [
                      "AAPL",
                      "MSFT",
                      "GOOGL"
                    ],
                    "items": {},
                    "type": "array"
                  }
                },
                "required": [
                  "ticker",
                  "tickers",
                  "start_date",
                  "end_date",
                  "interval"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "data": {
                    "close": [
                      56.62,
                      56.62,
                      56.57,
                      56.99,
                      56.99,
                      57.459999084472656,
                      58.5099983215332,
                      58.849998474121094,
                      59.154998779296875,
                      59.34000015258789,
                      59.255001068115234,
                      58.83000183105469,
                      58.83,
                      58.95,
                      58.79,
                      58.85
                    ],
                    "high": [
                      56.62,
                      56.62,
                      56.78,
                      57.3852,
                      56.99,
                      57.630001068115234,
                      58.959999084472656,
                      58.90999984741211,
                      59.31999969482422,
                      59.47999954223633,
                      59.5099983215332,
                      59.400001525878906,
                      59.0,
                      59.0,
                      58.83,
                      58.85
                    ],
                    "low": [
                      56.62,
                      56.62,
                      56.57,
                      55.77,
                      56.99,
                      56.525001525878906,
                      57.40999984741211,
                      58.23809814453125,
                      58.650001525878906,
                      58.9900016784668,
                      58.86000061035156,
                      58.77000045776367,
                      58.5001,
                      58.57,
                      58.79,
                      58.85
                    ],
                    "open": [
                      56.62,
                      56.62,
                      56.75,
                      56.79,
                      56.99,
                      56.959999084472656,
                      57.45000076293945,
                      58.5099983215332,
                      58.849998474121094,
                      59.18000030517578,
                      59.34000015258789,
                      59.27000045776367,
                      58.83,
                      58.57,
                      58.83,
                      58.85
                    ],
                    "price": 58.83,
                    "ticker": "W",
                    "timestamp": [
                      1752134400,
                      1752138000,
                      1752145200,
                      1752148800,
                      1752152400,
                      1752154200,
                      1752157800,
                      1752161400,
                      1752165000,
                      1752168600,
                      1752172200,
                      1752175800,
                      1752177600,
                      1752181200,
                      1752184800,
                      1752185539
                    ],
                    "volume": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      505383,
                      1556023,
                      357222,
                      336612,
                      437100,
                      798095,
                      1142203,
                      365533,
                      0,
                      0,
                      0
                    ]
                  },
                  "success": true
                },
                "schema": {
                  "properties": {
                    "count": {
                      "description": "Number of tickers requested (only present for multi-ticker requests)",
                      "type": "integer"
                    },
                    "data": {
                      "description": "Container for the filtered price data. For multi-ticker requests, this is an object where each key is a ticker symbol containing the price data.",
                      "properties": {
                        "close": {
                          "description": "Array of closing prices for each time period",
                          "items": {},
                          "type": "array"
                        },
                        "high": {
                          "description": "Array of highest prices for each time period",
                          "items": {},
                          "type": "array"
                        },
                        "low": {
                          "description": "Array of lowest prices for each time period",
                          "items": {},
                          "type": "array"
                        },
                        "open": {
                          "description": "Array of opening prices for each time period",
                          "items": {},
                          "type": "array"
                        },
                        "price": {
                          "description": "Current/regular market price",
                          "type": "number"
                        },
                        "ticker": {
                          "description": "Stock ticker symbol",
                          "type": "string"
                        },
                        "timestamp": {
                          "description": "Array of Unix timestamps for each data point",
                          "items": {},
                          "type": "array"
                        },
                        "volume": {
                          "description": "Array of trading volumes for each time period",
                          "items": {},
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "full_data": {
                      "description": "Present when request included full_data: true. Contains company info and analyst price targets.",
                      "properties": {
                        "company_info": {
                          "description": "Company details (address, officers, financials, etc.)"
                        },
                        "price_target": {
                          "description": "Analyst price targets (current, high, low, mean, median)"
                        }
                      },
                      "type": "object"
                    },
                    "multi_ticker": {
                      "description": "Present and true when multiple tickers were requested. When true, 'data' is an object keyed by ticker symbol.",
                      "type": "boolean"
                    },
                    "success": {
                      "description": "Indicates if the request was successful",
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Intraday interval requires data within the last 60 days"
          },
          "401": {
            "description": "This endpoint requires a Pro+ subscription"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Historical Price"
      }
    },
    "/api/search": {
      "post": {
        "description": "Search for tickers, company names, or CUSIPs",
        "operationId": "post_search",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "query": "Tesla"
              },
              "schema": {
                "properties": {
                  "callback_url": {
                    "description": "Optional URL to which the API response will be forwarded as a webhook",
                    "example": "https://your-server.com/webhooks/search-callback",
                    "type": "string"
                  },
                  "cik": {
                    "description": "Search by specific CIK number",
                    "example": "884394",
                    "type": "string"
                  },
                  "cusip": {
                    "description": "Search by specific CUSIP number",
                    "example": "88160R101",
                    "type": "string"
                  },
                  "query": {
                    "description": "General search term for stock names, tickers, etc.",
                    "example": "Tesla",
                    "type": "string"
                  },
                  "ticker": {
                    "description": "Search by specific ticker symbol",
                    "example": "TSLA",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "cusip": "88160R101",
                    "industry": "Motor Vehicles & Passenger Car Bodies",
                    "main_category": "Automotive",
                    "stockName": "Tesla, Inc.",
                    "ticker": "TSLA"
                  }
                ],
                "schema": {
                  "properties": {
                    "description": {
                      "description": "Array of matching securities"
                    },
                    "items": {
                      "properties": {
                        "cik": {
                          "description": "The CIK identifier",
                          "type": "string"
                        },
                        "cusip": {
                          "description": "The CUSIP identifier",
                          "type": "string"
                        },
                        "industry": {
                          "description": "SEC SIC industry classification (e.g. 'Motor Vehicles & Passenger Car Bodies')",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "main_category": {
                          "description": "High-level sector category derived from SIC code (e.g. 'Technology', 'Healthcare', 'Energy', 'Financial Services', 'Automotive')",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "stockName": {
                          "description": "The name of the stock/company",
                          "type": "string"
                        },
                        "ticker": {
                          "description": "The ticker symbol",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": {
                      "description": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Search"
      }
    },
    "/api/sip/most_actives": {
      "get": {
        "description": "The most active stocks for the current session, ranked by volume or trade count (from the full consolidated tape). **Pro+ Feature**: requires a Pro+ subscription.",
        "operationId": "get_most_actives",
        "parameters": [
          {
            "description": "Ranking metric: volume or trades.",
            "in": "query",
            "name": "by",
            "required": false,
            "schema": {
              "default": "volume",
              "description": "Ranking metric: volume or trades.",
              "example": "volume",
              "type": "string"
            }
          },
          {
            "description": "Number of stocks to return (1-100).",
            "in": "query",
            "name": "top",
            "required": false,
            "schema": {
              "default": 10,
              "description": "Number of stocks to return (1-100).",
              "example": 10,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "last_updated": "2024-02-28T15:30:00Z",
                  "most_actives": [
                    {
                      "ticker": "SOAR",
                      "trade_count": 790750,
                      "volume": 638529492
                    }
                  ]
                },
                "schema": {
                  "properties": {
                    "last_updated": {
                      "description": "When the screen was last computed (RFC-3339, UTC)",
                      "type": "string"
                    },
                    "most_actives": {
                      "description": "The most active stocks.",
                      "items": {},
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid parameter"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "502": {
            "description": "Upstream unavailable"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Most Active Stocks"
      }
    },
    "/api/sip/movers": {
      "get": {
        "description": "Top gaining and losing stocks for the current session, ranked by percent change (computed from the full consolidated tape). **Pro+ Feature**: requires a Pro+ subscription.",
        "operationId": "get_movers",
        "parameters": [
          {
            "description": "Number of gainers and losers to return, each (1-50).",
            "in": "query",
            "name": "top",
            "required": false,
            "schema": {
              "default": 10,
              "description": "Number of gainers and losers to return, each (1-50).",
              "example": 10,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "gainers": [
                    {
                      "change": 0.83,
                      "percent_change": 16.76,
                      "price": 8.88,
                      "ticker": "AZUL"
                    }
                  ],
                  "last_updated": "2024-02-28T15:30:00Z",
                  "losers": [
                    {
                      "change": -1.0,
                      "percent_change": -5.0,
                      "price": 19.0,
                      "ticker": "XYZ"
                    }
                  ],
                  "market_type": "stocks"
                },
                "schema": {
                  "properties": {
                    "gainers": {
                      "description": "Top gainers.",
                      "items": {},
                      "type": "array"
                    },
                    "last_updated": {
                      "description": "When the screen was last computed (RFC-3339, UTC)",
                      "type": "string"
                    },
                    "losers": {
                      "description": "Top losers (same fields as gainers).",
                      "items": {},
                      "type": "array"
                    },
                    "market_type": {
                      "description": "Always 'stocks'",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "502": {
            "description": "Upstream unavailable"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Market Movers"
      }
    },
    "/api/splits": {
      "post": {
        "description": "Get the stock split calendar for a ticker. Returns every split with its effective date and ratio, newest first. A ticker that has never split returns an empty list (not an error). **Pro+ Feature**: this endpoint requires a Pro+ subscription.",
        "operationId": "post_splits",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "ticker": "AAPL"
              },
              "schema": {
                "properties": {
                  "callback_url": {
                    "description": "Optional URL to which the API response will be forwarded as a webhook",
                    "example": "https://your-server.com/webhooks/splits-callback",
                    "type": "string"
                  },
                  "ticker": {
                    "description": "Stock ticker symbol (e.g., AAPL, TSLA, NVDA)",
                    "example": "AAPL",
                    "type": "string"
                  }
                },
                "required": [
                  "ticker"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "splits": [
                    {
                      "date": "2020-08-31",
                      "ratio": 4.0
                    },
                    {
                      "date": "2014-06-09",
                      "ratio": 7.0
                    },
                    {
                      "date": "2005-02-28",
                      "ratio": 2.0
                    },
                    {
                      "date": "2000-06-21",
                      "ratio": 2.0
                    },
                    {
                      "date": "1987-06-16",
                      "ratio": 2.0
                    }
                  ],
                  "ticker": "AAPL"
                },
                "schema": {
                  "properties": {
                    "splits": {
                      "description": "List of split events, newest first. Empty if the ticker has never split.",
                      "items": {},
                      "type": "array"
                    },
                    "ticker": {
                      "description": "The ticker the split calendar is for",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Missing required parameter: 'ticker'"
          },
          "401": {
            "description": "This endpoint requires a Pro+ subscription"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "502": {
            "description": "Split calendar unavailable"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Stock Splits"
      }
    },
    "/api/stats": {
      "post": {
        "description": "Get market statistics including top gainers, losers, most active stocks, and top mutual funds.",
        "operationId": "post_stats",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "data_type": "gainers"
              },
              "schema": {
                "properties": {
                  "data_type": {
                    "description": "The type of market data to retrieve. Valid options: gainers, losers, active, mutual_funds",
                    "example": "gainers",
                    "type": "string"
                  }
                },
                "required": [
                  "data_type"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "count": 25,
                  "data": [
                    {
                      "averageDailyVolume10Day": 1408700,
                      "averageDailyVolume3Month": 2023929,
                      "displayName": "Beam Therapeutics",
                      "longName": "Beam Therapeutics Inc.",
                      "marketCap": 3418690816,
                      "regularMarketChange": 33.69,
                      "regularMarketChangePercent": 22.2868,
                      "regularMarketDayHigh": 36.44,
                      "regularMarketDayLow": 29.16,
                      "regularMarketDayRange": "29.16 - 36.44",
                      "regularMarketOpen": 29.41,
                      "regularMarketPreviousClose": 27.55,
                      "regularMarketPrice": 33.69,
                      "regularMarketTime": 1768251601,
                      "regularMarketVolume": 7044582,
                      "sharesOutstanding": 101474944,
                      "shortName": "Beam Therapeutics Inc.",
                      "ticker": "BEAM"
                    }
                  ],
                  "data_type": "gainers",
                  "success": true
                },
                "schema": {
                  "properties": {
                    "count": {
                      "description": "Number of items returned.",
                      "type": "integer"
                    },
                    "data": {
                      "description": "Array of stock/fund data",
                      "items": {
                        "properties": {
                          "averageDailyVolume10Day": {
                            "description": "10-day average daily volume",
                            "type": "number"
                          },
                          "averageDailyVolume3Month": {
                            "description": "3-month average daily volume",
                            "type": "number"
                          },
                          "displayName": {
                            "description": "Display name of the company (may not be present for all items)",
                            "type": "string"
                          },
                          "longName": {
                            "description": "Full company name",
                            "type": "string"
                          },
                          "marketCap": {
                            "description": "Market capitalization",
                            "type": "number"
                          },
                          "regularMarketChange": {
                            "description": "Price change",
                            "type": "number"
                          },
                          "regularMarketChangePercent": {
                            "description": "Price change percentage",
                            "type": "number"
                          },
                          "regularMarketDayHigh": {
                            "description": "Day high price",
                            "type": "number"
                          },
                          "regularMarketDayLow": {
                            "description": "Day low price",
                            "type": "number"
                          },
                          "regularMarketDayRange": {
                            "description": "Day price range",
                            "type": "string"
                          },
                          "regularMarketOpen": {
                            "description": "Market open price",
                            "type": "number"
                          },
                          "regularMarketPreviousClose": {
                            "description": "Previous close price",
                            "type": "number"
                          },
                          "regularMarketPrice": {
                            "description": "Current market price",
                            "type": "number"
                          },
                          "regularMarketTime": {
                            "description": "Unix timestamp of last update",
                            "type": "integer"
                          },
                          "regularMarketVolume": {
                            "description": "Trading volume",
                            "type": "number"
                          },
                          "sharesOutstanding": {
                            "description": "Number of shares outstanding",
                            "type": "number"
                          },
                          "shortName": {
                            "description": "Short company name",
                            "type": "string"
                          },
                          "ticker": {
                            "description": "Stock ticker symbol",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "data_type": {
                      "description": "The type of market data returned.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates if the request was successfully processed.",
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "description": "Invalid request format"
          },
          "401": {
            "description": "Authentication failed"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          },
          "503": {
            "description": "Failed to fetch market data"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Market Statistics"
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "servers": [
    {
      "url": "https://api.prixe.io"
    }
  ]
}
