How to get Crazy Time stats live
Crazy Time, Crazy Time A, Monopoly Live, Dream Catcher, Lightning Storm and Ice Fishing all share one endpoint shape — /spins. This guide shows the polling pattern, the row format, and a working example you can drop in a Node or Python script.
1. The endpoint
GET /v1-beta/games/{slug}/spins returns rounds already shaped for UIs: each row has segment, sector, multiplier_text and the raw upstream envelope. Latest first, sortable client-side.
slug values: crazytime, crazytimea, monopolylive, monopolybigballer, dreamcatcher, lightningdice, lightningroulette, lightningstorm, icefishing.
GET https://api.trackersino.com/v1-beta/games/crazytime/spins?limit=20&window=1h Authorization: Bearer YOUR_KEY
2. Response shape
Each row carries round_id, multiplier, segment (n1/n2/cf/pa/ch/ct/leaf/bcg/mmh/…), sector (numeric where applicable), multiplier_text (e.g. "5x", "3x – 100x") and finalized_at. Bonus rounds also expose multiplier_low / multiplier_high.
[
{
"round_id": "67f4a2…",
"segment": "cf",
"sector": null,
"multiplier": "10.0000",
"multiplier_text": "10x",
"finalized_at": "2026-05-28T15:21:20Z"
},
{
"round_id": "67f4a1…",
"segment": "n5",
"sector": null,
"multiplier": "5.0000",
"multiplier_text": "5x",
"finalized_at": "2026-05-28T15:20:33Z"
}
]3. Polling pattern
Crazy Time rounds land roughly every 45-60s. Poll every 5-10s with limit=20 — even if no new round dropped, you keep the latest hot data warm.
Pass since=ISO to skip rows you've already ingested. The server returns rows with finalized_at > since.
4. Code example
import requests, time
API = 'https://api.trackersino.com'
KEY = 'YOUR_KEY'
SLUG = 'crazytime'
last_seen = None
while True:
params = {'limit': 20, 'window': '1h'}
if last_seen:
params['since'] = last_seen
r = requests.get(
f'{API}/v1-beta/games/{SLUG}/spins',
params=params,
headers={'Authorization': f'Bearer {KEY}'},
timeout=10,
)
r.raise_for_status()
rows = r.json()
for row in reversed(rows): # oldest first
print(row['finalized_at'], row['segment'], row['multiplier_text'])
last_seen = row['finalized_at']
time.sleep(5)const API = 'https://api.trackersino.com';
const KEY = 'YOUR_KEY';
const SLUG = 'crazytime';
let lastSeen = null;
setInterval(async () => {
const url = new URL(`/v1-beta/games/${SLUG}/spins`, API);
url.searchParams.set('limit', '20');
url.searchParams.set('window', '1h');
if (lastSeen) url.searchParams.set('since', lastSeen);
const res = await fetch(url, { headers: { Authorization: `Bearer ${KEY}` } });
const rows = await res.json();
for (const r of rows.reverse()) {
console.log(r.finalized_at, r.segment, r.multiplier_text);
lastSeen = r.finalized_at;
}
}, 5_000);5. Filter by segment
Want only Crazy Time bonus rounds? Client-side filter on segment ∈ {cf, pa, ch, ct}. Bonus segments by game: Crazy Time uses cf/pa/ch/ct; Lightning Storm uses leaf/bcg/mmh/fbl/hsp/stb; Ice Fishing uses wf/bf/lb/bo/hr.
Need a different game?
Same call works for every wheel-show game. Ping us on Telegram if you want a sample for a specific provider or a non-standard query window.
Open Telegram →