GET/v1/universe
Describe the universe
MCP tool: describe_universe
Call this first. It reports what is actually in the dataset for a window: how many trades, how many have settled, and how they distribute across categories, platforms, price bands and size bands. Writing a rule without it usually produces criteria that match nothing.
Query parameters
sinceDaysintegerdefault: 90Lookback window in days, 1 to 365.
Response
categories and platforms cover the whole window; priceBands and sizeBands are distributions over the same trades, truncated here for brevity.
curl "https://api.rivo.markets/v1/universe?sinceDays=90" \
-H "Authorization: Bearer rivo_live_..."import requests
r = requests.get(
"https://api.rivo.markets/v1/universe",
headers={"Authorization": "Bearer rivo_live_..."},
params={
"sinceDays": 90,
},
)
print(r.json()["data"])const res = await fetch("https://api.rivo.markets/v1/universe?sinceDays=90", {
headers: { Authorization: "Bearer rivo_live_..." },
});
const { data } = await res.json();response
{
"success": true,
"data": {
"windowDays": 90,
"totalEvents": 57412,
"settledEvents": 53208,
"from": "2026-05-15T09:12:44.000Z",
"to": "2026-08-13T07:58:03.000Z",
"categories": [
{ "category": "sports", "events": 31840, "settled": 30411 },
{ "category": "politics", "events": 11259, "settled": 9873 },
{ "category": "crypto", "events": 7723, "settled": 7204 }
],
"platforms": [
{ "platform": "polymarket", "events": 41210 },
{ "platform": "kalshi", "events": 16202 }
],
"priceBands": [
{ "band": "0.00-0.20", "events": 6120 },
{ "band": "0.20-0.40", "events": 10444 }
],
"sizeBands": [
{ "band": "10k-25k", "events": 21930 },
{ "band": "25k-100k", "events": 9451 }
]
}
}