GET/api/healthliveauth: nonecache: no-storeLiveness probe — is the app reachable and is the database talking back?
Returns 200 + status:"ok" when Supabase is reachable, 503 + status:"degraded" otherwise. Designed for uptime monitors. No auth, no caching.
{
"status": "ok",
"checks": { "supabase": "ok" },
"timestamp": "2026-04-26T08:14:22.000Z",
"version": "0.1.0"
}
GET/api/statusliveauth: nonecache: edge 60sPipeline freshness — most recent computed_at across each engine layer.
One row per layer: universe scoring, signal accumulation, pharma scoring, BOCPD regime posterior, conformal calibration, Mondrian bins, factor correlations, tail-dependence, Fama-French regression, sector benchmarks, Kalman DLM exposures, adaptive weights. Drives the green/yellow/red dots on /status.
{
"ok": true,
"layers": [
{ "key": "universe", "label": "Stock universe scoring", "asOf": "2026-04-26T06:08:11Z", "stale": false },
{ "key": "regime", "label": "BOCPD regime posterior", "asOf": "2026-04-26T06:08:23Z", "stale": false },
{ "key": "ff", "label": "Fama-French regression", "asOf": null, "stale": true }
],
"headline": "ok",
"asOf": "2026-04-26T08:14:22Z"
}
GET/api/track-recordliveauth: nonecache: force-dynamicBullish-signal win rate over rolling 90 days, plus aggregate stats.
Returns total signals logged, count with filled 30-day forward returns, bullish win rate, average 30d return, best/worst single return. Until 2026-05-16 the live stats may show null while the engine accumulates its first 30-day window — read isPriorMode-style banners on /dashboard.
{
"stats": {
"total_signals": 4180,
"with_30d_result": 482,
"bullish_avg_30d": 2.1,
"bullish_win_rate": 58.0,
"best_return": 14.7,
"worst_return": -11.2
},
"totalSaved": 4180,
"firstDate": "2026-04-16",
"recentSignals": [ /* last 5 raw signals */ ],
"generatedAt": "2026-04-26T08:14:22Z"
}
GET/api/regime-historyliveauth: nonecache: edge 300s60-day daily HMM regime classification with VIX, breadth, yield-curve overlays.
One row per trading day: regime label (risk_on / transition / risk_off), regime_score, VIX, market breadth %, 10Y-3M yield-curve spread in bps. Powers RegimeTimeline on /dashboard.
{
"ok": true,
"rows": [
{ "date": "2026-02-25", "regime": "risk_on", "regime_score": 0.72, "vix": 14.8, "breadth_pct": 71, "yield_curve_bps": 12 },
{ "date": "2026-04-25", "regime": "transition", "regime_score": 0.51, "vix": 22.1, "breadth_pct": 49, "yield_curve_bps": -3 }
],
"asOf": "2026-04-26T08:14:22Z"
}
GET/api/diag/engineliveauth: nonecache: force-dynamicLive invariant battery for the APEX v10 forward-return engine.
Runs the engine against 21 mathematical invariants — neutrality, max-bull/bear bounds, symmetry, variance positivity, P(positive) ∈ [0,1], CI symmetry, monotone horizon scaling, graceful null-input degradation, 27-cell stress matrix. Returns each check with pass/fail + observed vs expected. Public so anyone (including you) can verify the math hasn't regressed.
{
"passed": 21,
"failed": 0,
"total": 21,
"allPass": true,
"checks": [
{ "name": "neutral z → drift only", "pass": true, "expected": "0.011910", "got": "0.011910" }
/* ... 20 more ... */
],
"timestamp": "2026-04-26T08:14:22Z"
}
GET/api/quoteliveauth: nonecache: upstream 300sSingle live quote for one ticker.
Proxies Finnhub real-time quote. Cached upstream for 5 minutes. Returns current price (or previous close if market is shut), absolute and percentage change.
Query params
tickerrequiredstring1-10 uppercase letters. Validated server-side.
{
"price": 189.43,
"prevClose": 187.12,
"change": 2.31,
"changePct": 1.23
}
GET/api/sparklineliveauth: nonecache: force-dynamic30-day close history + RSI(14) + MA20 for one ticker.
Reads Yahoo Finance chart endpoint (no key needed). Returns the closes array plus computed RSI and 20-day moving average. Used for inline sparklines on /stocks/[ticker] and /compare.
Query params
tickerrequiredstring1-10 uppercase letters. Validated server-side.
{
"ticker": "AAPL",
"closes": [184.21, 186.40, /* ...30 entries */],
"rsi": 61,
"ma20": 187.30
}