{"openapi":"3.1.0","info":{"title":"PRISM API","description":"\n## PRISM - AI/Agent-Native Financial Data API\n\nUnified identity, pricing, venues, prediction markets, sports, and tradfi data\nwith LLM-safe, structured responses.\n\n- Base path: `/`\n- All responses are structured for agentic use\n- Authentication optional (not enforced by default)\n","version":"4.13.3"},"paths":{"/auth/keys":{"post":{"tags":["Developer"],"summary":"Create Api Key","description":"Create a new API key.\n\nReturns the full API key ONCE. Store it securely - it cannot be retrieved again.\n\n- **Admin** (X-Admin-Key): may set any tier.\n- **Clerk JWT** (Authorization: Bearer &lt;token&gt;): tier from Clerk metadata (e.g. prism_tier), owner_id/owner_email set; per-user key limits apply.\n- **Anonymous**: free tier only.","operationId":"create_api_key_auth_keys_post","parameters":[{"name":"x-admin-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/keys/instant":{"get":{"tags":["Developer"],"summary":"Get a free API key (no signup)","description":"Returns a new API key with agent tier (5 req/min, 100/day). No authentication required. Rate limited to 3 keys per IP per hour. Key expires in 7 days. For agents and scripts.","operationId":"get_instant_key_auth_keys_instant_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/my/keys":{"get":{"tags":["Developer"],"summary":"List My Keys","description":"List API keys owned by the current user (Clerk JWT required).","operationId":"list_my_keys_auth_my_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","description":"Include revoked keys","default":false,"title":"Include Revoked"},"description":"Include revoked keys"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/my/keys/{key_id}":{"delete":{"tags":["Developer"],"summary":"Revoke My Key","description":"Revoke one of your API keys. Only keys you own can be revoked.","operationId":"revoke_my_key_auth_my_keys__key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/my/keys/{key_id}/rotate":{"post":{"tags":["Developer"],"summary":"Rotate My Key","description":"Rotate one of your API keys. Returns the new key ONCE - store it securely.","operationId":"rotate_my_key_auth_my_keys__key_id__rotate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/my/usage":{"get":{"tags":["Developer"],"summary":"Get My Usage","description":"Aggregate usage across all of your API keys (Clerk JWT required).","operationId":"get_my_usage_auth_my_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/auth/keys/link":{"post":{"tags":["Developer"],"summary":"Link Key To User","description":"Link an ownerless API key to the current user account.\n\nRequires: Clerk JWT (Authorization: Bearer) + X-API-Key (the key to link).\nThe key must have owner_id = null (ownerless). After linking, the key will appear\nin the user's dashboard and usage/logs will be attributed to them.\n\nReturns updated key info.","operationId":"link_key_to_user_auth_keys_link_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/usage":{"get":{"tags":["Developer"],"summary":"Get Usage Stats","description":"Get usage statistics for the current API key.\n\nRequires authentication via X-API-Key header.","operationId":"get_usage_stats_auth_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/auth/verify":{"post":{"tags":["Developer"],"summary":"Verify Api Key","description":"Verify if an API key is valid.\n\nReturns key info if valid, error message if not.","operationId":"verify_api_key_auth_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/tiers":{"get":{"tags":["Developer"],"summary":"Get Tiers","description":"Get available rate limit tiers.\n\nShows the rate limits for each tier to help users choose.","operationId":"get_tiers_auth_tiers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/assets/search":{"get":{"tags":["Assets"],"summary":"Search Assets","description":"Search for any asset. Use local_only=true for fast local-only search (no external APIs).","operationId":"search_assets_assets_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":50,"description":"Search query (symbol or name)","title":"Q"},"description":"Search query (symbol or name)"},{"name":"local_only","in":"query","required":false,"schema":{"type":"boolean","description":"If true, only search local DB (no external APIs, fast)","default":false,"title":"Local Only"},"description":"If true, only search local DB (no external APIs, fast)"},{"name":"asset_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type: token, stock, etf","title":"Asset Type"},"description":"Filter by type: token, stock, etf"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category code: TOKEN, STOCK, ETF, etc.","title":"Category"},"description":"Filter by category code: TOKEN, STOCK, ETF, etc."},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by chain: ethereum, arbitrum, solana, etc.","title":"Chain"},"description":"Filter by chain: ethereum, arbitrum, solana, etc."},{"name":"auto_register","in":"query","required":false,"schema":{"type":"boolean","description":"Auto-register new assets if found externally (ignored when local_only=true)","default":true,"title":"Auto Register"},"description":"Auto-register new assets if found externally (ignored when local_only=true)"},{"name":"max_age","in":"query","required":false,"schema":{"type":"integer","description":"Max data age in seconds before refresh (default 5 min)","default":300,"title":"Max Age"},"description":"Max data age in seconds before refresh (default 5 min)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Max results (for local_only, max 50)","default":20,"title":"Limit"},"description":"Max results (for local_only, max 50)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Search Assets Assets Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assets/all":{"get":{"tags":["Assets"],"summary":"List All Assets","description":"List all monitored assets in the registry.","operationId":"list_all_assets_assets_all_get","parameters":[{"name":"asset_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter: crypto, stock, etf","title":"Asset Type"},"description":"Filter: crypto, stock, etf"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Number of assets to return","default":50,"title":"Limit"},"description":"Number of assets to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Pagination offset","default":0,"title":"Offset"},"description":"Pagination offset"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"Order: created_at, lookup_count, market_cap, symbol","default":"market_cap","title":"Order By"},"description":"Order: created_at, lookup_count, market_cap, symbol"},{"name":"include_sparklines","in":"query","required":false,"schema":{"type":"boolean","description":"Include 7-day sparklines (slower)","default":false,"title":"Include Sparklines"},"description":"Include 7-day sparklines (slower)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List All Assets Assets All Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assets/stats":{"get":{"tags":["Assets"],"summary":"Get Registry Stats","description":"Get statistics about the asset registry.","operationId":"get_registry_stats_assets_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Registry Stats Assets Stats Get"}}}}}}},"/assets/cache":{"get":{"tags":["Assets"],"summary":"Cache Status","description":"Get cache statistics and health metrics.","operationId":"cache_status_assets_cache_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/assets/{symbol}/prices":{"get":{"tags":["Assets"],"summary":"Get Price History","description":"Get OHLCV price history for charting.","operationId":"get_price_history_assets__symbol__prices_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string","description":"Candle interval: 1h, 4h, 1d","default":"4h","title":"Interval"},"description":"Candle interval: 1h, 4h, 1d"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Number of candles to return","default":100,"title":"Limit"},"description":"Number of candles to return"},{"name":"asset_type","in":"query","required":false,"schema":{"type":"string","description":"Asset type: crypto or stock","default":"crypto","title":"Asset Type"},"description":"Asset type: crypto or stock"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assets/{identifier}":{"get":{"tags":["Assets"],"summary":"Get Asset By Identifier","description":"Get asset by hash, canonical ID, or symbol.\n\nAuto-detects format:\n- S + 20 hex chars → hash lookup\n- asset-... → canonical ID lookup\n- otherwise → symbol lookup (first match in registry)","operationId":"get_asset_by_identifier_assets__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","description":"Hash (S + 20 hex), canonical_id (asset-...), or symbol","title":"Identifier"},"description":"Hash (S + 20 hex), canonical_id (asset-...), or symbol"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Asset By Identifier Assets  Identifier  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/chains":{"get":{"tags":["Crypto"],"summary":"List Chains","description":"List all supported blockchain networks.\n\nReturns chain IDs, display names, and external API identifiers.","operationId":"list_chains_chains_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/search":{"get":{"tags":["Search"],"summary":"Search Assets","description":"Unified asset search with cursor pagination.\n\nSearches across crypto and stock assets with flexible filtering.\nReturns self-describing results with cursor-based pagination.\n\nArgs:\n    q: Search query (symbol, name, or contract address).\n       Empty string returns all assets sorted by market cap.\n    type: Asset type filter - \"crypto\", \"stock\", or \"all\" (default)\n    chain: Blockchain filter for crypto - \"ethereum\", \"base\", \"solana\", etc.\n    include: Comma-separated fields to include - \"price\", \"venues\", \"family\"\n    limit: Results per page (1-100, default 50)\n    cursor: Pagination cursor from previous response's next_cursor\n\nReturns:\n    {\n        \"object\": \"list\",\n        \"query\": \"btc\",\n        \"data\": [{\"object\": \"asset\", \"symbol\": \"BTC\", ...}],\n        \"pagination\": {\n            \"total\": 150,\n            \"limit\": 50,\n            \"has_more\": true,\n            \"next_cursor\": \"eyJvZmZzZXQiOjUwfQ==\",\n            \"prev_cursor\": null\n        },\n        \"conflicts\": [...],  // Ambiguous symbols (MON, COIN, etc.)\n        \"search_time_ms\": 45,\n        \"cached\": false\n    }\n\nExamples:\n    GET /search?q=bitcoin           - Search by name\n    GET /search?q=BTC&type=crypto   - Crypto only\n    GET /search?type=stock&limit=20 - List stocks\n    GET /search?q=0x1234...         - Contract address lookup\n    GET /search?chain=base&limit=10 - Base chain tokens\n\nCache: 5 minutes (300 seconds)","operationId":"search_assets_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Search query (symbol, name, or contract). Empty = list all.","default":"","title":"Q"},"description":"Search query (symbol, name, or contract). Empty = list all."},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter: crypto, stock, all","title":"Type"},"description":"Filter: crypto, stock, all"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category code: CRPT, STCK, ETFS, etc.","title":"Category"},"description":"Filter by category code: CRPT, STCK, ETFS, etc."},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by chain for crypto","title":"Chain"},"description":"Filter by chain for crypto"},{"name":"include","in":"query","required":false,"schema":{"type":"string","description":"Include: price,venues,family","default":"price","title":"Include"},"description":"Include: price,venues,family"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page","default":50,"title":"Limit"},"description":"Results per page"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination cursor from previous response","title":"Cursor"},"description":"Pagination cursor from previous response"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contracts/{chain}/{address}":{"get":{"tags":["Search"],"summary":"Get Contract","description":"Contract address lookup.\n\nPre-indexed contracts return in ~5ms.\nFalls back to live API if not indexed.","operationId":"get_contract_contracts__chain___address__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/resolve":{"post":{"tags":["Search"],"summary":"Batch Resolve","description":"Batch resolve multiple assets for AI agents.\n\nResolves up to 50 queries in parallel.\n\n**Example Request:**\n```json\n{\n    \"queries\": [\"BTC\", \"ETH\", \"AAPL\"],\n    \"include\": [\"price\", \"venues\"],\n    \"context\": \"crypto\"\n}\n```","operationId":"batch_resolve_agent_resolve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__search__BatchResolveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resolve/{symbol}":{"get":{"tags":["Resolution"],"summary":"Resolve Symbol","description":"Resolve any symbol to canonical asset data.\n\nReturns confidence score and warnings for trading safety.\nUse ?expand=venues,family to include related data.\nUse ?live_price=true for multi-source consensus price (Binance, Coinbase, OKX, etc.).\n\n**Resolution Layers:**\n1. Cache (80% of queries, <1ms)\n2. Deterministic match (15%, <3ms)\n3. Priority scoring (4%, <10ms)\n4. LLM fallback (1%, <200ms)\n\n**Examples:**\n- `/resolve/BTC` → Bitcoin with venues\n- `/resolve/AAPL?context=stock` → Apple Inc.\n- `/resolve/BTC?expand=family` → Bitcoin + WBTC, cbBTC\n- `/resolve/BTC?live_price=true` → Bitcoin with consensus-validated price","operationId":"resolve_symbol_resolve__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"context","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Context hint: crypto, stock, trading, research","title":"Context"},"description":"Context hint: crypto, stock, trading, research"},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Chain filter: ethereum, base, solana","title":"Chain"},"description":"Chain filter: ethereum, base, solana"},{"name":"venue","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Venue filter: hyperliquid, alpaca","title":"Venue"},"description":"Venue filter: hyperliquid, alpaca"},{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fields to expand: venues, family, alternatives","default":"venues","title":"Expand"},"description":"Fields to expand: venues, family, alternatives"},{"name":"use_llm","in":"query","required":false,"schema":{"type":"boolean","description":"Force LLM disambiguation","default":false,"title":"Use Llm"},"description":"Force LLM disambiguation"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID for personalization","title":"User Id"},"description":"User ID for personalization"},{"name":"live_price","in":"query","required":false,"schema":{"type":"boolean","description":"If true, overlay consensus price from multiple sources (slower)","default":false,"title":"Live Price"},"description":"If true, overlay consensus price from multiple sources (slower)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resolve/batch":{"post":{"tags":["Resolution"],"summary":"Resolve Batch","description":"Parallel resolution for multiple symbols.\n\nResolves up to 100 symbols in parallel for screeners and dashboards.\n\n**Example Request:**\n```json\n{\n    \"symbols\": [\"BTC\", \"ETH\", \"SOL\", \"AAPL\", \"TSLA\"],\n    \"context\": \"trading\",\n    \"expand\": \"venues\"\n}\n```","operationId":"resolve_batch_resolve_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__resolve__BatchResolveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resolve/family/{family_id}":{"get":{"tags":["Resolution"],"summary":"Get Family","description":"Get full family details with all members.\n\n**Example:**\n`/resolve/family/BTC` returns:\n- BTC (native)\n- WBTC (Ethereum wrapped)\n- cbBTC (Base wrapped)\n- tBTC (threshold network)","operationId":"get_family_resolve_family__family_id__get","parameters":[{"name":"family_id","in":"path","required":true,"schema":{"type":"string","title":"Family Id"}},{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fields to expand: members, venues","default":"members","title":"Expand"},"description":"Fields to expand: members, venues"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resolve/venues/{symbol}":{"get":{"tags":["Resolution"],"summary":"Get Venues","description":"Get all available trading venues for a symbol.\n\nReturns venues grouped by type:\n- CEX spot (Binance, Coinbase, OKX)\n- CEX perp (Binance Futures, OKX Futures)\n- DEX spot (Uniswap, Jupiter, Aerodrome)\n- DEX perp (Hyperliquid, Apex, Avantis)\n- Brokers (Alpaca, IBKR, Robinhood) - for stocks","operationId":"get_venues_resolve_venues__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"asset_type","in":"query","required":false,"schema":{"type":"string","description":"Asset type: crypto, stock","default":"crypto","title":"Asset Type"},"description":"Asset type: crypto, stock"},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Chain for DEX routing","title":"Chain"},"description":"Chain for DEX routing"},{"name":"contract_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Contract for DEX routing","title":"Contract Address"},"description":"Contract for DEX routing"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/resolve":{"get":{"tags":["Resolution"],"summary":"Resolve Identity","description":"Resolve any identifier to canonical asset identity.\n\nThis is the primary entry point for identity resolution. Given any\nidentifier format, returns the canonical asset_id and full metadata.\n\n**Supported Query Formats:**\n- Symbol: `BTC`, `ETH`, `AAPL`\n- Hash ID: `S1A2B3C4D5E6F7A8B9C0` (20-hex hash)\n- Asset ID: `asset-token-btc-native-bitcoin-S1A2B3C4D5E6F7A8B9C0` (full canonical ID)\n- Contract: `0x1234...` (for crypto tokens)\n\n**Examples:**\n```\nGET /identity/resolve?q=BTC\nGET /identity/resolve?q=S1A2B3C4D5E6F7A8B9C0\nGET /identity/resolve?q=AAPL&category=STOCK\nGET /identity/resolve?q=BTC&expand=venues\n```\n\n**Response:**\n```json\n{\n    \"object\": \"asset_identity\",\n    \"asset_id\": \"asset-token-btc-native-bitcoin-S1A2B3C4D5E6F7A8B9C0\",\n    \"hash_id\": \"S1A2B3C4D5E6F7A8B9C0\",\n    \"symbol\": \"BTC\",\n    \"name\": \"Bitcoin\",\n    \"category\": \"CRYPTO\",\n    \"chain\": \"bitcoin\",\n    ...\n}\n```","operationId":"resolve_identity_identity_resolve_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"Query to resolve: symbol (BTC), hash_id (S1A2B3C4D5E6F7A8B9C0), or asset_id","title":"Q"},"description":"Query to resolve: symbol (BTC), hash_id (S1A2B3C4D5E6F7A8B9C0), or asset_id"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Category filter: CRYPTO, STOCK, ETF, COMMODITY, INDEX, FOREX","title":"Category"},"description":"Category filter: CRYPTO, STOCK, ETF, COMMODITY, INDEX, FOREX"},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Chain filter for crypto: ethereum, solana, base","title":"Chain"},"description":"Chain filter for crypto: ethereum, solana, base"},{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fields to expand: venues","title":"Expand"},"description":"Fields to expand: venues"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/search":{"get":{"tags":["Resolution"],"summary":"Search Identity","description":"Search assets by symbol or name.\n\nReturns a list of matching assets with their canonical identities.\nUse this for autocomplete or fuzzy matching scenarios.\n\n**Examples:**\n```\nGET /identity/search?q=BTC\nGET /identity/search?q=apple&category=STOCK\nGET /identity/search?q=eth&limit=10\n```","operationId":"search_identity_identity_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Search query (symbol or name)","title":"Q"},"description":"Search query (symbol or name)"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Category filter: CRYPTO, STOCK, etc.","title":"Category"},"description":"Category filter: CRYPTO, STOCK, etc."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Max results to return","default":20,"title":"Limit"},"description":"Max results to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/batch":{"post":{"tags":["Resolution"],"summary":"Batch Resolve","description":"Batch resolve multiple queries to canonical identities.\n\nResolves up to 100 symbols in parallel. Useful for portfolio lookups,\nscreeners, and bulk operations.\n\n**Example Request:**\n```json\n{\n    \"queries\": [\"BTC\", \"ETH\", \"AAPL\", \"GOOGL\"],\n    \"category\": \"CRYPTO\"\n}\n```\n\n**Response:**\n```json\n{\n    \"object\": \"batch_result\",\n    \"results\": {\n        \"BTC\": {\"asset_id\": \"asset-token-btc-native-bitcoin-S1A2B3C4D5E6F7A8B9C0\", ...},\n        \"ETH\": {\"asset_id\": \"asset-token-eth-native-ethereum-S9A8B7C6D5E4F3A2B1C0\", ...},\n        \"AAPL\": {\"error\": \"not_found\", \"message\": \"...\"}\n    },\n    \"summary\": {\"total\": 4, \"resolved\": 2, \"failed\": 2}\n}\n```","operationId":"batch_resolve_identity_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__identity__BatchResolveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/{hash_id}":{"get":{"tags":["Resolution"],"summary":"Get Identity By Hash","description":"Get asset identity by hash_id.\n\nDirect lookup using the 20-hex hash ID (e.g., S1A2B3C4D5E6F7A8B9C0).\nThis is the most efficient lookup method.\n\n**Examples:**\n```\nGET /identity/S1A2B3C4D5E6F7A8B9C0\nGET /identity/S1A2B3C4D5E6F7A8B9C0?expand=venues\n```\n\n**Response:**\n```json\n{\n    \"object\": \"asset_identity\",\n    \"asset_id\": \"asset-token-btc-native-bitcoin-S1A2B3C4D5E6F7A8B9C0\",\n    \"hash_id\": \"S1A2B3C4D5E6F7A8B9C0\",\n    \"symbol\": \"BTC\",\n    \"name\": \"Bitcoin\",\n    \"category\": \"CRYPTO\",\n    ...\n}\n```","operationId":"get_identity_by_hash_identity__hash_id__get","parameters":[{"name":"hash_id","in":"path","required":true,"schema":{"type":"string","title":"Hash Id"}},{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fields to expand: venues","title":"Expand"},"description":"Fields to expand: venues"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/crypto/price/{symbol}":{"get":{"tags":["Crypto"],"summary":"Get Consensus Price","description":"Get consensus price from multiple exchanges.\n\nFAST PATH: Reads from consensus cache (updated every 2 min by background task).\nSLOW PATH: If cache miss or force_refresh, fetches live from all sources.\n\nSupports canonical ID resolution:\n- asset_id: Full canonical ID (asset-token-btc-native-bitcoin-S1A2B3C4D5E6F7A8B9C0)\n- query: Symbol or hash_id to resolve\n- symbol: Path parameter\n\nSources (6 total):\n- coinbase: US regulated (FREE)\n- okx: Global derivatives (FREE)\n- defillama: DeFi aggregator (FREE)\n- coingecko: Aggregator fallback (PAID)\n- moralis: On-chain data (PAID)\n- fmp: TradFi/macro (PAID)\n\nArgs:\n    symbol: Asset symbol in path (e.g., BTC, ETH, SOL)\n    asset_id: Canonical asset ID for precise lookup\n    query: Alternative query param (resolves to canonical)\n    include_sources: Only use these sources (comma-separated)\n    exclude_sources: Skip these sources (comma-separated)\n    force_refresh: Bypass cache and fetch live data\n\nReturns:\n    Consensus price with confidence score, source breakdown, and asset_id","operationId":"get_consensus_price_crypto_price__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"asset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Canonical asset ID (e.g., asset-token-btc-native-bitcoin-S1A2B3C4D5E6F7A8B9C0)","title":"Asset Id"},"description":"Canonical asset ID (e.g., asset-token-btc-native-bitcoin-S1A2B3C4D5E6F7A8B9C0)"},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Query to resolve (symbol or hash_id)","title":"Q"},"description":"Query to resolve (symbol or hash_id)"},{"name":"include_sources","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated sources to include","title":"Include Sources"},"description":"Comma-separated sources to include"},{"name":"exclude_sources","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated sources to exclude","title":"Exclude Sources"},"description":"Comma-separated sources to exclude"},{"name":"force_refresh","in":"query","required":false,"schema":{"type":"boolean","description":"Bypass cache and fetch live","default":false,"title":"Force Refresh"},"description":"Bypass cache and fetch live"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Consensus Price Crypto Price  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/crypto/prices/batch":{"get":{"tags":["Crypto"],"summary":"Get Batch Consensus Prices","description":"Get consensus prices for multiple symbols in parallel.\n\nEfficient batch endpoint for fetching multiple prices simultaneously.\n\nArgs:\n    symbols: Comma-separated symbols (e.g., \"BTC,ETH,SOL\")\n\nReturns:\n    Dict mapping symbol to consensus price data","operationId":"get_batch_consensus_prices_crypto_prices_batch_get","parameters":[{"name":"symbols","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated symbols (max 20)","title":"Symbols"},"description":"Comma-separated symbols (max 20)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Batch Consensus Prices Crypto Prices Batch Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/crypto/sources/status":{"get":{"tags":["Crypto"],"summary":"Get Price Sources Status","description":"Get status of all price data sources.\n\nReturns availability and health of each exchange/aggregator.","operationId":"get_price_sources_status_crypto_sources_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Price Sources Status Crypto Sources Status Get"}}}}}}},"/crypto/trending":{"get":{"tags":["Crypto"],"summary":"Get Crypto Trending","description":"Get globally trending crypto tokens by search volume.\n\nResilience chain:\n    1. resolver.get_trending() — CoinGecko + 5-min fresh cache (trending:crypto)\n    2. DB fallback — top crypto assets by 24h move\n    3. stale cache (24h, crypto:trending:last_good) — last-known-good\n    4. 503\n\nCache: 5 minutes fresh, 24 hours stale-on-error.\nSide Effect: Auto-registers new tokens to the registry.","operationId":"get_crypto_trending_crypto_trending_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/crypto/trending/pools":{"get":{"tags":["Crypto"],"summary":"Get Trending Pools","description":"Get trending DEX pools across all networks.\n\nReturns tokens from the most active liquidity pools.\nData is cached for 3 minutes.","operationId":"get_trending_pools_crypto_trending_pools_get","parameters":[{"name":"duration","in":"query","required":false,"schema":{"type":"string","description":"Duration: 24h, 6h, 1h","default":"24h","title":"Duration"},"description":"Duration: 24h, 6h, 1h"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Maximum pools to return","default":20,"title":"Limit"},"description":"Maximum pools to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/crypto/trending/evm":{"get":{"tags":["Crypto"],"summary":"Get Evm Trending","description":"Get trending tokens on EVM chains.\n\nSupports: eth, bsc, polygon, arbitrum, optimism, base, avalanche, fantom.\nData is cached for 3 minutes.\nAuto-registers new tokens to the registry.","operationId":"get_evm_trending_crypto_trending_evm_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain: eth, bsc, polygon, arbitrum, base, optimism","default":"eth","title":"Chain"},"description":"Chain: eth, bsc, polygon, arbitrum, base, optimism"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum tokens to return","default":20,"title":"Limit"},"description":"Maximum tokens to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/crypto/trending/solana/bonding":{"get":{"tags":["Crypto"],"summary":"Get Solana Bonding","description":"Get Solana tokens in bonding phase.\n\nReturns tokens still in bonding curve (e.g., Pump.fun).\nData is cached for 3 minutes.\nAuto-registers new tokens to the registry.","operationId":"get_solana_bonding_crypto_trending_solana_bonding_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum tokens to return","default":20,"title":"Limit"},"description":"Maximum tokens to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/crypto/trending/solana/graduated":{"get":{"tags":["Crypto"],"summary":"Get Solana Graduated","description":"Get graduated Solana tokens (moved to DEX).\n\nReturns tokens that completed bonding and migrated to Raydium.\nData is cached for 10 minutes.\nAuto-registers new tokens to the registry.","operationId":"get_solana_graduated_crypto_trending_solana_graduated_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum tokens to return","default":50,"title":"Limit"},"description":"Maximum tokens to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/crypto/trending/all":{"get":{"tags":["Crypto"],"summary":"Get All Trending","description":"Get aggregated trending tokens from ALL sources in a single call.\n\nReturns trending tokens across:\n- Global crypto trending\n- DEX pools\n- EVM chains (ETH, Base, BSC, Polygon, Arbitrum, Optimism)\n- Solana (bonding + graduated tokens)\n\nData is cached and refreshed every 15 minutes for fast responses (~10ms).\n\n**dedupe_by_family=true**: Groups related assets (BTC, WBTC, cbBTC) into one signal.","operationId":"get_all_trending_crypto_trending_all_get","parameters":[{"name":"include_pools","in":"query","required":false,"schema":{"type":"boolean","description":"Include DEX pool trending","default":true,"title":"Include Pools"},"description":"Include DEX pool trending"},{"name":"include_solana","in":"query","required":false,"schema":{"type":"boolean","description":"Include Solana bonding/graduated","default":true,"title":"Include Solana"},"description":"Include Solana bonding/graduated"},{"name":"evm_chains","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated EVM chains to include","default":"eth,base,bsc,polygon,arbitrum,optimism","title":"Evm Chains"},"description":"Comma-separated EVM chains to include"},{"name":"limit_per_source","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":5,"description":"Max tokens per source","default":15,"title":"Limit Per Source"},"description":"Max tokens per source"},{"name":"enrich","in":"query","required":false,"schema":{"type":"boolean","description":"Enrich with DB data (sparklines, metadata)","default":true,"title":"Enrich"},"description":"Enrich with DB data (sparklines, metadata)"},{"name":"dedupe_by_family","in":"query","required":false,"schema":{"type":"boolean","description":"Dedupe by family (BTC+WBTC -> 1 signal with alt_venues)","default":false,"title":"Dedupe By Family"},"description":"Dedupe by family (BTC+WBTC -> 1 signal with alt_venues)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/crypto/global":{"get":{"tags":["Crypto"],"summary":"Get Global Market Data","description":"Get global crypto market data snapshot.\n\nReturns aggregate market metrics useful for market sentiment and\nmacro analysis.\n\nReturns:\n    MarketData object with:\n    - total_market_cap_usd: Total crypto market capitalization\n    - btc_dominance: Bitcoin's share of total market cap (%)\n    - eth_dominance: Ethereum's share of total market cap (%)\n    - total_volume_24h_usd: 24-hour trading volume\n    - market_cap_change_24h_pct: Market cap change in last 24h (%)\n    - active_cryptocurrencies: Number of tracked cryptocurrencies\n    - source: which provider served this response (coingecko | cmc | stale)\n    - cached: Whether data is from fresh cache\n    - metadata.degraded: True when served from stale cache or weak fallback\n\nCache: 5 minutes fresh, 24 hours stale-on-error.\nData Sources: CoinGecko (primary), CoinMarketCap (fallback), stale cache (24h).","operationId":"get_global_market_data_crypto_global_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dex/pairs":{"get":{"tags":["Crypto"],"summary":"Get All Dex Pairs","description":"Get available trading pairs from all supported DEXes.\n\nReturns a dict mapping DEX name to list of available symbols.\nData is cached for 1 hour.","operationId":"get_all_dex_pairs_dex_pairs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dex/{dex}/pairs":{"get":{"tags":["Crypto"],"summary":"Get Dex Pairs","description":"Get available trading pairs for a specific DEX.","operationId":"get_dex_pairs_dex__dex__pairs_get","parameters":[{"name":"dex","in":"path","required":true,"schema":{"type":"string","title":"Dex"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dex/{dex}/{symbol}/funding":{"get":{"tags":["Crypto"],"summary":"Get Funding Rate","description":"Get current funding rate for a symbol on a specific DEX.\n\nFunding rate is returned as a decimal (e.g., 0.0001 = 0.01%).","operationId":"get_funding_rate_dex__dex___symbol__funding_get","parameters":[{"name":"dex","in":"path","required":true,"schema":{"type":"string","title":"Dex"}},{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dex/{dex}/{symbol}/oi":{"get":{"tags":["Crypto"],"summary":"Get Open Interest","description":"Get current open interest for a symbol on a specific DEX.\n\nOpen interest is returned in contracts or USD depending on the DEX.","operationId":"get_open_interest_dex__dex___symbol__oi_get","parameters":[{"name":"dex","in":"path","required":true,"schema":{"type":"string","title":"Dex"}},{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dex/{symbol}/funding/all":{"get":{"tags":["Crypto"],"summary":"Get Funding Rates All Dexes","description":"Get funding rates for a symbol across ALL supported DEXes.\n\nUseful for finding funding rate arbitrage opportunities.","operationId":"get_funding_rates_all_dexes_dex__symbol__funding_all_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dex/{symbol}/oi/all":{"get":{"tags":["Crypto"],"summary":"Get Oi All Dexes","description":"Get open interest for a symbol across ALL supported DEXes.","operationId":"get_oi_all_dexes_dex__symbol__oi_all_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dex/info":{"get":{"tags":["Crypto"],"summary":"Get Dex Info","description":"Get information about all supported DEXes.","operationId":"get_dex_info_dex_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/pools/{address}/pairs":{"get":{"tags":["Crypto"],"summary":"Get Token Pairs","description":"Get DEX pairs for a token.\n\nReturns liquidity pools where this token is traded, sorted by liquidity.\n\nInternal Data Sources:\n    - Primary: Moralis /erc20/{address}/pairs\n    - Future: DexScreener, GeckoTerminal","operationId":"get_token_pairs_pools__address__pairs_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","description":"Token contract address","title":"Address"},"description":"Token contract address"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier","default":"eth","title":"Chain"},"description":"Chain identifier"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum pairs to return","default":20,"title":"Limit"},"description":"Maximum pairs to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pools/{address}/ohlcv":{"get":{"tags":["Crypto"],"summary":"Get Pool Ohlcv","description":"Get OHLCV price data for a DEX pool.\n\nReturns candlestick data for charting pool price movements.\n\nInternal Data Sources:\n    - Primary: Moralis /pairs/{address}/ohlcv\n    - Future: DexScreener, GeckoTerminal","operationId":"get_pool_ohlcv_pools__address__ohlcv_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","description":"DEX pair/pool address","title":"Address"},"description":"DEX pair/pool address"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier","default":"eth","title":"Chain"},"description":"Chain identifier"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Candle timeframe (1m, 5m, 15m, 1h, 4h, 1d)","default":"1h","title":"Timeframe"},"description":"Candle timeframe (1m, 5m, 15m, 1h, 4h, 1d)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Number of candles","default":100,"title":"Limit"},"description":"Number of candles"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/defi/tvl/total":{"get":{"tags":["DeFi"],"summary":"Get Total Tvl","description":"Get total DeFi TVL across all chains and protocols.\n\nAggregates TVL from all tracked protocols to provide\na global view of DeFi market size.\n\nData from DeFiLlama (free, no API key required).","operationId":"get_total_tvl_defi_tvl_total_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/defi/tvl/chains":{"get":{"tags":["DeFi"],"summary":"Get Chain Tvls","description":"Get TVL breakdown by blockchain.\n\nShows how DeFi capital is distributed across different chains.\nUseful for understanding chain dominance and ecosystem health.\n\nData from DeFiLlama (free, no API key required).","operationId":"get_chain_tvls_defi_tvl_chains_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/defi/tvl/protocol/{protocol}":{"get":{"tags":["DeFi"],"summary":"Get Protocol Tvl","description":"Get detailed TVL data for a specific protocol.\n\nIncludes TVL breakdown by chain and additional protocol metadata.\n\nArgs:\n    protocol: DeFiLlama protocol slug (lowercase, hyphenated)\n\nData from DeFiLlama (free, no API key required).","operationId":"get_protocol_tvl_defi_tvl_protocol__protocol__get","parameters":[{"name":"protocol","in":"path","required":true,"schema":{"type":"string","description":"Protocol slug (e.g., 'aave', 'uniswap')","title":"Protocol"},"description":"Protocol slug (e.g., 'aave', 'uniswap')"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/defi/yields":{"get":{"tags":["DeFi"],"summary":"Get Defi Yields","description":"Get DeFi yield farming opportunities.\n\nReturns yield pools sorted by APY, with filters for:\n- Chain\n- Minimum TVL (to filter out low liquidity pools)\n- Minimum APY\n- Stablecoin pools only\n\nData from DeFiLlama Yields API (free, no API key required).","operationId":"get_defi_yields_defi_yields_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by chain","title":"Chain"},"description":"Filter by chain"},{"name":"min_tvl","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Minimum TVL in USD","default":1000000,"title":"Min Tvl"},"description":"Minimum TVL in USD"},{"name":"min_apy","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Minimum APY percentage","default":0,"title":"Min Apy"},"description":"Minimum APY percentage"},{"name":"stablecoin","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter for stablecoin pools","title":"Stablecoin"},"description":"Filter for stablecoin pools"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/defi/stablecoins":{"get":{"tags":["DeFi"],"summary":"Get Stablecoins","description":"Get stablecoin market data.\n\nReturns stablecoins sorted by circulating supply, with:\n- Total circulating supply\n- Chain distribution\n- Peg type (USD, EUR, etc.)\n- Backing mechanism (fiat-backed, crypto-backed, algorithmic)\n\nData from DeFiLlama Stablecoins API (free, no API key required).","operationId":"get_stablecoins_defi_stablecoins_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/defi/bridges":{"get":{"tags":["DeFi"],"summary":"Get Bridges","description":"Get cross-chain bridge data.\n\nReturns bridges sorted by volume, with:\n- Daily, weekly, monthly volumes\n- Supported chains\n\nUseful for understanding cross-chain capital flows.\n\nData from DeFiLlama Bridges API (free, no API key required).","operationId":"get_bridges_defi_bridges_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/defi/protocols":{"get":{"tags":["DeFi"],"summary":"Search Protocols","description":"Search DeFi protocols with filters.\n\nCategories include: DEX, Lending, CDP, Yield, Bridge, Derivatives,\nYield Aggregator, Liquid Staking, and more.\n\nData from DeFiLlama (free, no API key required).","operationId":"search_protocols_defi_protocols_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category (e.g., 'DEX', 'Lending')","title":"Category"},"description":"Filter by category (e.g., 'DEX', 'Lending')"},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by chain","title":"Chain"},"description":"Filter by chain"},{"name":"min_tvl","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Minimum TVL in USD","default":0,"title":"Min Tvl"},"description":"Minimum TVL in USD"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/defi/protocol/{symbol}/info":{"get":{"tags":["DeFi"],"summary":"Check Protocol Symbol","description":"Check if a symbol belongs to a known DeFi protocol.\n\nUseful for identifying whether a token is associated with\na legitimate DeFi protocol.\n\nData from DeFiLlama (free, no API key required).","operationId":"check_protocol_symbol_defi_protocol__symbol__info_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Token symbol to check","title":"Symbol"},"description":"Token symbol to check"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/gas":{"get":{"tags":["DeFi"],"summary":"Get All Gas Prices","description":"Get current gas prices for all supported chains.\n\nReturns gas prices in Gwei for:\n- Ethereum\n- BNB Smart Chain (BSC)\n- Polygon\n- Arbitrum One\n- Optimism\n- Base\n\nFor EIP-1559 chains, also returns priority fee.","operationId":"get_all_gas_prices_gas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/gas/{chain}":{"get":{"tags":["DeFi"],"summary":"Get Chain Gas Price","description":"Get current gas price for a specific chain.\n\nArgs:\n    chain: Chain identifier (ethereum, eth, bsc, polygon, arbitrum, optimism, base)\n\nReturns:\n    Gas price in Gwei with EIP-1559 details if available.","operationId":"get_chain_gas_price_gas__chain__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/convert":{"get":{"tags":["DeFi"],"summary":"Convert Currency","description":"Convert between currencies (crypto to crypto, crypto to fiat).\n\nSupports:\n- Crypto to fiat (BTC → USD)\n- Fiat to crypto (USD → BTC)\n- Crypto to crypto (BTC → ETH)\n\nUses CoinGecko price data for conversion rates.\n\nExamples:\n- /convert?from=BTC&to=USD&amount=1\n- /convert?from=ETH&to=BTC&amount=10\n- /convert?from=USD&to=ETH&amount=1000","operationId":"convert_currency_convert_get","parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","description":"Source currency (BTC, ETH, USD, etc.)","title":"From"},"description":"Source currency (BTC, ETH, USD, etc.)"},{"name":"to","in":"query","required":true,"schema":{"type":"string","description":"Target currency (USD, EUR, BTC, etc.)","title":"To"},"description":"Target currency (USD, EUR, BTC, etc.)"},{"name":"amount","in":"query","required":false,"schema":{"type":"number","description":"Amount to convert","default":1.0,"title":"Amount"},"description":"Amount to convert"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health/extended":{"get":{"tags":["DeFi"],"summary":"Extended Health Check","description":"Extended health check with adapter status.\n\nReturns:\n- Service health\n- Database connectivity\n- Adapter/circuit breaker status\n- Cache status","operationId":"extended_health_check_health_extended_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/status/rate-limits":{"get":{"tags":["DeFi"],"summary":"Get Rate Limit Status","description":"Get current rate limit configuration and status.\n\nReturns:\n- Configured limits per endpoint type\n- Current client's rate limit status (from headers)","operationId":"get_rate_limit_status_status_rate_limits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/onchain/holders/{address}/top":{"get":{"tags":["Crypto"],"summary":"Get Top Holders","description":"Get top token holders by balance.\n\nReturns the largest holders of a token with their balances and percentages.\nAlso calculates concentration metrics (top 10 concentration).\n\nInternal Data Sources:\n    - Primary: Moralis EVM API (/erc20/{address}/owners)","operationId":"get_top_holders_onchain_holders__address__top_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","description":"Token contract address","title":"Address"},"description":"Token contract address"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier (eth, bsc, polygon, arbitrum, base)","default":"eth","title":"Chain"},"description":"Chain identifier (eth, bsc, polygon, arbitrum, base)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of top holders to return","default":50,"title":"Limit"},"description":"Number of top holders to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/onchain/holders/{address}/distribution":{"get":{"tags":["Crypto"],"summary":"Get Holder Distribution","description":"Get holder distribution buckets.\n\nCategorizes holders into size buckets (whale, large, medium, small, dust)\nbased on their percentage of total supply.\n\nInternal Data Sources:\n    - Primary: Moralis EVM API (/erc20/{address}/owners)","operationId":"get_holder_distribution_onchain_holders__address__distribution_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","description":"Token contract address","title":"Address"},"description":"Token contract address"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier","default":"eth","title":"Chain"},"description":"Chain identifier"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/onchain/supply/{symbol}":{"get":{"tags":["Crypto"],"summary":"Get Supply Data","description":"Get circulating and total supply data.\n\nReturns supply metrics including total, circulating, max supply,\nand burned tokens where available.\n\nInternal Data Sources:\n    - Primary: Moralis EVM API (/erc20/metadata)","operationId":"get_supply_data_onchain_supply__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Token symbol (e.g., ETH, USDT)","title":"Symbol"},"description":"Token symbol (e.g., ETH, USDT)"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier","default":"eth","title":"Chain"},"description":"Chain identifier"},{"name":"address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Token contract address (optional, required for non-native tokens)","title":"Address"},"description":"Token contract address (optional, required for non-native tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/onchain/active-addresses/{symbol}":{"get":{"tags":["Crypto"],"summary":"Get Active Addresses","description":"Get active address count for a token.\n\nReturns unique addresses that have interacted with the token\nin various time periods (24h, 7d, 30d).\n\nInternal Data Sources:\n    - Primary: Moralis EVM API (/erc20/{address}/transfers)","operationId":"get_active_addresses_onchain_active_addresses__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Token symbol","title":"Symbol"},"description":"Token symbol"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier","default":"eth","title":"Chain"},"description":"Chain identifier"},{"name":"address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Token contract address","title":"Address"},"description":"Token contract address"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/onchain/transaction-count/{symbol}":{"get":{"tags":["Crypto"],"summary":"Get Transaction Count","description":"Get transaction metrics for a token.\n\nReturns transaction counts, average values, and volume\nacross various time periods.\n\nInternal Data Sources:\n    - Primary: Moralis EVM API (/erc20/{address}/transfers)","operationId":"get_transaction_count_onchain_transaction_count__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Token symbol","title":"Symbol"},"description":"Token symbol"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier","default":"eth","title":"Chain"},"description":"Chain identifier"},{"name":"address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Token contract address","title":"Address"},"description":"Token contract address"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/onchain/whale-movements":{"get":{"tags":["Crypto"],"summary":"Get Whale Movements","description":"Get large wallet movements (whale activity).\n\nTracks transfers above a USD threshold and classifies them\nas exchange deposits, withdrawals, or wallet-to-wallet transfers.\n\nInternal Data Sources:\n    - Primary: Moralis EVM API (/erc20/{address}/transfers)","operationId":"get_whale_movements_onchain_whale_movements_get","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","description":"Token contract address","title":"Address"},"description":"Token contract address"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier","default":"eth","title":"Chain"},"description":"Chain identifier"},{"name":"min_value_usd","in":"query","required":false,"schema":{"type":"number","minimum":10000,"description":"Minimum transfer value in USD","default":100000,"title":"Min Value Usd"},"description":"Minimum transfer value in USD"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum movements to return","default":50,"title":"Limit"},"description":"Maximum movements to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/onchain/exchange-flows/{symbol}":{"get":{"tags":["Crypto"],"summary":"Get Exchange Flows","description":"Get exchange inflow/outflow for a token.\n\nTracks token movements to and from known exchange addresses.\nPositive net flow = more leaving exchanges (bullish).\nNegative net flow = more entering exchanges (bearish).\n\nInternal Data Sources:\n    - Primary: Moralis EVM API (/erc20/{address}/transfers)","operationId":"get_exchange_flows_onchain_exchange_flows__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Token symbol","title":"Symbol"},"description":"Token symbol"},{"name":"address","in":"query","required":true,"schema":{"type":"string","description":"Token contract address","title":"Address"},"description":"Token contract address"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier","default":"eth","title":"Chain"},"description":"Chain identifier"},{"name":"period","in":"query","required":false,"schema":{"type":"string","description":"Time period (24h, 7d)","default":"24h","title":"Period"},"description":"Time period (24h, 7d)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/gainers":{"get":{"tags":["Stocks"],"summary":"Get Stock Gainers","description":"Get top gaining stocks.\n\nRaw data - no signal logic, no formatting.\nAuto-registers stocks to the registry.\nUses Yahoo Finance (free, no API key required).","operationId":"get_stock_gainers_stocks_gainers_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/losers":{"get":{"tags":["Stocks"],"summary":"Get Stock Losers","description":"Get top losing stocks.\n\nRaw data - no signal logic, no formatting.\nAuto-registers stocks to the registry.\nUses Yahoo Finance (free, no API key required).","operationId":"get_stock_losers_stocks_losers_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/active":{"get":{"tags":["Stocks"],"summary":"Get Most Active","description":"Get most actively traded stocks by volume.\n\nRaw data - no signal logic, no formatting.\nAuto-registers stocks to the registry.","operationId":"get_most_active_stocks_active_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/multi-day-movers":{"get":{"tags":["Stocks"],"summary":"Get Multi Day Movers","description":"Get stocks that moved in the same direction for multiple consecutive days.\n\nUseful for identifying momentum and trends.","operationId":"get_multi_day_movers_stocks_multi_day_movers_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":5,"minimum":2,"description":"Number of consecutive days","default":3,"title":"Days"},"description":"Number of consecutive days"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/quote":{"get":{"tags":["Stocks"],"summary":"Get Stock Quote","description":"Get quote for a single stock.\n\nRaw data - no enrichment, no context.\nUses FMP as primary source, falls back to Yahoo Finance if FMP fails.","operationId":"get_stock_quote_stocks__symbol__quote_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/profile":{"get":{"tags":["Stocks"],"summary":"Get Stock Profile Detail","description":"Get full company profile with identifiers.\n\nIncludes standard identifiers for cross-referencing:\n- ISIN (International Securities Identification Number)\n- CUSIP (US/Canada identifier)\n- CIK (SEC identifier)\n\nPlus company details: sector, industry, description, CEO, etc.\nUses FMP as primary source, falls back to Yahoo Finance if FMP fails.","operationId":"get_stock_profile_detail_stocks__symbol__profile_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/fundamentals":{"get":{"tags":["Stocks"],"summary":"Get Stock Fundamentals","description":"Get comprehensive company fundamentals and key statistics.\n\nUses Yahoo Finance for detailed fundamental data including:\n\n**Valuation:**\n- P/E ratio, Forward P/E, PEG ratio\n- Price to Book, Price to Sales\n- EV/Revenue, EV/EBITDA\n\n**Profitability:**\n- Profit margins, Operating margins\n- ROE, ROA, Gross margins\n\n**Financial Health:**\n- Debt to Equity, Current Ratio, Quick Ratio\n- Total Debt, Total Cash\n\n**Growth:**\n- Revenue growth, Earnings growth\n\n**Dividends:**\n- Dividend rate and yield, Payout ratio\n\n**Analyst:**\n- Target prices, Recommendations\n\nData from Yahoo Finance (free, no API key required).","operationId":"get_stock_fundamentals_stocks__symbol__fundamentals_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/sparkline":{"get":{"tags":["Stocks"],"summary":"Get Stock Sparkline","description":"Get price history for sparkline charts.\n\nRaw OHLCV data - no alpha signals, no analysis.","operationId":"get_stock_sparkline_stocks__symbol__sparkline_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/earnings":{"get":{"tags":["Stocks"],"summary":"Get Stock Earnings","description":"Get historical earnings for a stock.\n\nReturns quarterly earnings with EPS actuals vs estimates, revenue, etc.","operationId":"get_stock_earnings_stocks__symbol__earnings_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/dividends":{"get":{"tags":["Stocks"],"summary":"Get Stock Dividends","description":"Get dividend history for a stock.\n\nReturns dividend payments with dates, amounts, ex-dates, etc.","operationId":"get_stock_dividends_stocks__symbol__dividends_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/splits":{"get":{"tags":["Stocks"],"summary":"Get Stock Splits","description":"Get stock split history.\n\nReturns historical stock splits with ratios and dates.","operationId":"get_stock_splits_stocks__symbol__splits_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/insiders":{"get":{"tags":["Stocks"],"summary":"Get Stock Insiders","description":"Get insider trading activity for a stock.\n\nReturns SEC Form 4 filings showing insider buys/sells.","operationId":"get_stock_insiders_stocks__symbol__insiders_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/institutional":{"get":{"tags":["Stocks"],"summary":"Get Stock Institutional","description":"Get institutional holdings for a stock.\n\nReturns major institutional holders and their positions.","operationId":"get_stock_institutional_stocks__symbol__institutional_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/filings":{"get":{"tags":["Stocks"],"summary":"Get Stock Filings","description":"Get SEC filings for a stock.\n\nReturns SEC filings (10-K, 10-Q, 8-K, etc.) with links to documents.","operationId":"get_stock_filings_stocks__symbol__filings_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"},{"name":"filing_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type (10-K, 10-Q, 8-K)","title":"Filing Type"},"description":"Filter by type (10-K, 10-Q, 8-K)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/peers":{"get":{"tags":["Stocks"],"summary":"Get Stock Peers","description":"Get peer companies for a stock.\n\nReturns list of similar companies in the same sector/industry.","operationId":"get_stock_peers_stocks__symbol__peers_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/financials":{"get":{"tags":["Stocks"],"summary":"Get Stock Financials","description":"Get financial statements for a stock.\n\nReturns income statement, balance sheet, or cash flow statement data.\n\nStatement types:\n- income: Revenue, profit margins, EPS, EBITDA\n- balance: Assets, liabilities, equity, debt\n- cash-flow: Operating, investing, financing cash flows","operationId":"get_stock_financials_stocks__symbol__financials_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"},{"name":"statement","in":"query","required":false,"schema":{"type":"string","description":"Statement type: income, balance, cash-flow","default":"income","title":"Statement"},"description":"Statement type: income, balance, cash-flow"},{"name":"period","in":"query","required":false,"schema":{"type":"string","description":"Period: annual or quarter","default":"annual","title":"Period"},"description":"Period: annual or quarter"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":5,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/analyst-ratings":{"get":{"tags":["Stocks"],"summary":"Get Stock Analyst Ratings","description":"Get analyst ratings and recommendations for a stock.\n\nReturns analyst ratings with price targets and grade changes.","operationId":"get_stock_analyst_ratings_stocks__symbol__analyst_ratings_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}":{"get":{"tags":["Stocks"],"summary":"Get Stock Profile","description":"Get full stock profile with financial metrics.\n\nReturns company profile, price data, and key financial metrics.\nData is cached for 1 hour.","operationId":"get_stock_profile_stocks__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock ticker symbol","title":"Symbol"},"description":"Stock ticker symbol"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/batch/quotes":{"post":{"tags":["Stocks"],"summary":"Get Batch Quotes","description":"Get quotes for multiple stocks in one call.\n\nAccepts up to 50 symbols. Returns a dict mapping symbol to quote data.","operationId":"get_batch_quotes_stocks_batch_quotes_post","requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Symbols"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/batch/sparklines":{"post":{"tags":["Stocks"],"summary":"Get Batch Sparklines","description":"Get sparklines for multiple stocks in one call.\n\nAccepts up to 30 symbols. Returns a dict mapping symbol to sparkline data.","operationId":"get_batch_sparklines_stocks_batch_sparklines_post","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":7,"title":"Days"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Symbols"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/transcripts":{"get":{"tags":["Stocks"],"summary":"List Stock Transcripts","description":"List all available earnings call transcripts for a company.\n\nReturns a chronological list of quarters/years for which transcripts exist.\nUse GET /stocks/{symbol}/transcripts/{year}/{quarter} to fetch full text.","operationId":"list_stock_transcripts_stocks__symbol__transcripts_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock ticker symbol (e.g. AAPL)","title":"Symbol"},"description":"Stock ticker symbol (e.g. AAPL)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/transcripts/{year}/{quarter}":{"get":{"tags":["Stocks"],"summary":"Get Stock Transcript","description":"Fetch full text of a single earnings call transcript.\n\nRequires FMP Ultimate plan. Returns the raw transcript content along with\nsymbol, date, year, and quarter metadata.","operationId":"get_stock_transcript_stocks__symbol__transcripts__year___quarter__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock ticker symbol (e.g. AAPL)","title":"Symbol"},"description":"Stock ticker symbol (e.g. AAPL)"},{"name":"year","in":"path","required":true,"schema":{"type":"integer","maximum":2100,"minimum":1990,"description":"Fiscal year (e.g. 2024)","title":"Year"},"description":"Fiscal year (e.g. 2024)"},{"name":"quarter","in":"path","required":true,"schema":{"type":"integer","maximum":4,"minimum":1,"description":"Fiscal quarter (1–4)","title":"Quarter"},"description":"Fiscal quarter (1–4)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stocks/{symbol}/intraday":{"get":{"tags":["Stocks"],"summary":"Get Stock Intraday","description":"Get intraday OHLCV candles for a stock at any supported interval.\n\nSupported intervals: 1min, 5min, 15min, 30min, 1hour, 4hour.\nRequires FMP Ultimate for 1-minute resolution.\nOptionally filter with ?from=YYYY-MM-DD&to=YYYY-MM-DD.","operationId":"get_stock_intraday_stocks__symbol__intraday_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock ticker symbol (e.g. AAPL)","title":"Symbol"},"description":"Stock ticker symbol (e.g. AAPL)"},{"name":"interval","in":"query","required":false,"schema":{"type":"string","pattern":"^(1min|5min|15min|30min|1hour|4hour)$","description":"Candle interval","default":"1min","title":"Interval"},"description":"Candle interval"},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start date YYYY-MM-DD","title":"From"},"description":"Start date YYYY-MM-DD"},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End date YYYY-MM-DD","title":"To"},"description":"End date YYYY-MM-DD"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/etfs/popular":{"get":{"tags":["Stocks"],"summary":"Get Popular Etfs","description":"Get quotes for popular ETFs (SPY, QQQ, etc.).\n\nRaw quotes - no sector grouping, no analysis.","operationId":"get_popular_etfs_etfs_popular_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/etfs/{symbol}/holdings":{"get":{"tags":["Stocks"],"summary":"Get Etf Holdings","description":"Get top holdings for an ETF.\n\nRaw holdings data - no weighting analysis.","operationId":"get_etf_holdings_etfs__symbol__holdings_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"ETF symbol","title":"Symbol"},"description":"ETF symbol"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/etfs/{symbol}/sector-weights":{"get":{"tags":["Stocks"],"summary":"Get Etf Sector Weights","description":"Get sector breakdown for an ETF.\n\nReturns percentage allocation to each sector.","operationId":"get_etf_sector_weights_etfs__symbol__sector_weights_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"ETF symbol","title":"Symbol"},"description":"ETF symbol"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/etfs/{symbol}/mutual-fund-holders":{"get":{"tags":["Stocks"],"summary":"Get Mutual Fund Holders","description":"Get mutual funds that hold a given stock.\n\nReturns a list of mutual fund names, share counts, dates reported,\nand portfolio weight percentages. Requires FMP Ultimate plan.","operationId":"get_mutual_fund_holders_etfs__symbol__mutual_fund_holders_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock ticker to look up mutual fund ownership for","title":"Symbol"},"description":"Stock ticker to look up mutual fund ownership for"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/indexes":{"get":{"tags":["Stocks"],"summary":"Get Market Indexes","description":"Get major market index quotes.\n\nReturns S&P 500, Dow Jones, NASDAQ, Russell 2000, VIX.\nRaw quotes - no sentiment calculation.","operationId":"get_market_indexes_indexes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sectors":{"get":{"tags":["Stocks"],"summary":"Get Sector Performance","description":"Get sector performance data.\n\nRaw sector % changes - no heatmap logic.","operationId":"get_sector_performance_sectors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/forex":{"get":{"tags":["Stocks","Forex & Commodities"],"summary":"Get Forex Quotes","description":"Get major forex pair quotes.\n\nRaw quotes - no technicals, no signals.","operationId":"get_forex_quotes_forex_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/forex/{currency}/tradeable":{"get":{"tags":["Stocks","Forex & Commodities"],"summary":"Get Forex Tradeable Forms","description":"Resolve a currency to ALL tradeable forms for agentic trading.\n\nReturns:\n- Traditional forex pairs with venues (OANDA, Forex.com)\n- Tokenized stablecoins with chains and DEX/CEX venues\n\nExample: EUR → EUR/USD (forex) + EURS (crypto) + EURC (crypto) + agEUR (crypto)\n\nUse this to let agents choose HOW they want to get currency exposure.","operationId":"get_forex_tradeable_forms_forex__currency__tradeable_get","parameters":[{"name":"currency","in":"path","required":true,"schema":{"type":"string","description":"Currency code (EUR, USD, EURUSD, JPY)","title":"Currency"},"description":"Currency code (EUR, USD, EURUSD, JPY)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/commodities/{commodity}/tradeable":{"get":{"tags":["Stocks","Forex & Commodities"],"summary":"Get Commodity Tradeable Forms","description":"Resolve a commodity to ALL tradeable forms for agentic trading.\n\nReturns:\n- ETFs (GLD, SLV, USO) with stock broker venues\n- Tokenized versions (PAXG, XAUT) with crypto exchanges\n- Forex/spot prices with forex broker venues\n- Futures contracts with futures venues\n\nExample: GOLD → GLD (ETF) + IAU (ETF) + PAXG (crypto) + XAUT (crypto) + XAU/USD (forex) + GC=F (futures)\n\nUse this to let agents choose HOW they want commodity exposure.","operationId":"get_commodity_tradeable_forms_commodities__commodity__tradeable_get","parameters":[{"name":"commodity","in":"path","required":true,"schema":{"type":"string","description":"Commodity name or symbol (GOLD, XAU, OIL, WTI, SILVER)","title":"Commodity"},"description":"Commodity name or symbol (GOLD, XAU, OIL, WTI, SILVER)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/commodities":{"get":{"tags":["Stocks","Forex & Commodities"],"summary":"Get Commodity Quotes","description":"Get commodity quotes (gold, silver, oil, etc.).\n\nRaw quotes - no signals, no analysis.","operationId":"get_commodity_quotes_commodities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/commodities/energy":{"get":{"tags":["Stocks","Forex & Commodities"],"summary":"Get Energy Analytics","description":"Get EIA petroleum spot price analytics.\n\nLLM helper:\n- Returns provider-normalized energy price payload in `data`.\n- Best used for oil/energy regime context and cross-asset correlation prompts.\n- Empty or partial fields indicate upstream provider sparsity, not route absence.","operationId":"get_energy_analytics_commodities_energy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/indexes/nasdaq100":{"get":{"tags":["Stocks"],"summary":"Get Nasdaq100 Constituents","description":"Get list of NASDAQ 100 constituent symbols.\n\nReturns all 100 symbols in the NASDAQ 100 index.","operationId":"get_nasdaq100_constituents_indexes_nasdaq100_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/indexes/sp500":{"get":{"tags":["Stocks"],"summary":"Get Sp500 Constituents","description":"Get list of S&P 500 constituent symbols.\n\nReturns all ~500 symbols in the S&P 500 index.","operationId":"get_sp500_constituents_indexes_sp500_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/institutional/search":{"get":{"tags":["Institutional"],"summary":"Search Institutional Managers","description":"Search for institutional money managers by name.\n\nReturns CIK numbers and manager names. Use the CIK to look up\nfull portfolio holdings and 13F filings.\n\nRequires FMP Ultimate plan.","operationId":"search_institutional_managers_institutional_search_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Manager name to search (e.g. 'Vanguard')","title":"Name"},"description":"Manager name to search (e.g. 'Vanguard')"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutional/{cik}/portfolio":{"get":{"tags":["Institutional"],"summary":"Get Manager Portfolio","description":"Get full portfolio holdings for an institutional money manager.\n\nReturns each position with symbol, shares, value, weight, and quarter-over-quarter\nchange. Use GET /institutional/search to find a manager's CIK.\n\nRequires FMP Ultimate plan.","operationId":"get_manager_portfolio_institutional__cik__portfolio_get","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"string","description":"Manager CIK from SEC (e.g. '0001067983' for Berkshire Hathaway)","title":"Cik"},"description":"Manager CIK from SEC (e.g. '0001067983' for Berkshire Hathaway)"},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific quarter date YYYY-MM-DD","title":"Date"},"description":"Specific quarter date YYYY-MM-DD"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number for large portfolios","default":0,"title":"Page"},"description":"Page number for large portfolios"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutional/{cik}/13f":{"get":{"tags":["Institutional"],"summary":"Get 13F Filings","description":"Get raw 13F SEC filing records for an institutional manager.\n\nReturns every position entry across all reported quarters: symbol,\nissuer name, shares held, value, and holding type.\n\nRequires FMP Ultimate plan.","operationId":"get_13f_filings_institutional__cik__13f_get","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"string","description":"Manager CIK from SEC","title":"Cik"},"description":"Manager CIK from SEC"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutional/{cik}/13f-dates":{"get":{"tags":["Institutional"],"summary":"Get 13F Dates","description":"List all available 13F filing dates for an institutional manager.\n\nReturns a list of dates for which 13F data is available.\nUse a date from this list with GET /institutional/{cik}/portfolio?date=...\n\nRequires FMP Ultimate plan.","operationId":"get_13f_dates_institutional__cik__13f_dates_get","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"string","description":"Manager CIK from SEC","title":"Cik"},"description":"Manager CIK from SEC"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/market/overview":{"get":{"tags":["Crypto"],"summary":"Get Market Overview","description":"Get comprehensive market overview.\n\nReturns:\n- Global market metrics (total market cap, volume, dominance)\n- Fear & Greed Index\n- BTC/ETH prices\n- Top gainers and losers\n- Trending tokens\n\nThis endpoint aggregates data from multiple sources for dashboard views.\nData is cached for 3 minutes.","operationId":"get_market_overview_market_overview_get","parameters":[{"name":"include_trending","in":"query","required":false,"schema":{"type":"boolean","description":"Include trending tokens","default":true,"title":"Include Trending"},"description":"Include trending tokens"},{"name":"include_movers","in":"query","required":false,"schema":{"type":"boolean","description":"Include top gainers/losers","default":true,"title":"Include Movers"},"description":"Include top gainers/losers"},{"name":"movers_limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"description":"Number of gainers/losers","default":5,"title":"Movers Limit"},"description":"Number of gainers/losers"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/market/fear-greed":{"get":{"tags":["Crypto"],"summary":"Get Fear Greed Index","description":"Get Fear & Greed Index.\n\nReturns current market sentiment on a scale of 0-100:\n- 0-25: Extreme Fear\n- 25-45: Fear  \n- 45-55: Neutral\n- 55-75: Greed\n- 75-100: Extreme Greed","operationId":"get_fear_greed_index_market_fear_greed_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/market/crypto/gainers":{"get":{"tags":["Crypto"],"summary":"Get Crypto Gainers","description":"Get top gaining cryptocurrencies (24h).\n\nRaw data - sorted by 24h price change descending.","operationId":"get_crypto_gainers_market_crypto_gainers_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/market/crypto/losers":{"get":{"tags":["Crypto"],"summary":"Get Crypto Losers","description":"Get top losing cryptocurrencies (24h).\n\nRaw data - sorted by 24h price change ascending.","operationId":"get_crypto_losers_market_crypto_losers_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/market/crypto/gainers/aggregated":{"get":{"tags":["Crypto"],"summary":"Get Aggregated Crypto Gainers","description":"Get top gaining cryptocurrencies from ALL sources.\n\nAggregates from:\n- CoinGecko markets (top 100 by mcap)\n- Moralis EVM trending (ETH, Base, BSC, Polygon, Arbitrum)\n- Trending pools (GeckoTerminal)\n\nReturns unified list sorted by 24h price change.","operationId":"get_aggregated_crypto_gainers_market_crypto_gainers_aggregated_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/market/crypto/losers/aggregated":{"get":{"tags":["Crypto"],"summary":"Get Aggregated Crypto Losers","description":"Get top losing cryptocurrencies from ALL sources.\n\nAggregates from:\n- CoinGecko markets (top 100 by mcap)\n- Moralis EVM trending (ETH, Base, BSC, Polygon, Arbitrum)\n- Trending pools (GeckoTerminal)\n\nReturns unified list sorted by 24h price change (ascending).","operationId":"get_aggregated_crypto_losers_market_crypto_losers_aggregated_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/wallets/{address}/balances":{"get":{"tags":["DeFi"],"summary":"Get Wallet Balances","description":"Get token balances for a wallet address.\n\nReturns all token holdings with current USD values, sorted by value.\nSupports EVM chains (eth, bsc, polygon, arbitrum, base) and Solana.\n\nInternal Data Sources:\n    - EVM: Moralis Wallet API\n    - Solana: Moralis Solana API\n    - Future: Helius, Zerion, Zapper","operationId":"get_wallet_balances_wallets__address__balances_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","description":"Wallet address (0x... for EVM, base58 for Solana)","title":"Address"},"description":"Wallet address (0x... for EVM, base58 for Solana)"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier (eth, bsc, polygon, arbitrum, base, solana)","default":"eth","title":"Chain"},"description":"Chain identifier (eth, bsc, polygon, arbitrum, base, solana)"},{"name":"min_value_usd","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Minimum USD value to include","default":1.0,"title":"Min Value Usd"},"description":"Minimum USD value to include"},{"name":"exclude_spam","in":"query","required":false,"schema":{"type":"boolean","description":"Exclude spam tokens","default":true,"title":"Exclude Spam"},"description":"Exclude spam tokens"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Maximum tokens to return","default":100,"title":"Limit"},"description":"Maximum tokens to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/wallets/{address}/native":{"get":{"tags":["DeFi"],"summary":"Get Wallet Native Balance","description":"Get native token balance (ETH, BNB, MATIC, etc.) for a wallet.\n\nInternal Data Sources:\n    - Primary: Moralis balance API","operationId":"get_wallet_native_balance_wallets__address__native_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","description":"Wallet address","title":"Address"},"description":"Wallet address"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier","default":"eth","title":"Chain"},"description":"Chain identifier"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/batch/quotes":{"get":{"tags":["Stocks"],"summary":"Get Batch Quotes","description":"Get stock quotes for multiple symbols at once.\n\nMore efficient than making individual calls for each symbol.\nLimited to 50 symbols per request.","operationId":"get_batch_quotes_batch_quotes_get","parameters":[{"name":"symbols","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated symbols (max 50)","title":"Symbols"},"description":"Comma-separated symbols (max 50)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/batch/stocks/sparklines":{"get":{"tags":["Stocks"],"summary":"Get Batch Stock Sparklines","description":"Get 5-day price sparklines for multiple stocks.\n\nReturns historical price data for charting mini sparklines.\nData is cached for 30 minutes.","operationId":"get_batch_stock_sparklines_batch_stocks_sparklines_get","parameters":[{"name":"symbols","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated stock symbols (max 20)","title":"Symbols"},"description":"Comma-separated stock symbols (max 20)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/batch/crypto/prices":{"get":{"tags":["Crypto"],"summary":"Get Batch Crypto Prices","description":"Get crypto prices for multiple coins at once.\n\nAccepts CoinGecko IDs ('bitcoin', 'ethereum') or symbols ('BTC', 'ETH').\nMore efficient than individual price lookups.","operationId":"get_batch_crypto_prices_batch_crypto_prices_get","parameters":[{"name":"coin_ids","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated coin IDs (max 100)","title":"Coin Ids"},"description":"Comma-separated coin IDs (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/batch/crypto/history":{"get":{"tags":["Crypto"],"summary":"Get Batch Crypto History","description":"Get price history for multiple coins.\n\nAccepts CoinGecko IDs ('bitcoin', 'ethereum') or symbols ('BTC', 'ETH').\nLimited to 10 coins due to rate limiting.\nReturns daily price points for each coin.","operationId":"get_batch_crypto_history_batch_crypto_history_get","parameters":[{"name":"coin_ids","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated coin IDs (max 10)","title":"Coin Ids"},"description":"Comma-separated coin IDs (max 10)"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"description":"Days of history","default":7,"title":"Days"},"description":"Days of history"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/batch/crypto/sparklines":{"get":{"tags":["Crypto"],"summary":"Get Batch Sparklines","description":"Get price sparklines for multiple tokens.\n\nFormat: address:chain pairs separated by commas.\nExample: 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599:eth\n\nLimited to 20 tokens per request.","operationId":"get_batch_sparklines_batch_crypto_sparklines_get","parameters":[{"name":"tokens","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated address:chain pairs (e.g., '0x123:eth,0x456:bsc')","title":"Tokens"},"description":"Comma-separated address:chain pairs (e.g., '0x123:eth,0x456:bsc')"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/batch/crypto/sparklines/symbols":{"get":{"tags":["Crypto"],"summary":"Get Batch Sparklines By Symbol","description":"Get 7-day price sparklines for multiple symbols.\n\n**Response includes:**\n- data: Array of ~168 price points (hourly)\n- change_7d_pct: Percentage change over 7 days\n- high_7d, low_7d: Price range\n\n**Limit:** 20 symbols per request","operationId":"get_batch_sparklines_by_symbol_batch_crypto_sparklines_symbols_get","parameters":[{"name":"symbols","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated symbols (e.g., 'BTC,ETH,SOL')","title":"Symbols"},"description":"Comma-separated symbols (e.g., 'BTC,ETH,SOL')"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"description":"Days of history for sparkline","default":7,"title":"Days"},"description":"Days of history for sparkline"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Crypto"],"summary":"Post Batch Sparklines By Symbol","description":"POST version for batch sparklines - accepts array in body.\n\nFor when you have many symbols or want to avoid URL length limits.","operationId":"post_batch_sparklines_by_symbol_batch_crypto_sparklines_symbols_post","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Symbols"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/batch/eod-prices":{"get":{"tags":["Stocks"],"summary":"Get Bulk Eod Prices","description":"Get end-of-day OHLCV prices for all US-listed stocks on a given date.\n\nReturns a bulk snapshot useful for backtesting and market screening.\nDefaults to the most recent available trading day when date is omitted.\n\nRequires FMP Ultimate plan.","operationId":"get_bulk_eod_prices_batch_eod_prices_get","parameters":[{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date YYYY-MM-DD (defaults to latest trading day)","title":"Date"},"description":"Date YYYY-MM-DD (defaults to latest trading day)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/families":{"get":{"tags":["Families"],"summary":"List Families","description":"List all asset families.\n\nAsset families group related assets (e.g., BTC includes WBTC, cbBTC, etc.)","operationId":"list_families_families_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category: cryptocurrency, stablecoin, forex","title":"Category"},"description":"Filter by category: cryptocurrency, stablecoin, forex"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Max families to return","default":100,"title":"Limit"},"description":"Max families to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Pagination offset","default":0,"title":"Offset"},"description":"Pagination offset"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/families/{family_id}":{"get":{"tags":["Families"],"summary":"Get Family","description":"Get a family with all its asset instances.\n\nAccepts either a full family ID (family-token-btc-S...) or a plain symbol (BTC).\n\nReturns:\n- Family metadata and aggregated price\n- Primary asset (most liquid/canonical)\n- All instances across chains","operationId":"get_family_families__family_id__get","parameters":[{"name":"family_id","in":"path","required":true,"schema":{"type":"string","description":"Family ID (e.g., family-token-btc-S1A2B3C4D5E6F7A8B9C0)","title":"Family Id"},"description":"Family ID (e.g., family-token-btc-S1A2B3C4D5E6F7A8B9C0)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/families/{family_id}/price":{"get":{"tags":["Families"],"summary":"Get Family Price","description":"Get the unified/reference price for a family.\n\nAccepts either a full family ID or a plain symbol (BTC).\nThis is what AI agents should use when asked \"What's Bitcoin worth?\"\nReturns the price from the primary/most liquid asset in the family.","operationId":"get_family_price_families__family_id__price_get","parameters":[{"name":"family_id","in":"path","required":true,"schema":{"type":"string","description":"Family ID (e.g., family-token-btc-S1A2B3C4D5E6F7A8B9C0)","title":"Family Id"},"description":"Family ID (e.g., family-token-btc-S1A2B3C4D5E6F7A8B9C0)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/families/{family_id}/instances":{"get":{"tags":["Families"],"summary":"Get Family Instances","description":"Get all asset instances in a family.\n\nAccepts either a full family ID or a plain symbol (BTC).\n\nUseful for:\n- Showing WBTC availability across chains\n- Finding the best chain/venue for an asset\n- Arbitrage opportunity detection","operationId":"get_family_instances_families__family_id__instances_get","parameters":[{"name":"family_id","in":"path","required":true,"schema":{"type":"string","description":"Family ID (e.g., family-token-btc-S1A2B3C4D5E6F7A8B9C0)","title":"Family Id"},"description":"Family ID (e.g., family-token-btc-S1A2B3C4D5E6F7A8B9C0)"},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by chain","title":"Chain"},"description":"Filter by chain"},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","description":"Include inactive assets","default":false,"title":"Include Inactive"},"description":"Include inactive assets"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/families/{family_id}/venues":{"get":{"tags":["Families"],"summary":"Get Family Venues","description":"Get all trading venues for a family - formatted for signal enrichment.\n\nThis is THE endpoint for enriching signals with alternative trading venues.\n\nReturns:\n- Primary venue (highest liquidity, native asset)\n- All alternative venues with deep links\n- Price deviations from reference price\n\nExample use case:\n- Signal says \"LONG ATOM\" \n- Call this endpoint to get:\n  - ATOM on NASDAQ (primary)\n  - bATOM on Ethereum (alt, tokenized)\n  - bATOM on Base (alt, tokenized)","operationId":"get_family_venues_families__family_id__venues_get","parameters":[{"name":"family_id","in":"path","required":true,"schema":{"type":"string","description":"Family ID (e.g., family-token-btc-S1A2B3C4D5E6F7A8B9C0)","title":"Family Id"},"description":"Family ID (e.g., family-token-btc-S1A2B3C4D5E6F7A8B9C0)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/macro/fed-rate":{"get":{"tags":["Macro Economics"],"summary":"Get Fed Rate","description":"Get Federal Funds Effective Rate.\n\nThe interest rate at which depository institutions trade federal funds\nwith each other overnight. Key benchmark for all interest rates.\n\nData updated monthly by FRED.","operationId":"get_fed_rate_macro_fed_rate_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/inflation":{"get":{"tags":["Macro Economics"],"summary":"Get Inflation","description":"Get Consumer Price Index (CPI) and inflation rate.\n\nCPI measures the average change in prices over time that consumers\npay for a basket of goods and services. Year-over-year change\nrepresents the inflation rate.\n\nData updated monthly by FRED.","operationId":"get_inflation_macro_inflation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/treasury-yields":{"get":{"tags":["Macro Economics"],"summary":"Get Treasury Yields","description":"Get Treasury yields across different maturities.\n\nReturns yields for 2-year, 5-year, 10-year, and 30-year Treasuries,\nplus the 10y-2y spread (yield curve indicator).\n\nAn inverted yield curve (negative spread) often signals recession.\n\nData updated daily by FRED.","operationId":"get_treasury_yields_macro_treasury_yields_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/unemployment":{"get":{"tags":["Macro Economics"],"summary":"Get Unemployment","description":"Get Unemployment Rate.\n\nThe percentage of the total labor force that is unemployed but\nactively seeking employment and willing to work.\n\nData updated monthly by FRED.","operationId":"get_unemployment_macro_unemployment_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/gdp":{"get":{"tags":["Macro Economics"],"summary":"Get Gdp","description":"Get Gross Domestic Product (GDP).\n\nThe total monetary value of all finished goods and services\nproduced within a country's borders. Reported quarterly at\nseasonally adjusted annual rates (SAAR).\n\nData updated quarterly by FRED.","operationId":"get_gdp_macro_gdp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/m2-supply":{"get":{"tags":["Macro Economics"],"summary":"Get M2 Supply","description":"Get M2 Money Supply.\n\nM2 is a measure of the money supply that includes cash, checking\ndeposits, savings deposits, money market securities, mutual funds,\nand other time deposits.\n\nUsed to forecast inflation and track monetary policy effects.\n\nData updated weekly by FRED.","operationId":"get_m2_supply_macro_m2_supply_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/summary":{"get":{"tags":["Macro Economics"],"summary":"Get Macro Summary","description":"Get summary of all macro economic indicators.\n\nReturns a consolidated view of:\n- Federal Funds Rate\n- Inflation (CPI)\n- Treasury Yields\n- Unemployment Rate\n- GDP\n- M2 Money Supply\n\nUseful for economic dashboards and market context.","operationId":"get_macro_summary_macro_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/series/{series_id}":{"get":{"tags":["Macro Economics"],"summary":"Get Fred Series","description":"Get raw FRED series data by ID.\n\nFor advanced users who want to query specific FRED series.\n\nCommon series IDs:\n- FEDFUNDS: Federal Funds Rate\n- CPIAUCSL: Consumer Price Index\n- DGS10: 10-Year Treasury\n- UNRATE: Unemployment Rate\n- GDP: Gross Domestic Product\n- M2SL: M2 Money Stock\n\nSee https://fred.stlouisfed.org for full list of series.","operationId":"get_fred_series_macro_series__series_id__get","parameters":[{"name":"series_id","in":"path","required":true,"schema":{"type":"string","title":"Series Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/macro/housing":{"get":{"tags":["Macro Economics"],"summary":"Get Housing","description":"Get housing market indicators.\n\nReturns:\n- Housing Starts (HOUST)\n- 30-Year Mortgage Rate (MORTGAGE30US)\n- New Home Sales, Building Permits\n\nKey indicators for real estate and consumer health.","operationId":"get_housing_macro_housing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/consumer":{"get":{"tags":["Macro Economics"],"summary":"Get Consumer","description":"Get consumer indicators.\n\nReturns:\n- Personal Consumption Expenditures (PCE)\n- Consumer Sentiment (UMCSENT)\n- Retail Sales\n\nKey indicators for consumer spending and confidence.","operationId":"get_consumer_macro_consumer_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/market":{"get":{"tags":["Macro Economics"],"summary":"Get Market Indicators","description":"Get market-related indicators from FRED.\n\nReturns:\n- S&P 500 Index (SP500)\n- VIX Volatility Index (VIXCLS)\n- WTI Crude Oil Price (DCOILWTICO)\n- US Dollar Index (DTWEXBGS)\n\nMarket data available through FRED.","operationId":"get_market_indicators_macro_market_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/jobless-claims":{"get":{"tags":["Macro Economics"],"summary":"Get Jobless Claims","description":"Get initial and continuing jobless claims.\n\nWeekly employment data - leading indicator for labor market.\n\nReturns:\n- Initial Claims (ICSA)\n- Continuing Claims (CCSA)","operationId":"get_jobless_claims_macro_jobless_claims_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/industrial":{"get":{"tags":["Macro Economics"],"summary":"Get Industrial","description":"Get industrial production indicators.\n\nReturns:\n- Industrial Production Index (INDPRO)\n- Capacity Utilization (TCU)\n- Manufacturing PMI data","operationId":"get_industrial_macro_industrial_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/available-series":{"get":{"tags":["Macro Economics"],"summary":"Get Available Series","description":"List all pre-configured FRED series.\n\nReturns metadata for all supported series including:\n- Series ID\n- Name\n- Units\n- Frequency\n- Category","operationId":"get_available_series_macro_available_series_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/macro/world-bank":{"get":{"tags":["Macro Economics"],"summary":"Get World Bank Indicator","description":"Get World Bank indicator time series.\n\nLLM helper:\n- `indicator` expects official World Bank code (default GDP nominal USD).\n- `country` accepts ISO code or `all`; `date` format is `start:end`.\n- Returned `data` may be sparse/null for some country+indicator combinations.","operationId":"get_world_bank_indicator_macro_world_bank_get","parameters":[{"name":"indicator","in":"query","required":false,"schema":{"type":"string","default":"NY.GDP.MKTP.CD","title":"Indicator"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Country"}},{"name":"date","in":"query","required":false,"schema":{"type":"string","default":"2020:2025","title":"Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/macro/bis":{"get":{"tags":["Macro Economics"],"summary":"Get Bis Policy Rates","description":"Get BIS policy-rates feed.\n\nLLM helper:\n- Use as central-bank policy context in macro summaries.\n- `data` can be `null` when BIS source is temporarily unavailable.\n- Treat null payloads as source freshness issues rather than schema errors.","operationId":"get_bis_policy_rates_macro_bis_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/calendar/economic":{"get":{"tags":["News & Calendar"],"summary":"Get Economic Calendar","description":"Get upcoming economic events.\n\nReturns major economic events like FOMC meetings, CPI releases,\nunemployment data, etc.","operationId":"get_economic_calendar_calendar_economic_get","parameters":[{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start date (YYYY-MM-DD)","title":"From Date"},"description":"Start date (YYYY-MM-DD)"},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End date (YYYY-MM-DD)","title":"To Date"},"description":"End date (YYYY-MM-DD)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/calendar/earnings":{"get":{"tags":["News & Calendar"],"summary":"Get Earnings Calendar","description":"Get upcoming earnings announcements.\n\nReturns scheduled earnings releases with estimated EPS and revenue.","operationId":"get_earnings_calendar_calendar_earnings_get","parameters":[{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start date (YYYY-MM-DD)","title":"From Date"},"description":"Start date (YYYY-MM-DD)"},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End date (YYYY-MM-DD)","title":"To Date"},"description":"End date (YYYY-MM-DD)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/calendar/earnings/week":{"get":{"tags":["News & Calendar"],"summary":"Get Earnings This Week","description":"Get earnings announcements for this week.\n\nConvenience endpoint that returns only this week's earnings.","operationId":"get_earnings_this_week_calendar_earnings_week_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Max earnings to return","default":30,"title":"Limit"},"description":"Max earnings to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/crypto":{"get":{"tags":["News & Calendar"],"summary":"Get Crypto News","description":"Get latest crypto news.\n\nReturns recent news articles related to cryptocurrency,\nblockchain, DeFi, and NFTs.","operationId":"get_crypto_news_news_crypto_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Max articles to return","default":30,"title":"Limit"},"description":"Max articles to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/stocks":{"get":{"tags":["News & Calendar"],"summary":"Get Stock News","description":"Get stock news, optionally filtered by symbol.\n\nWithout a symbol, returns general market news.\nWith a symbol, returns news specific to that stock.","operationId":"get_stock_news_news_stocks_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by stock symbol","title":"Symbol"},"description":"Filter by stock symbol"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Max articles to return","default":20,"title":"Limit"},"description":"Max articles to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/stocks/batch":{"get":{"tags":["News & Calendar"],"summary":"Get Stock News Batch","description":"Get news for multiple stock symbols.\n\nReturns news grouped by symbol. Useful for portfolio news feeds\nor screener context.","operationId":"get_stock_news_batch_news_stocks_batch_get","parameters":[{"name":"symbols","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated symbols (max 10)","title":"Symbols"},"description":"Comma-separated symbols (max 10)"},{"name":"limit_per_symbol","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"description":"Max articles per symbol","default":3,"title":"Limit Per Symbol"},"description":"Max articles per symbol"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/historical/{symbol}/prices":{"get":{"tags":["News & Calendar"],"summary":"Get Historical Prices","description":"Get historical price data for an asset.\n\nReturns daily OHLCV candles for stocks and crypto.\n\n**Sources:**\n- Crypto: CoinGecko market_chart\n- Stocks: FMP historical-price-full\n\n**Args:**\n- symbol: Asset symbol (e.g., BTC, ETH, AAPL, MSFT)\n- from_date: Start date (YYYY-MM-DD)\n- to_date: End date (YYYY-MM-DD)\n- days: Number of days if dates not specified (default: 30)\n- interval: daily or hourly (hourly only for crypto)\n\n**Returns:**\n- prices: List of OHLCV candles\n- meta: Symbol info and data range","operationId":"get_historical_prices_historical__symbol__prices_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start date (YYYY-MM-DD)","title":"From Date"},"description":"Start date (YYYY-MM-DD)"},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End date (YYYY-MM-DD)","title":"To Date"},"description":"End date (YYYY-MM-DD)"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":1825,"minimum":1,"description":"Number of days (if from/to not specified)","default":30,"title":"Days"},"description":"Number of days (if from/to not specified)"},{"name":"interval","in":"query","required":false,"schema":{"type":"string","description":"Interval: daily, hourly (crypto only)","default":"daily","title":"Interval"},"description":"Interval: daily, hourly (crypto only)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/historical/{symbol}/volume":{"get":{"tags":["News & Calendar"],"summary":"Get Historical Volume","description":"Get historical volume data for an asset.\n\n**Sources:**\n- Crypto: CoinGecko market_chart\n- Stocks: FMP historical-price-full\n\n**Args:**\n- symbol: Asset symbol\n- days: Number of days (default: 30)\n\n**Returns:**\n- volumes: List of daily volume data\n- statistics: Average, max, min volume","operationId":"get_historical_volume_historical__symbol__volume_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"Number of days","default":30,"title":"Days"},"description":"Number of days"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/historical/{symbol}/metrics":{"get":{"tags":["News & Calendar"],"summary":"Get Historical Metrics","description":"Get historical metrics (market cap, supply) for an asset.\n\n**Sources:**\n- Crypto: CoinGecko market_chart (includes market_caps)\n- Stocks: FMP historical market cap\n\n**Args:**\n- symbol: Asset symbol\n- days: Number of days (default: 30)\n\n**Returns:**\n- metrics: List of daily market cap data\n- statistics: Current, min, max market cap","operationId":"get_historical_metrics_historical__symbol__metrics_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"Number of days","default":30,"title":"Days"},"description":"Number of days"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/historical/compare":{"get":{"tags":["News & Calendar"],"summary":"Compare Historical","description":"Compare historical data across multiple assets.\n\n**Args:**\n- symbols: Comma-separated list of symbols (max 10)\n- days: Number of days (default: 30)\n- metric: What to compare: price, volume, market_cap\n\n**Returns:**\n- comparison: Normalized data for each asset\n- performance: Returns for each asset over the period","operationId":"compare_historical_historical_compare_get","parameters":[{"name":"symbols","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated symbols (e.g., BTC,ETH,AAPL)","title":"Symbols"},"description":"Comma-separated symbols (e.g., BTC,ETH,AAPL)"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"Number of days","default":30,"title":"Days"},"description":"Number of days"},{"name":"metric","in":"query","required":false,"schema":{"type":"string","description":"Metric to compare: price, volume, market_cap","default":"price","title":"Metric"},"description":"Metric to compare: price, volume, market_cap"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/historical/{symbol}/returns":{"get":{"tags":["News & Calendar"],"summary":"Get Historical Returns","description":"Calculate historical returns for various time periods.\n\n**Args:**\n- symbol: Asset symbol\n- periods: Custom periods in days (default: 1,7,30,90,365)\n\n**Returns:**\n- returns: Return percentages for each period\n- current_price: Latest price\n- meta: Price comparison data","operationId":"get_historical_returns_historical__symbol__returns_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"periods","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated periods in days (e.g., 1,7,30,90,365)","title":"Periods"},"description":"Comma-separated periods in days (e.g., 1,7,30,90,365)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/historical/{symbol}/volatility":{"get":{"tags":["News & Calendar"],"summary":"Get Historical Volatility","description":"Calculate historical volatility for an asset.\n\nReturns annualized volatility (standard deviation of daily returns * sqrt(365)).\n\n**Args:**\n- symbol: Asset symbol\n- window: Number of days for volatility calculation (default: 30)\n\n**Returns:**\n- volatility: Annualized volatility percentage\n- daily_volatility: Non-annualized daily volatility\n- statistics: Additional volatility metrics","operationId":"get_historical_volatility_historical__symbol__volatility_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"window","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":7,"description":"Volatility window in days","default":30,"title":"Window"},"description":"Volatility window in days"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/signals/momentum":{"get":{"tags":["Signals & Technicals"],"summary":"Get Momentum Signals","description":"Get momentum signals based on RSI and MACD.\n\nAnalyzes:\n- RSI (Relative Strength Index) - Oversold (<30) / Overbought (>70)\n- MACD crossovers and histogram direction\n\nReturns actionable momentum signals for each symbol.","operationId":"get_momentum_signals_signals_momentum_get","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated symbols (default: top 20)","title":"Symbols"},"description":"Comma-separated symbols (default: top 20)"},{"name":"rsi_oversold","in":"query","required":false,"schema":{"type":"number","description":"RSI oversold threshold","default":30,"title":"Rsi Oversold"},"description":"RSI oversold threshold"},{"name":"rsi_overbought","in":"query","required":false,"schema":{"type":"number","description":"RSI overbought threshold","default":70,"title":"Rsi Overbought"},"description":"RSI overbought threshold"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Momentum Signals Signals Momentum Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/signals/volume-spike":{"get":{"tags":["Signals & Technicals"],"summary":"Get Volume Spike Signals","description":"Detect unusual volume spikes.\n\nA volume spike indicates increased market interest and potential price moves.\n\n- spike_threshold: How many times above average volume to trigger (default 2x)\n- lookback_periods: How many candles to use for average (default 20)","operationId":"get_volume_spike_signals_signals_volume_spike_get","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated symbols","title":"Symbols"},"description":"Comma-separated symbols"},{"name":"spike_threshold","in":"query","required":false,"schema":{"type":"number","description":"Volume spike multiplier (e.g., 2.0 = 2x average)","default":2.0,"title":"Spike Threshold"},"description":"Volume spike multiplier (e.g., 2.0 = 2x average)"},{"name":"lookback_periods","in":"query","required":false,"schema":{"type":"integer","description":"Periods for average volume calculation","default":20,"title":"Lookback Periods"},"description":"Periods for average volume calculation"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Volume Spike Signals Signals Volume Spike Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/signals/breakout":{"get":{"tags":["Signals & Technicals"],"summary":"Get Breakout Signals","description":"Detect price breakouts from support/resistance levels.\n\nIdentifies when price breaks above resistance or below support levels.\nUses Bollinger Bands and recent high/low for level detection.","operationId":"get_breakout_signals_signals_breakout_get","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated symbols","title":"Symbols"},"description":"Comma-separated symbols"},{"name":"lookback_periods","in":"query","required":false,"schema":{"type":"integer","description":"Periods for support/resistance calculation","default":20,"title":"Lookback Periods"},"description":"Periods for support/resistance calculation"},{"name":"breakout_threshold","in":"query","required":false,"schema":{"type":"number","description":"Minimum % above/below level (0.02 = 2%)","default":0.02,"title":"Breakout Threshold"},"description":"Minimum % above/below level (0.02 = 2%)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Breakout Signals Signals Breakout Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/signals/divergence":{"get":{"tags":["Signals & Technicals"],"summary":"Get Divergence Signals","description":"Detect RSI/Price divergences.\n\nDivergences signal potential reversals:\n- Bullish divergence: Price makes lower low, RSI makes higher low (reversal up)\n- Bearish divergence: Price makes higher high, RSI makes lower high (reversal down)\n- Hidden divergences: Trend continuation signals","operationId":"get_divergence_signals_signals_divergence_get","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated symbols","title":"Symbols"},"description":"Comma-separated symbols"},{"name":"lookback_periods","in":"query","required":false,"schema":{"type":"integer","description":"Periods for divergence detection","default":14,"title":"Lookback Periods"},"description":"Periods for divergence detection"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Divergence Signals Signals Divergence Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/signals/summary":{"get":{"tags":["Signals & Technicals"],"summary":"Get Signal Summary","description":"Get combined signal summary across all indicators.\n\nAggregates momentum, volume, breakout, and divergence signals\ninto a single actionable summary per symbol.","operationId":"get_signal_summary_signals_summary_get","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated symbols","title":"Symbols"},"description":"Comma-separated symbols"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Signal Summary Signals Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/technicals/{symbol}":{"get":{"tags":["Signals & Technicals"],"summary":"Get Full Technical Analysis","description":"Get comprehensive technical analysis for a symbol.\n\nReturns all major technical indicators including:\n- RSI, MACD, Stochastic, Williams %R, CCI\n- Moving averages (SMA, EMA)\n- Bollinger Bands\n- ATR, ADX\n- Overall signal assessment","operationId":"get_full_technical_analysis_technicals__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock/crypto symbol","title":"Symbol"},"description":"Stock/crypto symbol"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Timeframe: 1min, 5min, 15min, 30min, 1hour, 4hour, daily","default":"daily","title":"Timeframe"},"description":"Timeframe: 1min, 5min, 15min, 30min, 1hour, 4hour, daily"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/technicals/{symbol}/indicators":{"get":{"tags":["Signals & Technicals"],"summary":"Get Specific Indicators","description":"Get specific technical indicators.\n\nAvailable indicators:\n- rsi: Relative Strength Index\n- macd: MACD line, signal, histogram\n- bb: Bollinger Bands (upper, middle, lower)\n- sma: Simple Moving Averages (20, 50, 200)\n- ema: Exponential Moving Averages (12, 26, 50)\n- stoch: Stochastic Oscillator (%K, %D)\n- atr: Average True Range\n- adx: Average Directional Index (+DI, -DI)\n- cci: Commodity Channel Index\n- williams: Williams %R","operationId":"get_specific_indicators_technicals__symbol__indicators_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock/crypto symbol","title":"Symbol"},"description":"Stock/crypto symbol"},{"name":"indicators","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated indicators: rsi,macd,bb,sma,ema,stoch,atr,adx,cci","default":"rsi,macd,bb","title":"Indicators"},"description":"Comma-separated indicators: rsi,macd,bb,sma,ema,stoch,atr,adx,cci"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Timeframe for analysis","default":"daily","title":"Timeframe"},"description":"Timeframe for analysis"},{"name":"period","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":5,"description":"Period for RSI/ATR/ADX","default":14,"title":"Period"},"description":"Period for RSI/ATR/ADX"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/technicals/batch":{"post":{"tags":["Signals & Technicals"],"summary":"Batch Technical Analysis","description":"Batch technical analysis for multiple symbols.\n\nEfficiently analyzes up to 50 symbols in parallel.\nReturns core indicators for each symbol.","operationId":"batch_technical_analysis_technicals_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchTechnicalsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/technicals/{symbol}/support-resistance":{"get":{"tags":["Signals & Technicals"],"summary":"Get Support Resistance","description":"Get support and resistance levels.\n\nReturns:\n- Key support and resistance levels from price action\n- Pivot points (standard)\n- Fibonacci retracement levels\n- Nearest support/resistance from current price","operationId":"get_support_resistance_technicals__symbol__support_resistance_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock/crypto symbol","title":"Symbol"},"description":"Stock/crypto symbol"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Timeframe for analysis","default":"daily","title":"Timeframe"},"description":"Timeframe for analysis"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/technicals/{symbol}/trend":{"get":{"tags":["Signals & Technicals"],"summary":"Get Trend Analysis","description":"Get comprehensive trend analysis.\n\nAnalyzes:\n- Price vs moving averages (SMA 20, 50, 200)\n- Golden/death cross detection\n- ADX trend strength\n- Price action (higher highs/lows pattern)\n- Volume trend\n- Overall momentum score","operationId":"get_trend_analysis_technicals__symbol__trend_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock/crypto symbol","title":"Symbol"},"description":"Stock/crypto symbol"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Timeframe for analysis","default":"daily","title":"Timeframe"},"description":"Timeframe for analysis"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/forex/technicals/{pair}":{"get":{"tags":["Signals & Technicals","Forex & Commodities"],"summary":"Get Forex Technicals","description":"Get technical analysis for a forex pair.\n\nSupports major forex pairs like EURUSD, GBPUSD, USDJPY, etc.\nReturns RSI, MACD, Bollinger Bands, and trend analysis.","operationId":"get_forex_technicals_forex_technicals__pair__get","parameters":[{"name":"pair","in":"path","required":true,"schema":{"type":"string","description":"Forex pair (e.g., EURUSD, GBPJPY)","title":"Pair"},"description":"Forex pair (e.g., EURUSD, GBPJPY)"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Timeframe for analysis","default":"daily","title":"Timeframe"},"description":"Timeframe for analysis"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/commodities/technicals/{symbol}":{"get":{"tags":["Signals & Technicals","Forex & Commodities"],"summary":"Get Commodity Technicals","description":"Get technical analysis for a commodity.\n\nSupports major commodities:\n- GCUSD: Gold\n- SIUSD: Silver\n- CLUSD: Crude Oil (WTI)\n- NGUSD: Natural Gas\n- HGUSD: Copper\n\nReturns RSI, MACD, Bollinger Bands, ATR, and trend analysis.","operationId":"get_commodity_technicals_commodities_technicals__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Commodity symbol (e.g., GCUSD for Gold, CLUSD for Crude Oil)","title":"Symbol"},"description":"Commodity symbol (e.g., GCUSD for Gold, CLUSD for Crude Oil)"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Timeframe for analysis","default":"daily","title":"Timeframe"},"description":"Timeframe for analysis"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/indexes/dow30":{"get":{"tags":["Stocks"],"summary":"Get Dow30 Index","description":"Get Dow Jones Industrial Average (DJIA) 30 constituents.\n\nThe DJIA is a price-weighted index of 30 large US companies.\nReturns all constituents with current prices and 24h change.","operationId":"get_dow30_index_indexes_dow30_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/indexes/crypto":{"get":{"tags":["Crypto"],"summary":"Get Crypto Index","description":"Get Crypto Top 10 market-cap-weighted index.\n\nIncludes BTC, ETH, BNB, SOL, XRP, DOGE, ADA, AVAX, TRX, LINK.\nWeights are based on market cap.\n\nThis is similar to how traditional index funds work - larger assets\nhave more weight in the index.","operationId":"get_crypto_index_indexes_crypto_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/indexes/defi":{"get":{"tags":["Crypto"],"summary":"Get Defi Index","description":"Get DeFi Index (top 10 DeFi protocols).\n\nIncludes UNI, AAVE, LDO, MKR, CRV, PENDLE, GMX, DYDX, COMP, SNX.\nWeights based on protocol TVL from DeFiLlama where available.","operationId":"get_defi_index_indexes_defi_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/benchmarks/compare":{"get":{"tags":["Signals & Technicals"],"summary":"Compare To Benchmark","description":"Compare an asset's performance against a benchmark.\n\nAccepts `asset` or `symbol` for the target, and `benchmark` or `vs` for comparison.\n\nReturns:\n- Asset and benchmark returns over the period\n- Alpha (excess return vs benchmark)\n- Correlation coefficient\n- Beta (sensitivity to benchmark movements)\n\nExamples:\n- ETH vs BTC: Is ETH outperforming Bitcoin?\n- AAPL vs SPY: Is Apple beating the market?\n- SOL vs ETH: Solana's relative strength","operationId":"compare_to_benchmark_benchmarks_compare_get","parameters":[{"name":"asset","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Asset symbol to compare (e.g., ETH, AAPL)","title":"Asset"},"description":"Asset symbol to compare (e.g., ETH, AAPL)"},{"name":"symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias for 'asset' param","title":"Symbol"},"description":"Alias for 'asset' param"},{"name":"benchmark","in":"query","required":false,"schema":{"type":"string","description":"Benchmark symbol (BTC, ETH, SPY, QQQ)","default":"BTC","title":"Benchmark"},"description":"Benchmark symbol (BTC, ETH, SPY, QQQ)"},{"name":"vs","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias for 'benchmark' param","title":"Vs"},"description":"Alias for 'benchmark' param"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":7,"description":"Comparison period in days","default":30,"title":"Days"},"description":"Comparison period in days"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/benchmarks/{symbol}":{"get":{"tags":["Signals & Technicals"],"summary":"Compare To Benchmark By Path","description":"Compare an asset's performance against a benchmark (path-style).\n\nExample: /benchmarks/ETH?vs=BTC&days=30","operationId":"compare_to_benchmark_by_path_benchmarks__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"vs","in":"query","required":false,"schema":{"type":"string","description":"Benchmark symbol (BTC, ETH, SPY, QQQ)","default":"BTC","title":"Vs"},"description":"Benchmark symbol (BTC, ETH, SPY, QQQ)"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":7,"description":"Comparison period in days","default":30,"title":"Days"},"description":"Comparison period in days"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/market/correlations":{"get":{"tags":["Signals & Technicals"],"summary":"Get Correlation Matrix","description":"Get correlation matrix between multiple assets.\n\nShows how closely assets move together:\n- 1.0 = Perfect positive correlation (move together)\n- 0.0 = No correlation (independent)\n- -1.0 = Perfect negative correlation (move opposite)\n\nDefault assets: BTC, ETH, SOL, SPY (S&P 500), GLD (Gold)\n\nUseful for:\n- Portfolio diversification\n- Risk assessment\n- Identifying hedge opportunities","operationId":"get_correlation_matrix_market_correlations_get","parameters":[{"name":"assets","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated list of assets (max 10)","default":"BTC,ETH,SOL,SPY,GLD","title":"Assets"},"description":"Comma-separated list of assets (max 10)"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":7,"description":"Period for correlation calculation","default":30,"title":"Days"},"description":"Period for correlation calculation"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/risk/{symbol}/metrics":{"get":{"tags":["Signals & Technicals"],"summary":"Get risk metrics for an asset","description":"Calculate comprehensive risk metrics for a stock or crypto asset.\n\n**Metrics included:**\n- Volatility (daily and annualized)\n- Sharpe ratio (risk-adjusted return)\n- Sortino ratio (downside risk adjusted)\n- Maximum drawdown\n- Beta (for stocks vs SPY)\n\n**Asset type detection:**\n- Automatically detects if symbol is stock or crypto\n- Override with `asset_type` parameter","operationId":"get_risk_metrics_risk__symbol__metrics_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Asset symbol (e.g., AAPL, BTC)","title":"Symbol"},"description":"Asset symbol (e.g., AAPL, BTC)"},{"name":"asset_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/AssetType","description":"Asset type (stock, crypto, or auto-detect)","default":"auto"},"description":"Asset type (stock, crypto, or auto-detect)"},{"name":"period","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":30,"description":"Analysis period in days","default":90,"title":"Period"},"description":"Analysis period in days"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/risk/{symbol}/var":{"get":{"tags":["Signals & Technicals"],"summary":"Calculate Value at Risk","description":"Calculate Value at Risk (VaR) and Conditional VaR for an asset.\n\n**What is VaR?**\nVaR estimates the potential loss over a given time period at a specific confidence level.\nFor example, a 95% 1-day VaR of 5% means there's a 5% chance of losing more than 5% in a day.\n\n**Metrics:**\n- 1-day VaR at specified confidence\n- 10-day VaR (using square root of time)\n- Conditional VaR (Expected Shortfall) - average loss when VaR is exceeded","operationId":"get_value_at_risk_risk__symbol__var_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Asset symbol","title":"Symbol"},"description":"Asset symbol"},{"name":"asset_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/AssetType","description":"Asset type","default":"auto"},"description":"Asset type"},{"name":"confidence","in":"query","required":false,"schema":{"type":"number","maximum":0.99,"minimum":0.9,"description":"Confidence level (e.g., 0.95 for 95%)","default":0.95,"title":"Confidence"},"description":"Confidence level (e.g., 0.95 for 95%)"},{"name":"period","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":30,"description":"Analysis period in days","default":90,"title":"Period"},"description":"Analysis period in days"},{"name":"position_size","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Position size in USD (optional)","title":"Position Size"},"description":"Position size in USD (optional)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/risk/portfolio":{"post":{"tags":["Signals & Technicals"],"summary":"Analyze portfolio risk","description":"Calculate risk metrics for a portfolio of assets.\n\n**Input:**\nProvide a list of positions with symbols and weights (should sum to 1).\n\n**Output:**\n- Portfolio volatility\n- Diversification benefit\n- Risk contribution by asset\n- Correlation analysis\n- Portfolio Sharpe ratio\n- Portfolio VaR","operationId":"analyze_portfolio_risk_risk_portfolio_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioRiskRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/valuation/{symbol}/ratios":{"get":{"tags":["Stocks"],"summary":"Get valuation ratios for a stock","description":"Get comprehensive valuation ratios for a stock.\n\n**Ratios included:**\n- P/E (trailing and forward)\n- P/B (Price to Book)\n- P/S (Price to Sales)\n- EV/EBITDA\n- Profit margins\n- ROE, ROA, ROIC\n- Dividend yield\n\n**Note:** Only works for stocks, not crypto.","operationId":"get_valuation_ratios_valuation__symbol__ratios_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol (e.g., AAPL, MSFT)","title":"Symbol"},"description":"Stock symbol (e.g., AAPL, MSFT)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/valuation/{symbol}/dcf":{"get":{"tags":["Stocks"],"summary":"Simple DCF valuation estimate","description":"Calculate a simplified Discounted Cash Flow (DCF) valuation for a stock.\n\n**Methodology:**\n1. Uses current Free Cash Flow (FCF) as base\n2. Projects FCF growth for 5 years\n3. Calculates terminal value\n4. Discounts to present value\n\n**Inputs (configurable):**\n- Growth rate (default: based on historical growth)\n- Discount rate (default: 10%)\n- Terminal growth (default: 2.5%)\n\n**Output:**\n- Estimated intrinsic value per share\n- Upside/downside potential vs current price\n\n**Note:** This is a simplified model. Real DCF requires more detailed analysis.","operationId":"get_dcf_valuation_valuation__symbol__dcf_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Stock symbol","title":"Symbol"},"description":"Stock symbol"},{"name":"growth_rate","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":0.5,"minimum":-0.5},{"type":"null"}],"description":"FCF growth rate (e.g., 0.10 for 10%)","title":"Growth Rate"},"description":"FCF growth rate (e.g., 0.10 for 10%)"},{"name":"discount_rate","in":"query","required":false,"schema":{"type":"number","maximum":0.2,"minimum":0.05,"description":"Discount rate / WACC","default":0.1,"title":"Discount Rate"},"description":"Discount rate / WACC"},{"name":"terminal_growth","in":"query","required":false,"schema":{"type":"number","maximum":0.04,"minimum":0.0,"description":"Terminal growth rate","default":0.025,"title":"Terminal Growth"},"description":"Terminal growth rate"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/valuation/crypto/{symbol}/nvt":{"get":{"tags":["Crypto"],"summary":"Get NVT ratio for crypto","description":"Calculate NVT (Network Value to Transactions) ratio for a cryptocurrency.\n\n**What is NVT?**\nNVT is like P/E ratio for crypto. It compares network value (market cap) to\ntransaction volume on the blockchain.\n\n**Interpretation:**\n- High NVT (>90): Network is overvalued relative to usage\n- Normal NVT (50-90): Fair valuation\n- Low NVT (<50): Network is undervalued relative to usage\n\n**Note:** NVT works best for established chains like BTC, ETH with meaningful on-chain activity.","operationId":"get_nvt_ratio_valuation_crypto__symbol__nvt_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","description":"Crypto symbol (e.g., BTC, ETH)","title":"Symbol"},"description":"Crypto symbol (e.g., BTC, ETH)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/{symbol}/sentiment":{"get":{"tags":["Crypto"],"summary":"Get Sentiment","description":"Get overall sentiment score for a token.\n\nAggregates sentiment from multiple sources:\n- CoinGecko community data (upvotes, followers)\n- Price momentum as sentiment proxy\n- Social engagement metrics\n\nSentiment score ranges from -100 (extremely bearish) to +100 (extremely bullish).\n\nArgs:\n    symbol: Token symbol (e.g., BTC, ETH, SOL)\n\nReturns:\n    Sentiment score with breakdown of contributing factors","operationId":"get_sentiment_social__symbol__sentiment_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/{symbol}/mentions":{"get":{"tags":["Crypto"],"summary":"Get Mentions","description":"Get social media mention counts for a token.\n\nReturns follower/subscriber counts across platforms:\n- Twitter followers\n- Reddit subscribers\n- Telegram channel members\n\nNote: Actual mention counting requires paid social listening APIs.\nThis endpoint provides proxy metrics from CoinGecko.\n\nArgs:\n    symbol: Token symbol (e.g., BTC, ETH, SOL)\n\nReturns:\n    Social media metrics and follower counts","operationId":"get_mentions_social__symbol__mentions_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/{symbol}/trending-score":{"get":{"tags":["Crypto"],"summary":"Get Trending Score","description":"Calculate trending score for a token.\n\nTrending score (0-100) based on:\n- Price momentum (24h change)\n- Volume spike vs 7-day average\n- Social reach\n- Market cap rank\n\nHigher scores indicate tokens gaining attention.\n\nArgs:\n    symbol: Token symbol (e.g., BTC, ETH, SOL)\n\nReturns:\n    Trending score with breakdown","operationId":"get_trending_score_social__symbol__trending_score_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/trending":{"get":{"tags":["Crypto"],"summary":"Get Trending Tokens","description":"Get currently trending tokens by social volume.\n\nReturns tokens that are:\n- Trending on CoinGecko\n- High social engagement relative to size\n- Experiencing volume spikes\n\nSorted by a composite trending score.\n\nArgs:\n    limit: Number of tokens to return (1-50)\n\nReturns:\n    List of trending tokens with scores","operationId":"get_trending_tokens_social_trending_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Number of tokens to return","default":20,"title":"Limit"},"description":"Number of tokens to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/{symbol}/github":{"get":{"tags":["Crypto"],"summary":"Get Github Activity","description":"Get GitHub development activity for a token.\n\nFetches directly from GitHub API (no auth required for public repos):\n- Stars and forks\n- Recent commit count (30 days)\n- Contributor count\n- Open issues\n\nArgs:\n    symbol: Token symbol (e.g., BTC, ETH, SOL)\n\nReturns:\n    GitHub repository metrics","operationId":"get_github_activity_social__symbol__github_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/orderbook/{symbol}":{"get":{"tags":["Signals & Technicals"],"summary":"Get aggregated order book","description":"Fetch and aggregate order book data from Coinbase and OKX.","operationId":"get_orderbook_orderbook__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"levels","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":5,"description":"Number of price levels to return","default":20,"title":"Levels"},"description":"Number of price levels to return"},{"name":"exchanges","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated list of exchanges (coinbase,okx)","title":"Exchanges"},"description":"Comma-separated list of exchanges (coinbase,okx)"}],"responses":{"200":{"description":"Aggregated order book with best bid/ask and spread","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/orderbook/{symbol}/depth":{"get":{"tags":["Signals & Technicals"],"summary":"Get full depth data","description":"Full order book depth with more levels for detailed analysis.","operationId":"get_orderbook_depth_orderbook__symbol__depth_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"levels","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":10,"description":"Number of price levels","default":50,"title":"Levels"},"description":"Number of price levels"},{"name":"exchange","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific exchange (coinbase, okx)","title":"Exchange"},"description":"Specific exchange (coinbase, okx)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/orderbook/{symbol}/spread":{"get":{"tags":["Signals & Technicals"],"summary":"Get bid-ask spread","description":"Bid-ask spread across all exchanges.","operationId":"get_orderbook_spread_orderbook__symbol__spread_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/orderbook/{symbol}/imbalance":{"get":{"tags":["Signals & Technicals"],"summary":"Get order book imbalance","description":"Buy/sell pressure ratio based on order book depth.","operationId":"get_orderbook_imbalance_orderbook__symbol__imbalance_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"depth","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":5,"description":"Number of levels to analyze","default":10,"title":"Depth"},"description":"Number of levels to analyze"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/trades/{symbol}/recent":{"get":{"tags":["Signals & Technicals"],"summary":"Get recent trades","description":"Recent trades from multiple exchanges (last 100).","operationId":"get_recent_trades_trades__symbol__recent_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":10,"description":"Number of trades to return","default":100,"title":"Limit"},"description":"Number of trades to return"},{"name":"exchange","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to specific exchange","title":"Exchange"},"description":"Filter to specific exchange"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/trades/{symbol}/large":{"get":{"tags":["Signals & Technicals"],"summary":"Get large trades","description":"Large trades only (>$10k by default).","operationId":"get_large_trades_trades__symbol__large_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"min_value","in":"query","required":false,"schema":{"type":"number","minimum":1000,"description":"Minimum trade value in USD","default":10000,"title":"Min Value"},"description":"Minimum trade value in USD"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":10,"description":"Maximum trades to return","default":50,"title":"Limit"},"description":"Maximum trades to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/markets":{"get":{"tags":["Predictions"],"summary":"List Prediction Markets","description":"List all prediction markets with cursor pagination.","operationId":"list_prediction_markets_predictions_markets_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category: politics, crypto, sports, etc.","title":"Category"},"description":"Filter by category: politics, crypto, sports, etc."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Market status: active, resolved, all","default":"active","title":"Status"},"description":"Market status: active, resolved, all"},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data source: polymarket, kalshi, metaculus","title":"Source"},"description":"Data source: polymarket, kalshi, metaculus"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort by: volume, end_date, newest, trending","default":"volume","title":"Sort"},"description":"Sort by: volume, end_date, newest, trending"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Maximum results","default":50,"title":"Limit"},"description":"Maximum results"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination cursor from previous response","title":"Cursor"},"description":"Pagination cursor from previous response"},{"name":"min_volume","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum total volume (USD)","title":"Min Volume"},"description":"Minimum total volume (USD)"},{"name":"tags","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by tags (any match)","title":"Tags"},"description":"Filter by tags (any match)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/markets/{market_id}":{"get":{"tags":["Predictions"],"summary":"Get Market Details","description":"Get detailed information about a specific prediction market.\n\nAccepts PRISM canonical ID, or {source}:{platform_id} (e.g. polymarket:condition_id).\nReturns full market details and current odds.","operationId":"get_market_details_predictions_markets__market_id__get","parameters":[{"name":"market_id","in":"path","required":true,"schema":{"type":"string","title":"Market Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/markets/{market_id}/odds":{"get":{"tags":["Predictions"],"summary":"Get Market Odds","description":"Get current odds for a prediction market.\n\nReturns real-time probabilities and pricing. When include_history=true\nand market is in DB (canonical market_id), returns 24h history.","operationId":"get_market_odds_predictions_markets__market_id__odds_get","parameters":[{"name":"market_id","in":"path","required":true,"schema":{"type":"string","title":"Market Id"}},{"name":"include_history","in":"query","required":false,"schema":{"type":"boolean","description":"Include historical odds (24h)","default":false,"title":"Include History"},"description":"Include historical odds (24h)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/markets/{market_id}/orderbook":{"get":{"tags":["Predictions"],"summary":"Get Market Orderbook","description":"Get current order book for a market.\n\nPolymarket: Yes-token book by default. Kalshi: requires API key.\nPass outcome_id (from market.yes.platform_token_id) to target a specific outcome.","operationId":"get_market_orderbook_predictions_markets__market_id__orderbook_get","parameters":[{"name":"market_id","in":"path","required":true,"schema":{"type":"string","title":"Market Id"}},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Source: polymarket or kalshi (or use market_id format source:platform_id)","title":"Source"},"description":"Source: polymarket or kalshi (or use market_id format source:platform_id)"},{"name":"outcome_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Outcome-level token_id/ticker (e.g. market.yes.platform_token_id). Bypasses token lookup.","title":"Outcome Id"},"description":"Outcome-level token_id/ticker (e.g. market.yes.platform_token_id). Bypasses token lookup."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/markets/{market_id}/price":{"get":{"tags":["Predictions"],"summary":"Get Market Price","description":"Get current or historical price (probability) for a market. Dome-style at_time for history.","operationId":"get_market_price_predictions_markets__market_id__price_get","parameters":[{"name":"market_id","in":"path","required":true,"schema":{"type":"string","title":"Market Id"}},{"name":"at_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Unix timestamp (seconds) for historical price; omit for latest","title":"At Time"},"description":"Unix timestamp (seconds) for historical price; omit for latest"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/markets/{market_id}/history":{"get":{"tags":["Predictions"],"summary":"Get Market History","description":"OHLCV-style price history for a market. Requires market in DB (canonical market_id).","operationId":"get_market_history_predictions_markets__market_id__history_get","parameters":[{"name":"market_id","in":"path","required":true,"schema":{"type":"string","title":"Market Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Unix timestamp (seconds) start","title":"Start Time"},"description":"Unix timestamp (seconds) start"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Unix timestamp (seconds) end","title":"End Time"},"description":"Unix timestamp (seconds) end"},{"name":"interval","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Interval: 1h, 1d","default":"1h","title":"Interval"},"description":"Interval: 1h, 1d"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/markets/{market_id}/candlesticks":{"get":{"tags":["Predictions"],"summary":"Get Market Candlesticks","description":"OHLC candlesticks from Odds DB. Requires canonical market_id (market-...).\n\nPass outcome_id for documentation/forward-compat (currently DB-backed).","operationId":"get_market_candlesticks_predictions_markets__market_id__candlesticks_get","parameters":[{"name":"market_id","in":"path","required":true,"schema":{"type":"string","title":"Market Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Unix timestamp (seconds) start","title":"Start Time"},"description":"Unix timestamp (seconds) start"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Unix timestamp (seconds) end","title":"End Time"},"description":"Unix timestamp (seconds) end"},{"name":"interval","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Interval: 1h or 1d","default":"1h","title":"Interval"},"description":"Interval: 1h or 1d"},{"name":"outcome","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by outcome (e.g. Yes)","title":"Outcome"},"description":"Filter by outcome (e.g. Yes)"},{"name":"outcome_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Outcome-level token_id (for future external OHLCV; currently uses DB)","title":"Outcome Id"},"description":"Outcome-level token_id (for future external OHLCV; currently uses DB)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":500,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/markets/{market_id}/linked":{"get":{"tags":["Predictions"],"summary":"Get Linked Markets","description":"Get cross-platform markets for the same event (matching by event fingerprint).","operationId":"get_linked_markets_predictions_markets__market_id__linked_get","parameters":[{"name":"market_id","in":"path","required":true,"schema":{"type":"string","title":"Market Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/trade-history":{"get":{"tags":["Predictions"],"summary":"Get Trade History","description":"Get trade history for a market. Kalshi: public. Polymarket: may require auth.\n\nPass outcome_id (from market.yes.platform_token_id) to query trades for a specific outcome.","operationId":"get_trade_history_predictions_trade_history_get","parameters":[{"name":"market_id","in":"query","required":true,"schema":{"type":"string","description":"Market ID (use source:platform_id e.g. kalshi:FED-25JAN-T4.00)","title":"Market Id"},"description":"Market ID (use source:platform_id e.g. kalshi:FED-25JAN-T4.00)"},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Source: polymarket or kalshi (or include in market_id)","title":"Source"},"description":"Source: polymarket or kalshi (or include in market_id)"},{"name":"outcome_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Outcome-level token_id/ticker (e.g. market.yes.platform_token_id). Uses this directly for trade lookup.","title":"Outcome Id"},"description":"Outcome-level token_id/ticker (e.g. market.yes.platform_token_id). Uses this directly for trade lookup."},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Unix timestamp (seconds) start","title":"Start Time"},"description":"Unix timestamp (seconds) start"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Unix timestamp (seconds) end","title":"End Time"},"description":"Unix timestamp (seconds) end"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination cursor (Kalshi)","title":"Cursor"},"description":"Pagination cursor (Kalshi)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/resolve":{"get":{"tags":["Predictions"],"summary":"Resolve Prediction Query","description":"Resolve a natural language query to matching prediction markets.\n\nReturns markets grouped by event fingerprint across platforms.","operationId":"resolve_prediction_query_predictions_resolve_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Natural language query","title":"Q"},"description":"Natural language query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/search":{"get":{"tags":["Predictions"],"summary":"Search Prediction Markets","description":"Search prediction markets by keyword across platforms.","operationId":"search_prediction_markets_predictions_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Search query","title":"Q"},"description":"Search query"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by source","title":"Source"},"description":"Filter by source"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum results","default":20,"title":"Limit"},"description":"Maximum results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/categories":{"get":{"tags":["Predictions"],"summary":"List Categories","description":"List all prediction market categories and subcategories.","operationId":"list_categories_predictions_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/predictions/events":{"get":{"tags":["Predictions"],"summary":"List Prediction Events","description":"List prediction events from the database. Use expand=markets to include markets per event.\n\nWhen expand=markets is set, markets are enriched with full PRISM identity\n(same shape as /predictions/markets) for consistent responses.","operationId":"list_prediction_events_predictions_events_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"},{"name":"subcategory","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by subcategory","title":"Subcategory"},"description":"Filter by subcategory"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Event status: open, closed, resolved","default":"open","title":"Status"},"description":"Event status: open, closed, resolved"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination cursor","title":"Cursor"},"description":"Pagination cursor"},{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Expand fields, e.g. markets","title":"Expand"},"description":"Expand fields, e.g. markets"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/trending":{"get":{"tags":["Predictions"],"summary":"List Trending Markets","description":"List trending prediction markets by 24h volume.","operationId":"list_trending_markets_predictions_trending_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/predictions/arbitrage":{"get":{"tags":["Predictions"],"summary":"List Arbitrage Opportunities","description":"List cross-platform arbitrage opportunities.","operationId":"list_arbitrage_opportunities_predictions_arbitrage_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"},{"name":"min_profit","in":"query","required":false,"schema":{"type":"number","maximum":1.0,"minimum":0.0,"description":"Minimum profit margin (e.g. 0.01 = 1%%)","default":0.0,"title":"Min Profit"},"description":"Minimum profit margin (e.g. 0.01 = 1%%)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/list":{"get":{"tags":["Predictions"],"summary":"List Sports","description":"List all available sports and leagues.\n\nReturns supported sports with:\n- Sport ID for use in other endpoints\n- League name and country\n- Whether currently active (in-season)\n- Support for outright/futures markets\n\n**Examples:**\n- `/sports/list` - All active sports\n- `/sports/list?active_only=false` - Include off-season sports\n- `/sports/list?region=us` - US sports only","operationId":"list_sports_sports_list_get","parameters":[{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","description":"Only show sports with active events","default":true,"title":"Active Only"},"description":"Only show sports with active events"},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by region: us, uk, eu, au","title":"Region"},"description":"Filter by region: us, uk, eu, au"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/{sport}/events":{"get":{"tags":["Predictions"],"summary":"List Events For Sport","description":"List events for a specific sport.\n\nReturns upcoming, live, and recent events for the specified sport/league.\n\n**Sport IDs:**\n- `americanfootball_nfl` - NFL\n- `basketball_nba` - NBA\n- `soccer_epl` - English Premier League\n- `mma_ufc` - UFC\n\n**Examples:**\n- `/sports/basketball_nba/events` - Upcoming NBA games\n- `/sports/soccer_epl/events?status=live` - Live EPL matches\n- `/sports/americanfootball_nfl/events?days_ahead=14` - NFL games in next 2 weeks","operationId":"list_events_for_sport_sports__sport__events_get","parameters":[{"name":"sport","in":"path","required":true,"schema":{"type":"string","title":"Sport"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Event status: upcoming, live, completed, all","default":"upcoming","title":"Status"},"description":"Event status: upcoming, live, completed, all"},{"name":"days_ahead","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"description":"Days ahead for upcoming events","default":7,"title":"Days Ahead"},"description":"Days ahead for upcoming events"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Maximum results","default":50,"title":"Limit"},"description":"Maximum results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/events/{event_id}":{"get":{"tags":["Predictions"],"summary":"Get Event Details","description":"Get detailed information about a specific sports event.\n\nReturns:\n- Teams/participants\n- Event time and venue\n- Current scores (if live/completed)\n- Available betting markets\n- Quick odds summary\n\n**Event ID Format:** `{sport}:{event_slug}`","operationId":"get_event_details_sports_events__event_id__get","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/events/{event_id}/odds":{"get":{"tags":["Predictions"],"summary":"Get Event Odds","description":"Get odds across multiple sportsbooks for an event.\n\nReturns real-time odds from all major sportsbooks with:\n- Best available odds highlighted\n- Implied probability calculations\n- Vig/juice analysis\n- Line movement indicators\n\n**Market Types:**\n- `h2h` - Moneyline/Head-to-head\n- `spreads` - Point spread/Handicap\n- `totals` - Over/Under\n- `outrights` - Futures/Championship winner\n\n**Examples:**\n- `/sports/events/{id}/odds` - Moneyline odds\n- `/sports/events/{id}/odds?market=spreads` - Spread odds\n- `/sports/events/{id}/odds?bookmakers=draftkings,fanduel` - Specific books","operationId":"get_event_odds_sports_events__event_id__odds_get","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}},{"name":"market","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Market type: h2h, spreads, totals, outrights","default":"h2h","title":"Market"},"description":"Market type: h2h, spreads, totals, outrights"},{"name":"bookmakers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated bookmaker IDs to include","title":"Bookmakers"},"description":"Comma-separated bookmaker IDs to include"},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Region for bookmaker availability: us, uk, eu, au","default":"us","title":"Region"},"description":"Region for bookmaker availability: us, uk, eu, au"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/resolve":{"get":{"tags":["Predictions"],"summary":"Resolve Sports Query","description":"Resolve a natural language query to a canonical sports event.\n\nUses AI-powered matching to find events for queries like:\n- \"lakers vs celtics\"\n- \"chiefs game this weekend\"\n- \"next ufc fight\"\n- \"man city vs arsenal\"\n\n**Returns:**\n- Best matching event with confidence score\n- Alternative matches if ambiguous\n- Suggested refinements","operationId":"resolve_sports_query_sports_resolve_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Natural language query","title":"Q"},"description":"Natural language query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/search":{"get":{"tags":["Predictions"],"summary":"Search Sports Events","description":"Search sports events by team name, player, or keyword.\n\nFull-text search across:\n- Team names and abbreviations\n- Player names (for player props)\n- Venue names\n- Event descriptions\n\n**Examples:**\n- `/sports/search?q=lebron` - Events featuring LeBron\n- `/sports/search?q=super bowl&sport=americanfootball_nfl` - Super Bowl\n- `/sports/search?q=madison square garden` - Events at MSG","operationId":"search_sports_events_sports_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Search query","title":"Q"},"description":"Search query"},{"name":"sport","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by sport ID","title":"Sport"},"description":"Filter by sport ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Event status filter","default":"upcoming","title":"Status"},"description":"Event status filter"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum results","default":20,"title":"Limit"},"description":"Maximum results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/sportsbooks":{"get":{"tags":["Predictions"],"summary":"List Sportsbooks","description":"List all supported sportsbooks.\n\nReturns sportsbook information including:\n- Bookmaker ID for filtering\n- Name and region\n- Supported markets","operationId":"list_sportsbooks_sports_sportsbooks_get","parameters":[{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by region: us, uk, eu, offshore","title":"Region"},"description":"Filter by region: us, uk, eu, offshore"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/odds/arbitrage":{"get":{"tags":["Predictions"],"summary":"Find Arbitrage Opportunities","description":"Find arbitrage opportunities across all platforms.\n\nScans prediction markets and sportsbooks for guaranteed profit opportunities\nwhere the combined odds across platforms create an arbitrage situation.\n\n**What is arbitrage?**\nWhen you can bet on all outcomes of an event across different platforms\nand guarantee a profit regardless of the result.\n\n**Example:**\n- Platform A: Team X wins @ 2.10\n- Platform B: Team Y wins @ 2.10\n- Combined implied probability: 47.6% + 47.6% = 95.2% (< 100%)\n- Profit margin: 4.8%\n\n**Warning:** Arbitrage opportunities are often short-lived (seconds to minutes).\nAlways verify odds before placing bets.\n\n**Examples:**\n- `/odds/arbitrage` - All current opportunities\n- `/odds/arbitrage?category=sports&min_profit_pct=2` - Sports arbs with 2%+ profit","operationId":"find_arbitrage_opportunities_odds_arbitrage_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Category: sports, predictions, crypto","title":"Category"},"description":"Category: sports, predictions, crypto"},{"name":"min_profit_pct","in":"query","required":false,"schema":{"type":"number","maximum":20.0,"minimum":0.1,"description":"Minimum profit percentage","default":1.0,"title":"Min Profit Pct"},"description":"Minimum profit percentage"},{"name":"max_stake","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Maximum total stake in USD","title":"Max Stake"},"description":"Maximum total stake in USD"},{"name":"include_expired","in":"query","required":false,"schema":{"type":"boolean","description":"Include opportunities that may have expired","default":false,"title":"Include Expired"},"description":"Include opportunities that may have expired"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum results","default":20,"title":"Limit"},"description":"Maximum results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/odds/arbitrage/{event_id}":{"get":{"tags":["Predictions"],"summary":"Get Event Arbitrage","description":"Check for arbitrage opportunities on a specific event.\n\nAnalyzes all available odds across platforms for the given event\nand identifies any arbitrage opportunities.\n\n**Returns:**\n- Whether arbitrage exists\n- Optimal stake distribution\n- Profit calculation\n- All available odds by platform\n\n**Event ID Formats:**\n- Sports: `{sport}:{event_slug}` (e.g., `basketball_nba:lal_bos_20250115`)\n- Predictions: `{platform}:{market_slug}` (e.g., `polymarket:2024-election`)","operationId":"get_event_arbitrage_odds_arbitrage__event_id__get","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/odds/compare/{event_id}":{"get":{"tags":["Predictions"],"summary":"Compare Odds","description":"Compare odds across all platforms for an event.\n\nSide-by-side comparison of odds from all available sportsbooks\nand prediction markets, with best odds highlighted.\n\n**Features:**\n- Best odds highlighting per outcome\n- Implied probability calculations\n- Vig/overround analysis\n- Movement indicators (up/down from open)\n\n**Examples:**\n- `/odds/compare/basketball_nba:lal_bos` - Compare NBA game odds\n- `/odds/compare/polymarket:btc-100k?format=american` - US odds format","operationId":"compare_odds_odds_compare__event_id__get","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}},{"name":"market","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Market type: h2h, spreads, totals","default":"h2h","title":"Market"},"description":"Market type: h2h, spreads, totals"},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Odds format: decimal, american, fractional","default":"decimal","title":"Format"},"description":"Odds format: decimal, american, fractional"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/odds/history/{market_id}":{"get":{"tags":["Predictions"],"summary":"Get Odds History","description":"Get historical odds data for a market.\n\nTrack how odds have moved over time for trend analysis,\nsharp money detection, and optimal entry timing.\n\n**Use Cases:**\n- Identify line movement patterns\n- Detect sharp money (big odds moves)\n- Find optimal betting windows\n- Analyze market efficiency\n\n**Examples:**\n- `/odds/history/polymarket:btc-100k` - BTC prediction market history\n- `/odds/history/nba:lal_bos?outcome=lakers&interval=15m` - Detailed Lakers odds","operationId":"get_odds_history_odds_history__market_id__get","parameters":[{"name":"market_id","in":"path","required":true,"schema":{"type":"string","title":"Market Id"}},{"name":"outcome","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific outcome to track","title":"Outcome"},"description":"Specific outcome to track"},{"name":"platform","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific platform","title":"Platform"},"description":"Specific platform"},{"name":"interval","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data interval: 5m, 15m, 1h, 4h, 1d","default":"1h","title":"Interval"},"description":"Data interval: 5m, 15m, 1h, 4h, 1d"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"Days of history","default":7,"title":"Days"},"description":"Days of history"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/odds/best":{"get":{"tags":["Predictions"],"summary":"Get Best Odds","description":"Find the best available odds across all platforms.\n\nDiscovers events where a specific platform offers significantly\nbetter odds than competitors (potential value bets).\n\n**Sort Options:**\n- `value` - Highest edge vs consensus\n- `volume` - Highest volume events\n- `closing` - Events closing soon\n\n**Examples:**\n- `/odds/best?category=sports` - Best sports odds\n- `/odds/best?sport=basketball_nba&sort=value` - Best NBA value","operationId":"get_best_odds_odds_best_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Category: sports, predictions","title":"Category"},"description":"Category: sports, predictions"},{"name":"sport","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sport filter for sports category","title":"Sport"},"description":"Sport filter for sports category"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort by: value, volume, closing","default":"value","title":"Sort"},"description":"Sort by: value, volume, closing"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum results","default":20,"title":"Limit"},"description":"Maximum results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/odds/platforms":{"get":{"tags":["Predictions"],"summary":"List Odds Platforms","description":"List all supported odds platforms.\n\nReturns information about each platform including:\n- Platform ID for filtering\n- Supported markets and sports\n- Region availability\n- API status","operationId":"list_odds_platforms_odds_platforms_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Category: sportsbook, prediction_market, crypto","title":"Category"},"description":"Category: sportsbook, prediction_market, crypto"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/universe/crypto":{"get":{"tags":["Universe"],"summary":"Get Crypto Universe","description":"Get all crypto assets in the database.\n\nReturns paginated list of all cryptocurrency assets including:\n- Native tokens (BTC, ETH, SOL)\n- Wrapped tokens (WBTC, WETH)\n- Bridged tokens\n- Stablecoins\n- Meme tokens\n\nLP/pool tokens (Uniswap V2, SushiSwap, etc.) are excluded by default.\nSet include_lp=true to include them.\n\nSupports filtering by blockchain and verification status.","operationId":"get_crypto_universe_universe_crypto_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by blockchain (ethereum, solana, arbitrum, etc.)","title":"Chain"},"description":"Filter by blockchain (ethereum, solana, arbitrum, etc.)"},{"name":"verified","in":"query","required":false,"schema":{"type":"boolean","description":"Only verified assets","default":false,"title":"Verified"},"description":"Only verified assets"},{"name":"include_lp","in":"query","required":false,"schema":{"type":"boolean","description":"Include LP/pool tokens (excluded by default)","default":false,"title":"Include Lp"},"description":"Include LP/pool tokens (excluded by default)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Results per page","default":50,"title":"Limit"},"description":"Results per page"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Pagination offset","default":0,"title":"Offset"},"description":"Pagination offset"},{"name":"order_by","in":"query","required":false,"schema":{"enum":["market_cap","volume","symbol","lookup_count","created_at","price_change"],"type":"string","description":"Sort order","default":"market_cap","title":"Order By"},"description":"Sort order"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/universe/stocks":{"get":{"tags":["Universe"],"summary":"Get Stocks Universe","description":"Get all stock assets in the database.\n\nReturns paginated list of all stock assets tracked in Prism.\nIncludes US stocks from NYSE, NASDAQ, and AMEX.","operationId":"get_stocks_universe_universe_stocks_get","parameters":[{"name":"exchange","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by exchange (NYSE, NASDAQ, AMEX)","title":"Exchange"},"description":"Filter by exchange (NYSE, NASDAQ, AMEX)"},{"name":"verified","in":"query","required":false,"schema":{"type":"boolean","description":"Only verified assets","default":false,"title":"Verified"},"description":"Only verified assets"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Results per page","default":50,"title":"Limit"},"description":"Results per page"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Pagination offset","default":0,"title":"Offset"},"description":"Pagination offset"},{"name":"order_by","in":"query","required":false,"schema":{"enum":["market_cap","volume","symbol","lookup_count","created_at","price_change"],"type":"string","description":"Sort order","default":"market_cap","title":"Order By"},"description":"Sort order"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/universe/etfs":{"get":{"tags":["Universe"],"summary":"Get Etfs Universe","description":"Get all ETF assets in the database.\n\nReturns paginated list of all ETF assets tracked in Prism.\nIncludes popular ETFs like SPY, QQQ, IWM, and sector ETFs.","operationId":"get_etfs_universe_universe_etfs_get","parameters":[{"name":"exchange","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by exchange","title":"Exchange"},"description":"Filter by exchange"},{"name":"verified","in":"query","required":false,"schema":{"type":"boolean","description":"Only verified assets","default":false,"title":"Verified"},"description":"Only verified assets"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Results per page","default":50,"title":"Limit"},"description":"Results per page"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Pagination offset","default":0,"title":"Offset"},"description":"Pagination offset"},{"name":"order_by","in":"query","required":false,"schema":{"enum":["market_cap","volume","symbol","lookup_count","created_at","price_change"],"type":"string","description":"Sort order","default":"market_cap","title":"Order By"},"description":"Sort order"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/universe/indexes":{"get":{"tags":["Universe"],"summary":"Get Indexes Universe","description":"Get all index assets in the database.\n\nReturns paginated list of all market indexes tracked in Prism.\nIncludes S&P 500, NASDAQ Composite, Dow Jones, etc.","operationId":"get_indexes_universe_universe_indexes_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Results per page","default":50,"title":"Limit"},"description":"Results per page"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Pagination offset","default":0,"title":"Offset"},"description":"Pagination offset"},{"name":"order_by","in":"query","required":false,"schema":{"enum":["market_cap","volume","symbol","lookup_count","created_at"],"type":"string","description":"Sort order","default":"symbol","title":"Order By"},"description":"Sort order"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/universe/search":{"get":{"tags":["Universe"],"summary":"Universal Search","description":"Universal search across all asset types.\n\nSearch by:\n- Symbol (BTC, AAPL, SPY)\n- Name (Bitcoin, Apple Inc)\n- CoinGecko ID (bitcoin, ethereum)\n- FMP Symbol\n\nReturns matched assets from crypto, stocks, ETFs, and other categories.\nResults are ranked by match quality and popularity (lookup count).","operationId":"universal_search_universe_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"Search query (symbol, name, or ID)","title":"Q"},"description":"Search query (symbol, name, or ID)"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"enum":["crypto","stock","etf","index","forex","commodity","perp"],"type":"string"},{"type":"null"}],"description":"Filter by asset type","title":"Type"},"description":"Filter by asset type"},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by blockchain (crypto only)","title":"Chain"},"description":"Filter by blockchain (crypto only)"},{"name":"verified","in":"query","required":false,"schema":{"type":"boolean","description":"Only verified assets","default":false,"title":"Verified"},"description":"Only verified assets"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page","default":20,"title":"Limit"},"description":"Results per page"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Pagination offset","default":0,"title":"Offset"},"description":"Pagination offset"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/universe/stats":{"get":{"tags":["Universe"],"summary":"Get Universe Stats","description":"Get coverage statistics for all asset types.\n\nReturns counts of assets by:\n- Asset type (crypto, stock, etf, etc.)\n- Category code (TOKEN, STOCK, ETF, etc.)\n- Chain (for crypto)\n- Verification status\n- Price availability","operationId":"get_universe_stats_universe_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/agent/schemas":{"get":{"tags":["Developer"],"summary":"Get Agent Schemas","description":"OpenAPI schemas optimized for AI agents.\n\nReturns a simplified schema structure that AI agents can use\nto understand available endpoints, parameters, and response types.","operationId":"get_agent_schemas_agent_schemas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/agent/context":{"get":{"tags":["Developer"],"summary":"Get Agent Context","description":"Market context summary for AI agents.\n\nProvides a high-level overview that agents can use to understand\ncurrent market conditions and make informed API calls.","operationId":"get_agent_context_agent_context_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/agent/endpoints":{"get":{"tags":["Developer"],"summary":"Get Agent Endpoints","description":"Categorized endpoint list for AI agents.\n\nReturns all available endpoints organized by category with\ndescriptions to help agents choose the right endpoint.","operationId":"get_agent_endpoints_agent_endpoints_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/analyze/{symbol}":{"get":{"tags":["Analysis"],"summary":"Analyze Asset","description":"Analyze an asset for all edge cases.\n\nReturns comprehensive analysis including:\n- **Derivation**: Is this a derivative? What's its lineage?\n- **Bridge Status**: Native or bridged? Deprecated?\n- **Rebrand**: Has this token been rebranded?\n- **Fork**: Is this a blockchain fork?\n- **Copycat**: Is this potentially a scam/copycat?\n\n**Examples:**\n- `/analyze/wstETH` → Shows it's wrapped staked ETH (depth=2)\n- `/analyze/USDC.e?chain=arbitrum` → Shows it's deprecated bridged USDC\n- `/analyze/MATIC` → Shows rebrand to POL\n- `/analyze/BCH` → Shows fork from BTC\n- `/analyze/PEPE?chain=bsc&market_cap=1000` → Likely copycat warning","operationId":"analyze_asset_analyze__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"asset_type","in":"query","required":false,"schema":{"type":"string","description":"Asset type: crypto, stock, etf","default":"crypto","title":"Asset Type"},"description":"Asset type: crypto, stock, etf"},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Blockchain (for crypto)","title":"Chain"},"description":"Blockchain (for crypto)"},{"name":"contract_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Contract address","title":"Contract Address"},"description":"Contract address"},{"name":"market_cap","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Market cap in USD","title":"Market Cap"},"description":"Market cap in USD"},{"name":"deployer_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Contract deployer address","title":"Deployer Address"},"description":"Contract deployer address"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analyze/derivation/{symbol}":{"get":{"tags":["Analysis"],"summary":"Analyze Derivation","description":"Get derivation info for a token.\n\nUseful for understanding multi-layer derivatives like:\n- wstETH (wrapped staked ETH) - depth 2\n- WETH (wrapped ETH) - depth 1\n- ETH (native) - depth 0","operationId":"analyze_derivation_analyze_derivation__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analyze/bridge/{symbol}":{"get":{"tags":["Analysis"],"summary":"Analyze Bridge","description":"Check if a token is bridged vs natively issued.\n\nExamples:\n- USDC on Arbitrum → Native (Circle issued)\n- USDC.e on Arbitrum → Bridged (deprecated)\n- USDbC on Base → Bridged (use native USDC)","operationId":"analyze_bridge_analyze_bridge__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain"}},{"name":"contract_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analyze/rebrand/{symbol}":{"get":{"tags":["Analysis"],"summary":"Analyze Rebrand","description":"Check if a token has been rebranded.\n\nExamples:\n- MATIC → Rebranded to POL\n- FTM → Rebranding to S (Sonic)","operationId":"analyze_rebrand_analyze_rebrand__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analyze/fork/{symbol}":{"get":{"tags":["Analysis"],"summary":"Analyze Fork","description":"Check if a token is from a blockchain fork.\n\nExamples:\n- BCH → Forked from BTC (2017)\n- ETC → Forked from ETH (2016)\n- BSV → Forked from BCH (2018)","operationId":"analyze_fork_analyze_fork__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analyze/copycat/{symbol}":{"get":{"tags":["Analysis"],"summary":"Analyze Copycat","description":"Check if a token is likely a copycat/scam.\n\nUses:\n- Contract address verification\n- Market cap comparison\n- Deployer address analysis\n\nExamples:\n- PEPE on Ethereum with correct contract → Verified original\n- PEPE on BSC with low market cap → Likely copycat","operationId":"analyze_copycat_analyze_copycat__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain"}},{"name":"contract_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Address"}},{"name":"market_cap","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Market Cap"}},{"name":"deployer_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deployer Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analyze/batch":{"get":{"tags":["Analysis"],"summary":"Analyze Batch","description":"Analyze multiple assets at once.\n\nExample: `/analyze/batch?symbols=wstETH,MATIC,BCH,PEPE`","operationId":"analyze_batch_analyze_batch_get","parameters":[{"name":"symbols","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated symbols","title":"Symbols"},"description":"Comma-separated symbols"},{"name":"asset_type","in":"query","required":false,"schema":{"type":"string","default":"crypto","title":"Asset Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analytics/holders/{address}":{"get":{"tags":["Crypto"],"summary":"Get Holder Stats","description":"Get token holder distribution and statistics.\n\nReturns top holders and concentration metrics.\n\nInternal Data Sources:\n    - Primary: Moralis /erc20/{address}/owners\n    - Future: Etherscan, block explorers","operationId":"get_holder_stats_analytics_holders__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","description":"Token contract address","title":"Address"},"description":"Token contract address"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier","default":"eth","title":"Chain"},"description":"Chain identifier"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analytics/bonding/{address}":{"get":{"tags":["Crypto"],"summary":"Get Bonding Status","description":"Get Pump.fun bonding curve status for a Solana token.\n\nReturns bonding progress and graduation status.\n\nInternal Data Sources:\n    - Primary: Moralis Solana API\n    - Future: pump.fun direct API, Helius","operationId":"get_bonding_status_analytics_bonding__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","description":"Solana token mint address","title":"Address"},"description":"Solana token mint address"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analytics/price/onchain/{address}":{"get":{"tags":["Crypto"],"summary":"Get Onchain Price","description":"Get on-chain DEX price for a token.\n\nReturns real-time price from DEX liquidity pools.\n\nInternal Data Sources:\n    - EVM: Moralis /erc20/{address}/price\n    - Solana: Moralis Solana price API\n    - Future: DexScreener, GeckoTerminal, Jupiter","operationId":"get_onchain_price_analytics_price_onchain__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","description":"Token contract/mint address","title":"Address"},"description":"Token contract/mint address"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain identifier (eth, bsc, polygon, solana, etc.)","default":"eth","title":"Chain"},"description":"Chain identifier (eth, bsc, polygon, solana, etc.)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/earthquakes":{"get":{"tags":["World Monitoring"],"summary":"List Earthquakes","description":"List recent earthquake events from USGS.\n\nLLM helper:\n- Use `min_magnitude` to control noise (default 4.5 for globally relevant events).\n- Response is a standard list envelope; `metadata.cached` indicates cache hit.\n- Empty `data` means no events matched the magnitude threshold/time window.","operationId":"list_earthquakes_world_earthquakes_get","parameters":[{"name":"min_magnitude","in":"query","required":false,"schema":{"type":"number","maximum":9.9,"minimum":1.0,"default":4.5,"title":"Min Magnitude"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/natural-events":{"get":{"tags":["World Monitoring"],"summary":"List Natural Events","description":"List NASA EONET natural events.\n\nLLM helper:\n- `status=open` returns active events; switch to closed for historical-only slices.\n- `limit` controls payload size for downstream summarization.\n- Empty `data` is valid and indicates no matching events.","operationId":"list_natural_events_world_natural_events_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"open","title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/wildfires":{"get":{"tags":["World Monitoring"],"summary":"List Wildfires","description":"List wildfire detections from NASA FIRMS.\n\nLLM helper:\n- Use `source` to pick FIRMS feed quality/latency profile.\n- Use `bbox` (`minLon,minLat,maxLon,maxLat`) to localize queries.\n- Empty `data` means no detections in the selected geography/time slice.","operationId":"list_wildfires_world_wildfires_get","parameters":[{"name":"source","in":"query","required":false,"schema":{"type":"string","default":"VIIRS_NOAA20_NRT","title":"Source"}},{"name":"bbox","in":"query","required":false,"schema":{"type":"string","default":"-180,-90,180,90","title":"Bbox"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/weather-alerts":{"get":{"tags":["World Monitoring"],"summary":"List Weather Alerts","description":"List National Weather Service alerts.\n\nLLM helper:\n- `status=actual` filters to active operational alerts.\n- Intended for situational awareness prompts and severity aggregation.\n- Empty `data` is normal when no qualifying alerts exist.","operationId":"list_weather_alerts_world_weather_alerts_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"actual","title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/unrest":{"get":{"tags":["World Monitoring"],"summary":"List Unrest Events","description":"List unrest-related events from GDELT.\n\nLLM helper:\n- `max_rows` trades breadth vs latency/token cost.\n- Use for event clustering, hotspot extraction, and trend summaries.\n- Empty `data` means no events met source query constraints.","operationId":"list_unrest_events_world_unrest_get","parameters":[{"name":"max_rows","in":"query","required":false,"schema":{"type":"integer","maximum":250,"minimum":1,"default":100,"title":"Max Rows"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/internet-outages":{"get":{"tags":["World Monitoring"],"summary":"List Internet Outages","description":"List internet outage signals from Cloudflare Radar.\n\nLLM helper:\n- Payload is already normalized into the PRISM list envelope.\n- Use as a corroborating signal with cyber/geopolitical events.\n- Empty `data` means no outages available from provider at request time.","operationId":"list_internet_outages_world_internet_outages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/world/service-status":{"get":{"tags":["World Monitoring"],"summary":"List Service Status","description":"List external service status snapshots.\n\nLLM helper:\n- Represents aggregated provider status checks (status APIs).\n- Useful for distinguishing source outages from parser/schema failures.\n- Empty `data` means no status rows were returned by adapters.","operationId":"list_service_status_world_service_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/world/trade":{"get":{"tags":["World Monitoring"],"summary":"Get Trade Data","description":"Get WTO trade time-series payloads.\n\nLLM helper:\n- `indicator` controls metric family (default `ITS_MTV_AX`).\n- `reporter`/`period` constrain geography and time.\n- `data` may be `null` when provider decoding/upstream content is unavailable; treat as source-level issue, not route failure.","operationId":"get_trade_data_world_trade_get","parameters":[{"name":"reporter","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Reporter"}},{"name":"indicator","in":"query","required":false,"schema":{"type":"string","default":"ITS_MTV_AX","title":"Indicator"}},{"name":"period","in":"query","required":false,"schema":{"type":"string","default":"2023","title":"Period"}},{"name":"max_results","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Max Results"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/government-spending":{"get":{"tags":["World Monitoring"],"summary":"Get Government Spending","description":"Get recent USA Spending awards.\n\nLLM helper:\n- `limit` controls list size for downstream extraction.\n- Use for funding trend summaries and entity/entity-link analysis.\n- `data` may be object/list depending on provider response shape.","operationId":"get_government_spending_world_government_spending_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/aircraft":{"get":{"tags":["World Monitoring"],"summary":"List Aircraft","description":"List aircraft state vectors from OpenSky.\n\nLLM helper:\n- Treat this as near-real-time telemetry snapshot, not complete airspace truth.\n- Useful for anomaly heuristics and corroboration with aviation-status endpoints.\n- Empty `data` indicates no vectors returned in current provider window.","operationId":"list_aircraft_world_aircraft_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/world/aviation-status":{"get":{"tags":["World Monitoring"],"summary":"Get Aviation Status","description":"Get FAA aviation status summary feed.\n\nLLM helper:\n- Intended for airport/system disruption context rather than route-level pricing.\n- Use alongside `aircraft` for operational + movement synthesis.\n- `data` may be `null` when provider feed is temporarily unavailable.","operationId":"get_aviation_status_world_aviation_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/world/maritime-safety":{"get":{"tags":["World Monitoring"],"summary":"Get Maritime Safety","description":"Get maritime safety notices from NGA MSI sources.\n\nLLM helper:\n- Use for maritime risk context and route disruption monitoring.\n- Best paired with vessel telemetry and trade-route overlays.\n- Empty `data` is valid when no active notices are returned.","operationId":"get_maritime_safety_world_maritime_safety_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/world/vessels":{"get":{"tags":["World Monitoring"],"summary":"List Vessels","description":"Collect vessel updates from AIS Stream websocket.\n\nLLM helper:\n- `bbox` is parsed as `lat1,lon1,lat2,lon2`; invalid values fall back to default region.\n- `timeout` controls collection window; `max_vessels` caps message volume.\n- `vessels_collected=0` with HTTP 200 indicates no messages in window (provider/network/coverage), not necessarily endpoint failure.","operationId":"list_vessels_world_vessels_get","parameters":[{"name":"bbox","in":"query","required":false,"schema":{"type":"string","description":"Bounding box as lat1,lon1,lat2,lon2 (default: Strait of Hormuz)","default":"24.0,54.0,27.0,58.0","title":"Bbox"},"description":"Bounding box as lat1,lon1,lat2,lon2 (default: Strait of Hormuz)"},{"name":"timeout","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":5,"title":"Timeout"}},{"name":"max_vessels","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Max Vessels"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/live-streams":{"get":{"tags":["World Monitoring"],"summary":"Get Live Streams","description":"Get YouTube live status for a target channel handle.\n\nLLM helper:\n- Provide `channel` as handle (e.g. `@CNN`).\n- Returns provider-normalized status fields merged into response payload.\n- Use for media availability checks, not transcript/content analysis.","operationId":"get_live_streams_world_live_streams_get","parameters":[{"name":"channel","in":"query","required":false,"schema":{"type":"string","default":"@CNN","title":"Channel"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/pizza-index":{"get":{"tags":["World Monitoring"],"summary":"Get Pizza Index","description":"Get PizzINT source index payload.\n\nLLM helper:\n- Experimental sentiment/signal source; treat as contextual feature.\n- Combine with mainstream feeds before making high-confidence claims.\n- `data` may be sparse depending on source freshness.","operationId":"get_pizza_index_world_pizza_index_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AssetType":{"type":"string","enum":["stock","crypto","auto"],"title":"AssetType","description":"Asset type for risk calculations."},"BatchTechnicalsRequest":{"properties":{"symbols":{"items":{"type":"string"},"type":"array","maxItems":50,"title":"Symbols","description":"List of symbols (max 50)"},"timeframe":{"type":"string","title":"Timeframe","description":"Timeframe for analysis","default":"daily"},"indicators":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Indicators","description":"Specific indicators to return (default: all)"}},"type":"object","required":["symbols"],"title":"BatchTechnicalsRequest","description":"Request model for batch technical analysis."},"CreateKeyRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name","description":"Human-readable name for the key"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description","description":"Description of what this key is used for"},"tier":{"type":"string","title":"Tier","description":"Rate limit tier: free, basic, pro, enterprise","default":"free"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":365.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Key expiration in days (optional)"},"owner_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Owner Id","description":"Owner user ID (Clerk user ID)"},"owner_email":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Owner Email","description":"Owner email for notifications"}},"type":"object","title":"CreateKeyRequest","description":"Request to create a new API key."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PortfolioPosition":{"properties":{"symbol":{"type":"string","title":"Symbol"},"weight":{"type":"number","title":"Weight","description":"Portfolio weight (0-1)"},"asset_type":{"type":"string","title":"Asset Type","default":"auto"}},"type":"object","required":["symbol","weight"],"title":"PortfolioPosition","description":"Single position in a portfolio."},"PortfolioRiskRequest":{"properties":{"positions":{"items":{"$ref":"#/components/schemas/PortfolioPosition"},"type":"array","title":"Positions"},"period_days":{"type":"integer","maximum":365.0,"minimum":30.0,"title":"Period Days","default":90}},"type":"object","required":["positions"],"title":"PortfolioRiskRequest","description":"Request body for portfolio risk analysis."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerifyKeyRequest":{"properties":{"key":{"type":"string","title":"Key","description":"The API key to verify"}},"type":"object","required":["key"],"title":"VerifyKeyRequest","description":"Request to verify an API key."},"app__api__identity__BatchResolveRequest":{"properties":{"queries":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Queries","description":"List of symbols/queries to resolve"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category","description":"Optional category filter: CRYPTO, STOCK, etc."}},"type":"object","required":["queries"],"title":"BatchResolveRequest","description":"Request for batch identity resolution."},"app__api__resolve__BatchResolveRequest":{"properties":{"symbols":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Symbols"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"expand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand","default":"venues"}},"type":"object","required":["symbols"],"title":"BatchResolveRequest","description":"Request for batch resolution."},"app__api__search__BatchResolveRequest":{"properties":{"queries":{"items":{"type":"string"},"type":"array","maxItems":50,"title":"Queries"},"include":{"items":{"type":"string"},"type":"array","title":"Include","default":["price"]},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"}},"type":"object","required":["queries"],"title":"BatchResolveRequest","description":"Request for batch resolution."}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"},"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}},"tags":[{"name":"Resolution","description":"Resolve any symbol, contract, or hash to canonical asset data. Batch resolve, family grouping, and venue discovery."},{"name":"Assets","description":"Asset registry — search, list, lookup by identifier, OHLCV price history, and cache stats."},{"name":"Search","description":"Unified search across all asset types, contract lookup, and AI agent batch resolve."},{"name":"Families","description":"Asset family grouping — BTC family includes WBTC, cbBTC, tBTC. Unified pricing across variants."},{"name":"Universe","description":"Browse the full asset registry by category — crypto, stocks, ETFs, indexes. Coverage stats."},{"name":"Analysis","description":"Edge case analysis — multi-layer derivatives, bridged tokens, rebrands, forks, copycat detection."},{"name":"Crypto","description":"Crypto prices, trending tokens, DEX data, liquidity pools, on-chain analytics, social sentiment."},{"name":"DeFi","description":"Protocol TVL, yields, stablecoins, bridges, gas prices, wallet balances."},{"name":"Stocks","description":"Stock quotes, fundamentals, earnings, dividends, ETFs, market indexes, sectors."},{"name":"Forex & Commodities","description":"Forex rates, tradeable currency pairs, commodity prices, technicals."},{"name":"Macro Economics","description":"Fed rate, inflation, GDP, treasury yields, employment, M2 supply — powered by FRED."},{"name":"Signals & Technicals","description":"Trading signals, technical indicators, support/resistance, risk metrics, orderbook depth."},{"name":"News & Calendar","description":"Crypto and stock news, earnings calendar, economic calendar, historical data."},{"name":"Predictions","description":"Prediction markets (Polymarket, Kalshi), sports betting odds, arbitrage detection."},{"name":"Developer","description":"API key management, usage tracking, SDK generation, agent tools and schemas."}]}