Skip to content

Market data

Get the theme baskets

One deterministic basket per investing theme, with weights and a walk-forward backtest.

GET /api/themes returns Monvera’s open theme book: one rule-based basket per investing theme (Artificial Intelligence, Semiconductors, Quantum, Space, Crypto-linked, Cloud and Software, Energy, Fintech), computed from real 12-month price data by the same engine as the open strategies. No AI is in this loop, so the same data always produces the same weights and anyone can reproduce them. This is the raw JSON behind monvera.best/themes.

GET /api/themes · public, no token required · 120 requests per 60 seconds per IP. Base URL, response envelope, and error shapes: conventions.

None.

{ asOf, refreshedEvery, note, themes }.

Field Type Description
asOf string ISO timestamp of the build.
refreshedEvery string "6h". Baskets are rebuilt from fresh market data every six hours.
note string The methodology statement, including that backtests are walk-forward and history, not a promise.
themes object[] The theme list (below).

Each theme:

Field Type Description
slug string Stable id, for example ai or semiconductors. The human page lives at /themes/{slug}.
name string Display name, for example Artificial Intelligence.
tagline string One-line summary.
method string The full rule in plain words, enough to reproduce the weights.
excluded object[] { symbol, reason } for curated names the book had to leave out (for example, no 12-month public history yet). Exclusions are named, never synthesized.
allocations object[] { symbol, weightPct } per holding; integer weights summing to 100, inverse-volatility with a 25% per-name cap.
backtest object | null The walk-forward backtest, or null if a data gap prevented one.

Each backtest has the same shape as the strategies route: period ("6M"), methodology ("walk-forward"), rebalance ("monthly"), portfolio, and benchmark (symbol: "SPY"), each series carrying returnPct, volPct, maxDrawdownPct, sharpe, and a downsampled curve normalized to start at 100.

Terminal window
curl "https://monvera.best/api/themes"
const { themes } = await (await fetch("https://monvera.best/api/themes")).json();
const ai = themes.find((t) => t.slug === "ai");
// ai.allocations -> [{ symbol: "MSFT", weightPct: 9 }, ...]
// ai.backtest.portfolio.returnPct vs ai.backtest.benchmark.returnPct

© 2026 Aibora · Documentation interface. Original Monvera materials retain their upstream attribution andMIT license.