trackersino
stale
18+केवल data · कोई predictions नहीं · ज़िम्मेदारी से खेलेंयह site कैसे काम करता है
BetaPublic beta · feeds stabilize होने तक occasional gaps की उम्मीद रखें.
Documentation

TrackerSino Data API — reference

JSON over HTTPS. API-key auth. Same response shape across every game. cURL / JavaScript / Python examples for every endpoint.

Getting started

Every request goes to https://api.trackersino.com. Authentication is a single HTTP header (Authorization: Bearer <your-key>). Responses are application/json. All timestamps are UTC ISO 8601. Decimal numerics (multipliers, payouts) are returned as JSON strings to preserve precision.

bash
curl -H "Authorization: Bearer YOUR_KEY" \
  https://api.trackersino.com/v1-beta/games

First call usually returns the catalog of every game we track, with last-observed-at and rounds-total counters. From there, fetch /v1-beta/games/{slug}/rounds to pull history or subscribe to /v1-beta/stream for live push.

Games & slugs

The {slug} in every path is a game identifier — it is the `id` field returned by /v1-beta/games and never changes. Wherever you see {slug} below, substitute one of the values from the first column.

For the WebSocket stream you select several games at once with a comma-separated list: ?games=stake-crash,crazytime,lightningstorm. The `games` query variable accepts any slug from this table.

slug (id)gameproviderkind
stake-crashCrashStakecrash
duel-crashCrashDuelcrash
shuffle-crashCrashShufflecrash
crashCrashRoobetcrash
stake-slideSlideStakecrash
slideSlideRoobetwheel
crazytimeCrazy TimeEvolutionwheel-show
crazytimeaCrazy Time AEvolutionwheel-show
monopolyliveMonopoly LiveEvolutionwheel-show
monopolybigballerMONOPOLY Big BallerEvolutionwheel-show
dreamcatcherDream CatcherEvolutionwheel-show
lightningstormLightning StormEvolutionwheel-show
icefishingIce FishingEvolutionwheel-show
lightningdiceLightning DiceEvolutiondice-show
lightningrouletteLightning RouletteEvolutionroulette-show

The `kind` field tells you which extra data to expect in each round's raw payload: crash / wheel (Slide) → multiplier only; wheel-show (Crazy Time, Monopoly Live, Lightning Storm, Dream Catcher, Ice Fishing, Big Baller) → segment + sector + bonus details; dice-show (Lightning Dice) → dice faces + lightning multipliers; roulette-show (Lightning Roulette) → winning number + lucky-number multipliers.

This table is a snapshot — call GET /v1-beta/games any time for the authoritative, always-current list with live rounds_total and last_finalized_multiplier counters.

Authentication

Each customer gets one or more API keys when onboarded over Telegram. Keys are scoped per environment (sandbox / production) and rotatable on request. Lost a key? Telegram us — we revoke and issue a replacement.

Wrong / missing key → 401. Valid key but wrong tier for the endpoint → 403. Exceeded rate limit → 429 with Retry-After.

http
GET /v1-beta/games HTTP/1.1
Host: api.trackersino.com
Authorization: Bearer ts_live_abcd1234efgh5678
Accept: application/json

REST endpoints

All endpoints return JSON. Where pagination is supported, use ?limit and ?since (ISO timestamp) — there is no opaque cursor; you can resume on `finalized_at`.

GET/v1-beta/games

Catalog. Returns every tracked game: id, name, provider, kind (crash / slide / wheel-show / dice-show / roulette-show), enabled flag, rounds_total, last_observed_at, last_finalized_index, last_finalized_multiplier.

GET/v1-beta/games/{slug}/rounds?limit=N&window=5m&since=ISO&only_finalized=true

Round history, latest first. Filter by finalised-only, by absolute timestamp (since=ISO) or by a relative window — window=5m|15m|30m|1h|3h|6h|12h|24h|72h|7d|30d, or since_minutes=N for an exact minute count. Each row carries round_index, round_id, multiplier, random_number, state, finalized_at and a full raw payload.

GET/v1-beta/games/{slug}/rounds/latest

The single most recent round. only_finalized=true (default) returns the last settled round; only_finalized=false returns the absolute newest row, which may still be mid-spin. Same shape as a /rounds row including the full raw payload.

GET/v1-beta/games/{slug}/summary

One-shot overview — everything the trackersino game header shows in a single call: identity (name/provider/kind), rounds_total, the latest round in full, rolling counts (last_5m / last_15m / last_1h / last_24h), 24h multiplier shape (mean / median / p95 / max) and the headline delay table (rounds since last ≥2x / 10x / 50x / 100x).

