{"base":"http://vertextradedesk.com","endpoints":[{"example":"/api/analyze?symbol=QQQ&provider=deepseek","method":"GET","params":[{"desc":"ticker","example":"QQQ","name":"symbol","required":true},{"desc":"LLM for the read: auto|claude|deepseek","example":"auto","name":"provider","required":false}],"path":"/api/analyze","returns":"{symbol, packet:{price,gauss,vwaps,stoch[],expected_move,vrp,premarket,signals}, read, provider}","summary":"Full structured read for one symbol: packet (regime/Gaussian, multi-TF stochastic stack, VWAP ladder, expected move, VRP, gap/pre-market) + signals + draft plays + an LLM-written read. The agent-grade entry point.","tag":"agent-grade"},{"example":"/api/premarket?symbol=QQQ","method":"GET","params":[{"desc":"ticker","example":"QQQ","name":"symbol","required":true}],"path":"/api/premarket","returns":"{last, prior_close, gap_pct, today_open/high/low, today_vwap, prior_high/low}","summary":"Gap + pre-market bridge for morning reads. Indicators elsewhere are 'as of prior close'; this is the live overnight context.","tag":"data"},{"example":"/api/session?symbol=QQQ&start=2026-06-13&end=2026-06-18&tf=5Min","method":"GET","params":[{"desc":"ticker","example":"QQQ","name":"symbol","required":true},{"desc":"ISO date","example":"2026-06-13","name":"start","required":true},{"desc":"ISO date","example":"2026-06-18","name":"end","required":true},{"desc":"bar timeframe","example":"5Min","name":"tf","required":false},{"desc":"option days-to-expiry","example":"0","name":"dte","required":false}],"path":"/api/session","returns":"{price[], gauss, vwaps, momentum[], options, quote}","summary":"Intraday range with indicators: bars, Gaussian channel, VWAP ladder, RSI/stochastic per timeframe, and option bands.","tag":"data"},{"example":"/api/snapshot?symbol=QQQ&tf=5Min&bars=200","method":"GET","params":[{"desc":"ticker","example":"QQQ","name":"symbol","required":true},{"desc":"ISO datetime (default now)","example":"2026-06-18T13:35","name":"at","required":false},{"desc":"timeframe","example":"5Min","name":"tf","required":false},{"desc":"history bars","example":"200","name":"bars","required":false}],"path":"/api/snapshot","returns":"{quote, chart, momentum, options}","summary":"Point-in-time snapshot: quote, chart, momentum, option bands at a given time.","tag":"data"},{"example":"/api/watchlist?symbols=QQQ,SPY,AAPL","method":"GET","params":[{"desc":"comma list","example":"QQQ,SPY,AAPL","name":"symbols","required":true}],"path":"/api/watchlist","returns":"{entries:[{symbol,price,change_pct,rsi_5min,vol_ratio,gauss_pos_pct}]}","summary":"Multi-symbol scan: price, change%, RSI, volume ratio, VWAP distance, Gaussian position.","tag":"data"},{"example":"/api/daily?symbol=QQQ","method":"GET","params":[{"desc":"ticker","example":"QQQ","name":"symbol","required":true}],"path":"/api/daily","returns":"{vrp, ml, snap, stock, verdicts, meta}","summary":"Morning aggregate: vol risk premium, ML signal, snapshot, stock studies, verdicts.","tag":"data"},{"example":"/api/volume_profile?symbol=QQQ","method":"GET","params":[{"desc":"ticker","example":"QQQ","name":"symbol","required":true},{"desc":"ISO date","example":"2026-06-18","name":"date","required":false},{"desc":"price bin size","example":"0.50","name":"step","required":false}],"path":"/api/volume_profile","returns":"{poc, value_area, profile[]}","summary":"Volume by price: point of control, value area (70%), full distribution.","tag":"data"},{"example":"/api/option_series?symbol=QQQ","method":"GET","params":[{"desc":"ticker","example":"QQQ","name":"symbol","required":true}],"path":"/api/option_series","returns":"{strikes, series}","summary":"Per-strike option premium time series across the session.","tag":"data"},{"example":"/api/options/skew-surface?symbol=QQQ","method":"GET","params":[],"path":"/api/options/skew-surface","returns":"{grid}","summary":"2D IV-RV z-score grid (moneyness x DTE).","tag":"data"},{"example":"/api/backtest?symbol=QQQ&strategies=trend_pullback&start=2026-04-18&end=2026-06-18","method":"GET","params":[{"desc":"ticker","example":"QQQ","name":"symbol","required":true},{"desc":"comma list","example":"trend_pullback,vwap_rev","name":"strategies","required":false},{"desc":"ISO date","example":"2026-04-18","name":"start","required":false},{"desc":"ISO date","example":"2026-06-18","name":"end","required":false}],"path":"/api/backtest","returns":"{per-strategy: trades, win_rate, pnl, sharpe, vs random benchmark}","summary":"Cost-aware, walk-forward backtest. Strategies: trend_pullback, em_fade, vwap_rev, gauss_follow.","tag":"research"},{"example":"/api/study?symbol=QQQ&type=straddle","method":"GET","params":[{"desc":"ticker","example":"QQQ","name":"symbol","required":true},{"desc":"straddle|orb|gap|tod","example":"straddle","name":"type","required":false}],"path":"/api/study","returns":"{agg, days[]}","summary":"Studies: vol risk premium (straddle) or stock (ORB, gap, time-of-day).","tag":"research"},{"example":"/api/ml?symbol=QQQ","method":"GET","params":[{"desc":"ticker","example":"QQQ","name":"symbol","required":true},{"desc":"ISO date","example":"2026-04-18","name":"start","required":false},{"desc":"ISO date","example":"2026-06-18","name":"end","required":false},{"desc":"bars ahead","example":"6","name":"horizon","required":false}],"path":"/api/ml","returns":"{scores:{oos_auc,oos_acc,baseline_acc}, importances, lift, calibration}","summary":"ML signal discovery with walk-forward OOS validation + random benchmark.","tag":"research"},{"example":"/api/agent/ledger","method":"GET","params":[{"desc":"recent rows","example":"25","name":"n","required":false}],"path":"/api/agent/ledger","returns":"{stats:{win_rate,avg_R,total_R}, recent[]}","summary":"Plays ledger: every called play + win-rate / avg-R / per-setup stats.","tag":"desk"},{"example":"/api/agent/activity","method":"GET","params":[{"desc":"recent events","example":"80","name":"n","required":false}],"path":"/api/agent/activity","returns":"{events:[{ts,kind,...}]}","summary":"Decision feed: briefing / play_called / no_trade / trade / exit / intraday events.","tag":"desk"},{"example":"/api/agent/positions","method":"GET","params":[],"path":"/api/agent/positions","returns":"{account:{equity,cash,buying_power}, positions[]}","summary":"Paper account equity + open option positions.","tag":"desk"},{"example":"/api/agent/briefing?provider=auto","method":"POST","params":[{"desc":"auto|claude|deepseek","example":"auto","name":"provider","required":false}],"path":"/api/agent/briefing","returns":"{provider, graded, plays_logged[], briefing_path, stats}","summary":"Run a full morning briefing now (grades prior, calls + logs + auto-trades plays). GET returns 405 \u2014 this endpoint has side effects.","tag":"desk"},{"example":"/api/agent/intraday","method":"POST","params":[],"path":"/api/agent/intraday","returns":"{provider, briefing_path}","summary":"Run an intraday check now (trigger alerts). GET returns 405 \u2014 this endpoint has side effects.","tag":"desk"},{"example":"/api/agent/briefing_md","method":"GET","params":[{"desc":"ISO date","example":"2026-06-18","name":"date","required":false}],"path":"/api/agent/briefing_md","returns":"{date, markdown, available[]}","summary":"Latest briefing markdown (or a given date).","tag":"desk"},{"example":"/api/agent/grade","method":"POST","params":[],"path":"/api/agent/grade","returns":"{graded, changes[]}","summary":"Grade open plays by replaying subsequent bars. GET returns 405 \u2014 this endpoint has side effects.","tag":"desk"},{"example":"/api/agent/manage","method":"POST","params":[],"path":"/api/agent/manage","returns":"{managed, changes[]}","summary":"Manage/close paper positions vs each play's stop/target. GET returns 405 \u2014 this endpoint has side effects.","tag":"desk"},{"example":"/api/agent/execute","method":"POST","params":[],"path":"/api/agent/execute","returns":"{submitted[]}","summary":"Submit any logged-but-unexecuted open plays to the paper account. GET returns 405 \u2014 this endpoint has side effects.","tag":"desk"},{"example":"/api/agent/watchlist","method":"GET/POST","params":[{"desc":"POST body JSON array","example":"[\"QQQ\",\"SPY\"]","name":"symbols","required":false}],"path":"/api/agent/watchlist","returns":"{symbols[]}","summary":"GET the common-symbols list, or POST {symbols:[...]} to set it.","tag":"desk"},{"example":"/health","method":"GET","params":[],"path":"/health","returns":"{ok, feed, docs}","summary":"Liveness + data feed.","tag":"meta"},{"example":"/api/docs","method":"GET","params":[],"path":"/api/docs","returns":"{service, base, endpoints[], mcp_tools[]}","summary":"This catalog, as JSON (machine-readable discovery).","tag":"meta"}],"hint":"Start with GET /api/analyze?symbol=QQQ \u2014 it returns the full structured packet + read.","mcp_server":{"name":"vertex","tools":[{"args":"symbol, tf, lookback_days","name":"analyze_symbol","wraps":"/api/analyze"},{"args":"symbols, tf","name":"scan_watchlist","wraps":"/api/watchlist + analysis"},{"args":"symbol, dte","name":"get_options","wraps":"/api/session options"},{"args":"symbol, strategy, start, end","name":"run_backtest","wraps":"/api/backtest"}]},"notes":["All analytics endpoints are read-only GET. Times are US/Eastern.","Fields are explicit and unit-bearing; prior-session vs today values are labeled (session_high = today only; range_high = lookback window)."],"service":"VERTEX market-analytics API"}
