{"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.10)\n  POST /trading/scan?top_n=5 — scan 22 tickers, return ranked setups ($0.10)\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.01"}},"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.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":"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.01"}},"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.01"}},"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.01"}},"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.01"}},"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.01"}},"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"}}}}},"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"}}}}