{"service":"factorweave","base_url":"https://factorweave.com/api","endpoints":[{"method":"GET","path":"/api/health","auth":"public","description":"liveness check"},{"method":"GET","path":"/api/status","auth":"public","description":"health + bundle freshness + DB reachability (returns 503 when degraded \u2014 designed for uptime monitors)"},{"method":"GET","path":"/api/manifest","auth":"public","description":"static-bundle metadata (latest_date, ticker_count)"},{"method":"GET","path":"/api/config","auth":"public","description":"runtime feature flags (paid tiers on/off, etc)"},{"method":"GET","path":"/api/docs","auth":"public","description":"this endpoint"},{"method":"GET","path":"/api/openapi.json","auth":"public","description":"OpenAPI 3.0 spec \u2014 typed schema for LangChain / OpenAI / Anthropic / ChatGPT Actions / autogenerated SDKs"},{"method":"GET","path":"/api/docs/swagger","auth":"public","description":"Swagger UI explorer for the API spec"},{"method":"GET","path":"/api/demo/{ticker}","auth":"public","description":"no-auth taste: one ticker, curated factors + 8 cosine look-alikes (powers /explore.html)"},{"method":"POST","path":"/api/auth/register","auth":"public","description":"create an account (gated by ENABLE_REGISTRATION + invite_code)"},{"method":"POST","path":"/api/auth/login","auth":"public","description":"exchange email+password for a JWT"},{"method":"POST","path":"/api/billing/webhook","auth":"public","description":"Stripe webhook (signature-validated)"},{"method":"GET","path":"/api/auth/me","auth":"auth","description":"current user profile + tier + daily usage"},{"method":"GET","path":"/api/features/{ticker}","auth":"auth","description":"feature row(s). Stock/ETF = FREE+; futures (VX, ES, NQ, CL, GC, ZN, \u2026) = PRO+; intraday-derived columns (overnight_ret, intraday_ret, opening-range, VWAP deviation, intraday_rv, late_drift) auto-included for PRO+. No date args = latest. ?date= or ?start_date=&end_date= = historical (last 252 trading days)."},{"method":"GET","path":"/api/top?factor=mom&n=25","auth":"auth","description":"top-N by factor (mom, meanrev, comp_score, ...)"},{"method":"GET","path":"/api/market-context","auth":"auth","description":"whole-universe derived analytics \u2014 dispersion, breadth, regime odds + cross-asset (DXY/VIX/VVIX/VIX9D/TNX/XAU/VX z20). FREE = today only; HOBBY+ = 252-day history"},{"method":"GET","path":"/api/vx-term-structure","auth":"HOBBY+","description":"VIX futures contango/backwardation: (VX_continuous \u2212 VIX) / VIX + 252-day history"},{"method":"GET","path":"/api/report-card/{ticker}","auth":"HOBBY+","description":"derived per-ticker digest \u2014 snapshot, percentile ranks, risk cluster, regime, unusualness"},{"method":"GET","path":"/api/risk-cluster/{ticker}","auth":"PRO+","description":"risk regime a ticker's factor analogues landed in \u2014 calm / normal / stressed"},{"method":"GET","path":"/api/embedding/{ticker}","auth":"QUANT","description":"the 32-D regime-aware factor-state embedding vector"},{"method":"GET","path":"/api/csv/features?ticker=AAPL","auth":"auth","description":"CSV export"},{"method":"GET","path":"/api/vector-search/similar/{ticker}","auth":"auth","description":"precomputed top-K cosine lookalikes"},{"method":"GET","path":"/api/labels/{ticker}","auth":"auth+","description":"forward-return labels (PRO+)"},{"method":"GET","path":"/api/alerts/rules","auth":"auth","description":"list user alert rules"},{"method":"POST","path":"/api/alerts/rules","auth":"auth","description":"create alert rule"},{"method":"DELETE","path":"/api/alerts/rules/{id}","auth":"auth","description":"delete alert rule"},{"method":"POST","path":"/api/push/subscribe","auth":"auth","description":"store a browser PushSubscription (PWA install + browser alerts)"},{"method":"POST","path":"/api/push/unsubscribe","auth":"auth","description":"drop a stored PushSubscription"},{"method":"POST","path":"/api/billing/create-checkout","auth":"auth","description":"Stripe checkout URL for tier upgrade"},{"method":"POST","path":"/api/billing/create-portal","auth":"auth","description":"Stripe billing portal URL"},{"method":"GET","path":"/api/usage","auth":"auth","description":"today + month-to-date usage stats"},{"method":"GET","path":"/api/recent-activity","auth":"auth","description":"last 50 API calls by this user"},{"method":"GET","path":"/api/me/keys","auth":"auth","description":"list dev API keys"},{"method":"POST","path":"/api/me/keys","auth":"auth","description":"mint a new dev API key (shown once)"},{"method":"DELETE","path":"/api/me/keys/{id}","auth":"auth","description":"revoke a dev API key"},{"method":"GET","path":"/api/admin/stats","auth":"admin","description":"aggregate dashboard: total users, paid users, calls today/this month, top users"},{"method":"GET","path":"/api/admin/recent-activity","auth":"admin","description":"global activity feed (last 100 calls across all users)"},{"method":"GET","path":"/api/admin/users","auth":"admin","description":"list users with daily / monthly usage"},{"method":"POST","path":"/api/admin/users","auth":"admin","description":"create a user (bypasses registration gate)"},{"method":"PATCH","path":"/api/admin/users/{id}","auth":"admin","description":"change tier / is_admin / status"},{"method":"GET","path":"/api/admin/invites","auth":"admin","description":"list outstanding invite codes"},{"method":"POST","path":"/api/admin/invites","auth":"admin","description":"mint invite codes"}]}