openapi: 3.2.0 info: title: Adanos Market Sentiment Polymarket Stocks API description: Market sentiment and attention data for **stocks** across **Reddit**, **X/Twitter**, **financial news**, and **Polymarket**, plus a separate **Reddit crypto** API and direct finance-tuned **text sentiment analysis** (1,000+ term finance lexicon). termsOfService: https://adanos.org/terms contact: name: API Support url: https://api.adanos.org/ email: support@adanos.org license: name: MIT (OpenAPI document only) url: https://opensource.org/licenses/MIT version: 1.50.0 servers: - url: https://api.adanos.org description: Production tags: - name: Polymarket Stocks description: Prediction-market based stock sentiment and attention from Polymarket prices, trades, liquidity and orderbook signals. Metrics are market-centric rather than mention-based. paths: /polymarket/stocks/v1/trending: get: tags: - Polymarket Stocks summary: Trending stocks description: 'Returns the stocks with the strongest Polymarket prediction-market activity in the selected period, ranked by `buzz_score`. **Includes:** - `buzz_score`: normalized 0-100 activity score used for ranking; bullish and bearish market activity can both rank highly - `trend`: flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today) - `sentiment_score`, `bullish_pct`, `bearish_pct`: outcome-aware market sentiment signals - `trade_count`, `market_count`, `unique_traders`, `total_liquidity`: activity, breadth, observed participation and liquidity signals - `trend_history`: independent UTC-day buzz scores, oldest to newest; minimum 7 values. For a closed single-day window with an available final Daily score, the final value equals `buzz_score`; live and multi-day values can differ. Missing days are `0.0`' operationId: getPolymarketTrendingStocks security: - ApiKeyAuth: [] parameters: - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Maximum stocks to return examples: - 20 default: 20 title: Limit description: Maximum stocks to return - name: offset in: query required: false schema: type: integer minimum: 0 description: Number of items to skip examples: - 0 default: 0 title: Offset description: Number of items to skip - name: type in: query required: false schema: anyOf: - enum: - stock - etf - all type: string - type: 'null' description: Filter by asset type. Omit or use 'all' for all assets. examples: - stock title: Type description: Filter by asset type. Omit or use 'all' for all assets. responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/PolymarketTrendingStock' title: Response Getpolymarkettrendingstocks example: - ticker: TSLA company_name: Tesla, Inc. buzz_score: 71.4 trend: rising trade_count: 312 market_count: 27 current_market_count: 12 unique_traders: 119 sentiment_score: 0.34 bullish_pct: 67 bearish_pct: 33 total_liquidity: 94750.0 trend_history: - 48.2 - 51.0 - 55.3 - 61.1 - 65.8 - 69.2 - 71.4 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=30 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getpolymarkettrendingstocks '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/polymarket/stocks/v1/trending?from=2026-05-01&to=2026-05-07&limit=5\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/polymarket/stocks/v1/trending?from=2026-05-01&to=2026-05-07&limit=5\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/polymarket/stocks/v1/trending?from=2026-05-01&to=2026-05-07&limit=5\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" /polymarket/stocks/v1/trending/sectors: get: tags: - Polymarket Stocks summary: Trending sectors description: 'Returns the sectors with the strongest aggregated Polymarket prediction-market activity in the selected period, ranked by `buzz_score`. **Includes:** - `buzz_score`: normalized 0-100 activity score used for ranking - `trend`: flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today) - `trade_count`, `market_count`, `unique_traders`, `total_liquidity`: activity, breadth, observed participation and liquidity signals - `sentiment_score`, `bullish_pct`, `bearish_pct`: outcome-aware market sentiment signals - `top_tickers`: up to 5 tickers driving the sector result' operationId: getPolymarketTrendingSectors security: - ApiKeyAuth: [] parameters: - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Maximum sectors to return examples: - 20 default: 20 title: Limit description: Maximum sectors to return - name: offset in: query required: false schema: type: integer minimum: 0 description: Number of items to skip examples: - 0 default: 0 title: Offset description: Number of items to skip responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/PolymarketTrendingSector' title: Response Getpolymarkettrendingsectors example: - buzz_score: 72.8 trend: rising trade_count: 312 market_count: 147 current_market_count: 71 unique_tickers: 6 unique_traders: 211 sentiment_score: 0.22 bullish_pct: 61 bearish_pct: 39 total_liquidity: 325000.0 trend_history: - 48.2 - 51.0 - 55.3 - 61.1 - 65.8 - 69.2 - 72.8 top_tickers: - AAPL - MSFT - NVDA - TSLA - AMD sector: Technology headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=300 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getpolymarkettrendingsectors '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/polymarket/stocks/v1/trending/sectors?from=2026-05-01&to=2026-05-07&limit=5\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/polymarket/stocks/v1/trending/sectors?from=2026-05-01&to=2026-05-07&limit=5\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/polymarket/stocks/v1/trending/sectors?from=2026-05-01&to=2026-05-07&limit=5\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" /polymarket/stocks/v1/trending/countries: get: tags: - Polymarket Stocks summary: Trending countries description: 'Returns the countries with the strongest aggregated Polymarket prediction-market activity in the selected period, ranked by `buzz_score`. **Includes:** - `buzz_score`: normalized 0-100 activity score used for ranking - `trend`: flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today) - `trade_count`, `market_count`, `unique_traders`, `total_liquidity`: activity, breadth, observed participation and liquidity signals - `sentiment_score`, `bullish_pct`, `bearish_pct`: outcome-aware market sentiment signals - `top_tickers`: up to 5 tickers driving the country result' operationId: getPolymarketTrendingCountries security: - ApiKeyAuth: [] parameters: - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Maximum countries to return examples: - 20 default: 20 title: Limit description: Maximum countries to return - name: offset in: query required: false schema: type: integer minimum: 0 description: Number of items to skip examples: - 0 default: 0 title: Offset description: Number of items to skip responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/PolymarketTrendingCountry' title: Response Getpolymarkettrendingcountries example: - buzz_score: 70.1 trend: stable trade_count: 712 market_count: 265 current_market_count: 129 unique_tickers: 10 unique_traders: 402 sentiment_score: 0.18 bullish_pct: 58 bearish_pct: 42 total_liquidity: 472000.0 trend_history: - 52.1 - 54.0 - 56.8 - 59.2 - 61.0 - 60.1 - 70.1 top_tickers: - AAPL - TSLA - NVDA - AMZN - GOOGL country: United States headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=300 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getpolymarkettrendingcountries '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/polymarket/stocks/v1/trending/countries?from=2026-05-01&to=2026-05-07&limit=5\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/polymarket/stocks/v1/trending/countries?from=2026-05-01&to=2026-05-07&limit=5\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/polymarket/stocks/v1/trending/countries?from=2026-05-01&to=2026-05-07&limit=5\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" /polymarket/stocks/v1/stock/{ticker}: get: tags: - Polymarket Stocks summary: Stock Sentiment description: 'Returns Polymarket-based sentiment and activity for one stock ticker. The response combines: - Period metrics for the date window defined by `days` or `from`/`to`. - Representative market-level evidence in `top_mentions`. - A compact current market read in `pulse`. **Fields:** - `sentiment_score`, `bullish_pct`, `bearish_pct`: outcome-aware sentiment derived from Polymarket market prices and outcomes - `buzz_score`: normalized activity score for the selected period; both bullish and bearish activity can increase buzz - `trend`: recent flow momentum, comparing the current 3 UTC days with the previous 3 UTC days using trades, volume, market breadth and liquidity; this is not stock price movement - `trade_count`, `market_count`, `unique_traders`, `total_liquidity`: period activity, breadth, observed participation and liquidity - `daily_trend`: daily activity and sentiment values for the selected window - `top_mentions`: representative Polymarket markets behind the ticker-level signals, including market-level `sentiment_score` and `buzz_score` - `pulse`: compact current interpretation from the latest stored open-market snapshots **Notes:** - `pulse` is current-state oriented and does not duplicate aggregate response fields. - Use `top_mentions` for concrete market examples; `pulse` intentionally stays compact. - `top_mentions` includes only markets observed active/open in the selected period; ranking prioritizes outcome-aware directional evidence, keeps opposing signals visible when present, then uses trade count, market status, volume and liquidity as tie-breakers. - Prices, volume and liquidity in `top_mentions` come from the selected in-period snapshot, not necessarily the latest live market state. - `active` indicates whether the market is currently open, so older in-period evidence can now be inactive, resolved or expired. - `market_status` can be `tradable`, `open`, `resolved`, `expired` or `inactive`. - For windows longer than snapshot retention, aggregate metrics can still use `polymarket_daily_stats`; `top_mentions` is limited to retained or stored representative market snapshots. - Returns `200` with `found: false` when the ticker is supported but this service has no qualifying data in the requested window. Returns `404` only when the ticker is unsupported.' operationId: getPolymarketStock security: - ApiKeyAuth: [] parameters: - name: ticker in: path required: true schema: type: string pattern: ^\$?(?:[A-Za-z0-9]{1,8}[.-][A-Za-z]|[A-Za-z0-9]{0}[A-Za-z][A-Za-z0-9]{0,9}|[A-Za-z0-9]{1}[A-Za-z][A-Za-z0-9]{0,8}|[A-Za-z0-9]{2}[A-Za-z][A-Za-z0-9]{0,7}|[A-Za-z0-9]{3}[A-Za-z][A-Za-z0-9]{0,6}|[A-Za-z0-9]{4}[A-Za-z][A-Za-z0-9]{0,5}|[A-Za-z0-9]{5}[A-Za-z][A-Za-z0-9]{0,4}|[A-Za-z0-9]{6}[A-Za-z][A-Za-z0-9]{0,3}|[A-Za-z0-9]{7}[A-Za-z][A-Za-z0-9]{0,2}|[A-Za-z0-9]{8}[A-Za-z][A-Za-z0-9]{0,1}|[A-Za-z0-9]{9}[A-Za-z][A-Za-z0-9]{0,0}|[0-9]{3,10})$ description: Stock ticker symbol (e.g., TSLA, $AAPL, BRK.A) examples: - AAPL - BRK.A title: Ticker description: Stock ticker symbol (e.g., TSLA, $AAPL, BRK.A) - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolymarketStockDetailResponse' example: ticker: AAPL company_name: Apple Inc. found: true buzz_score: 68.9 trend: stable period_days: 7 trade_count: 312 market_count: 27 current_market_count: 12 unique_traders: 119 sentiment_score: 0.28 bullish_pct: 64 bearish_pct: 36 total_liquidity: 128000.0 daily_trend: - date: '2026-02-13' trade_count: 5 sentiment_score: 0.25 buzz_score: 64.1 bullish_pct: 64 bearish_pct: 21 top_mentions: - condition_id: 0xabc... question: Will AAPL close above $220 this week? market_type: close_above trade_count: 42 sentiment_score: 0.23 buzz_score: 77.2 yes_price: 0.62 no_price: 0.38 liquidity: 7905.52 volume_24h: 2408.43 end_date: '2026-02-28' active: true market_status: tradable pulse: mood: mixed confidence: 60.0 thin_data: false why: - opposing_market_signals - upside_targets_rejected - floor_support warnings: - high_average_spread - low_trade_breadth evidence: directional_coverage: 1.0 traded_market_pct: 0.231 zero_trade_market_pct: 0.769 avg_spread: 0.099 snapshot_at: '2026-06-24T06:25:53Z' headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=30 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getpolymarketstock '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Unsupported ticker content: application/json: example: detail: error_code: unsupported_ticker message: Unsupported ticker $XYZ. This ticker is not supported by Adanos v1. schema: $ref: '#/components/schemas/UnsupportedAssetError' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/polymarket/stocks/v1/stock/AAPL?from=2026-05-01&to=2026-05-07\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/polymarket/stocks/v1/stock/AAPL?from=2026-05-01&to=2026-05-07\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/polymarket/stocks/v1/stock/AAPL?from=2026-05-01&to=2026-05-07\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" /polymarket/stocks/v1/market-sentiment: get: tags: - Polymarket Stocks summary: Market Sentiment description: 'Returns the service-level Polymarket market sentiment snapshot across all tracked stocks when you want a single Polymarket-wide market state instead of per-ticker rankings. It includes service-wide buzz, sentiment split, activity trend, breadth metrics and the top drivers by current `buzz_score`. `buzz_score` here means relative Polymarket market heat, not pure bullishness. It measures how hot overall Polymarket stock-market activity is versus Polymarket''s own trailing 90-day baseline: - around `50` = normal market activity - higher = more active than usual - lower = quieter than usual `trend` is flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). Use `sentiment_score`, `bullish_pct` and `bearish_pct` for direction.' operationId: getPolymarketMarketSentiment security: - ApiKeyAuth: [] parameters: - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolymarketMarketSentimentResponse' example: buzz_score: 58.4 trend: stable trade_count: 512 market_count: 93 current_market_count: 64 unique_traders: 281 total_liquidity: 245000.0 active_tickers: 31 sentiment_score: 0.11 positive_count: 41 negative_count: 29 neutral_count: 23 bullish_pct: 44 bearish_pct: 31 trend_history: - 52.1 - 54.0 - 56.8 - 59.2 - 61.0 - 60.1 - 58.4 drivers: - ticker: AAPL trade_count: 52 buzz_score: 68.9 sentiment_score: 0.28 - ticker: TSLA trade_count: 47 buzz_score: 66.3 sentiment_score: 0.19 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=300 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getpolymarketmarketsentiment '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/polymarket/stocks/v1/market-sentiment?from=2026-05-01&to=2026-05-07\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/polymarket/stocks/v1/market-sentiment?from=2026-05-01&to=2026-05-07\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/polymarket/stocks/v1/market-sentiment?from=2026-05-01&to=2026-05-07\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" /polymarket/stocks/v1/compare: get: tags: - Polymarket Stocks summary: Compare stocks description: 'Compare up to 10 stock or ETF tickers side by side using Polymarket market activity. Use it when you already know the tickers and want a compact ranked table instead of full detail reports. Results are sorted by `buzz_score` descending and include `trend`, `trend_history`, `trade_count`, `market_count`, `current_market_count`, `unique_traders`, `sentiment_score`, `bullish_pct`, `bearish_pct` and `total_liquidity`. `trend` is flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today).' operationId: comparePolymarketStocks security: - ApiKeyAuth: [] parameters: - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true - name: tickers in: query required: true schema: type: string description: Comma-separated ticker list (max 10) examples: - TSLA,NVDA,AMD title: Tickers description: Comma-separated ticker list (max 10) responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolymarketCompareResponse' example: period_days: 7 stocks: - ticker: AAPL company_name: Apple Inc. buzz_score: 68.9 trend: stable trade_count: 312 market_count: 27 current_market_count: 12 unique_traders: 119 sentiment_score: 0.28 bullish_pct: 64 bearish_pct: 36 total_liquidity: 128000.0 trend_history: - 48.2 - 51.0 - 55.3 - 61.1 - 65.8 - 69.2 - 68.9 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=30 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Comparepolymarketstocks '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' '400': description: Invalid compare item list content: application/json: example: detail: error: too_many_tickers message: Maximum 10 tickers allowed. max_items: 10 item_name: ticker examples: too_many_tickers: summary: Too many tickers value: detail: error: too_many_tickers message: Maximum 10 tickers allowed. max_items: 10 item_name: ticker no_valid_tickers: summary: No valid tickers value: detail: error: no_valid_tickers message: At least one valid ticker is required. max_items: 10 item_name: ticker schema: $ref: '#/components/schemas/CompareLimitError' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/polymarket/stocks/v1/compare?from=2026-05-01&to=2026-05-07&tickers=TSLA,AAPL,NVDA\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/polymarket/stocks/v1/compare?from=2026-05-01&to=2026-05-07&tickers=TSLA,AAPL,NVDA\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/polymarket/stocks/v1/compare?from=2026-05-01&to=2026-05-07&tickers=TSLA,AAPL,NVDA\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" /polymarket/stocks/v1/search: get: tags: - Polymarket Stocks summary: Search stocks description: Search supported stocks and ETFs, then enrich the matches with Polymarket activity. Results prioritize exact ticker matches first, then prefixes, then name/alias matches and include a compact `summary` block for the last 7 UTC calendar days. operationId: searchPolymarketStocks security: - ApiKeyAuth: [] parameters: - name: q in: query required: true schema: type: string minLength: 2 maxLength: 50 description: Search query (minimum 2 non-$ characters after trimming) examples: - tesla title: Q description: Search query (minimum 2 non-$ characters after trimming) - name: limit in: query required: false schema: type: integer maximum: 50 minimum: 1 description: Maximum number of results to return examples: - 20 default: 20 title: Limit description: Maximum number of results to return responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolymarketSearchResponse' example: query: tesla count: 1 period_days: 7 results: - ticker: TSLA name: Tesla Inc. type: Stock exchange: NASDAQ sector: Consumer Discretionary country: United States aliases: - Tesla - Elon summary: trade_count: 14 buzz_score: 71.4 trend: rising sentiment_score: 0.34 bearish_pct: 33 bullish_pct: 67 current_market_count: 12 market_count: 27 total_liquidity: 94750.0 unique_traders: 119 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=15 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' '422': description: Invalid search query parameters content: application/json: examples: fixed_window: summary: Search endpoints use a fixed summary window value: detail: error: Invalid search parameters message: Search endpoints use a fixed last-7-UTC-calendar-day summary window. unsupported_parameters: - days normalized_query: summary: Search query is too short after normalization value: detail: Search query must contain at least 2 non-$ characters after trimming validation: summary: Query parameter validation failed value: detail: - type: string_too_short loc: - query - q msg: String should have at least 2 characters input: t ctx: min_length: 2 schema: anyOf: - $ref: '#/components/schemas/InvalidSearchParametersError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Searchpolymarketstocks x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/polymarket/stocks/v1/search?q=tesla&limit=5\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/polymarket/stocks/v1/search?q=tesla&limit=5\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/polymarket/stocks/v1/search?q=tesla&limit=5\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" /polymarket/stocks/v1/stats: get: tags: - Polymarket Stocks summary: Service statistics description: 'Returns high-level database coverage metrics for the Polymarket stock dataset. Use this endpoint to understand how much market activity is indexed: - total aggregated trade activity - total distinct markets captured - unique stock tickers with indexed Polymarket market rows - currently open markets and tickers - today''s UTC trade activity, traded markets and traded tickers - supported ticker count from the reference universe' operationId: getPolymarketStats responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolymarketStatsResponse' example: total_trades: 15420 total_markets: 713 unique_tickers: 119 open_markets_current: 284 open_tickers_current: 71 traded_markets_today: 39 traded_tickers_today: 17 trades_today: 84 supported_tickers: 35000 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=300 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. '429': description: Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/RateLimitError' examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free '503': description: Database temporarily unavailable content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: detail: Database temporarily unavailable '504': description: Analytics request deadline exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: detail: Request deadline exceeded security: - ApiKeyAuth: [] x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/polymarket/stocks/v1/stats\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/polymarket/stocks/v1/stats\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/polymarket/stocks/v1/stats\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" /polymarket/stocks/v1/stock/{ticker}/mentions: get: tags: - Polymarket Stocks summary: Raw Mentions description: 'Returns raw Polymarket market snapshot rows for a specific ticker within the live raw-data retention window. **Professional account required.** Free and Hobby accounts cannot use this endpoint. **Use this endpoint when you need:** - original market questions, prices, liquidity, volume, trade counters and timestamps - outcome-aware market price sentiment for individual snapshot rows - repeated snapshots for the same market over time **Notes:** - Use `from` and `to` for explicit UTC date windows - Results are ordered newest first and support deterministic `offset` + `limit` pagination - empty result sets return `200` with `results=[]` - The same `condition_id` can appear multiple times across different `fetched_at` snapshots - `active` indicates whether the market is currently open, using the latest stored state for that `condition_id`; `market_status` compactly distinguishes `tradable`, `open`, `resolved`, `expired` and `inactive` - `buy_trades` and `sell_trades` are activity counters, not bullish/bearish sentiment' operationId: getPolymarketStockRawMentions security: - ApiKeyAuth: [] parameters: - name: ticker in: path required: true schema: type: string pattern: ^\$?(?:[A-Za-z0-9]{1,8}[.-][A-Za-z]|[A-Za-z0-9]{0}[A-Za-z][A-Za-z0-9]{0,9}|[A-Za-z0-9]{1}[A-Za-z][A-Za-z0-9]{0,8}|[A-Za-z0-9]{2}[A-Za-z][A-Za-z0-9]{0,7}|[A-Za-z0-9]{3}[A-Za-z][A-Za-z0-9]{0,6}|[A-Za-z0-9]{4}[A-Za-z][A-Za-z0-9]{0,5}|[A-Za-z0-9]{5}[A-Za-z][A-Za-z0-9]{0,4}|[A-Za-z0-9]{6}[A-Za-z][A-Za-z0-9]{0,3}|[A-Za-z0-9]{7}[A-Za-z][A-Za-z0-9]{0,2}|[A-Za-z0-9]{8}[A-Za-z][A-Za-z0-9]{0,1}|[A-Za-z0-9]{9}[A-Za-z][A-Za-z0-9]{0,0}|[0-9]{3,10})$ description: Stock ticker symbol (e.g., TSLA, $AAPL, BRK.A) examples: - TSLA - BRK.A title: Ticker description: Stock ticker symbol (e.g., TSLA, $AAPL, BRK.A) - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 90 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Maximum number of raw Polymarket snapshot rows to return examples: - 50 default: 50 title: Limit description: Maximum number of raw Polymarket snapshot rows to return - name: offset in: query required: false schema: type: integer minimum: 0 description: Number of raw mention rows to skip for offset-based pagination. examples: - 0 default: 0 title: Offset description: Number of raw mention rows to skip for offset-based pagination. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolymarketRawMentionsResponse' example: ticker: NVDA period_days: 7 count: 1 results: - condition_id: 0xabc... event_id: '12345' market_slug: nvda-up-or-down-on-april-20-2026 question: NVDA up or down on April 20? market_type: up_down strike_price: 250.0 yes_price: 0.63 no_price: 0.37 reference_price: 247.82 reference_price_timestamp: '2026-04-20T14:30:00Z' liquidity: 7905.52 volume_24h: 2408.43 trade_count: 42 buy_trades: 23 sell_trades: 19 unique_traders: 31 sentiment_score: 0.26 sentiment_label: positive end_date: '2026-04-20T23:59:00Z' active: true market_status: tradable fetched_at: '2026-04-20T15:00:00Z' headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=60 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getpolymarketstockrawmentions '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/polymarket/stocks/v1/stock/TSLA/mentions?from=2026-05-01&to=2026-05-07&limit=5\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/polymarket/stocks/v1/stock/TSLA/mentions?from=2026-05-01&to=2026-05-07&limit=5\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/polymarket/stocks/v1/stock/TSLA/mentions?from=2026-05-01&to=2026-05-07&limit=5\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" components: schemas: HistoricalLimitError: properties: detail: $ref: '#/components/schemas/HistoricalLimitErrorDetail' description: Structured error details type: object required: - detail title: HistoricalLimitError description: Error response for historical data limit exceeded (HTTP 403). InvalidPeriodErrorDetail: properties: error: type: string title: Error description: Error type identifier message: type: string title: Message description: Human-readable error message field: anyOf: - type: string - type: 'null' title: Field description: Invalid query parameter name value: anyOf: - type: string - type: integer - type: 'null' title: Value description: Invalid query parameter value today: anyOf: - type: string format: date - type: 'null' title: Today description: Current UTC date used for validation period_from: anyOf: - type: string format: date - type: 'null' title: Period From description: Resolved inclusive UTC start date period_to: anyOf: - type: string format: date - type: 'null' title: Period To description: Resolved inclusive UTC end date available_since: anyOf: - type: string format: date - type: 'null' title: Available Since description: Earliest public data date for the platform retention_from: anyOf: - type: string format: date - type: 'null' title: Retention From description: Earliest date retained for the endpoint requested_days: anyOf: - type: integer - type: 'null' title: Requested Days description: Number of days requested max_days: anyOf: - type: integer - type: 'null' title: Max Days description: Maximum days accepted by the endpoint platform: anyOf: - type: string - type: 'null' title: Platform description: Platform identifier type: object required: - error - message title: InvalidPeriodErrorDetail description: Structured error detail for invalid period windows. PolymarketSearchSummary: properties: trade_count: type: integer minimum: 0.0 title: Trade Count description: Trade count in the last 7 UTC calendar days examples: - 14 buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Buzz score over the last 7 UTC calendar days examples: - 71.4 trend: anyOf: - type: string enum: - rising - falling - stable - type: 'null' title: Trend description: Flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). examples: - rising sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Orderbook-aware implied sentiment over the last 7 UTC calendar days examples: - 0.34 type: object required: - trade_count - buzz_score title: PolymarketSearchSummary description: Compact last-7-days summary attached to Polymarket search results. PolymarketTrendingStock: properties: ticker: type: string title: Ticker description: Stock ticker symbol examples: - TSLA company_name: anyOf: - type: string - type: 'null' title: Company Name description: Company name from ticker_reference examples: - Tesla, Inc. buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Polymarket activity/flow discovery score (0-100); not directional sentiment examples: - 71.4 trend: type: string enum: - rising - falling - stable title: Trend description: Flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). examples: - rising trade_count: type: integer minimum: 0.0 title: Trade Count description: Trade count in selected period examples: - 312 market_count: type: integer minimum: 0.0 title: Market Count description: Distinct markets that existed for ticker within the selected UTC window, counted by market-catalog lifetime overlap examples: - 27 current_market_count: type: integer minimum: 0.0 title: Current Market Count description: Number of currently open markets in the latest UTC-day snapshot for ticker; use this for live-only market breadth examples: - 12 unique_traders: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Unique Traders description: Exact distinct union of observed proxy and explicit maker wallet hashes for the delivered scope and UTC window; null when retained wallet-level trades do not fully cover the window; not a complete market-wide participant census examples: - 119 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Orderbook-aware implied sentiment (-1 to +1); null when no directional sentiment evidence exists in the selected period examples: - 0.34 bullish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bullish Pct description: Outcome-aware bullish market percentage examples: - 67 bearish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bearish Pct description: Outcome-aware bearish market percentage examples: - 33 total_liquidity: type: number minimum: 0.0 title: Total Liquidity description: Windowed aggregated liquidity signal in USD over the selected period; not a current snapshot examples: - 94750.0 trend_history: items: type: number type: array title: Trend History description: Recent buzz history (oldest→newest). Length follows the resolved period, with a minimum of 7 values. Closed historical windows end at `to`. examples: - - 48.2 - 51.0 - 55.3 - 61.1 - 65.8 - 69.2 - 71.4 type: object required: - ticker - buzz_score - trend - trade_count - market_count - current_market_count - bullish_pct - bearish_pct - total_liquidity title: PolymarketTrendingStock description: Trending stock from Polymarket in Reddit/X-compatible shape. examples: - ticker: TSLA company_name: Tesla, Inc. buzz_score: 71.4 trend: rising trade_count: 312 market_count: 27 current_market_count: 12 unique_traders: 119 sentiment_score: 0.34 bullish_pct: 67 bearish_pct: 33 total_liquidity: 94750.0 trend_history: - 48.2 - 51.0 - 55.3 - 61.1 - 65.8 - 69.2 - 71.4 UnsupportedAssetError: properties: detail: $ref: '#/components/schemas/UnsupportedAssetErrorDetail' description: Structured unsupported asset details type: object required: - detail title: UnsupportedAssetError description: Error response for unsupported v1 stock/crypto asset requests. PolymarketTrendingCountry: properties: buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Aggregated activity/flow buzz score using trades, volume, breadth, liquidity and participation trend: type: string enum: - rising - falling - stable title: Trend description: Flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). trade_count: type: integer minimum: 0.0 title: Trade Count description: Total trade count in period market_count: type: integer minimum: 0.0 title: Market Count description: Sum of ticker-level catalog lifetime-overlap market counts in the selected UTC window for this dimension; not a cross-ticker condition-id union current_market_count: type: integer minimum: 0.0 title: Current Market Count description: Sum of ticker-level currently open markets in the latest UTC-day snapshot; use this for live-only market breadth unique_tickers: type: integer minimum: 0.0 title: Unique Tickers description: Unique tickers in dimension unique_traders: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Unique Traders description: Exact distinct union of observed proxy and explicit maker wallet hashes for the dimension and UTC window; null when retained wallet-level trades do not fully cover the window sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Weighted implied sentiment; null when no underlying trades exist in the selected period bullish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bullish Pct description: Outcome-aware bullish market percentage bearish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bearish Pct description: Outcome-aware bearish market percentage total_liquidity: type: number minimum: 0.0 title: Total Liquidity description: Windowed aggregated liquidity signal in USD over the selected period; not a current snapshot trend_history: items: type: number type: array title: Trend History description: Daily dimension buzz scores (oldest to newest). Length follows the resolved period, with a minimum of 7 values. Every slot describes only its UTC calendar day. The live final value describes today so far and can differ from period buzz_score. Closed historical windows end at `to`. examples: - - 48.2 - 51.0 - 55.3 - 61.1 - 65.8 - 69.2 - 72.8 top_tickers: items: type: string type: array maxItems: 5 title: Top Tickers description: Top 5 tickers by trade_count country: type: string title: Country description: Country name examples: - United States type: object required: - buzz_score - trend - trade_count - market_count - current_market_count - unique_tickers - bullish_pct - bearish_pct - total_liquidity - trend_history - top_tickers - country title: PolymarketTrendingCountry description: Trending country on Polymarket. examples: - buzz_score: 70.1 trend: stable trade_count: 712 market_count: 265 current_market_count: 129 unique_tickers: 10 unique_traders: 402 sentiment_score: 0.18 bullish_pct: 58 bearish_pct: 42 total_liquidity: 472000.0 trend_history: - 52.1 - 54.0 - 56.8 - 59.2 - 61.0 - 60.1 - 70.1 top_tickers: - AAPL - TSLA - NVDA - AMZN - GOOGL country: United States PolymarketRawMentionItem: properties: condition_id: type: string title: Condition Id description: Polymarket condition ID examples: - 0xabc... event_id: type: string title: Event Id description: Polymarket event ID examples: - '12345' market_slug: anyOf: - type: string - type: 'null' title: Market Slug description: Polymarket market slug examples: - nvda-up-or-down-on-april-20-2026 question: type: string title: Question description: Market question/title examples: - NVDA up or down on April 20? market_type: type: string title: Market Type description: Derived market type (`up_down`, `close_above`, `hit_target`, `earnings` or `other`) examples: - up_down strike_price: anyOf: - type: number - type: 'null' title: Strike Price description: Extracted strike price when available examples: - 250.0 yes_price: anyOf: - type: number maximum: 1.0 minimum: 0.0 - type: 'null' title: Yes Price description: YES price from this snapshot examples: - 0.63 no_price: anyOf: - type: number maximum: 1.0 minimum: 0.0 - type: 'null' title: No Price description: NO price from this snapshot examples: - 0.37 reference_price: anyOf: - type: number - type: 'null' title: Reference Price description: Stock reference price attached during scrape when needed for range-ladder classification examples: - 101.68 reference_price_timestamp: anyOf: - type: string format: date-time - type: 'null' title: Reference Price Timestamp description: Timestamp for `reference_price` when available examples: - '2026-04-20T14:30:00Z' liquidity: type: number minimum: 0.0 title: Liquidity description: Market liquidity in USD at snapshot time examples: - 7905.52 volume_24h: type: number minimum: 0.0 title: Volume 24H description: Rolling 24h market volume in USD at snapshot time examples: - 2408.43 trade_count: type: integer minimum: 0.0 title: Trade Count description: UTC-day trade count observed for this market snapshot examples: - 42 buy_trades: type: integer minimum: 0.0 title: Buy Trades description: UTC-day Polymarket BUY trades for this snapshot; activity counter, not bullishness examples: - 23 sell_trades: type: integer minimum: 0.0 title: Sell Trades description: UTC-day Polymarket SELL trades for this snapshot; activity counter, not bearishness examples: - 19 unique_traders: type: integer minimum: 0.0 title: Unique Traders description: UTC-day observed participant/proxy-wallet counter for this market snapshot examples: - 31 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Outcome-aware market price sentiment for this snapshot; prefers orderbook midpoint when available, falls back to YES/NO price and is null when direction or evidence is unavailable examples: - 0.26 sentiment_label: anyOf: - type: string enum: - positive - negative - neutral - type: 'null' title: Sentiment Label description: 'Classification derived from `sentiment_score`: positive=bullish, negative=bearish, neutral=flat; null when `sentiment_score` is null' examples: - positive end_date: anyOf: - type: string format: date-time - type: 'null' title: End Date description: Market end timestamp when available. Unlike summary `top_mentions`, raw rows preserve the full timestamp from the stored snapshot. examples: - '2026-04-20T23:59:00Z' active: type: boolean title: Active description: Whether the market is currently open; false for closed or ended markets examples: - true market_status: type: string enum: - tradable - open - resolved - inactive - expired title: Market Status description: Compact current market status derived from active, closed, accepting_orders and end_date examples: - tradable fetched_at: type: string format: date-time title: Fetched At description: Snapshot fetch timestamp examples: - '2026-04-20T15:00:00Z' type: object required: - condition_id - event_id - question - market_type - liquidity - volume_24h - trade_count - buy_trades - sell_trades - unique_traders - active - market_status - fetched_at title: PolymarketRawMentionItem description: Raw Polymarket market snapshot row for one stock ticker. PolymarketTopMention: properties: condition_id: type: string title: Condition Id description: Polymarket condition ID examples: - 0xabc... question: type: string title: Question description: Market question/title market_type: type: string title: Market Type description: Derived market type examples: - close_above trade_count: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Trade Count description: UTC-day trade count from the selected in-period snapshot examples: - 42 sentiment_score: type: number maximum: 1.0 minimum: -1.0 title: Sentiment Score description: Outcome-aware market price sentiment for the selected in-period snapshot; prefers orderbook midpoint when available, falls back to YES/NO price and returns neutral 0.0 when direction is unclassified examples: - 0.23 buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Market-level activity buzz score for this selected in-period snapshot examples: - 77.2 yes_price: anyOf: - type: number maximum: 1.0 minimum: 0.0 - type: 'null' title: Yes Price description: YES price from the selected in-period snapshot; not necessarily live no_price: anyOf: - type: number maximum: 1.0 minimum: 0.0 - type: 'null' title: No Price description: NO price from the selected in-period snapshot; not necessarily live liquidity: type: number minimum: 0.0 title: Liquidity description: Selected in-period snapshot liquidity in USD; not necessarily live examples: - 7905.52 volume_24h: type: number minimum: 0.0 title: Volume 24H description: Selected in-period snapshot rolling 24h volume in USD; not necessarily live examples: - 2408.43 end_date: anyOf: - type: string - type: 'null' title: End Date description: Market end date (ISO) examples: - '2026-02-28' active: type: boolean title: Active description: Whether the representative market state is open; snapshot-backed rows use current state, historical daily examples use stored representative state market_status: type: string enum: - tradable - open - resolved - inactive - expired title: Market Status description: Compact market status for this representative item; snapshot-backed rows use current state, historical daily examples use stored representative state examples: - tradable type: object required: - condition_id - question - market_type - sentiment_score - liquidity - volume_24h - active - market_status title: PolymarketTopMention description: Top Polymarket market for a ticker with current open/closed state. PolymarketStockDetailResponse: properties: ticker: type: string title: Ticker description: Stock ticker symbol examples: - AAPL company_name: anyOf: - type: string - type: 'null' title: Company Name description: Company name from ticker_reference examples: - Apple Inc. found: type: boolean title: Found description: Legacy v1 data-availability flag. `true` means this service has qualifying data for this asset/window. `false` means the asset is supported, but this service has no qualifying data for the requested window. Planned for removal in v2. deprecated: true buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Buzz score (0-100) examples: - 68.9 trend: anyOf: - type: string enum: - rising - falling - stable - type: 'null' title: Trend description: Flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). examples: - stable period_days: anyOf: - type: integer maximum: 365.0 minimum: 1.0 - type: 'null' title: Period Days description: Analysis period in days examples: - 7 trade_count: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Trade Count description: Trade count in period examples: - 312 market_count: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Market Count description: Distinct markets that existed for ticker within the selected UTC window, counted by market-catalog lifetime overlap examples: - 27 current_market_count: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Current Market Count description: Number of currently open markets in the latest UTC-day snapshot for ticker; use this for live-only market breadth examples: - 12 unique_traders: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Unique Traders description: Exact distinct union of observed proxy and explicit maker wallet hashes for the delivered scope and UTC window; null when retained wallet-level trades do not fully cover the window; not a complete market-wide participant census examples: - 119 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Orderbook-aware implied sentiment; null when no directional sentiment evidence exists in the selected period examples: - 0.28 positive_count: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Positive Count description: Deprecated. Outcome-aware bullish market count retained for v1 compatibility; prefer bullish_pct with trade_count and market_count for public analysis. deprecated: true examples: - 9 negative_count: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Negative Count description: Deprecated. Outcome-aware bearish market count retained for v1 compatibility; prefer bearish_pct with trade_count and market_count for public analysis. deprecated: true examples: - 5 neutral_count: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Neutral Count description: Deprecated. Outcome-aware neutral/unclassified market count retained for v1 compatibility; prefer bullish_pct, bearish_pct, trade_count and market_count for public analysis. deprecated: true examples: - 2 bullish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bullish Pct description: Outcome-aware bullish market percentage examples: - 64 bearish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bearish Pct description: Outcome-aware bearish market percentage examples: - 36 total_liquidity: anyOf: - type: number minimum: 0.0 - type: 'null' title: Total Liquidity description: Windowed aggregated liquidity signal in USD over the selected period; not a current snapshot examples: - 128000.0 daily_trend: anyOf: - items: $ref: '#/components/schemas/PolymarketDailyTrendItem' type: array - type: 'null' title: Daily Trend description: Daily activity breakdown for the selected period top_mentions: anyOf: - items: $ref: '#/components/schemas/PolymarketTopMention' type: array - type: 'null' title: Top Mentions description: 'Top markets with an active/open snapshot during the retained snapshot portion of the selected UTC-day period for this ticker (including the current UTC day so far), capped at 10 and sorted as representative sentiment evidence: outcome-aware directional markets first, opposing signals kept visible when present, then trade count, with non-open markets de-prioritized and 24h volume and liquidity as tie-breakers. For windows longer than raw snapshot retention, ticker analytics still use `polymarket_daily_stats`, but this representative snapshot list is limited to retained `polymarket_market_snapshots`. Item prices and liquidity come from the selected in-period snapshot, not necessarily the current market state. `active` indicates whether the market is currently open, so historical in-period evidence can now have a non-open current state. `market_status` gives the compact current state.' pulse: anyOf: - $ref: '#/components/schemas/PolymarketTickerPulse' - type: 'null' description: Compact current Polymarket interpretation built from locally stored latest snapshot evidence. Does not duplicate top-level aggregate fields; concrete market evidence remains in `top_mentions`. type: object required: - ticker - found title: PolymarketStockDetailResponse description: Detailed Polymarket data for a single stock. examples: - ticker: AAPL company_name: Apple Inc. found: true buzz_score: 68.9 trend: stable period_days: 7 trade_count: 312 market_count: 27 current_market_count: 12 unique_traders: 119 sentiment_score: 0.28 bullish_pct: 64 bearish_pct: 36 total_liquidity: 128000.0 daily_trend: - date: '2026-02-13' trade_count: 5 sentiment_score: 0.25 buzz_score: 64.1 bullish_pct: 64 bearish_pct: 21 top_mentions: - condition_id: 0xabc... question: Will AAPL close above $220 this week? market_type: close_above trade_count: 42 sentiment_score: 0.23 buzz_score: 77.2 yes_price: 0.62 no_price: 0.38 liquidity: 7905.52 volume_24h: 2408.43 end_date: '2026-02-28' active: true market_status: tradable pulse: mood: mixed confidence: 60.0 thin_data: false why: - opposing_market_signals - upside_targets_rejected - floor_support warnings: - high_average_spread - low_trade_breadth evidence: directional_coverage: 1.0 traded_market_pct: 0.231 zero_trade_market_pct: 0.769 avg_spread: 0.099 snapshot_at: '2026-06-24T06:25:53Z' PolymarketTrendingSector: properties: buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Aggregated activity/flow buzz score using trades, volume, breadth, liquidity and participation trend: type: string enum: - rising - falling - stable title: Trend description: Flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). trade_count: type: integer minimum: 0.0 title: Trade Count description: Total trade count in period market_count: type: integer minimum: 0.0 title: Market Count description: Sum of ticker-level catalog lifetime-overlap market counts in the selected UTC window for this dimension; not a cross-ticker condition-id union current_market_count: type: integer minimum: 0.0 title: Current Market Count description: Sum of ticker-level currently open markets in the latest UTC-day snapshot; use this for live-only market breadth unique_tickers: type: integer minimum: 0.0 title: Unique Tickers description: Unique tickers in dimension unique_traders: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Unique Traders description: Exact distinct union of observed proxy and explicit maker wallet hashes for the dimension and UTC window; null when retained wallet-level trades do not fully cover the window sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Weighted implied sentiment; null when no underlying trades exist in the selected period bullish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bullish Pct description: Outcome-aware bullish market percentage bearish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bearish Pct description: Outcome-aware bearish market percentage total_liquidity: type: number minimum: 0.0 title: Total Liquidity description: Windowed aggregated liquidity signal in USD over the selected period; not a current snapshot trend_history: items: type: number type: array title: Trend History description: Daily dimension buzz scores (oldest to newest). Length follows the resolved period, with a minimum of 7 values. Every slot describes only its UTC calendar day. The live final value describes today so far and can differ from period buzz_score. Closed historical windows end at `to`. examples: - - 48.2 - 51.0 - 55.3 - 61.1 - 65.8 - 69.2 - 72.8 top_tickers: items: type: string type: array maxItems: 5 title: Top Tickers description: Top 5 tickers by trade_count sector: type: string title: Sector description: Sector name examples: - Technology type: object required: - buzz_score - trend - trade_count - market_count - current_market_count - unique_tickers - bullish_pct - bearish_pct - total_liquidity - trend_history - top_tickers - sector title: PolymarketTrendingSector description: Trending sector on Polymarket. examples: - buzz_score: 72.8 trend: rising trade_count: 312 market_count: 147 current_market_count: 71 unique_tickers: 6 unique_traders: 211 sentiment_score: 0.22 bullish_pct: 61 bearish_pct: 39 total_liquidity: 325000.0 trend_history: - 48.2 - 51.0 - 55.3 - 61.1 - 65.8 - 69.2 - 72.8 top_tickers: - AAPL - MSFT - NVDA - TSLA - AMD sector: Technology InvalidSearchParametersErrorDetail: properties: error: type: string title: Error description: Error type identifier message: type: string title: Message description: Human-readable error message unsupported_parameters: items: type: string type: array title: Unsupported Parameters description: Search query parameters that are not supported type: object required: - error - message - unsupported_parameters title: InvalidSearchParametersErrorDetail description: Structured error detail for unsupported search query parameters. HistoricalLimitErrorDetail: properties: error: type: string title: Error description: Error type identifier message: type: string title: Message description: Human-readable error message requested_days: type: integer title: Requested Days description: Number of days requested enforced_quantity: anyOf: - type: string - type: 'null' title: Enforced Quantity description: Quantity checked against the account tier limit max_days: type: integer title: Max Days description: Maximum days allowed for account tier account_type: type: string title: Account Type description: User's account type (free, hobby, professional, premium) type: object required: - error - message - requested_days - max_days - account_type title: HistoricalLimitErrorDetail description: Structured error detail for historical data limit exceeded. PolymarketTickerPulse: properties: mood: type: string enum: - bullish - bearish - mixed - event_driven - illiquid - unclear title: Mood description: Current compact Polymarket interpretation for this ticker confidence: type: number maximum: 100.0 minimum: 0.0 title: Confidence description: Interpretation confidence capped by coverage, trade breadth, spread, liquidity and recency thin_data: type: boolean title: Thin Data description: True when current evidence is insufficient for a strong directional interpretation why: items: type: string type: array maxItems: 4 minItems: 1 title: Why description: Stable machine-readable reason codes explaining the pulse interpretation warnings: items: type: string type: array title: Warnings description: Stable machine-readable data quality, freshness and tradability warnings evidence: $ref: '#/components/schemas/PolymarketPulseEvidence' description: Compact non-duplicative quality summary for the pulse inputs type: object required: - mood - confidence - thin_data - why - evidence title: PolymarketTickerPulse description: Compact interpretation layer for current ticker-level Polymarket data. CompareLimitErrorDetail: properties: error: type: string title: Error description: Machine-readable error code message: type: string title: Message description: Human-readable error message max_items: type: integer title: Max Items description: Maximum accepted compare items item_name: type: string title: Item Name description: Compared item type, such as ticker or symbol type: object required: - error - message - max_items - item_name title: CompareLimitErrorDetail description: Structured error detail for compare item-count violations. PolymarketSearchResponse: properties: query: type: string title: Query description: Original search query examples: - tesla count: type: integer title: Count description: Total number of matching results before the limit is applied examples: - 1 period_days: type: integer minimum: 1.0 title: Period Days description: Fixed lookback window used for each summary block examples: - 7 results: items: $ref: '#/components/schemas/PolymarketSearchResultItem' type: array title: Results description: Top matching stocks capped by the requested limit type: object required: - query - count - period_days - results title: PolymarketSearchResponse description: Search results for Polymarket stocks. examples: - query: tesla count: 1 period_days: 7 results: - ticker: TSLA name: Tesla Inc. type: Stock exchange: NASDAQ sector: Consumer Discretionary country: United States aliases: - Tesla - Elon summary: trade_count: 14 buzz_score: 71.4 trend: rising sentiment_score: 0.34 bearish_pct: 33 bullish_pct: 67 current_market_count: 12 market_count: 27 total_liquidity: 94750.0 unique_traders: 119 CompareLimitError: properties: detail: $ref: '#/components/schemas/CompareLimitErrorDetail' description: Structured error details type: object required: - detail title: CompareLimitError description: Error response for compare item-count violations (HTTP 400). PolymarketPulseEvidence: properties: directional_coverage: anyOf: - type: number maximum: 1.0 minimum: 0.0 - type: 'null' title: Directional Coverage description: Share of current open snapshot markets with outcome-aware directional evidence traded_market_pct: anyOf: - type: number maximum: 1.0 minimum: 0.0 - type: 'null' title: Traded Market Pct description: Share of current open snapshot markets with trades in the latest UTC day zero_trade_market_pct: anyOf: - type: number maximum: 1.0 minimum: 0.0 - type: 'null' title: Zero Trade Market Pct description: Share of current open snapshot markets without trades in the latest UTC day avg_spread: anyOf: - type: number minimum: 0.0 - type: 'null' title: Avg Spread description: Average YES-token spread across current open snapshot markets with bid/ask spread evidence snapshot_at: anyOf: - type: string format: date-time - type: 'null' title: Snapshot At description: Latest stored snapshot timestamp used by the pulse read model type: object title: PolymarketPulseEvidence description: Compact data-quality evidence for the ticker-level Polymarket pulse. HTTPValidationError: properties: detail: anyOf: - items: $ref: '#/components/schemas/ValidationError' type: array - type: 'null' title: Detail description: Validation error details type: object title: HTTPValidationError description: FastAPI/Pydantic validation error response. examples: - detail: - loc: - query - days msg: Input should be greater than or equal to 1 type: greater_than_equal RateLimitErrorDetail: properties: error: type: string title: Error description: Error type identifier message: type: string title: Message description: Human-readable error message limit: anyOf: - type: integer - type: 'null' title: Limit description: Applied request limit for the window used: anyOf: - type: integer - type: 'null' title: Used description: Requests used in the current window remaining: anyOf: - type: integer - type: 'null' title: Remaining description: Requests remaining in the current window account_type: type: string title: Account Type description: Resolved account type or fallback tier reset_at: anyOf: - type: string format: date-time - type: 'null' title: Reset At description: ISO 8601 timestamp when the current window resets contact: anyOf: - type: string - type: 'null' title: Contact description: Plan or support URL for resolving the limit type: object required: - error - message - account_type title: RateLimitErrorDetail description: Structured rate-limit error detail. PolymarketDailyTrendItem: properties: date: type: string title: Date description: Date in YYYY-MM-DD format examples: - '2026-02-13' trade_count: type: integer title: Trade Count description: Trade count on this date examples: - 5 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Outcome-aware implied sentiment on this date; can come from orderbook evidence or legacy traded price evidence, null when no sentiment evidence exists examples: - 0.25 buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Buzz score on this date; null when neither a daily aggregate nor a live fallback could be computed for this date examples: - 64.1 bullish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bullish Pct description: Outcome-aware bullish market-direction percentage for this date examples: - 64 bearish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bearish Pct description: Outcome-aware bearish market-direction percentage for this date examples: - 21 type: object required: - date - trade_count title: PolymarketDailyTrendItem description: Daily trend item for stock detail endpoint. RateLimitError: properties: detail: $ref: '#/components/schemas/RateLimitErrorDetail' description: Structured rate-limit details type: object required: - detail title: RateLimitError description: Error response for rate-limit exceeded responses. InvalidPeriodError: properties: detail: $ref: '#/components/schemas/InvalidPeriodErrorDetail' description: Structured error details type: object required: - detail title: InvalidPeriodError description: Error response for invalid period requests (HTTP 422). PolymarketMarketSentimentDriver: properties: ticker: type: string title: Ticker description: Stock ticker symbol examples: - AAPL trade_count: type: integer minimum: 0.0 title: Trade Count description: Trade count for this asset in the selected period examples: - 52 buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Asset buzz score in the selected period examples: - 68.9 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Implied sentiment score for this asset in the selected period examples: - 0.28 type: object required: - ticker - trade_count - buzz_score title: PolymarketMarketSentimentDriver description: Top asset contributing to the service-level Polymarket market sentiment. PolymarketCompareStockItem: properties: ticker: type: string title: Ticker description: Stock ticker symbol company_name: anyOf: - type: string - type: 'null' title: Company Name description: Company name from ticker_reference buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Buzz score (0-100) trend: anyOf: - type: string enum: - rising - falling - stable - type: 'null' title: Trend description: Flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). Null when no qualifying activity exists. trade_count: type: integer minimum: 0.0 title: Trade Count description: Trade count in selected period market_count: type: integer minimum: 0.0 title: Market Count description: Distinct markets that existed for ticker within the selected UTC window, counted by market-catalog lifetime overlap current_market_count: type: integer minimum: 0.0 title: Current Market Count description: Number of currently open markets in the latest UTC-day snapshot for ticker; use this for live-only market breadth unique_traders: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Unique Traders description: Exact distinct union of observed proxy and explicit maker wallet hashes for the delivered scope and UTC window; null when retained wallet-level trades do not fully cover the window; not a complete market-wide participant census sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Orderbook-aware implied sentiment; null when no directional sentiment evidence exists in the selected period bullish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bullish Pct description: Outcome-aware bullish market percentage bearish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bearish Pct description: Outcome-aware bearish market percentage total_liquidity: type: number minimum: 0.0 title: Total Liquidity description: Windowed aggregated liquidity signal in USD over the selected period; not a current snapshot trend_history: items: type: number type: array title: Trend History description: Recent buzz history (oldest→newest). Length follows the resolved period, with a minimum of 7 values when data exists. Closed historical windows end at `to`. Empty when no qualifying data exists. type: object required: - ticker - buzz_score - trade_count - market_count - current_market_count - total_liquidity title: PolymarketCompareStockItem description: Single stock item for Polymarket compare endpoint. PolymarketRawMentionsResponse: properties: ticker: type: string title: Ticker description: Stock ticker symbol examples: - NVDA period_days: type: integer minimum: 1.0 title: Period Days description: Lookback window used for the query examples: - 7 count: type: integer minimum: 0.0 title: Count description: Total number of matching raw rows before limit and offset are applied; only the requested page is returned examples: - 1 results: items: $ref: '#/components/schemas/PolymarketRawMentionItem' type: array title: Results description: Raw market snapshot rows ordered by newest first type: object required: - ticker - period_days - count - results title: PolymarketRawMentionsResponse description: Paginated raw Polymarket snapshot rows for a single stock ticker. examples: - ticker: NVDA period_days: 7 count: 1 results: - condition_id: 0xabc... event_id: '12345' market_slug: nvda-up-or-down-on-april-20-2026 question: NVDA up or down on April 20? market_type: up_down strike_price: 250.0 yes_price: 0.63 no_price: 0.37 reference_price: 247.82 reference_price_timestamp: '2026-04-20T14:30:00Z' liquidity: 7905.52 volume_24h: 2408.43 trade_count: 42 buy_trades: 23 sell_trades: 19 unique_traders: 31 sentiment_score: 0.26 sentiment_label: positive end_date: '2026-04-20T23:59:00Z' active: true market_status: tradable fetched_at: '2026-04-20T15:00:00Z' InvalidSearchParametersError: properties: detail: anyOf: - $ref: '#/components/schemas/InvalidSearchParametersErrorDetail' - type: string title: Detail description: Structured search-parameter error or normalized-query validation message type: object required: - detail title: InvalidSearchParametersError description: Error response for invalid search query parameters. PolymarketMarketSentimentResponse: properties: buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Service-wide Polymarket heat score relative to the service's trailing 90-day baseline. Around 50 = normal activity, higher values = hotter-than-usual Polymarket activity. examples: - 58.4 trend: anyOf: - type: string enum: - rising - falling - stable - type: 'null' title: Trend description: Flow momentum over the current 3 UTC days vs previous 3 UTC days using trades, volume, market breadth and liquidity; not price movement. Null when the selected window has no measurable Polymarket heat. For `from`/`to`, anchors at `to` (or now when `to` is today). examples: - rising trade_count: type: integer minimum: 0.0 title: Trade Count description: Service-wide trade count in the selected period examples: - 512 market_count: type: integer minimum: 0.0 title: Market Count description: Sum of ticker-level catalog lifetime-overlap market counts in the selected UTC window; not a cross-ticker global condition-id union examples: - 93 current_market_count: type: integer minimum: 0.0 title: Current Market Count description: Sum of ticker-level currently open markets in the latest UTC-day snapshot; use this for live-only market breadth examples: - 64 unique_traders: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Unique Traders description: Exact service-wide observed participant/proxy-wallet union in the selected period; null when retained wallet-level trades do not fully cover the requested window examples: - 281 total_liquidity: type: number minimum: 0.0 title: Total Liquidity description: Windowed aggregated liquidity signal in USD over the selected period examples: - 245000.0 active_tickers: type: integer minimum: 0.0 title: Active Tickers description: Number of tickers with market activity in the selected period examples: - 31 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Service-wide weighted orderbook-aware implied sentiment score examples: - 0.11 positive_count: type: integer minimum: 0.0 title: Positive Count description: Deprecated. Outcome-aware bullish market count retained for v1 compatibility; prefer bullish_pct with trade_count and market_count for public analysis. deprecated: true examples: - 41 negative_count: type: integer minimum: 0.0 title: Negative Count description: Deprecated. Outcome-aware bearish market count retained for v1 compatibility; prefer bearish_pct with trade_count and market_count for public analysis. deprecated: true examples: - 29 neutral_count: type: integer minimum: 0.0 title: Neutral Count description: Deprecated. Outcome-aware neutral/unclassified market count retained for v1 compatibility; prefer bullish_pct, bearish_pct, trade_count and market_count for public analysis. deprecated: true examples: - 23 bullish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bullish Pct description: Outcome-aware bullish market percentage examples: - 44 bearish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bearish Pct description: Outcome-aware bearish market percentage examples: - 31 trend_history: items: type: number type: array title: Trend History description: Daily service-wide buzz scores (oldest→newest) using the same relative baseline calibration. Length = max(requested_days, 7) for successful requests; windows before platform availability return HTTP 422. examples: - - 52.1 - 54.0 - 56.8 - 59.2 - 61.0 - 60.1 - 58.4 drivers: items: $ref: '#/components/schemas/PolymarketMarketSentimentDriver' type: array title: Drivers description: Top assets by current buzz_score driving the service-level reading type: object required: - buzz_score - trade_count - market_count - current_market_count - total_liquidity - active_tickers - positive_count - negative_count - neutral_count - bullish_pct - bearish_pct title: PolymarketMarketSentimentResponse description: Service-level Polymarket market sentiment across all tracked stocks. examples: - buzz_score: 58.4 trend: stable trade_count: 512 market_count: 93 current_market_count: 64 unique_traders: 281 total_liquidity: 245000.0 active_tickers: 31 sentiment_score: 0.11 positive_count: 41 negative_count: 29 neutral_count: 23 bullish_pct: 44 bearish_pct: 31 trend_history: - 52.1 - 54.0 - 56.8 - 59.2 - 61.0 - 60.1 - 58.4 drivers: - ticker: AAPL trade_count: 52 buzz_score: 68.9 sentiment_score: 0.28 - ticker: TSLA trade_count: 47 buzz_score: 66.3 sentiment_score: 0.19 UnsupportedAssetErrorDetail: properties: error_code: type: string title: Error Code description: Machine-readable unsupported asset error code examples: - unsupported_ticker message: type: string title: Message description: Human-readable unsupported asset message type: object required: - error_code - message title: UnsupportedAssetErrorDetail description: Structured detail for unsupported v1 stock/crypto asset requests. PolymarketSearchResultItem: properties: ticker: type: string title: Ticker description: Stock ticker symbol examples: - TSLA name: type: string title: Name description: Company name examples: - Tesla Inc. type: anyOf: - type: string - type: 'null' title: Type description: Asset type (Stock, ETF, etc.) examples: - Stock exchange: anyOf: - type: string - type: 'null' title: Exchange description: Stock exchange examples: - NASDAQ sector: anyOf: - type: string - type: 'null' title: Sector description: Industry sector examples: - Consumer Discretionary country: anyOf: - type: string - type: 'null' title: Country description: Country of headquarters examples: - United States aliases: items: type: string type: array title: Aliases description: Alternative names/aliases examples: - - Tesla - Elon summary: $ref: '#/components/schemas/PolymarketSearchSummary' description: Last-7-days Polymarket summary for this asset type: object required: - ticker - name - summary title: PolymarketSearchResultItem description: Individual Polymarket search result item. PolymarketStatsResponse: properties: total_trades: type: integer minimum: 0.0 title: Total Trades description: Total Polymarket trade activity from daily aggregates total_markets: type: integer minimum: 0.0 title: Total Markets description: Distinct Polymarket condition_id count unique_tickers: type: integer minimum: 0.0 title: Unique Tickers description: Distinct tickers with Polymarket market rows in the database open_markets_current: type: integer minimum: 0.0 title: Open Markets Current description: Currently open Polymarket markets where active=true, closed=false and end_date has not passed default: 0 open_tickers_current: type: integer minimum: 0.0 title: Open Tickers Current description: Distinct tickers with at least one currently open Polymarket market default: 0 traded_markets_today: type: integer minimum: 0.0 title: Traded Markets Today description: Distinct Polymarket condition_id values with UTC-day trade activity default: 0 traded_tickers_today: type: integer minimum: 0.0 title: Traded Tickers Today description: Distinct tickers with UTC-day Polymarket trade activity default: 0 trades_today: type: integer minimum: 0.0 title: Trades Today description: Polymarket trade activity during today's UTC date default: 0 supported_tickers: type: integer minimum: 0.0 title: Supported Tickers description: Ticker count in ticker_reference type: object required: - total_trades - total_markets - unique_tickers - supported_tickers title: PolymarketStatsResponse description: Polymarket service statistics. examples: - total_trades: 15420 total_markets: 713 unique_tickers: 119 open_markets_current: 284 open_tickers_current: 71 traded_markets_today: 39 traded_tickers_today: 17 trades_today: 84 supported_tickers: 35000 ErrorResponse: properties: detail: type: string title: Detail description: Human-readable error message examples: - Invalid API key. type: object required: - detail title: ErrorResponse description: Standard error response. examples: - detail: Missing API key. Include 'X-API-Key' header. - detail: Invalid API key. - detail: API key has been revoked. - detail: 'Rate limit exceeded: 100 per 1 minute' PolymarketCompareResponse: properties: period_days: type: integer maximum: 365.0 minimum: 1.0 title: Period Days description: Analysis period in days stocks: items: $ref: '#/components/schemas/PolymarketCompareStockItem' type: array title: Stocks description: Stocks sorted by buzz_score descending type: object required: - period_days - stocks title: PolymarketCompareResponse description: Response for compare endpoint. examples: - period_days: 7 stocks: - ticker: AAPL company_name: Apple Inc. buzz_score: 68.9 trend: stable trade_count: 312 market_count: 27 current_market_count: 12 unique_traders: 119 sentiment_score: 0.28 bullish_pct: 64 bearish_pct: 36 total_liquidity: 128000.0 trend_history: - 48.2 - 51.0 - 55.3 - 61.1 - 65.8 - 69.2 - 68.9 ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Loc description: Location of the invalid input msg: type: string title: Msg description: Validation failure message type: type: string title: Type description: Validation error type type: object required: - loc - msg - type title: ValidationError description: FastAPI/Pydantic validation error item. examples: - loc: - query - days msg: Input should be greater than or equal to 1 type: greater_than_equal securitySchemes: ApiKeyAuth: type: apiKey description: 'API key for authentication. Get your API key at https://adanos.org/register. Format: `sk_live_` followed by 32 hexadecimal characters. Example: `REDACTED_STRIPE_KEY`.' in: header name: X-API-Key