{"openapi":"3.1.0","info":{"title":"QuantX402: Kronos forecast fact lists","version":"1.0.0","description":"Kronos (open-source candlestick foundation model) forecasts turned into agent-readable fact lists, paid per call with x402 (USDC on Base or Solana). Probabilistic model output for research and education. Not financial advice. Past results do not guarantee future results.","x-guidance":"Call GET /api/v1/forecast?symbol=BTC-USD&tf=1h (paid, $0.02 via x402) for the latest hourly Kronos-small forecast: direction, prob_up, median move, 80% band, invalidation level, strike probabilities (p_close_above) and per-step percentiles. Supported symbols: BTC-USD, ETH-USD; timeframes: 1h. GET /api/v1/sample is a free fact list at least 2 hours old; GET /api/v1/chart gives free delayed percentiles. GET /api/v1/health shows freshness. Errors (status >= 400, including stale data) are never charged. The 80% band is not yet calibrated; treat output as informational, not financial advice.","contact":{"name":"FDWA","url":"https://quantx402.app"},"license":{"name":"Model: Kronos (MIT, original authors). Not affiliated."}},"servers":[{"url":"https://quantx402.app"}],"x-x402":{"network_mode":"testnet","networks":["eip155:84532","solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1"]},"paths":{"/api/v1/forecast":{"get":{"operationId":"getForecast","summary":"Latest Kronos forecast fact list (paid)","tags":["Forecast"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string","enum":["BTC-USD","ETH-USD"],"default":"BTC-USD"},"example":"BTC-USD"},{"name":"tf","in":"query","required":false,"schema":{"type":"string","enum":["1h"],"default":"1h"},"example":"1h"}],"responses":{"200":{"description":"Fact list with per-step percentiles","content":{"application/json":{"schema":{"type":"object","properties":{"forecast_id":{"type":"integer"},"symbol":{"type":"string"},"venue":{"type":"string"},"asset_class":{"type":"string"},"timeframe":{"type":"string"},"as_of":{"type":"string","format":"date-time","description":"Open time of the last input candle (UTC)"},"horizon_bars":{"type":"integer"},"horizon_end":{"type":"string","format":"date-time","description":"Open time of the last forecast candle (UTC)"},"generated_at":{"type":"string","format":"date-time"},"age_minutes":{"type":"integer"},"stale":{"type":"boolean"},"last_close":{"type":"number"},"direction":{"type":"string","enum":["UP","DOWN","NEUTRAL"]},"prob_up":{"type":"number","description":"Share of sampled paths whose final close is above last_close"},"expected_move_pct":{"type":"number"},"band_80_pct":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2},"expected_range":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2},"band_calibrated":{"type":"boolean"},"calibration_note":{"type":"string"},"confidence":{"type":"string","enum":["LOW","MEDIUM"]},"confidence_rule":{"type":"string"},"invalidation_level":{"type":["number","null"]},"hist_vol_over_horizon_pct":{"type":["number","null"]},"p_close_above":{"type":"object","additionalProperties":{"type":"number"}},"model":{"type":"string"},"sampling":{"type":"object"},"context_bars":{"type":"integer"},"data_source":{"type":"string"},"disclaimer":{"type":"string"},"percentiles":{"type":"object"}},"required":["symbol","as_of","direction","prob_up","expected_move_pct","band_80_pct","disclaimer"]}}}},"400":{"description":"Unsupported symbol or timeframe (not charged)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}},"disclaimer":{"type":"string"}}}}}},"402":{"description":"Payment Required (x402 v2, PAYMENT-REQUIRED header)"},"404":{"description":"No forecast yet (not charged)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}},"disclaimer":{"type":"string"}}}}}},"503":{"description":"Forecast stale or store unreachable (not charged)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}},"disclaimer":{"type":"string"}}}}}}}}},"/api/v1/sample":{"get":{"operationId":"getSample","summary":"Free delayed fact list (at least 2 hours old)","tags":["Forecast"],"security":[],"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string","enum":["BTC-USD","ETH-USD"],"default":"BTC-USD"},"example":"BTC-USD"},{"name":"tf","in":"query","required":false,"schema":{"type":"string","enum":["1h"],"default":"1h"},"example":"1h"}],"responses":{"200":{"description":"Delayed fact list","content":{"application/json":{"schema":{"type":"object","properties":{"forecast_id":{"type":"integer"},"symbol":{"type":"string"},"venue":{"type":"string"},"asset_class":{"type":"string"},"timeframe":{"type":"string"},"as_of":{"type":"string","format":"date-time","description":"Open time of the last input candle (UTC)"},"horizon_bars":{"type":"integer"},"horizon_end":{"type":"string","format":"date-time","description":"Open time of the last forecast candle (UTC)"},"generated_at":{"type":"string","format":"date-time"},"age_minutes":{"type":"integer"},"stale":{"type":"boolean"},"last_close":{"type":"number"},"direction":{"type":"string","enum":["UP","DOWN","NEUTRAL"]},"prob_up":{"type":"number","description":"Share of sampled paths whose final close is above last_close"},"expected_move_pct":{"type":"number"},"band_80_pct":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2},"expected_range":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2},"band_calibrated":{"type":"boolean"},"calibration_note":{"type":"string"},"confidence":{"type":"string","enum":["LOW","MEDIUM"]},"confidence_rule":{"type":"string"},"invalidation_level":{"type":["number","null"]},"hist_vol_over_horizon_pct":{"type":["number","null"]},"p_close_above":{"type":"object","additionalProperties":{"type":"number"}},"model":{"type":"string"},"sampling":{"type":"object"},"context_bars":{"type":"integer"},"data_source":{"type":"string"},"disclaimer":{"type":"string"}},"required":["symbol","as_of","direction","prob_up","expected_move_pct","band_80_pct","disclaimer"]}}}},"503":{"description":"No sample available","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}},"disclaimer":{"type":"string"}}}}}}}}},"/api/v1/chart":{"get":{"operationId":"getChart","summary":"Free delayed forecast percentiles (at least 2 hours old) for charting","tags":["Forecast"],"security":[],"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string","enum":["BTC-USD","ETH-USD"],"default":"BTC-USD"},"example":"BTC-USD"},{"name":"tf","in":"query","required":false,"schema":{"type":"string","enum":["1h"],"default":"1h"},"example":"1h"}],"responses":{"200":{"description":"Per-step p10/p25/p50/p75/p90 closes","content":{"application/json":{"schema":{"type":"object","properties":{"symbol":{"type":"string"},"as_of":{"type":"string"},"last_close":{"type":"number"},"percentiles":{"type":"object"}}}}}},"503":{"description":"No delayed data available","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}},"disclaimer":{"type":"string"}}}}}}}}},"/api/v1/health":{"get":{"operationId":"getHealth","summary":"Service and data freshness","tags":["Meta"],"security":[],"responses":{"200":{"description":"Health","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}