GET/v1-beta/games/{slug}/spins?limit=N&window=24h

Wheel-show convenience endpoint — every row carries segment, sector and multiplier_text decoded from raw. Use this for Crazy Time / Lightning Storm / Monopoly Live UIs without parsing raw yourself.

GET/v1-beta/games/{slug}/round/{round_id}

Single round detail. Same shape as rows from /rounds but with the full bonus payload (Cash Hunt grid, Pachinko drop, Crazy Time arms, Lightning Storm batteries / reels / offers).

GET/v1-beta/games/{slug}/stats/biggest-wins?window=24h&limit=10

Top payouts in a window. Sorted by total_amount × multiplier when available, otherwise by multiplier alone. Returns round_id, multiplier, finalized_at, segment, total_amount, total_winners.

GET/v1-beta/games/{slug}/stats/multiplier-distribution?window=1h

Histogram of multipliers (crash games) or segment hit-rate (wheel shows) over the requested window. Use for fairness plots / RTP convergence panels.

GET/v1-beta/games/{slug}/stats/delays

Rounds-since-last-≥X for every headline threshold (1.5x … 1000x). Same metric the public temperature panel shows, plus lifetime_hits and lifetime_rounds. Refresh-friendly: numbers tick down each round.

GET/v1-beta/games/{slug}/stats/frequency?window=24h

Observed vs theoretical hit-rate per threshold, with the delta in percentage points against a fair-game baseline (configurable house edge). The fairness table behind the public stats page.

GET/v1-beta/games/{slug}/stats/streaks?window=24h

Current and longest consecutive runs below each threshold (2x … 100x) — current_under_count, longest_under_in_window and where the longest run started.

GET/v1-beta/games/{slug}/stats/hourly?window=24h

Per-hour buckets: count, mean, max, p95 plus hit counts for 2x / 10x / 50x. Use for heatmaps and time-of-day analysis.

GET/v1-beta/games/{slug}/stats/multiplier-distribution?window=1h

Histogram of multipliers (crash games) plus mean / median / p95 / p99 / max over the window. Use for fairness plots / RTP convergence panels.

GET/v1-beta/games/{slug}/stats/rtp-empirical?window=24h

Directional empirical RTP from observed bet snapshots (volume, payout, ratio). Snapshot-biased — see the note field in the response.

GET/v1-beta/games/{slug}/stats/rtp-detailed?window=24h

Same RTP estimate broken down per target-multiplier: bets_count, volume, payout, win_rate and rtp for each cash-out target.

GET/v1-beta/games/{slug}/stats/currency-volume?window=24h

Bet volume and payout grouped by balance type (currency), plus the totals across all currencies.

GET/v1-beta/games/{slug}/stats/recent-bets?limit=N

Latest observed bets with their resolved round outcome — bet_amount, balance_type, target_multiplier, round_multiplier and a won flag.

GET/v1-beta/games/{slug}/crazytime/segments?window=24h

Wheel-show segment breakdown (Crazy Time / Monopoly Live / Lightning Storm / Dream Catcher): per-segment hits, observed vs theoretical %, spins_since, avg multiplier and last hit.

Response shapes (real examples)

Every example below is a real, unedited response captured from the live API. Numerics that need precision (multiplier, payouts) come back as JSON strings.

