{"openapi":"3.1.0","info":{"title":"Qorevia Market Intelligence","version":"2.0.0","description":"Agent-payable market intelligence, data profiling and deterministic utility tools.","x-guidance":"Use these tools for market/session/risk/backtest context and local data profiling. Paid routes use HTTP 402/x402 and settle USDC directly to the provider wallet."},"servers":[{"url":"https://api.flowhomes.eu"}],"paths":{"/api/session-state":{"get":{"summary":"Deterministic trading-session state for London, New York and Asia in Europe/Vienna time; useful for market and execution agents.","operationId":"session_state","tags":["finance","trading"],"parameters":[{"name":"dateTime","in":"query","required":false,"schema":{"type":"string","description":"Optional ISO-8601 timestamp; defaults to current time."}}],"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"timezone":"Europe/Vienna","london":true,"newYork":false,"asia":false,"minuteOfDay":555}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.005000","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/risk-levels":{"post":{"summary":"Calculate deterministic stop-loss, take-profit, risk/reward and price distances from entry and percentage settings.","operationId":"risk_levels","tags":["finance","risk"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entry":{"type":"number","description":"Entry price."},"direction":{"type":"string","enum":["long","short"],"description":"Trade direction."},"slPct":{"type":"number","description":"Stop percentage, e.g. 0.05 means 0.05%."},"tpPct":{"type":"number","description":"Target percentage, e.g. 0.04 means 0.04%."}},"required":["entry","direction","slPct","tpPct"]},"example":{"entry":3500,"direction":"long","slPct":0.05,"tpPct":0.04}}}},"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"entry":3500,"direction":"long","stop":3498.25,"target":3501.4,"riskReward":0.8}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.005000","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/strategy-grade":{"post":{"summary":"Deterministic strategy robustness score from trades, profit factor, win rate, drawdown and walk-forward pass rate; returns component scores, not investment advice.","operationId":"strategy_grade","tags":["finance","backtest"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"trades":{"type":"number"},"profitFactor":{"type":"number"},"winRatePct":{"type":"number"},"maxDrawdownPct":{"type":"number"},"walkForwardPassPct":{"type":"number"}},"required":["trades","profitFactor","winRatePct","maxDrawdownPct","walkForwardPassPct"]},"example":{"trades":300,"profitFactor":1.35,"winRatePct":57,"maxDrawdownPct":8,"walkForwardPassPct":75}}}},"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"score":72.8,"components":{"sample":90,"pf":58,"drawdown":73,"walkForward":75}}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.020000","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/xau/quote":{"get":{"summary":"Live XAUUSD bid/ask/last/spread snapshot from a read-only local MetaTrader 5 terminal.","operationId":"xau_quote","tags":["finance","gold"],"parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","description":"MT5 symbol, defaults to configured XAUUSD symbol."}}],"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"symbol":"XAUUSD","bid":3500.1,"ask":3500.3,"spread":0.2,"time":"2026-09-18T19:15:00Z"}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.010000","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/xau/bars":{"get":{"summary":"Recent XAUUSD OHLCV bars from a read-only local MetaTrader 5 terminal. Supports M1/M5/M15/H1 and bounded counts.","operationId":"xau_bars","tags":["finance","gold"],"parameters":[{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","enum":["M1","M5","M15","H1"]}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","minimum":10,"maximum":500}}],"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"symbol":"XAUUSD","timeframe":"M5","count":100,"bars":[{"time":"...","open":1,"high":2,"low":0.5,"close":1.5,"tick_volume":123}]}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.020000","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/xau/market-state":{"get":{"summary":"Computed XAUUSD market state from MT5 bars: return, ATR, range position, realized volatility, trend slope and session flags.","operationId":"xau_market_state","tags":["finance","gold"],"parameters":[{"name":"timeframe","in":"query","required":false,"schema":{"type":"string","enum":["M1","M5","M15","H1"]}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","minimum":30,"maximum":500}}],"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"symbol":"XAUUSD","trend":"up","atr":2.1,"realizedVolPct":0.34,"rangePosition":0.71,"returnPct":0.12}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.030000","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/csv-profile":{"post":{"summary":"Profile supplied CSV locally: rows, columns, missing values, unique counts, inferred types and numeric statistics. No external API or data retention.","operationId":"csv_profile","tags":["data","CSV"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string","description":"CSV text to profile. Request body is bounded by the service HTTP limit."},"delimiter":{"type":"string","description":"auto, comma, semicolon, tab, pipe, or the literal delimiter character."},"hasHeader":{"type":"boolean","description":"Defaults to true."}},"required":["csv"]},"example":{"csv":"name,age\nAda,36\nBob,\nCara,29","delimiter":"auto","hasHeader":true}}}},"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"delimiter":",","rows":3,"columnCount":2,"columns":[{"name":"name","inferredType":"string","nonEmpty":3,"missing":0,"uniqueCount":3},{"name":"age","inferredType":"integer","nonEmpty":2,"missing":1,"uniqueCount":2,"numeric":{"count":2,"min":29,"max":36,"mean":32.5}}]}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.002500","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/json-shape":{"post":{"summary":"Describe the structural shape of supplied JSON locally using normalized paths, observed value types and occurrence counts. No external API or data retention.","operationId":"json_shape","tags":["data","JSON"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"description":"Any JSON value to inspect."},"maxDepth":{"type":"integer","minimum":1,"maximum":12,"description":"Maximum traversal depth; defaults to 8."},"maxPaths":{"type":"integer","minimum":10,"maximum":1000,"description":"Maximum distinct normalized paths returned; defaults to 500."}},"required":["value"]},"example":{"value":{"user":{"id":1,"name":"Ada"},"items":[{"sku":"A"},{"sku":"B"}]},"maxDepth":8}}}},"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"rootType":"object","pathCount":6,"paths":[{"path":"$","types":["object"],"occurrences":1},{"path":"$.user.id","types":["integer"],"occurrences":1},{"path":"$.items[]","types":["object"],"occurrences":2},{"path":"$.items[].sku","types":["string"],"occurrences":2}]}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.002500","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/jwt-decode":{"post":{"summary":"Decode JWT header and payload without signature verification","operationId":"jwt_decode","tags":["developer-tools","utility"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"example":{"token":"eyJhbGciOiJub25lIn0.eyJzdWIiOiIxMjMifQ."}}}},"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"header":{"alg":"none"},"payload":{"sub":"123"},"verified":false}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.002500","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/tick-pnl":{"post":{"summary":"Calculate PnL from entry exit contracts tick size and tick value","operationId":"tick_pnl","tags":["finance","utility"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entry":{"type":"number"},"exit":{"type":"number"},"contracts":{"type":"number"},"tickSize":{"type":"number"},"tickValue":{"type":"number"},"direction":{"type":"string","enum":["long","short"]}},"required":["entry","exit","contracts","tickSize","tickValue","direction"]},"example":{"entry":100,"exit":101,"contracts":2,"tickSize":0.25,"tickValue":12.5,"direction":"long"}}}},"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"ticks":4,"pnl":100}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.050000","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/evm-address-syntax":{"post":{"summary":"Validate basic EVM 20-byte hex address syntax","operationId":"evm_address_syntax","tags":["onchain","utility"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]},"example":{"address":"0x0000000000000000000000000000000000000000"}}}},"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"valid":true}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.010000","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/ohlcv-state":{"post":{"summary":"Compute simple return range position and true-range average from supplied OHLCV bars","operationId":"ohlcv_state","tags":["quant","utility"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bars":{"type":"array"}},"required":["bars"]},"example":{"bars":[{"open":100,"high":102,"low":99,"close":101},{"open":101,"high":103,"low":100,"close":102}]}}}},"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"returnPct":1,"rangePosition":0.75,"atr":3}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.002500","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/regex-test":{"post":{"summary":"Run a supplied JavaScript regular expression against supplied text","operationId":"regex_test","tags":["developer-tools","utility"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pattern":{"type":"string"},"flags":{"type":"string"},"text":{"type":"string"}},"required":["pattern","text"]},"example":{"pattern":"\\d+","flags":"g","text":"a12b34"}}}},"responses":{"200":{"description":"Paid response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"matched":true,"matches":["12","34"]}}}},"402":{"description":"x402 payment required"},"503":{"description":"Upstream market-data source unavailable; payment is not requested for MT5 routes during preflight failure."}},"x-payment-info":{"price":"0.003400","currency":"USDC","network":"eip155:8453","protocol":"x402"}}},"/api/find":{"get":{"summary":"Free natural-language router to the best live Qorevia x402 tool","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20}}],"responses":{"200":{"description":"Ranked tool matches"}}}},"/api/route":{"post":{"summary":"Free machine-ready call plan for the best matching Qorevia x402 tool","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"input":{"type":"object"}},"required":["query"]}}}},"responses":{"200":{"description":"Route plan"}}}},"/api/catalog":{"get":{"summary":"Free paginated Qorevia live-tool catalog","responses":{"200":{"description":"Tool catalog"}}}},"/mcp":{"post":{"summary":"Free MCP discovery/router surface (2026-07-28 stateless plus legacy initialize compatibility)","responses":{"200":{"description":"MCP JSON-RPC response"}}}},"/a2a":{"post":{"summary":"A2A JSON-RPC discovery/router surface","responses":{"200":{"description":"A2A JSON-RPC response"}}}},"/.well-known/qorevia-router.json":{"get":{"summary":"Qorevia router/amplifier feed","responses":{"200":{"description":"Router feed"}}}},"/api/try":{"get":{"summary":"Free capability preview for agents and routers","parameters":[{"in":"query","name":"q","schema":{"type":"string"}}],"responses":{"200":{"description":"Free preview and next routes"}}}},"/api/amplifier/stats":{"get":{"summary":"Aggregate inbound amplifier telemetry","responses":{"200":{"description":"Privacy-safe counters with RPM"}}}},"/.well-known/qorevia-distribution.json":{"get":{"summary":"Qorevia Distribution Boost manifest","responses":{"200":{"description":"Distribution manifest"}}}},"/api/distribution/stats":{"get":{"summary":"Aggregate inbound distribution telemetry","responses":{"200":{"description":"Privacy-safe counters"}}}},"/.well-known/qorevia-magnet.json":{"get":{"summary":"Qorevia Agent Magnet machine-readable distribution beacon","responses":{"200":{"description":"Agent Magnet manifest"}}}},"/.well-known/agent.json":{"get":{"summary":"Legacy alias for the standard A2A Agent Card","responses":{"200":{"description":"A2A Agent Card"}}}},"/api/magnet":{"get":{"summary":"Qorevia Agent Magnet manifest","responses":{"200":{"description":"Agent Magnet manifest"}}}},"/api/magnet/stats":{"get":{"summary":"Privacy-safe Agent Magnet scanner aggregates","responses":{"200":{"description":"Agent Magnet aggregate stats"}}}},"/.well-known/qorevia-club.json":{"get":{"summary":"Machine-readable Qorevia Founders Network invite beacon","responses":{"200":{"description":"Founders Network manifest"}}}},"/api/club":{"get":{"summary":"Qorevia Founders Network manifest and tiers","parameters":[{"name":"ref","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Club manifest"}}}},"/api/club/status":{"get":{"summary":"Read verified Qorevia membership status for a public EVM address","parameters":[{"name":"wallet","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Membership status"}}}},"/api/club/referral/create":{"post":{"summary":"Create deterministic non-custodial referral attribution code for a public wallet","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string"}},"required":["wallet"]}}}},"responses":{"200":{"description":"Referral code and share links"}}}},"/api/club/referral/{code}":{"get":{"summary":"Read referral conversion status","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Referral status"}}}},"/api/club/lounge":{"get":{"summary":"Read capped self-declared Qorevia Afterhours agent lounge","responses":{"200":{"description":"Lounge entries"}}}},"/api/club/lounge/check-in":{"post":{"summary":"Opt-in structured lounge check-in; does not authenticate wallet ownership","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string"},"agentName":{"type":"string"},"role":{"type":"string"},"interests":{"type":"array","items":{"type":"string"}}},"required":["wallet"]}}}},"responses":{"200":{"description":"Check-in status"}}}}}}