Skip to content

Market data

Rank the universe by performance

Every buyable asset with real 12-month return, volatility and drawdown figures, ready to sort.

GET /api/screener returns every buyable asset with four figures computed from 12 months of real price history, so you can rank the universe instead of guessing. Assets with no honest public history are dropped rather than ranked on a faked series.

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

The screener shares its cached computation with Vera’s allocation prompt, so a page full of clients costs at most one upstream build per window.

None. The route returns the whole buyable set.

{ assets, asOf }. asOf is the ISO timestamp of the response. assets is an array of stat rows, one per buyable asset with usable history:

Field Type Description
symbol string The asset ticker, for example NVDA.
ret1yPct number | null Total return over the last ~12 months, percent.
ret3mPct number | null Return over the last ~3 months, percent. null when history is too short.
volPct number Annualized daily volatility, percent.
maxDrawdownPct number Worst peak-to-trough drop over the period, percent (a positive number).
noData boolean Always false in the response.
Terminal window
curl "https://monvera.best/api/screener"
{
"assets": [
{
"symbol": "NVDA",
"ret1yPct": 38.42,
"ret3mPct": 9.61,
"volPct": 41.27,
"maxDrawdownPct": 22.84,
"noData": false
},
{
"symbol": "SGOV",
"ret1yPct": 4.91,
"ret3mPct": 1.24,
"volPct": 0.41,
"maxDrawdownPct": 0.06,
"noData": false
}
],
"asOf": "2026-07-08T14:03:11.204Z"
}

Sort client-side on whichever column you care about:

const { assets } = await (await fetch("https://monvera.best/api/screener")).json();
const ranked = [...assets].sort((a, b) => (b.ret1yPct ?? 0) - (a.ret1yPct ?? 0));

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