GET /v1-beta/games catalog
json
[
  {
    "id": "stake-crash",
    "name": "Crash",
    "provider": "Stake",
    "kind": "crash",
    "enabled": true,
    "rounds_total": 108457,
    "last_observed_at": "2026-06-01T12:20:48.669425Z",
    "last_finalized_index": 7393228772258146753,
    "last_finalized_multiplier": "4.7100"
  },
  {
    "id": "crazytime",
    "name": "Crazy Time",
    "provider": "Evolution",
    "kind": "wheel-show",
    "enabled": true,
    "rounds_total": 53413,
    "last_observed_at": "2026-06-01T12:19:00.573935Z",
    "last_finalized_index": 46639897866258233,
    "last_finalized_multiplier": "1.0000"
  }
]
GET /v1-beta/games/stake-crash/rounds?limit=1 crash round
json
[
  {
    "round_index": 7393228772258146753,
    "round_id": "cc0706c3f891d301fcec3855",
    "multiplier": "4.7100",
    "random_number": null,
    "state": "finalized",
    "time_spin_stop": "2026-06-01T12:20:27Z",
    "finalized_at": "2026-06-01T12:20:27Z",
    "observed_at": "2026-06-01T12:20:28.580645Z",
    "raw": {
      "result": { "rtp": 196.23, "maxMultiplier": 4.71, "roundDuration": 25825.0 },
      "source": "casino.org",
      "round_id": "cc0706c3f891d301fcec3855",
      "settledAt": "2026-06-01T12:20:27Z",
      "startedAt": "2026-06-01T12:20:01Z",
      "totalAmount": 13609.24,
      "bettorsCount": 320,
      "totalWinners": 270,
      "totalBetAmount": 6935.21
    }
  }
]
GET /v1-beta/games/crazytime/rounds?limit=1 wheel-show round (note segment / slot_result)
json
[
  {
    "round_index": 68099814944532018,
    "round_id": "cdHphY2_tby8",
    "multiplier": "4.0000",
    "random_number": 2,
    "state": "finalized",
    "time_spin_stop": "2026-06-01T12:19:36Z",
    "finalized_at": "2026-06-01T12:19:36Z",
    "observed_at": "2026-06-01T12:20:23.015118Z",
    "raw": {
      "result": 2,
      "source": "tracksino",
      "segment": "n2",
      "slot_result": 2,
      "slot_multiplier": 2,
      "total_payout": 19461,
      "total_winners": 3381,
      "is_top_slot_matched": true,
      "bonus_data": null
    }
  }
]
GET /v1-beta/games/lightningstorm/rounds/latest latest round + bonus payload
json
{
  "round_index": 6823731385927563902,
  "round_id": "18b4f444d3876dca4aeac5ff",
  "multiplier": "1.0000",
  "state": "finalized",
  "finalized_at": "2026-06-01T12:19:52.013Z",
  "observed_at": "2026-06-01T12:19:57.175784Z",
  "raw": {
    "outcome": "EvoLeaf",
    "segment": "leaf",
    "source": "casino.org",
    "multiplier_text": "1x",
    "multiplier_low": "1.00",
    "multiplier_high": "1.00",
    "wheel_result": { "wheelSector": { "type": "EvoLeaf" }, "maxMultiplier": 1 },
    "totalWinners": 451,
    "bettorsCount": 2275
  }
}
GET /v1-beta/games/stake-crash/summary one-shot overview
json
{
  "game_id": "stake-crash",
  "name": "Crash",
  "provider": "Stake",
  "kind": "crash",
  "rounds_total": 108457,
  "last_round": { "...": "full round object, same shape as /rounds" },
  "last_finalized_index": 7393228772258146753,
  "last_finalized_multiplier": "4.7100",
  "last_finalized_at": "2026-06-01T12:20:42Z",
  "last_observed_at": "2026-06-01T12:20:28.580645Z",
  "counts": { "last_5m": 13, "last_15m": 39, "last_1h": 175, "last_24h": 3964 },
  "multiplier_24h": {
    "window": "24h",
    "mean": "9.3272619828456105",
    "median": "2.1597",
    "p95": "22.52",
    "max": "3986.5790"
  },
  "delays": [
    { "threshold": "2",   "rounds_since": 1,   "last_multiplier": "4.7100",   "last_finalized_at": "2026-06-01T12:20:27Z" },
    { "threshold": "10",  "rounds_since": 3,   "last_multiplier": "33.2000",  "last_finalized_at": "2026-06-01T12:19:36Z" },
    { "threshold": "50",  "rounds_since": 116, "last_multiplier": "368.6026", "last_finalized_at": "2026-06-01T11:38:57Z" },
    { "threshold": "100", "rounds_since": 116, "last_multiplier": "368.6026", "last_finalized_at": "2026-06-01T11:38:57Z" }
  ],
  "generated_at": "2026-06-01T12:20:57.684532Z"
}
GET /v1-beta/games/stake-crash/stats/delays rounds since last ≥X
json
[
  {
    "threshold": "1.5",
    "rounds_since": 1,
    "last_round_index": 7393228772258146753,
    "last_multiplier": "4.7100",
    "last_finalized_at": "2026-06-01T12:20:27Z",
    "lifetime_hits": 73847,
    "lifetime_rounds": 108458
  },
  {
    "threshold": "2",
    "rounds_since": 1,
    "last_multiplier": "4.7100",
    "lifetime_hits": 55412,
    "lifetime_rounds": 108458
  }
]

WebSocket stream

Pro and Enterprise tiers can subscribe to a push channel: every finalised round is emitted as a JSON frame as soon as our scraper writes it to storage. Same row shape as /rounds. Subscribe to all games or filter by slug at connection time.

