{"openapi":"3.1.0","info":{"title":"Trading Strategy Data","description":"Live crypto trend signals, cross-asset ranking, and on-demand backtesting for BTC/ETH/SOL/XRP/ADA, backed by a validated, transparent systematic methodology. Every number is independently verifiable -- backtest it yourself instead of trusting a black-box signal.","version":"1.0.0"},"paths":{"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Healthz Get"}}}}},"security":[]}},"/":{"get":{"summary":"Landing","operationId":"landing__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}},"security":[]}},"/llms.txt":{"get":{"summary":"Llms Txt","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}},"security":[]}},"/tools/strategy-consensus":{"post":{"tags":["strategy_consensus"],"summary":"Strategy Consensus Endpoint","operationId":"strategy_consensus_endpoint_tools_strategy_consensus_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleConsensusRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsensusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tools/strategy-consensus/batch":{"post":{"tags":["strategy_consensus_batch"],"summary":"Strategy Consensus Batch Endpoint","operationId":"strategy_consensus_batch_endpoint_tools_strategy_consensus_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchConsensusRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsensusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tools/strategy-rank":{"post":{"tags":["strategy_rank"],"summary":"Strategy Rank Endpoint","operationId":"strategy_rank_endpoint_tools_strategy_rank_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RankRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RankResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tools/strategy-composite":{"post":{"tags":["strategy_composite"],"summary":"Strategy Composite Endpoint","operationId":"strategy_composite_endpoint_tools_strategy_composite_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompositeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompositeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tools/strategy-backtest":{"post":{"tags":["strategy_backtest"],"summary":"Strategy Backtest Endpoint","operationId":"strategy_backtest_endpoint_tools_strategy_backtest_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BacktestRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BacktestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tools/strategy-backtest/compare":{"post":{"tags":["strategy_backtest_compare"],"summary":"Strategy Backtest Compare Endpoint","description":"Test two parameter sets head-to-head against the same asset and date\nrange in one call -- e.g. \"does a 150-day or 200-day SMA perform better\non ETH\" -- rather than paying for two separate backtest calls and\ncomparing them yourself.","operationId":"strategy_backtest_compare_endpoint_tools_strategy_backtest_compare_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BacktestCompareRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BacktestCompareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tools/strategy-profiles":{"post":{"tags":["strategy_profiles"],"summary":"Strategy Profiles Endpoint","description":"Three honestly-backtested risk profiles (conservative/balanced/\naggressive) of the same validated trend+trailing-stop methodology,\neach with real numbers -- pick based on risk tolerance, not a guess.","operationId":"strategy_profiles_endpoint_tools_strategy_profiles_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfilesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfilesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AssetSignal":{"properties":{"asset":{"type":"string","title":"Asset"},"price":{"type":"number","title":"Price"},"trend_regime":{"type":"string","title":"Trend Regime"},"sma_period_days":{"type":"integer","title":"Sma Period Days"},"price_vs_sma_pct":{"type":"number","title":"Price Vs Sma Pct"},"volatility_regime":{"type":"string","title":"Volatility Regime"},"volatility_percentile":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Volatility Percentile"},"regime_changed_days_ago":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Regime Changed Days Ago"},"trailing_stop_trigger_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Trailing Stop Trigger Price"},"trailing_stop_distance_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Trailing Stop Distance Pct"},"your_unrealized_pnl_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Your Unrealized Pnl Pct"},"personalized":{"type":"boolean","title":"Personalized"}},"type":"object","required":["asset","price","trend_regime","sma_period_days","price_vs_sma_pct","volatility_regime","volatility_percentile","regime_changed_days_ago","trailing_stop_trigger_price","trailing_stop_distance_pct","your_unrealized_pnl_pct","personalized"],"title":"AssetSignal"},"BacktestCompareRequest":{"properties":{"asset":{"type":"string","title":"Asset"},"a":{"$ref":"#/components/schemas/ParamSet"},"b":{"$ref":"#/components/schemas/ParamSet"},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start","description":"ISO date (YYYY-MM-DD); defaults to as far back as data allows"},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End","description":"ISO date (YYYY-MM-DD); defaults to the latest available data"},"starting_capital":{"type":"number","maximum":10000000.0,"exclusiveMinimum":0.0,"title":"Starting Capital","default":1000.0}},"type":"object","required":["asset","a","b"],"title":"BacktestCompareRequest"},"BacktestCompareResponse":{"properties":{"asset":{"type":"string","title":"Asset"},"a":{"$ref":"#/components/schemas/BacktestResponse"},"b":{"$ref":"#/components/schemas/BacktestResponse"},"winner":{"type":"string","title":"Winner"}},"type":"object","required":["asset","a","b","winner"],"title":"BacktestCompareResponse"},"BacktestRequest":{"properties":{"asset":{"type":"string","title":"Asset"},"sma_period_days":{"type":"integer","maximum":400.0,"minimum":20.0,"title":"Sma Period Days","default":200},"trailing_stop_pct":{"anyOf":[{"type":"number","maximum":0.9,"minimum":0.05},{"type":"null"}],"title":"Trailing Stop Pct","default":0.25},"cooldown_days":{"type":"integer","maximum":90.0,"minimum":0.0,"title":"Cooldown Days","default":14},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start","description":"ISO date (YYYY-MM-DD); defaults to as far back as data allows"},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End","description":"ISO date (YYYY-MM-DD); defaults to the latest available data"},"starting_capital":{"type":"number","maximum":10000000.0,"exclusiveMinimum":0.0,"title":"Starting Capital","default":1000.0}},"type":"object","required":["asset"],"title":"BacktestRequest"},"BacktestResponse":{"properties":{"asset":{"type":"string","title":"Asset"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"metrics":{"additionalProperties":true,"type":"object","title":"Metrics"},"equity_curve":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Equity Curve"},"data_period":{"additionalProperties":true,"type":"object","title":"Data Period"}},"type":"object","required":["asset","params","metrics","equity_curve","data_period"],"title":"BacktestResponse"},"BatchConsensusRequest":{"properties":{"assets":{"items":{"type":"string"},"type":"array","maxItems":5,"minItems":2,"title":"Assets"}},"type":"object","title":"BatchConsensusRequest"},"ComponentScore":{"properties":{"name":{"type":"string","title":"Name"},"score":{"type":"number","title":"Score"},"weight":{"type":"number","title":"Weight"},"detail":{"type":"string","title":"Detail"}},"type":"object","required":["name","score","weight","detail"],"title":"ComponentScore"},"CompositeRequest":{"properties":{"asset":{"type":"string","title":"Asset"}},"type":"object","required":["asset"],"title":"CompositeRequest"},"CompositeResponse":{"properties":{"asset":{"type":"string","title":"Asset"},"composite_score":{"type":"number","title":"Composite Score"},"conviction":{"type":"string","title":"Conviction"},"components":{"items":{"$ref":"#/components/schemas/ComponentScore"},"type":"array","title":"Components"},"methodology":{"type":"string","title":"Methodology"}},"type":"object","required":["asset","composite_score","conviction","components","methodology"],"title":"CompositeResponse"},"ConsensusResponse":{"properties":{"signals":{"items":{"$ref":"#/components/schemas/AssetSignal"},"type":"array","title":"Signals"},"methodology":{"$ref":"#/components/schemas/MethodologyInfo"}},"type":"object","required":["signals","methodology"],"title":"ConsensusResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MethodologyInfo":{"properties":{"description":{"type":"string","title":"Description"},"sma_period_days":{"type":"integer","title":"Sma Period Days"},"trailing_stop_pct":{"type":"number","title":"Trailing Stop Pct"},"backtest_reference_asset":{"type":"string","title":"Backtest Reference Asset"},"backtest_sharpe_ratio":{"type":"number","title":"Backtest Sharpe Ratio"},"backtest_max_drawdown_pct":{"type":"number","title":"Backtest Max Drawdown Pct"},"backtest_total_return_pct":{"type":"number","title":"Backtest Total Return Pct"},"backtest_period_years":{"type":"number","title":"Backtest Period Years"}},"type":"object","required":["description","sma_period_days","trailing_stop_pct","backtest_reference_asset","backtest_sharpe_ratio","backtest_max_drawdown_pct","backtest_total_return_pct","backtest_period_years"],"title":"MethodologyInfo"},"ParamSet":{"properties":{"sma_period_days":{"type":"integer","maximum":400.0,"minimum":20.0,"title":"Sma Period Days","default":200},"trailing_stop_pct":{"anyOf":[{"type":"number","maximum":0.9,"minimum":0.05},{"type":"null"}],"title":"Trailing Stop Pct","default":0.25},"cooldown_days":{"type":"integer","maximum":90.0,"minimum":0.0,"title":"Cooldown Days","default":14}},"type":"object","title":"ParamSet"},"ProfileResult":{"properties":{"name":{"type":"string","title":"Name"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"metrics":{"additionalProperties":true,"type":"object","title":"Metrics"}},"type":"object","required":["name","params","metrics"],"title":"ProfileResult"},"ProfilesRequest":{"properties":{"asset":{"type":"string","title":"Asset"},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start","description":"ISO date (YYYY-MM-DD); defaults to as far back as data allows"},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End","description":"ISO date (YYYY-MM-DD); defaults to the latest available data"},"starting_capital":{"type":"number","maximum":10000000.0,"exclusiveMinimum":0.0,"title":"Starting Capital","default":1000.0}},"type":"object","required":["asset"],"title":"ProfilesRequest"},"ProfilesResponse":{"properties":{"asset":{"type":"string","title":"Asset"},"profiles":{"items":{"$ref":"#/components/schemas/ProfileResult"},"type":"array","title":"Profiles"},"data_period":{"additionalProperties":true,"type":"object","title":"Data Period"},"note":{"type":"string","title":"Note","default":"Profile names describe the parameter choice (stop tightness, trend-confirmation speed), not a guaranteed risk/return ordering -- on real historical data, a tighter stop or slower SMA does not always produce a smaller drawdown once compounded across many trades and market regimes. Compare the real metrics above rather than assuming the labels rank them."}},"type":"object","required":["asset","profiles","data_period"],"title":"ProfilesResponse"},"RankRequest":{"properties":{"assets":{"items":{"type":"string"},"type":"array","maxItems":5,"minItems":2,"title":"Assets"}},"type":"object","title":"RankRequest"},"RankResponse":{"properties":{"ranked":{"items":{"$ref":"#/components/schemas/RankedAsset"},"type":"array","title":"Ranked"},"methodology":{"type":"string","title":"Methodology"}},"type":"object","required":["ranked","methodology"],"title":"RankResponse"},"RankedAsset":{"properties":{"rank":{"type":"integer","title":"Rank"},"asset":{"type":"string","title":"Asset"},"price":{"type":"number","title":"Price"},"price_vs_sma_pct":{"type":"number","title":"Price Vs Sma Pct"},"trend_regime":{"type":"string","title":"Trend Regime"}},"type":"object","required":["rank","asset","price","price_vs_sma_pct","trend_regime"],"title":"RankedAsset"},"SingleConsensusRequest":{"properties":{"asset":{"type":"string","title":"Asset"},"entry_price":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Entry Price"},"entry_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entry Date","description":"ISO date (YYYY-MM-DD)"}},"type":"object","required":["asset"],"title":"SingleConsensusRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}