{"openapi":"3.1.0","info":{"title":"Pattern Machine API","description":"Time series pattern matching API — pay-per-call via x402 on Base.","version":"1.0.0","contact":{"url":"https://market2000.xyz","email":"3ma.reds@gmail.com"},"x-guidance":"market2000.xyz — Trading intelligence + market data APIs, pay-per-call via x402 on Base (eip155:8453). All params are URL query strings on POST requests — no request body needed. Tickers auto-fetched from yfinance. Supports crypto (BTC, ETH), US stocks (AAPL, NVDA), commodities (xyz:GOLD→GC=F), indices (xyz:SP500→^GSPC), and forex (xyz:EUR→EURUSD=X).\n\nPATTERN INTELLIGENCE (DTW-based, unique):\n  POST /regime_detection?ticker=SPY — what era does now most resemble? ($0.05)\n  POST /pattern_backtest?ticker=SPY&lookback_days=20&forward_days=30 — historical outcome distribution ($0.10)\n  POST /forward_distribution?ticker=SPY&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD — P10→P90 returns ($0.05)\n  POST /playbook?ticker=NVDA&start_date=...&end_date=...&peers=MSFT,AMD — cross-asset playbook ($0.10)\n  POST /macro_analog — match VIX/yields/SPY to historical macro periods ($0.05)\n  POST /get_patterns?ticker=AAPL&start_date=...&end_date=... — top-k DTW price analogs ($0.05)\n  POST /screen?tickers=AAPL,MSFT,SPY&start_date=...&end_date=... — scan 50 tickers ($0.05)\n\nTRADING INTELLIGENCE (live algo signals):\n  POST /trading/signal?ticker=BTC — pattern+regime+Kelly+narrative → trade recommendation ($0.09)\n  POST /trading/scan?top_n=5 — scan 22 tickers, return ranked setups ($0.09)\n  GET  /trading/portfolio — live positions + PnL + account equity ($0.0001)\n\nMARKET DATA:\n  POST /get_latest_price?ticker=AAPL ($0.01)\n  POST /get_fear_greed — CNN Fear & Greed Index ($0.01)\n  POST /daily_brief — fear/greed + movers + earnings + macro digest ($0.02)\n  POST /get_fundamentals?ticker=AAPL — P/E, margins, analyst targets ($0.01)\n  POST /get_options_chain?ticker=AAPL — calls+puts with IV, OI ($0.05)\n  POST /optimize_portfolio?tickers=AAPL,MSFT&objective=max_sharpe ($0.05)\n  POST /watch/register?ticker=AAPL&condition=price_above&threshold=220&webhook_url=... ($0.05)"},"paths":{"/get_latest_price":{"post":{"summary":"Get Latest Price","operationId":"get_latest_price_get_latest_price_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Asset symbol","title":"Ticker"},"description":"Asset symbol"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string"},"date":{"type":"string","description":"Date of the most recent bar (YYYY-MM-DD)"},"close":{"type":"number","description":"Most recent closing price"},"change_pct":{"type":"number","description":"1-day percentage change (decimal, e.g. 0.012 = +1.2%)"}},"required":["ticker","date","close","change_pct"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.001"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Asset symbol (e.g. AAPL, BTC-USD, SPY)"}},"required":["ticker"]}}}}}},"/get_price_history":{"post":{"summary":"Get Price History","operationId":"get_price_history_get_price_history_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Asset symbol","title":"Ticker"},"description":"Asset symbol"},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Start date (YYYY-MM-DD)","title":"Start Date"},"description":"Start date (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"End date (YYYY-MM-DD)","title":"End Date"},"description":"End date (YYYY-MM-DD)"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Bar size: 1d, 1h, 30m, 15m","default":"1d","title":"Timeframe"},"description":"Bar size: 1d, 1h, 30m, 15m"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string"},"timeframe":{"type":"string"},"bars":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"open":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"close":{"type":"number"}},"required":["date","open","high","low","close"]}}},"required":["ticker","timeframe","bars"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Asset symbol (e.g. AAPL, BTC-USD, SPY)"},"start_date":{"type":"string","description":"Start date, inclusive (YYYY-MM-DD)"},"end_date":{"type":"string","description":"End date, inclusive (YYYY-MM-DD)"},"timeframe":{"type":"string","description":"Bar size: 1d (default), 1h, 30m, 15m"}},"required":["ticker","start_date","end_date"]}}}}}},"/get_patterns_raw":{"post":{"summary":"Get Patterns Raw","operationId":"get_patterns_raw_get_patterns_raw_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Ticker symbol","title":"Ticker"},"description":"Ticker symbol"},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Start date (YYYY-MM-DD)","title":"Start Date"},"description":"Start date (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"End date (YYYY-MM-DD)","title":"End Date"},"description":"End date (YYYY-MM-DD)"},{"name":"k","in":"query","required":false,"schema":{"type":"integer","description":"Number of patterns to return","default":3,"title":"K"},"description":"Number of patterns to return"},{"name":"metric","in":"query","required":false,"schema":{"type":"string","description":"Distance metric: 'l1' or 'l2'","default":"l2","title":"Metric"},"description":"Distance metric: 'l1' or 'l2'"},{"name":"wrap","in":"query","required":false,"schema":{"type":"boolean","description":"Allow wrapping (circular search)","default":true,"title":"Wrap"},"description":"Allow wrapping (circular search)"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Timeframe ('1d', '1h', etc.)","default":"1d","title":"Timeframe"},"description":"Timeframe ('1d', '1h', etc.)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"matches":{"type":"array","description":"Ranked list of historical analog windows","items":{"type":"object","properties":{"dates":{"type":"array","items":{"type":"string"},"description":"Bar timestamps for the matched window"},"closes":{"type":"array","items":{"type":"number"},"description":"Closing prices for the matched window"},"similarity":{"type":"number","description":"Normalized distance score (lower = closer match)"},"query_return":{"type":"number","description":"Total return of the query window (decimal)"},"description":{"type":"string","description":"Human-readable label for the match"}},"required":["dates","closes","similarity","query_return","description"]}}},"required":["matches"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Asset symbol (e.g. AAPL, BTC-USD, SPY)"},"start_date":{"type":"string","description":"Query window start, inclusive (YYYY-MM-DD)"},"end_date":{"type":"string","description":"Query window end, exclusive (YYYY-MM-DD)"},"k":{"type":"integer","description":"Number of analog patterns to return (default 3)"},"metric":{"type":"string","enum":["l1","l2"],"description":"Distance metric"},"wrap":{"type":"boolean","description":"Allow circular search (default true)"},"timeframe":{"type":"string","description":"Bar size: 1d, 1h, 30m, 15m, etc."}},"required":["ticker","start_date","end_date"]}}}}}},"/get_patterns":{"post":{"summary":"Get Patterns","operationId":"get_patterns_get_patterns_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Ticker symbol","title":"Ticker"},"description":"Ticker symbol"},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Start date (YYYY-MM-DD)","title":"Start Date"},"description":"Start date (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"End date (YYYY-MM-DD)","title":"End Date"},"description":"End date (YYYY-MM-DD)"},{"name":"k","in":"query","required":false,"schema":{"type":"integer","description":"Number of patterns to return","default":3,"title":"K"},"description":"Number of patterns to return"},{"name":"metric","in":"query","required":false,"schema":{"type":"string","description":"Distance metric: 'l1' or 'l2'","default":"l2","title":"Metric"},"description":"Distance metric: 'l1' or 'l2'"},{"name":"wrap","in":"query","required":false,"schema":{"type":"boolean","description":"Allow wrapping (circular search)","default":true,"title":"Wrap"},"description":"Allow wrapping (circular search)"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Timeframe ('1d', '1h', etc.)","default":"1d","title":"Timeframe"},"description":"Timeframe ('1d', '1h', etc.)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"matches":{"type":"array","description":"Ranked list of historical analog windows","items":{"type":"object","properties":{"dates":{"type":"array","items":{"type":"string"},"description":"Bar timestamps for the matched window"},"closes":{"type":"array","items":{"type":"number"},"description":"Closing prices for the matched window"},"similarity":{"type":"number","description":"Normalized distance score (lower = closer match)"},"query_return":{"type":"number","description":"Total return of the query window (decimal)"},"description":{"type":"string","description":"Human-readable label for the match"}},"required":["dates","closes","similarity","query_return","description"]}},"summary":{"type":"object","description":"Aggregated forward return statistics across all matches","properties":{"Average 7 day return":{"type":"number"},"Average 30 day return":{"type":"number"},"Pattern Average return":{"type":"number"}}}},"required":["matches","summary"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Asset symbol (e.g. AAPL, BTC-USD, SPY)"},"start_date":{"type":"string","description":"Query window start, inclusive (YYYY-MM-DD)"},"end_date":{"type":"string","description":"Query window end, exclusive (YYYY-MM-DD)"},"k":{"type":"integer","description":"Number of analog patterns to return (default 3)"},"metric":{"type":"string","enum":["l1","l2"],"description":"Distance metric"},"wrap":{"type":"boolean","description":"Allow circular search (default true)"},"timeframe":{"type":"string","description":"Bar size: 1d, 1h, 30m, 15m, etc."}},"required":["ticker","start_date","end_date"]}}}}}},"/get_patterns_ohlc":{"post":{"summary":"Get Patterns Ohlc","operationId":"get_patterns_ohlc_get_patterns_ohlc_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Ticker symbol","title":"Ticker"},"description":"Ticker symbol"},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Start date (YYYY-MM-DD)","title":"Start Date"},"description":"Start date (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"End date (YYYY-MM-DD)","title":"End Date"},"description":"End date (YYYY-MM-DD)"},{"name":"k","in":"query","required":false,"schema":{"type":"integer","description":"Number of patterns to return","default":3,"title":"K"},"description":"Number of patterns to return"},{"name":"metric","in":"query","required":false,"schema":{"type":"string","description":"Distance metric: 'l1' or 'l2'","default":"l2","title":"Metric"},"description":"Distance metric: 'l1' or 'l2'"},{"name":"wrap","in":"query","required":false,"schema":{"type":"boolean","description":"Allow wrapping (circular search)","default":true,"title":"Wrap"},"description":"Allow wrapping (circular search)"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Timeframe ('1d', '1h', etc.)","default":"1d","title":"Timeframe"},"description":"Timeframe ('1d', '1h', etc.)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string"},"start_date":{"type":"string"},"end_date":{"type":"string"},"timeframe":{"type":"string"},"query_return":{"type":"number","description":"Total return of the query window (decimal)"},"patterns":{"type":"array","description":"Ranked list of historical analog windows with full OHLC data","items":{"type":"object","properties":{"pattern_id":{"type":"integer","description":"Rank (1 = closest match)"},"dates":{"type":"array","items":{"type":"string"}},"opens":{"type":"array","items":{"type":"number"}},"highs":{"type":"array","items":{"type":"number"}},"lows":{"type":"array","items":{"type":"number"}},"closes":{"type":"array","items":{"type":"number"}},"similarity":{"type":"number"},"query_return":{"type":"number"},"description":{"type":"string"}},"required":["pattern_id","dates","opens","highs","lows","closes","similarity","query_return","description"]}}},"required":["ticker","start_date","end_date","timeframe","query_return","patterns"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Asset symbol (e.g. AAPL, BTC-USD, SPY)"},"start_date":{"type":"string","description":"Query window start, inclusive (YYYY-MM-DD)"},"end_date":{"type":"string","description":"Query window end, exclusive (YYYY-MM-DD)"},"k":{"type":"integer","description":"Number of analog patterns to return (default 3)"},"metric":{"type":"string","enum":["l1","l2"],"description":"Distance metric"},"wrap":{"type":"boolean","description":"Allow circular search (default true)"},"timeframe":{"type":"string","description":"Bar size: 1d, 1h, 30m, 15m, etc."}},"required":["ticker","start_date","end_date"]}}}}}},"/screen":{"post":{"summary":"Screen","operationId":"screen_screen_post","parameters":[{"name":"tickers","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated symbols, max 50","title":"Tickers"},"description":"Comma-separated symbols, max 50"},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Query window start (YYYY-MM-DD)","title":"Start Date"},"description":"Query window start (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"Query window end (YYYY-MM-DD)","title":"End Date"},"description":"Query window end (YYYY-MM-DD)"},{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","description":"Bar size: 1d, 1h, 30m, 15m","default":"1d","title":"Timeframe"},"description":"Bar size: 1d, 1h, 30m, 15m"},{"name":"metric","in":"query","required":false,"schema":{"type":"string","description":"Distance metric: l1 or l2","default":"l2","title":"Metric"},"description":"Distance metric: l1 or l2"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"Sort by: similarity or return","default":"similarity","title":"Sort By"},"description":"Sort by: similarity or return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"start_date":{"type":"string"},"end_date":{"type":"string"},"timeframe":{"type":"string"},"screened":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"ticker":{"type":"string"},"similarity":{"type":"number"},"query_return":{"type":"number"},"top_match_start":{"type":"string"},"status":{"type":"string"},"error":{"type":"string"}}}}},"required":["start_date","end_date","timeframe","screened","results"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tickers":{"type":"string","description":"Comma-separated list of asset symbols, max 50 (e.g. AAPL,MSFT,GOOGL,BTC-USD)"},"start_date":{"type":"string","description":"Query window start, inclusive (YYYY-MM-DD)"},"end_date":{"type":"string","description":"Query window end, exclusive (YYYY-MM-DD)"},"timeframe":{"type":"string","description":"Bar size: 1d (default), 1h, 30m, 15m"},"metric":{"type":"string","enum":["l1","l2"],"description":"Distance metric (default l2)"},"sort_by":{"type":"string","enum":["similarity","return"],"description":"Sort results by similarity (default) or query_return"}},"required":["tickers","start_date","end_date"]}}}}}},"/get_trends":{"post":{"summary":"Get Trends Endpoint","operationId":"get_trends_endpoint_get_trends_post","parameters":[{"name":"period","in":"query","required":true,"schema":{"type":"string","description":"Trend window: daily, weekly, monthly","title":"Period"},"description":"Trend window: daily, weekly, monthly"},{"name":"geo","in":"query","required":true,"schema":{"type":"string","description":"ISO 3166-1 alpha-2 country code (e.g. US, IN, GB) or WORLDWIDE","title":"Geo"},"description":"ISO 3166-1 alpha-2 country code (e.g. US, IN, GB) or WORLDWIDE"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"period":{"type":"string"},"geo":{"type":"string"},"fetched_at":{"type":"string"},"count":{"type":"integer"},"source":{"type":"string"},"trends":{"type":"array","items":{"type":"object","properties":{"query":{"type":"string"},"traffic":{"type":"string"},"pub_date":{"type":"string"},"news_items":{"type":"array"}}}},"cached":{"type":"boolean"},"note":{"type":"string"}},"required":["period","geo","fetched_at","count","trends"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"period":{"type":"string","enum":["daily","weekly","monthly"],"description":"Trend window: 'daily' (today's hot searches), 'weekly' (last 7 days), 'monthly' (top searches this year)"},"geo":{"type":"string","description":"ISO 3166-1 alpha-2 country code (e.g. 'US', 'IN', 'GB') or 'WORLDWIDE'"}},"required":["period","geo"]}}}}}},"/get_hardware_prices":{"post":{"summary":"Get Hardware Prices Endpoint","operationId":"get_hardware_prices_endpoint_get_hardware_prices_post","parameters":[{"name":"category","in":"query","required":true,"schema":{"type":"string","description":"Hardware category: cpu, gpu, or all","title":"Category"},"description":"Hardware category: cpu, gpu, or all"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string"},"category":{"type":"string"},"fetched_at":{"type":"string"},"cached":{"type":"boolean"},"market_index":{"type":"object","description":"Semiconductor stock prices as market-sentiment proxy (always available)","additionalProperties":{"type":"object","properties":{"price":{"type":"number"},"change_pct":{"type":"number","description":"1-day % change"}}}},"hardware_prices":{"type":"object","description":"Retail hardware price index from PCPartPicker (scraped daily; null if unavailable)","properties":{"total_products":{"type":"integer"},"avg_price":{"type":"number"},"median_price":{"type":"number"},"min_price":{"type":"number"},"max_price":{"type":"number"},"tiers":{"type":"object","properties":{"budget":{"type":"object","properties":{"label":{"type":"string"},"count":{"type":"integer"},"avg_price":{"type":"number"},"min_price":{"type":"number"},"max_price":{"type":"number"},"top_products":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"},"brand":{"type":"string"}}}}}},"mid":{"type":"object","properties":{"label":{"type":"string"},"count":{"type":"integer"},"avg_price":{"type":"number"},"min_price":{"type":"number"},"max_price":{"type":"number"},"top_products":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"},"brand":{"type":"string"}}}}}},"high":{"type":"object","properties":{"label":{"type":"string"},"count":{"type":"integer"},"avg_price":{"type":"number"},"min_price":{"type":"number"},"max_price":{"type":"number"},"top_products":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"},"brand":{"type":"string"}}}}}}}}}}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["cpu","gpu","all"],"description":"Hardware category: 'cpu', 'gpu', or 'all' for both"}},"required":["category"]}}}}}},"/get_fear_greed":{"post":{"summary":"Get Fear Greed Endpoint","operationId":"get_fear_greed_endpoint_get_fear_greed_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"score":{"type":"number"},"rating":{"type":"string"},"timestamp":{"type":"string"},"previous_week":{"type":"number"},"previous_month":{"type":"number"},"previous_year":{"type":"number"},"components":{"type":"object"},"history_30d":{"type":"array"},"fetched_at":{"type":"string"},"cached":{"type":"boolean"}},"required":["score","rating"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.001"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}}}},"/get_earnings_calendar":{"post":{"summary":"Get Earnings Calendar Endpoint","operationId":"get_earnings_calendar_endpoint_get_earnings_calendar_post","parameters":[{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date YYYY-MM-DD (default: today UTC)","title":"Date"},"description":"Date YYYY-MM-DD (default: today UTC)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string"},"count":{"type":"integer"},"earnings":{"type":"array"},"fetched_at":{"type":"string"},"cached":{"type":"boolean"}},"required":["date","count","earnings"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.001"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","description":"Date to fetch earnings for (YYYY-MM-DD). Defaults to today UTC."}}}}}}}},"/get_economic_calendar":{"post":{"summary":"Get Economic Calendar Endpoint","operationId":"get_economic_calendar_endpoint_get_economic_calendar_post","parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","description":"today | tomorrow | this_week | next_week | this_month","default":"this_week","title":"Period"},"description":"today | tomorrow | this_week | next_week | this_month"},{"name":"currencies","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated currency codes","default":"USD,EUR,GBP,JPY","title":"Currencies"},"description":"Comma-separated currency codes"},{"name":"importance","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated: high, medium, low","default":"high,medium,low","title":"Importance"},"description":"Comma-separated: high, medium, low"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"period":{"type":"string"},"date_from":{"type":"string"},"date_to":{"type":"string"},"currencies":{"type":"array"},"importance":{"type":"array"},"count":{"type":"integer"},"events":{"type":"array"},"fetched_at":{"type":"string"},"cached":{"type":"boolean"}},"required":["period","count","events"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.001"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"period":{"type":"string","enum":["today","tomorrow","this_week","next_week","this_month"],"description":"Time window for events (default: this_week)"},"currencies":{"type":"string","description":"Comma-separated currency codes to filter, e.g. 'USD,EUR,GBP' (default: USD,EUR,GBP,JPY)"},"importance":{"type":"string","description":"Comma-separated importance levels: 'high', 'medium', 'low' (default: all three)"}}}}}}}},"/search_arxiv":{"post":{"summary":"Search Arxiv Endpoint","operationId":"search_arxiv_endpoint_search_arxiv_post","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","description":"Search terms","title":"Query"},"description":"Search terms"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"arXiv category or group alias (ai, finance, crypto, …)","title":"Category"},"description":"arXiv category or group alias (ai, finance, crypto, …)"},{"name":"max_results","in":"query","required":false,"schema":{"type":"integer","description":"1–50 results (default 10)","default":10,"title":"Max Results"},"description":"1–50 results (default 10)"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"submittedDate | relevance | lastUpdatedDate","default":"submittedDate","title":"Sort By"},"description":"submittedDate | relevance | lastUpdatedDate"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"category":{"type":["string","null"]},"sort_by":{"type":"string"},"count":{"type":"integer"},"papers":{"type":"array"},"fetched_at":{"type":"string"},"cached":{"type":"boolean"}},"required":["query","count","papers"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Free-text search terms (e.g. 'diffusion model finance')"},"category":{"type":"string","description":"arXiv category code (e.g. 'cs.AI', 'q-fin.ST') or group alias: ai | finance | crypto | bio | physics | econ"},"max_results":{"type":"integer","description":"Number of papers to return, 1–50 (default 10)"},"sort_by":{"type":"string","enum":["submittedDate","relevance","lastUpdatedDate"],"description":"Sort order (default: submittedDate)"}},"required":["query"]}}}}}},"/optimize_portfolio":{"post":{"summary":"Optimize Portfolio Endpoint","operationId":"optimize_portfolio_endpoint_optimize_portfolio_post","parameters":[{"name":"tickers","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated symbols, 2–30 (e.g. AAPL,MSFT,NVDA,SPY)","title":"Tickers"},"description":"Comma-separated symbols, 2–30 (e.g. AAPL,MSFT,NVDA,SPY)"},{"name":"period","in":"query","required":false,"schema":{"type":"string","description":"Historical window: 6mo | 1y | 2y | 3y | 5y","default":"1y","title":"Period"},"description":"Historical window: 6mo | 1y | 2y | 3y | 5y"},{"name":"objective","in":"query","required":false,"schema":{"type":"string","description":"max_sharpe | min_volatility | max_return","default":"max_sharpe","title":"Objective"},"description":"max_sharpe | min_volatility | max_return"},{"name":"risk_free_rate","in":"query","required":false,"schema":{"type":"number","description":"Annual risk-free rate for Sharpe (default 0.04)","default":0.04,"title":"Risk Free Rate"},"description":"Annual risk-free rate for Sharpe (default 0.04)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tickers":{"type":"string","description":"Comma-separated list of 2–30 ticker symbols (e.g. 'AAPL,MSFT,NVDA,SPY')"},"period":{"type":"string","enum":["6mo","1y","2y","3y","5y"],"description":"Historical data window used to estimate returns and covariance (default: 1y)"},"objective":{"type":"string","enum":["max_sharpe","min_volatility","max_return"],"description":"Optimization objective (default: max_sharpe)"},"risk_free_rate":{"type":"number","description":"Annual risk-free rate for Sharpe calculation (default: 0.04 = 4%)"}},"required":["tickers"]}}}}}},"/get_fundamentals":{"post":{"summary":"Get Fundamentals Endpoint","operationId":"get_fundamentals_endpoint_get_fundamentals_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Stock symbol (e.g. AAPL, MSFT, NVDA)","title":"Ticker"},"description":"Stock symbol (e.g. AAPL, MSFT, NVDA)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.001"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Stock symbol (e.g. 'AAPL', 'MSFT', 'NVDA')"}},"required":["ticker"]}}}}}},"/get_options_chain":{"post":{"summary":"Get Options Chain Endpoint","operationId":"get_options_chain_endpoint_get_options_chain_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Stock symbol (e.g. AAPL, SPY, NVDA)","title":"Ticker"},"description":"Stock symbol (e.g. AAPL, SPY, NVDA)"},{"name":"expiration","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Expiration date YYYY-MM-DD (default: nearest available)","title":"Expiration"},"description":"Expiration date YYYY-MM-DD (default: nearest available)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Stock symbol (e.g. 'AAPL', 'SPY', 'NVDA')"},"expiration":{"type":"string","description":"Expiration date 'YYYY-MM-DD' — omit to use the nearest available date"}},"required":["ticker"]}}}}}},"/daily_brief":{"post":{"summary":"Daily Brief Endpoint","operationId":"daily_brief_endpoint_daily_brief_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string"},"fear_greed":{"type":"object"},"market_movers":{"type":"object"},"earnings_today":{"type":"object"},"economic_events_today":{"type":"object"},"generated_at":{"type":"string"}}}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.02"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}}}},"/watch/register":{"post":{"summary":"Watch Register Endpoint","operationId":"watch_register_endpoint_watch_register_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Stock symbol to monitor","title":"Ticker"},"description":"Stock symbol to monitor"},{"name":"condition","in":"query","required":true,"schema":{"type":"string","description":"price_above | price_below | change_pct_above | change_pct_below","title":"Condition"},"description":"price_above | price_below | change_pct_above | change_pct_below"},{"name":"threshold","in":"query","required":true,"schema":{"type":"number","description":"Trigger value (price in USD or % change)","title":"Threshold"},"description":"Trigger value (price in USD or % change)"},{"name":"webhook_url","in":"query","required":true,"schema":{"type":"string","description":"HTTPS URL to POST when triggered","title":"Webhook Url"},"description":"HTTPS URL to POST when triggered"},{"name":"ttl_days","in":"query","required":false,"schema":{"type":"integer","description":"Alert lifetime in days, 1–90","default":30,"title":"Ttl Days"},"description":"Alert lifetime in days, 1–90"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"watch_id":{"type":"string"},"ticker":{"type":"string"},"condition":{"type":"string"},"threshold":{"type":"number"},"expires_at":{"type":"string"},"status":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.02"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Stock symbol to monitor (e.g. AAPL, SPY, NVDA)"},"condition":{"type":"string","enum":["price_above","price_below","change_pct_above","change_pct_below"]},"threshold":{"type":"number","description":"Trigger value — price in USD or % change (e.g. 200.0 or 5.0 for +5%)"},"webhook_url":{"type":"string","description":"HTTPS URL to POST when the condition is met"},"ttl_days":{"type":"integer","description":"Alert lifetime in days, 1–90 (default 30)"}},"required":["ticker","condition","threshold","webhook_url"]}}}}}},"/analyze":{"post":{"summary":"Analyze Endpoint","operationId":"analyze_endpoint_analyze_post","parameters":[{"name":"question","in":"query","required":true,"schema":{"type":"string","description":"Natural language market question","title":"Question"},"description":"Natural language market question"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"question":{"type":"string"},"intent":{"type":"string"},"insight":{"type":"string"},"data":{"type":"object"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.02"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"question":{"type":"string","description":"Natural language query, e.g. 'what moved today?', 'is NVDA overvalued?', 'options for SPY'"}},"required":["question"]}}}}}},"/get_market_movers":{"post":{"summary":"Get Market Movers Endpoint","operationId":"get_market_movers_endpoint_get_market_movers_post","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","description":"gainers | losers | active | all (default: all)","default":"all","title":"Category"},"description":"gainers | losers | active | all (default: all)"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","description":"Results per category, 1–25 (default 10)","default":10,"title":"Count"},"description":"Results per category, 1–25 (default 10)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"gainers":{"type":"array"},"losers":{"type":"array"},"active":{"type":"array"},"market_status":{"type":"string"},"as_of":{"type":"string"},"cached":{"type":"boolean"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.001"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["gainers","losers","active","all"],"description":"Which list to return: 'gainers' (top % up), 'losers' (top % down), 'active' (highest volume), or 'all' (default)"},"count":{"type":"integer","description":"Number of results per category, 1–25 (default 10)"}}}}}}}},"/regime_detection":{"post":{"tags":["Pattern Intelligence"],"summary":"Regime Detection Endpoint","operationId":"regime_detection_endpoint_regime_detection_post","parameters":[{"name":"ticker","in":"query","required":false,"schema":{"type":"string","description":"Ticker symbol (default: SPY)","default":"SPY","title":"Ticker"},"description":"Ticker symbol (default: SPY)"},{"name":"lookback_days","in":"query","required":false,"schema":{"type":"integer","description":"Days in current window (20–252)","default":60,"title":"Lookback Days"},"description":"Days in current window (20–252)"},{"name":"k","in":"query","required":false,"schema":{"type":"integer","description":"Top-k analog eras to return (1–10)","default":3,"title":"K"},"description":"Top-k analog eras to return (1–10)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string"},"current_window":{"type":"object"},"question":{"type":"string"},"top_analogs":{"type":"array"},"consensus":{"type":"object"},"generated_at":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Asset symbol (default SPY)"},"lookback_days":{"type":"integer","description":"Query window length in days (default 60)"},"k":{"type":"integer","description":"Number of top analogs to return (default 3)"}}}}}}}},"/forward_distribution":{"post":{"tags":["Pattern Intelligence"],"summary":"Forward Distribution Endpoint","operationId":"forward_distribution_endpoint_forward_distribution_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Ticker symbol","title":"Ticker"},"description":"Ticker symbol"},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Start date of query window (YYYY-MM-DD)","title":"Start Date"},"description":"Start date of query window (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"End date of query window (YYYY-MM-DD)","title":"End Date"},"description":"End date of query window (YYYY-MM-DD)"},{"name":"k","in":"query","required":false,"schema":{"type":"integer","description":"Number of analogs to aggregate (5–100)","default":20,"title":"K"},"description":"Number of analogs to aggregate (5–100)"},{"name":"metric","in":"query","required":false,"schema":{"type":"string","description":"Distance metric: l1 or l2","default":"l2","title":"Metric"},"description":"Distance metric: l1 or l2"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string"},"query_window":{"type":"object"},"query_return_pct":{"type":"number"},"analogs_used":{"type":"integer"},"distributions":{"type":"object"},"top_analogs":{"type":"array"},"generated_at":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Asset symbol"},"start_date":{"type":"string","description":"Query window start (YYYY-MM-DD)"},"end_date":{"type":"string","description":"Query window end (YYYY-MM-DD)"},"k":{"type":"integer","description":"Number of analogs to sample (default 20)"},"metric":{"type":"string","enum":["l1","l2"]}},"required":["ticker","start_date","end_date"]}}}}}},"/pattern_backtest":{"post":{"tags":["Pattern Intelligence"],"summary":"Pattern Backtest Endpoint","operationId":"pattern_backtest_endpoint_pattern_backtest_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Ticker symbol","title":"Ticker"},"description":"Ticker symbol"},{"name":"lookback_days","in":"query","required":false,"schema":{"type":"integer","description":"Rolling window size in trading days","default":20,"title":"Lookback Days"},"description":"Rolling window size in trading days"},{"name":"min_return","in":"query","required":false,"schema":{"type":"number","description":"Minimum window return filter (e.g. 0.05 = 5%)","title":"Min Return"},"description":"Minimum window return filter (e.g. 0.05 = 5%)"},{"name":"max_return","in":"query","required":false,"schema":{"type":"number","description":"Maximum window return filter (e.g. -0.05 = -5%)","title":"Max Return"},"description":"Maximum window return filter (e.g. -0.05 = -5%)"},{"name":"forward_days","in":"query","required":false,"schema":{"type":"integer","description":"Forward horizon in trading days","default":30,"title":"Forward Days"},"description":"Forward horizon in trading days"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string"},"lookback_days":{"type":"integer"},"forward_days":{"type":"integer"},"filter":{"type":"object"},"occurrences":{"type":"integer"},"forward_return_distribution":{"type":"object"},"example_windows":{"type":"array"},"generated_at":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.10"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Asset symbol"},"lookback_days":{"type":"integer","description":"Window length to scan (default 20)"},"min_return":{"type":"number","description":"Min window return as decimal e.g. 0.05 = 5% (default: no lower bound)"},"max_return":{"type":"number","description":"Max window return as decimal e.g. 0.20 = 20% (default: no upper bound)"},"forward_days":{"type":"integer","description":"Forward horizon to measure after window (default 30)"}},"required":["ticker"]}}}}}},"/playbook":{"post":{"tags":["Pattern Intelligence"],"summary":"Playbook Endpoint","operationId":"playbook_endpoint_playbook_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Primary ticker symbol","title":"Ticker"},"description":"Primary ticker symbol"},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Query window start (YYYY-MM-DD)","title":"Start Date"},"description":"Query window start (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"Query window end (YYYY-MM-DD)","title":"End Date"},"description":"Query window end (YYYY-MM-DD)"},{"name":"peers","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated peer tickers (e.g. MSFT,AMD,QQQ)","title":"Peers"},"description":"Comma-separated peer tickers (e.g. MSFT,AMD,QQQ)"},{"name":"k","in":"query","required":false,"schema":{"type":"integer","description":"Number of historical analogs (3–30)","default":10,"title":"K"},"description":"Number of historical analogs (3–30)"},{"name":"forward_days","in":"query","required":false,"schema":{"type":"integer","description":"Forward horizon in trading days","default":30,"title":"Forward Days"},"description":"Forward horizon in trading days"},{"name":"metric","in":"query","required":false,"schema":{"type":"string","description":"Distance metric: l1 or l2","default":"l2","title":"Metric"},"description":"Distance metric: l1 or l2"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"primary_ticker":{"type":"string"},"peers":{"type":"array"},"query_window":{"type":"object"},"query_return_pct":{"type":"number"},"forward_days":{"type":"integer"},"analogs_used":{"type":"integer"},"peer_playbook":{"type":"object"},"generated_at":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.10"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Primary ticker whose pattern to analyze"},"start_date":{"type":"string","description":"Pattern window start (YYYY-MM-DD)"},"end_date":{"type":"string","description":"Pattern window end (YYYY-MM-DD)"},"peers":{"type":"string","description":"Comma-separated peer tickers e.g. MSFT,AMD,QQQ"},"k":{"type":"integer","description":"Number of analogs to average (default 10)"},"forward_days":{"type":"integer","description":"Forward horizon days (default 30)"}},"required":["ticker","start_date","end_date","peers"]}}}}}},"/macro_analog":{"post":{"tags":["Pattern Intelligence"],"summary":"Macro Analog Endpoint","operationId":"macro_analog_endpoint_macro_analog_post","parameters":[{"name":"lookback_days","in":"query","required":false,"schema":{"type":"integer","description":"Rolling window for momentum features (10–60)","default":20,"title":"Lookback Days"},"description":"Rolling window for momentum features (10–60)"},{"name":"n_analogs","in":"query","required":false,"schema":{"type":"integer","description":"Number of historical analogs to return (1–10)","default":3,"title":"N Analogs"},"description":"Number of historical analogs to return (1–10)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"as_of":{"type":"string"},"current_macro":{"type":"object"},"top_analogs":{"type":"array"},"features_used":{"type":"array"},"generated_at":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"lookback_days":{"type":"integer","description":"Rolling return window for macro features (default 20)"},"n_analogs":{"type":"integer","description":"Number of historical analogs to return (default 3)"}}}}}}}},"/pattern_alert":{"post":{"tags":["Pattern Intelligence"],"summary":"Pattern Alert Endpoint","operationId":"pattern_alert_endpoint_pattern_alert_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Ticker to monitor","title":"Ticker"},"description":"Ticker to monitor"},{"name":"ref_ticker","in":"query","required":true,"schema":{"type":"string","description":"Reference ticker for template window","title":"Ref Ticker"},"description":"Reference ticker for template window"},{"name":"ref_start","in":"query","required":true,"schema":{"type":"string","description":"Reference window start (YYYY-MM-DD)","title":"Ref Start"},"description":"Reference window start (YYYY-MM-DD)"},{"name":"ref_end","in":"query","required":true,"schema":{"type":"string","description":"Reference window end (YYYY-MM-DD)","title":"Ref End"},"description":"Reference window end (YYYY-MM-DD)"},{"name":"similarity_threshold","in":"query","required":false,"schema":{"type":"number","description":"Distance threshold — fires when similarity < threshold (default 0.15)","default":0.15,"title":"Similarity Threshold"},"description":"Distance threshold — fires when similarity < threshold (default 0.15)"},{"name":"webhook_url","in":"query","required":true,"schema":{"type":"string","description":"Webhook URL to POST when triggered","title":"Webhook Url"},"description":"Webhook URL to POST when triggered"},{"name":"ttl_days","in":"query","required":false,"schema":{"type":"integer","description":"Alert TTL in days (1–90)","default":30,"title":"Ttl Days"},"description":"Alert TTL in days (1–90)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{"watch_id":{"type":"string"},"ticker":{"type":"string"},"ref_ticker":{"type":"string"},"ref_window":{"type":"object"},"similarity_threshold":{"type":"number"},"expires_at":{"type":"string"},"status":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Ticker to monitor"},"ref_ticker":{"type":"string","description":"Ticker whose historical window defines the reference pattern"},"ref_start":{"type":"string","description":"Reference window start (YYYY-MM-DD)"},"ref_end":{"type":"string","description":"Reference window end (YYYY-MM-DD)"},"similarity_threshold":{"type":"number","description":"DTW distance threshold — fire when current pattern is closer than this (default 0.15, typical range 0.05–0.30)"},"webhook_url":{"type":"string","description":"HTTPS URL to POST when pattern matches"},"ttl_days":{"type":"integer","description":"Alert lifetime 1–90 days (default 30)"}},"required":["ticker","ref_ticker","ref_start","ref_end","webhook_url"]}}}}}},"/position_size":{"post":{"tags":["Pattern Intelligence"],"summary":"Position Size Endpoint","operationId":"position_size_endpoint_position_size_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Ticker symbol","title":"Ticker"},"description":"Ticker symbol"},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Query window start (YYYY-MM-DD)","title":"Start Date"},"description":"Query window start (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"Query window end (YYYY-MM-DD)","title":"End Date"},"description":"Query window end (YYYY-MM-DD)"},{"name":"horizon","in":"query","required":false,"schema":{"type":"string","description":"Return horizon: 7d | 14d | 30d | 60d","default":"30d","title":"Horizon"},"description":"Return horizon: 7d | 14d | 30d | 60d"},{"name":"portfolio_value","in":"query","required":false,"schema":{"type":"number","description":"Portfolio size in USD for dollar sizing","default":10000,"title":"Portfolio Value"},"description":"Portfolio size in USD for dollar sizing"},{"name":"kelly_fraction","in":"query","required":false,"schema":{"type":"number","description":"Fractional Kelly (0.5 = half-Kelly)","default":0.5,"title":"Kelly Fraction"},"description":"Fractional Kelly (0.5 = half-Kelly)"},{"name":"k","in":"query","required":false,"schema":{"type":"integer","description":"Number of analogs to aggregate (5–100)","default":20,"title":"K"},"description":"Number of analogs to aggregate (5–100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string"},"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"},"horizon":{"type":"string","enum":["7d","14d","30d","60d"]},"portfolio_value":{"type":"number"},"kelly_fraction":{"type":"number"},"k":{"type":"integer"}},"required":["ticker","start_date","end_date"]}}}}}},"/correlation_matrix":{"post":{"tags":["Pattern Intelligence"],"summary":"Correlation Matrix Endpoint","operationId":"correlation_matrix_endpoint_correlation_matrix_post","parameters":[{"name":"tickers","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated symbols, 2–20 (e.g. NVDA,AMD,MSFT,QQQ)","title":"Tickers"},"description":"Comma-separated symbols, 2–20 (e.g. NVDA,AMD,MSFT,QQQ)"},{"name":"period","in":"query","required":false,"schema":{"type":"string","description":"Lookback: 30d | 90d | 6mo | 1y | 2y | 3y","default":"1y","title":"Period"},"description":"Lookback: 30d | 90d | 6mo | 1y | 2y | 3y"},{"name":"method","in":"query","required":false,"schema":{"type":"string","description":"pearson | spearman","default":"pearson","title":"Method"},"description":"pearson | spearman"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.02"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tickers":{"type":"string"},"period":{"type":"string","enum":["30d","90d","6mo","1y","2y","3y"]},"method":{"type":"string","enum":["pearson","spearman"]}},"required":["tickers"]}}}}}},"/earnings_surprise":{"post":{"tags":["Market Data"],"summary":"Earnings Surprise Endpoint","operationId":"earnings_surprise_endpoint_earnings_surprise_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Stock symbol (e.g. AAPL, NVDA, MSFT)","title":"Ticker"},"description":"Stock symbol (e.g. AAPL, NVDA, MSFT)"},{"name":"last_n","in":"query","required":false,"schema":{"type":"integer","description":"Number of past quarters to analyze (1–20)","default":8,"title":"Last N"},"description":"Number of past quarters to analyze (1–20)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.02"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string"},"last_n":{"type":"integer"}},"required":["ticker"]}}}}}},"/trading/signal":{"post":{"tags":["Trading Intelligence"],"summary":"Trading Signal Endpoint","description":"Full trading signal for a single ticker.\n\nRuns pattern backtest + regime detection, computes Kelly fraction,\nchecks narrative consistency, and returns a directional recommendation\nwith suggested stop-loss and take-profit levels.\n\nPriced at $0.10 USDC per call via x402.","operationId":"trading_signal_endpoint_trading_signal_post","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Ticker: BTC, ETH, xyz:NVDA, xyz:GOLD, AAPL, etc.","title":"Ticker"},"description":"Ticker: BTC, ETH, xyz:NVDA, xyz:GOLD, AAPL, etc."},{"name":"lookback_days","in":"query","required":false,"schema":{"type":"integer","description":"Pattern lookback window (5–60 days)","default":20,"title":"Lookback Days"},"description":"Pattern lookback window (5–60 days)"},{"name":"forward_days","in":"query","required":false,"schema":{"type":"integer","description":"Forward horizon for distribution (7–90 days)","default":30,"title":"Forward Days"},"description":"Forward horizon for distribution (7–90 days)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.10"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Ticker: BTC, ETH, xyz:NVDA, xyz:GOLD, AAPL, etc."},"lookback_days":{"type":"integer","default":20,"description":"Pattern lookback window (5–60 days)"},"forward_days":{"type":"integer","default":30,"description":"Forward horizon (7–90 days)"}},"required":["ticker"]}}}}}},"/trading/scan":{"post":{"tags":["Trading Intelligence"],"summary":"Trading Scan Endpoint","description":"Scan 49 tickers across crypto + TradFi, rank by Kelly × confidence,\nreturn the top N trade setups.\n\nPriced at $0.10 USDC per call via x402.","operationId":"trading_scan_endpoint_trading_scan_post","parameters":[{"name":"top_n","in":"query","required":false,"schema":{"type":"integer","description":"Number of top signals to return (1–20)","default":5,"title":"Top N"},"description":"Number of top signals to return (1–20)"},{"name":"lookback_days","in":"query","required":false,"schema":{"type":"integer","description":"Pattern lookback window (5–60 days)","default":20,"title":"Lookback Days"},"description":"Pattern lookback window (5–60 days)"},{"name":"forward_days","in":"query","required":false,"schema":{"type":"integer","description":"Forward horizon (7–90 days)","default":30,"title":"Forward Days"},"description":"Forward horizon (7–90 days)"},{"name":"direction","in":"query","required":false,"schema":{"type":"string","description":"Filter: long | short | any","default":"any","title":"Direction"},"description":"Filter: long | short | any"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.10"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"top_n":{"type":"integer","default":5,"description":"Number of top signals (1–20)"},"lookback_days":{"type":"integer","default":20,"description":"Pattern lookback (5–60 days)"},"forward_days":{"type":"integer","default":30,"description":"Forward horizon (7–90 days)"},"direction":{"type":"string","default":"any","description":"long | short | any"}}}}}}}},"/trading/portfolio":{"get":{"tags":["Trading Intelligence"],"summary":"Trading Portfolio Endpoint","description":"Live snapshot of the Hyperliquid trading account:\nopen positions, unrealized PnL, account equity, and algo status.\n\nProxies to the internal trading server (port 8000).\nPriced at $0.05 USDC per call via x402.","operationId":"trading_portfolio_endpoint_trading_portfolio_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.0001"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}}}},"/trading/equity":{"get":{"tags":["Trading Intelligence"],"summary":"Trading Equity Endpoint","description":"Current account value + full all-time history (SQLite-backed).\nPublic endpoint polled by the homepage equity curve.","operationId":"trading_equity_endpoint_trading_equity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/trading/tuning":{"get":{"tags":["Trading Intelligence"],"summary":"Trading Tuning Endpoint","description":"Self-tuner state: current thresholds, resolved signal stats, adjustment history.\nShows how the algo has adapted its confidence gate and Kelly scale over time.","operationId":"trading_tuning_endpoint_trading_tuning_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/trading/performance":{"get":{"tags":["Trading Intelligence"],"summary":"Trading Performance Endpoint","description":"Historical signal performance: win rate, avg return, Sharpe, per-ticker breakdown.\n\nAggregates all resolved signals logged by both the internal algo and x402 callers.\nOutcomes are resolved at forward_days horizon using actual prices.\nThis is the track record — the proof that the pattern engine has edge.\n\nPriced at $0.05 USDC per call via x402.","operationId":"trading_performance_endpoint_trading_performance_get","parameters":[{"name":"ticker","in":"query","required":false,"schema":{"type":"string","description":"Filter to one ticker (optional)","title":"Ticker"},"description":"Filter to one ticker (optional)"},{"name":"last_n_days","in":"query","required":false,"schema":{"type":"integer","description":"Lookback window in days (7–365)","default":90,"title":"Last N Days"},"description":"Lookback window in days (7–365)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}}}},"/trading/backtest":{"get":{"tags":["Trading Intelligence"],"summary":"Trading Backtest Endpoint","description":"Walk-forward backtest on resolved signals in signal_log.db.\n\nSimulates equity curve assuming a fractional Kelly position per signal.\nReturns Sharpe, max drawdown, win rate, total return, and optional parameter sweep.\nNo x402 charge — internal tool.","operationId":"trading_backtest_endpoint_trading_backtest_get","parameters":[{"name":"start","in":"query","required":false,"schema":{"type":"string","description":"ISO date filter (YYYY-MM-DD), optional","title":"Start"},"description":"ISO date filter (YYYY-MM-DD), optional"},{"name":"end","in":"query","required":false,"schema":{"type":"string","description":"ISO date filter (YYYY-MM-DD), optional","title":"End"},"description":"ISO date filter (YYYY-MM-DD), optional"},{"name":"min_confidence","in":"query","required":false,"schema":{"type":"number","description":"Confidence gate (0.5–0.9)","default":0.6,"title":"Min Confidence"},"description":"Confidence gate (0.5–0.9)"},{"name":"kelly_scale","in":"query","required":false,"schema":{"type":"number","description":"Kelly multiplier (0.1–3.0)","default":1.0,"title":"Kelly Scale"},"description":"Kelly multiplier (0.1–3.0)"},{"name":"sl_mult","in":"query","required":false,"schema":{"type":"number","description":"Stop-loss size multiplier","default":1.0,"title":"Sl Mult"},"description":"Stop-loss size multiplier"},{"name":"tp_mult","in":"query","required":false,"schema":{"type":"number","description":"Take-profit size multiplier","default":1.0,"title":"Tp Mult"},"description":"Take-profit size multiplier"},{"name":"sweep","in":"query","required":false,"schema":{"type":"boolean","description":"Run full parameter sweep (slower, requires ≥10 resolved signals)","default":false,"title":"Sweep"},"description":"Run full parameter sweep (slower, requires ≥10 resolved signals)"},{"name":"initial_equity","in":"query","required":false,"schema":{"type":"number","description":"Starting equity for simulation","default":10000,"title":"Initial Equity"},"description":"Starting equity for simulation"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/trading/attribution":{"get":{"tags":["Trading Intelligence"],"summary":"Trading Attribution Endpoint","description":"P&L attribution breakdown by regime era, direction, ticker, and step flag.\n\nShows which regimes, directions, tickers, and signal features have historically\nbeen profitable. Used internally by the self-tuner. No x402 charge.","operationId":"trading_attribution_endpoint_trading_attribution_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/trading/signals/history":{"get":{"tags":["Trading Intelligence"],"summary":"Trading Signals History Endpoint","description":"Full signal log: every signal fired with direction, confidence, entry/exit price, and actual return.\n\nShows both internal algo signals and x402 API signals.\nPending signals (forward horizon not yet reached) show actual_return_pct=null.\n\nPriced at $0.05 USDC per call via x402.","operationId":"trading_signals_history_endpoint_trading_signals_history_get","parameters":[{"name":"ticker","in":"query","required":false,"schema":{"type":"string","description":"Filter to one ticker (optional)","title":"Ticker"},"description":"Filter to one ticker (optional)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Max rows to return (1–200)","default":50,"title":"Limit"},"description":"Max rows to return (1–200)"},{"name":"source","in":"query","required":false,"schema":{"type":"string","description":"Filter by source: internal | x402","title":"Source"},"description":"Filter by source: internal | x402"},{"name":"include_pending","in":"query","required":false,"schema":{"type":"boolean","description":"Include signals not yet resolved","default":true,"title":"Include Pending"},"description":"Include signals not yet resolved"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}}}},"/api/signals/live":{"get":{"tags":["Revenue"],"summary":"Live Signals Endpoint","description":"Latest signal per requested asset from the live algo's signal log.\nReturns direction, confidence, Kelly fraction, entry/exit prices and resolution state.","operationId":"live_signals_endpoint_api_signals_live_get","parameters":[{"name":"assets","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated tickers (BTC, ETH, xyz:NVDA, …)","default":"BTC,ETH,SOL","title":"Assets"},"description":"Comma-separated tickers (BTC, ETH, xyz:NVDA, …)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Max signals to scan from the log (1–200)","default":50,"title":"Limit"},"description":"Max signals to scan from the log (1–200)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.10"}}}},"/api/sectors/momentum":{"get":{"tags":["Revenue"],"summary":"Sectors Momentum Endpoint","description":"Rank 11 GICS sectors + cross-cutting themes by ETF momentum, with each sector's\ntop momentum-leader names (flagged when tradable as a Hyperliquid xyz: perp).\nSourced from clean_prices.db — the same store the live trend book ranks on.","operationId":"sectors_momentum_endpoint_api_sectors_momentum_get","parameters":[{"name":"lookback","in":"query","required":false,"schema":{"type":"integer","description":"Momentum lookback in trading days (20–250)","default":60,"title":"Lookback"},"description":"Momentum lookback in trading days (20–250)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}}}},"/api/earnings-surprise":{"get":{"tags":["Revenue"],"summary":"Earnings Surprise Api Endpoint","description":"Earnings-surprise history: beat/miss magnitude, price reaction, and consistency\nsignals (reliable beater, high-vol event, buy-the-dip-after-miss).","operationId":"earnings_surprise_api_endpoint_api_earnings_surprise_get","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Stock ticker (NVDA, TSLA, LLY, …)","title":"Ticker"},"description":"Stock ticker (NVDA, TSLA, LLY, …)"},{"name":"periods","in":"query","required":false,"schema":{"type":"integer","description":"Historical quarters to analyze (4–20)","default":8,"title":"Periods"},"description":"Historical quarters to analyze (4–20)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.02"}}}},"/api/backtest":{"get":{"tags":["Revenue"],"summary":"Backtest Api Endpoint","description":"Historical-analog backtest: finds prior windows that rhyme with the ticker's most\nrecent `lookback_days` shape and reports the forward-return distribution over\n`forward_days` (win rate, median, tails, sample size). Runs on the shape matcher.","operationId":"backtest_api_endpoint_api_backtest_get","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Asset symbol (BTC, xyz:NVDA, AAPL, SPY, …)","title":"Ticker"},"description":"Asset symbol (BTC, xyz:NVDA, AAPL, SPY, …)"},{"name":"lookback_days","in":"query","required":false,"schema":{"type":"integer","description":"Pattern-match window in days (5–60)","default":20,"title":"Lookback Days"},"description":"Pattern-match window in days (5–60)"},{"name":"forward_days","in":"query","required":false,"schema":{"type":"integer","description":"Forward horizon in days (7–90)","default":30,"title":"Forward Days"},"description":"Forward horizon in days (7–90)"},{"name":"min_return","in":"query","required":false,"schema":{"type":"number","description":"Optional: only count analogs whose query return ≥ this (fraction, e.g. -0.05)","title":"Min Return"},"description":"Optional: only count analogs whose query return ≥ this (fraction, e.g. -0.05)"},{"name":"max_return","in":"query","required":false,"schema":{"type":"number","description":"Optional: only count analogs whose query return ≤ this (fraction, e.g. 0.10)","title":"Max Return"},"description":"Optional: only count analogs whose query return ≤ this (fraction, e.g. 0.10)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.10"}}}},"/api/portfolio-factors":{"get":{"tags":["Revenue"],"summary":"Portfolio Factors Endpoint","description":"Price-based factor decomposition of a book, computed from clean_prices.db:\nnotional-weighted momentum, trend, and book beta to the S&P 500 and BTC.\nTickers must be Hyperliquid-format (BTC, ETH, xyz:NVDA) so they resolve in the\nprice store; names with no series return null contributions.","operationId":"portfolio_factors_endpoint_api_portfolio_factors_get","parameters":[{"name":"holdings","in":"query","required":true,"schema":{"type":"string","description":"Holdings as ticker:weight pairs, e.g. 'xyz:NVDA:1000,BTC:500' (HL tickers; weights = notional)","title":"Holdings"},"description":"Holdings as ticker:weight pairs, e.g. 'xyz:NVDA:1000,BTC:500' (HL tickers; weights = notional)"},{"name":"lookback","in":"query","required":false,"schema":{"type":"integer","description":"Estimation window in trading days (60–250)","default":120,"title":"Lookback"},"description":"Estimation window in trading days (60–250)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}}}},"/api/narrative":{"get":{"tags":["Revenue"],"summary":"Narrative Intelligence Endpoint","description":"Narrative snapshot for one asset: recent price momentum/trend from clean_prices.db,\nplus live news sentiment (headline, boost/invalidation flags) from the news layer,\ntagged with the asset's known narrative theme.","operationId":"narrative_intelligence_endpoint_api_narrative_get","parameters":[{"name":"ticker","in":"query","required":true,"schema":{"type":"string","description":"Ticker (NVDA, xyz:NVDA, BTC, HYPE, …)","title":"Ticker"},"description":"Ticker (NVDA, xyz:NVDA, BTC, HYPE, …)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}}}},"/api/demand/top":{"get":{"tags":["Agent Demand"],"summary":"Demand Top","description":"What AI agents actually try to buy, ranked by payment quotes. See RouteConfig for docs.","operationId":"demand_top_api_demand_top_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"5.00"}}}},"/api/demand/unmet":{"get":{"tags":["Agent Demand"],"summary":"Demand Unmet","description":"Endpoints agents ask for and cannot get — 404s and gated routes, with asker counts.","operationId":"demand_unmet_api_demand_unmet_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"5.00"}}}},"/api/demand/conversion":{"get":{"tags":["Agent Demand"],"summary":"Demand Conversion","description":"Observed x402 quote→pay conversion by category and price band.","operationId":"demand_conversion_api_demand_conversion_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"5.00"}}}},"/api/demand/competitors":{"get":{"tags":["Agent Demand"],"summary":"Demand Competitors","description":"x402 supply census + which agent ecosystems actually crawl a live origin.","operationId":"demand_competitors_api_demand_competitors_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":40,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"5.00"}}}},"/api/demand/intent":{"get":{"tags":["Agent Demand"],"summary":"Demand Intent","description":"Declared-intent demand from the agent router: what agents SAID they needed (natural-language\nintent the endpoint-hit radar can't see), their willingness-to-pay, and where they actually went.\nAggregate-only.","operationId":"demand_intent_api_demand_intent_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","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"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"10.00"}}}},"/api/demand/reliability":{"get":{"tags":["Agent Demand"],"summary":"Demand Reliability","description":"Provider reliability observed at our door: which origins agents chose via the router and\nwhether it actually helped (helped-rate, repeat-rate, sample confidence). The supply-side\nreputation mirror of the demand feed. Aggregate-only.","operationId":"demand_reliability_api_demand_reliability_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":90,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"5.00"}}}},"/api/ads/rate-card":{"get":{"tags":["Ads"],"summary":"Ads Rate Card","description":"FREE — the live demand-indexed rate card, published with the evidence behind every price.","operationId":"ads_rate_card_api_ads_rate_card_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ads/campaign":{"post":{"tags":["Ads"],"summary":"Ads Create Campaign","description":"Buy a sponsored placement. Paid via x402 at a price computed from measured agent demand.","operationId":"ads_create_campaign_api_ads_campaign_post","parameters":[{"name":"advertiser","in":"query","required":true,"schema":{"type":"string","description":"Advertiser name, max 60 chars","title":"Advertiser"},"description":"Advertiser name, max 60 chars"},{"name":"headline","in":"query","required":true,"schema":{"type":"string","description":"Headline, max 90 chars","title":"Headline"},"description":"Headline, max 90 chars"},{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"https:// destination","title":"Url"},"description":"https:// destination"},{"name":"body","in":"query","required":false,"schema":{"type":"string","description":"Body copy, max 220 chars","default":"","title":"Body"},"description":"Body copy, max 220 chars"},{"name":"category","in":"query","required":false,"schema":{"type":"string","description":"Demand category to target, or 'any'","default":"any","title":"Category"},"description":"Demand category to target, or 'any'"},{"name":"flight","in":"query","required":false,"schema":{"type":"string","description":"7d or 30d","default":"7d","title":"Flight"},"description":"7d or 30d"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"dynamic"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Asset symbol (e.g. AAPL, BTC-USD, SPY)"},"start_date":{"type":"string","description":"Query window start, inclusive (YYYY-MM-DD)"},"end_date":{"type":"string","description":"Query window end, exclusive (YYYY-MM-DD)"},"k":{"type":"integer","description":"Number of analog patterns to return (default 3)"},"metric":{"type":"string","enum":["l1","l2"],"description":"Distance metric"},"wrap":{"type":"boolean","description":"Allow circular search (default true)"},"timeframe":{"type":"string","description":"Bar size: 1d, 1h, 30m, 15m, etc."}},"required":["ticker","start_date","end_date"]}}}}},"get":{"tags":["Ads"],"summary":"Ads Campaign Stats","operationId":"ads_campaign_stats_api_ads_campaign_get","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","description":"Campaign id","title":"Id"},"description":"Campaign id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"dynamic"}}}},"/api/ads/serve":{"get":{"tags":["Ads"],"summary":"Ads Serve","description":"FREE, and free on purpose — this is the supply side.\n\nAny origin serving AI agents calls this and embeds the returned item in its own agent-facing\noutput, keeping 70% of the impression's value. Charging publishers for inventory would be\nbackwards: we need their reach more than their pennies.","operationId":"ads_serve_api_ads_serve_get","parameters":[{"name":"publisher","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publisher"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"n","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"N"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ads/publisher":{"post":{"tags":["Ads"],"summary":"Ads Register Publisher","description":"Join the network as a publisher and monetise agent traffic you already serve for free.","operationId":"ads_register_publisher_api_ads_publisher_post","parameters":[{"name":"origin","in":"query","required":true,"schema":{"type":"string","description":"Your origin, e.g. example.com","title":"Origin"},"description":"Your origin, e.g. example.com"},{"name":"contact","in":"query","required":false,"schema":{"type":"string","description":"Email or handle","default":"","title":"Contact"},"description":"Email or handle"},{"name":"payout_address","in":"query","required":false,"schema":{"type":"string","description":"Base USDC address for settlement","default":"","title":"Payout Address"},"description":"Base USDC address for settlement"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Ads"],"summary":"Ads Publisher Stats","operationId":"ads_publisher_stats_api_ads_publisher_get","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string","description":"Your publisher key","title":"Key"},"description":"Your publisher key"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ads/network":{"get":{"tags":["Ads"],"summary":"Ads Network Stats","description":"FREE — proof of life a prospective publisher or advertiser can check before committing.","operationId":"ads_network_stats_api_ads_network_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/demand/crawl-to-refer":{"get":{"tags":["Agent Demand"],"summary":"Demand Crawl To Refer","description":"Per AI company: pages taken vs visitors sent back, measured at this origin's own door.","operationId":"demand_crawl_to_refer_api_demand_crawl_to_refer_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"5.00"}}}},"/api/demand/pricing":{"get":{"tags":["Agent Demand"],"summary":"Demand Pricing","description":"What to charge: measured demand x what the field charges x what actually converts.","operationId":"demand_pricing_api_demand_pricing_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"10.00"}}}},"/api/demand/matches":{"get":{"tags":["Agent Demand"],"summary":"Demand Matches","description":"Unmet demand crossed with existing supply — a product gap or a distribution gap.","operationId":"demand_matches_api_demand_matches_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"10.00"}}}},"/api/demand/about":{"get":{"tags":["Agent Demand"],"summary":"Demand About","description":"FREE sample — coverage, the top 3 quoted endpoints, and the headline conversion rate.\n\nDeliberately unpaid: this dataset sells on a number nobody believes until they see it, so the\nteaser has to carry a real one. It is also the only route here a crawler can read for free,\nwhich is how the paid four get discovered at all.","operationId":"demand_about_api_demand_about_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/arena/rounds":{"get":{"tags":["Arena"],"summary":"Arena Rounds","description":"FREE — the open questions. Opens and settles rounds lazily, so there is no scheduler to die.","operationId":"arena_rounds_api_arena_rounds_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/arena/register":{"post":{"tags":["Arena"],"summary":"Arena Register","description":"FREE — claim a handle, get an agent key.","operationId":"arena_register_api_arena_register_post","parameters":[{"name":"handle","in":"query","required":true,"schema":{"type":"string","description":"3-24 chars, letters/digits/-/_","title":"Handle"},"description":"3-24 chars, letters/digits/-/_"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/arena/predict":{"post":{"tags":["Arena"],"summary":"Arena Predict","description":"Enter the duel. Scored by Brier against a publicly auditable settlement.","operationId":"arena_predict_api_arena_predict_post","parameters":[{"name":"agent","in":"query","required":true,"schema":{"type":"string","description":"Your agent key from /api/arena/register","title":"Agent"},"description":"Your agent key from /api/arena/register"},{"name":"round_id","in":"query","required":true,"schema":{"type":"string","description":"Round id from /api/arena/rounds","title":"Round Id"},"description":"Round id from /api/arena/rounds"},{"name":"p","in":"query","required":true,"schema":{"type":"number","description":"Your probability of YES, 0 to 1","title":"P"},"description":"Your probability of YES, 0 to 1"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Asset symbol (e.g. AAPL, BTC-USD, SPY)"},"start_date":{"type":"string","description":"Query window start, inclusive (YYYY-MM-DD)"},"end_date":{"type":"string","description":"Query window end, exclusive (YYYY-MM-DD)"},"k":{"type":"integer","description":"Number of analog patterns to return (default 3)"},"metric":{"type":"string","enum":["l1","l2"],"description":"Distance metric"},"wrap":{"type":"boolean","description":"Allow circular search (default true)"},"timeframe":{"type":"string","description":"Bar size: 1d, 1h, 30m, 15m, etc."}},"required":["ticker","start_date","end_date"]}}}}}},"/api/arena/leaderboard":{"get":{"tags":["Arena"],"summary":"Arena Leaderboard","description":"FREE — the ranking. This is the surface the whole thing spreads through.","operationId":"arena_leaderboard_api_arena_leaderboard_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/arena/agent":{"get":{"tags":["Arena"],"summary":"Arena Agent","description":"FREE — one agent's public, auditable track record.","operationId":"arena_agent_api_arena_agent_get","parameters":[{"name":"handle","in":"query","required":true,"schema":{"type":"string","description":"Agent handle","title":"Handle"},"description":"Agent handle"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/arena/season":{"get":{"tags":["Arena"],"summary":"Arena Season","description":"FREE — the current sponsored season, its prize, and the standings that decide it.","operationId":"arena_season_api_arena_season_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ecosystem":{"get":{"tags":["Diagnostics"],"summary":"Ecosystem Report","description":"FREE, and free on purpose — this is the distribution asset, not a product.\n\nThe state of x402 discovery, derived entirely from the two public indexes we already mirror.\nEvery listed origin is a subject of it, which gives each of them a reason to look up their own\nrow; the per-origin probe is what they find when they do. No third party is contacted to\nproduce this.","operationId":"ecosystem_report_api_ecosystem_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/probe":{"get":{"tags":["Diagnostics"],"summary":"Probe Endpoint","description":"Why agents are not buying from an origin. Run from outside; that is the only vantage point\nfrom which these defects exist.","operationId":"probe_endpoint_api_probe_get","parameters":[{"name":"origin","in":"query","required":true,"schema":{"type":"string","description":"Bare hostname, e.g. example.com","title":"Origin"},"description":"Bare hostname, e.g. example.com"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.15"}}}},"/api/arena/diagnostic":{"get":{"tags":["Arena"],"summary":"Arena Diagnostic","description":"Your own calibration, decomposed, with the mapping that fixes it.","operationId":"arena_diagnostic_api_arena_diagnostic_get","parameters":[{"name":"handle","in":"query","required":true,"schema":{"type":"string","description":"Your agent handle","title":"Handle"},"description":"Your agent handle"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.25"}}}},"/api/arena/performance":{"get":{"tags":["Arena"],"summary":"Arena Performance","description":"Measured forecasting skill of AI agents — the dataset this arena exists to mint.","operationId":"arena_performance_api_arena_performance_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.10"}}}},"/api/arena/sponsor":{"post":{"tags":["Arena"],"summary":"Arena Sponsor","description":"Fund a season prize. A promotional contest: entrants stake nothing, nothing is pooled.","operationId":"arena_sponsor_api_arena_sponsor_post","parameters":[{"name":"sponsor","in":"query","required":true,"schema":{"type":"string","description":"Your name","title":"Sponsor"},"description":"Your name"},{"name":"prize_usd","in":"query","required":true,"schema":{"type":"number","description":"Prize for the winning agent, minimum $10","title":"Prize Usd"},"description":"Prize for the winning agent, minimum $10"},{"name":"flight","in":"query","required":false,"schema":{"type":"string","description":"7d or 30d","default":"30d","title":"Flight"},"description":"7d or 30d"},{"name":"headline","in":"query","required":false,"schema":{"type":"string","description":"Optional — also runs as a labelled placement","default":"","title":"Headline"},"description":"Optional — also runs as a labelled placement"},{"name":"url","in":"query","required":false,"schema":{"type":"string","description":"Optional destination","default":"","title":"Url"},"description":"Optional destination"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"protocols":[{"x402":{}},{"mpp":{"method":"tempo/charge","intent":"charge","currency":"USDC"}}],"price":{"mode":"fixed","currency":"USD","amount":"dynamic"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Asset symbol (e.g. AAPL, BTC-USD, SPY)"},"start_date":{"type":"string","description":"Query window start, inclusive (YYYY-MM-DD)"},"end_date":{"type":"string","description":"Query window end, exclusive (YYYY-MM-DD)"},"k":{"type":"integer","description":"Number of analog patterns to return (default 3)"},"metric":{"type":"string","enum":["l1","l2"],"description":"Distance metric"},"wrap":{"type":"boolean","description":"Allow circular search (default true)"},"timeframe":{"type":"string","description":"Bar size: 1d, 1h, 30m, 15m, etc."}},"required":["ticker","start_date","end_date"]}}}}}},"/api/arena/stats":{"get":{"tags":["Arena"],"summary":"Arena Stats","description":"FREE — proof of life.","operationId":"arena_stats_api_arena_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/discover":{"get":{"tags":["Agent Router"],"summary":"Agent Discover Endpoint","description":"FREE information router for agents. Describe what you need; get ranked providers across the\nx402 economy (market2000 + others) with price and observed on-chain traction — so you can\nspend your information budget on the best value/cost, not just the first result.\n\nAfter you act, POST /api/discover/outcome to say what you chose and whether it helped — free,\nand it improves ranking for every agent.","operationId":"agent_discover_endpoint_api_discover_get","parameters":[{"name":"need","in":"query","required":true,"schema":{"type":"string","description":"What information/capability do you need? e.g. 'live crypto price', 'trading signal for NVDA', 'company fundamentals'","title":"Need"},"description":"What information/capability do you need? e.g. 'live crypto price', 'trading signal for NVDA', 'company fundamentals'"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Max providers to return (1–25)","default":8,"title":"Limit"},"description":"Max providers to return (1–25)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/route":{"get":{"tags":["Agent Router"],"summary":"Agent Route Endpoint","description":"We buy it for you. Describe a need we do not serve; we call the best-ranked provider on the\nx402 network, pay them from our wallet, and hand you the result with full provenance.\n\nPriced dynamically at the upstream provider's own price plus a broker fee — the 402 challenge\nshows the exact amount before you pay. You can skip the fee entirely and go direct via\n/api/discover. Provider selection is by honest rank; placement here is never for sale.","operationId":"agent_route_endpoint_api_route_get","parameters":[{"name":"need","in":"query","required":true,"schema":{"type":"string","description":"What you need, e.g. 'weather in Seoul', 'bitcoin price'","title":"Need"},"description":"What you need, e.g. 'weather in Seoul', 'bitcoin price'"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/discover/outcome":{"post":{"tags":["Agent Router"],"summary":"Agent Discover Outcome Endpoint","description":"FREE. Report what you chose after /api/discover and whether it helped — trains the router.","operationId":"agent_discover_outcome_endpoint_api_discover_outcome_post","parameters":[{"name":"need","in":"query","required":true,"schema":{"type":"string","description":"The need you searched","title":"Need"},"description":"The need you searched"},{"name":"chosen_origin","in":"query","required":true,"schema":{"type":"string","description":"Origin you chose, e.g. market2000.xyz","title":"Chosen Origin"},"description":"Origin you chose, e.g. market2000.xyz"},{"name":"chosen_path","in":"query","required":false,"schema":{"type":"string","description":"Path you called (optional)","title":"Chosen Path"},"description":"Path you called (optional)"},{"name":"helped","in":"query","required":false,"schema":{"type":"boolean","description":"Did it improve your decision? (optional)","title":"Helped"},"description":"Did it improve your decision? (optional)"},{"name":"paid_usd","in":"query","required":false,"schema":{"type":"number","description":"What you paid in USD (optional)","title":"Paid Usd"},"description":"What you paid in USD (optional)"},{"name":"note","in":"query","required":false,"schema":{"type":"string","description":"Freeform note (optional)","title":"Note"},"description":"Freeform note (optional)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}