javascript
const ws = new WebSocket(
  'wss://api.trackersino.com/v1-beta/stream?games=stake-crash,roobet-crash',
  ['Authorization', 'Bearer YOUR_KEY']
);
ws.onmessage = (ev) => {
  const round = JSON.parse(ev.data);
  console.log(round.game_id, round.multiplier, round.finalized_at);
};

Reconnect on close. We send a heartbeat ping every 25s; if you miss two consecutive pings, drop and reconnect — your last observed `finalized_at` is the resume point for a /rounds backfill.

Code examples

cURL — history of several games
bash
# Last 5 minutes of Stake Crash — relative window, no timestamp math
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://api.trackersino.com/v1-beta/games/stake-crash/rounds?window=5m"

# Same call for a different game — just swap the {slug}
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://api.trackersino.com/v1-beta/games/crazytime/rounds?window=5m"

# Exact minute count instead of a preset window
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://api.trackersino.com/v1-beta/games/lightningstorm/rounds?since_minutes=30&limit=500"

# The single most recent settled round
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://api.trackersino.com/v1-beta/games/duel-crash/rounds/latest"

# Everything at a glance (last round + counts + 24h shape + delays)
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://api.trackersino.com/v1-beta/games/stake-crash/summary"
JavaScript — pull history for a list of games
javascript
const KEY = 'Bearer YOUR_KEY';
const BASE = 'https://api.trackersino.com/v1-beta';

// The 'games' you care about — any slug from the Games & slugs table.
const games = ['stake-crash', 'crazytime', 'lightningstorm'];

// Fetch the last 5 minutes of history for each, in parallel.
const histories = await Promise.all(
  games.map(async (slug) => {
    const res = await fetch(
      `${BASE}/games/${slug}/rounds?window=5m&limit=1000`,
      { headers: { Authorization: KEY } },
    );
    return { slug, rounds: await res.json() };
  }),
);

for (const { slug, rounds } of histories) {
  console.log(slug, '→', rounds.length, 'rounds');
  console.log('  newest:', rounds[0]?.multiplier, 'at', rounds[0]?.finalized_at);
}
Python — paginate full history with since
python
import requests

BASE = "https://api.trackersino.com/v1-beta"
HEADERS = {"Authorization": "Bearer YOUR_KEY"}

def fetch_window(slug: str, minutes: int = 5):
    """Last N minutes of rounds for a game."""
    r = requests.get(
        f"{BASE}/games/{slug}/rounds",
        params={"since_minutes": minutes, "limit": 1000},
        headers=HEADERS, timeout=10,
    )
    r.raise_for_status()
    return r.json()

def backfill(slug: str, pages: int = 5, page_size: int = 1000):
    """Walk older history with before_index (keyset pagination)."""
    out, cursor = [], None
    for _ in range(pages):
        params = {"limit": page_size, "only_finalized": "true"}
        if cursor is not None:
            params["before_index"] = cursor
        rows = requests.get(f"{BASE}/games/{slug}/rounds",
                            params=params, headers=HEADERS, timeout=10).json()
        if not rows:
            break
        out += rows
        cursor = rows[-1]["round_index"]   # resume point for the next page
    return out

for slug in ("stake-crash", "crazytime", "lightningstorm"):
    last5 = fetch_window(slug, 5)
    print(slug, "→", len(last5), "rounds in last 5m,",
          "newest:", last5[0]["multiplier"] if last5 else None)

Rate limits

Per-key request budget. Starter is REST-only at 5 req/s, burst 10. Pro is 50 req/s + unlimited WebSocket frames. Enterprise is custom (default 200 req/s + dedicated WS).

On 429 we send Retry-After (seconds). Back off and retry. We don't auto-throttle silently — you always know when you hit the cap.

Error responses

json
{
  "error": "rate_limited",
  "message": "Exceeded 50 req/s on tier=pro",
  "retry_after_s": 3
}

Always JSON, always carries `error` (machine-readable code) and `message` (human). Standard HTTP semantics — 400 client error, 401/403 auth, 404 game/round not found, 429 rate limit, 5xx upstream issue (very rare, we run failover internally).

Changelog & versioning

URL-versioned (/v1-beta is the current public surface). Breaking changes go to /v1 once stable, with at least 90 days of overlap before /v1-beta is retired. Non-breaking additions (new fields, new endpoints) ship within /v1-beta without bumping.

Subscribe to the @TrackerSinoStatus Telegram channel to get notified about upcoming changes and incidents.

Need help integrating?

Ping us on Telegram with the language you're building in — we'll send a minimal working sample tailored to your stack.

Open Telegram
API documentation — endpoints, authentication, code samples · TrackerSino Data · TrackerSino