Loading…
DEVELOPER REFERENCE
Public and authenticated endpoints for broadcast overlays, integrations, and platform data access. V-Mix overlay templates available at /overlays/.
Public read-only API v1 spec: /api/public/v1/openapi.json
GET-only, CORS open to all origins, rate limited to 60 requests per minute per IP. Responses wrap data as { data, meta: { cachedAt, requestId } } and are cached for 60 seconds edge-side with 5 minute stale-while-revalidate.
/api/public/v1/standingsCurrent season team standings.
curl https://checkup.gg/api/public/v1/standings
const res = await fetch('https://checkup.gg/api/public/v1/standings');
const { data, meta } = await res.json();/api/public/v1/rankings?limit=50Top N players by MMR. Max 200.
curl 'https://checkup.gg/api/public/v1/rankings?limit=50'
const res = await fetch('https://checkup.gg/api/public/v1/rankings?limit=50');
const { data } = await res.json();/api/public/v1/players/[id]Single player public profile with career summary and streak.
curl https://checkup.gg/api/public/v1/players/clx123...
const res = await fetch(`https://checkup.gg/api/public/v1/players/${id}`);
const { data } = await res.json();/api/public/v1/matches/recent?limit=20Last N verified matches with teams, scores, and standout player.
curl 'https://checkup.gg/api/public/v1/matches/recent?limit=20'
const res = await fetch('https://checkup.gg/api/public/v1/matches/recent?limit=20');
const { data } = await res.json();/api/public/v1/tournaments/[id]Tournament metadata + sanitized bracket.
curl https://checkup.gg/api/public/v1/tournaments/tourn_abc
const res = await fetch(`https://checkup.gg/api/public/v1/tournaments/${id}`);
const { data } = await res.json();/api/public/v1/clips/top?window=24hTop clips by votes. window = 24h | 7d | all.
curl 'https://checkup.gg/api/public/v1/clips/top?window=24h&limit=20'
const res = await fetch('https://checkup.gg/api/public/v1/clips/top?window=24h');
const { data } = await res.json();/api/public/v1/streaks?mode=activeWin-streak leaderboard for broadcast overlays. mode = active (current live streaks) or best (all-time best). Verified console only.
curl 'https://checkup.gg/api/public/v1/streaks?mode=active&limit=20'
const res = await fetch('https://checkup.gg/api/public/v1/streaks?mode=active');
const { data } = await res.json();/api/public/v1/seasonCurrent active or upcoming season info: name, dates, registration status, team count, prize pool. Used by Discord bot season-info commands and partner widgets.
curl https://checkup.gg/api/public/v1/season
const res = await fetch('https://checkup.gg/api/public/v1/season');
const { data } = await res.json();/api/public/v1/players/by-gamertag?gamertag=xxxResolve a public player profile by gamertag (3 to 32 chars). Returns the same shape as /players/[id]. Useful when you only know the in-game tag.
curl 'https://checkup.gg/api/public/v1/players/by-gamertag?gamertag=Hooper3000'
const res = await fetch('https://checkup.gg/api/public/v1/players/by-gamertag?gamertag=Hooper3000');
const { data } = await res.json();/api/v1/live-feedcached 30 secondsReturns the 8 most recent activity events. Public, no auth required.
{ feed: [{ id, gamertag, verb, createdAt }] }USE CASE: Landing page live feed, V-Mix activity ticker overlay
/api/v1/broadcast/standingscached 30 secondsReturns current team standings across all seasons. Public, CORS enabled.
{ standings: [{ teamName, wins, losses, ppg, oppg, diff, leagueName }], updatedAt }USE CASE: V-Mix standings overlay, external leaderboard widgets
/api/v1/broadcast/potwcached 60 secondsReturns the current Player of the Week with stats and skills. Public, CORS enabled.
{ potw: { gamertag, avatarUrl, positions, skills, title, message, awardedAt }, updatedAt }USE CASE: V-Mix POTW overlay, stream announcements
/api/v1/registerRegister a player for the active season tournament. Requires auth. Creates Whop hosted checkout if entry fee > 0.
{ success: true, checkoutUrl?: string }USE CASE: Season registration flow
/api/v1/register-teamRegister a pre-formed team (BYOT). Captain pays for entire team. Requires auth.
{ success: true, checkoutUrl?: string }USE CASE: Bring Your Own Team registration
/api/v1/quick-play/joinJoin a Quick Play event (ISO, KOTC, Open Run). Requires auth.
{ success: true, bracketGenerated?: boolean }USE CASE: Quick Play day-to-day tournaments
/api/v1/ocr/extractExtract stats from a 2K screenshot via AI OCR. Requires auth + ANTHROPIC_API_KEY.
{ gameMode, players: [{ gamertag, pts, reb, ast, ... }], confidence }USE CASE: Stat upload flow, screenshot processing
/api/v1/people/lookup?gamertag=xxxLook up a verified player by gamertag. Requires auth.
{ id, gamertag, positions, ovr, verified }USE CASE: BYOT roster builder, player search
/api/v1/cron/match-verifyEvery 30 minAuto-verifies matches when both teams submit matching scores/api/v1/cron/player-of-the-weekSunday 11pm UTCSelects highest FIR player from trailing 7 days/api/v1/cron/forfeit-detectDaily 8am UTCFlags matches 24h past schedule with no submission/api/v1/cron/monthly-reset1st of monthResets gamertag change allowances/api/v1/cron/gamertag-driftDaily 6am UTCChecks Xbox/PSN for gamertag changes/api/v1/agents/cronHourlyAI agent heartbeat + content calendarStandalone HTML files loadable as V-Mix browser sources. No build step required.
/overlays/scoreboard.htmlMatch scoreboard (800x120)
?home=...&away=...&homeScore=...&awayScore=...&quarter=...
/overlays/ticker.htmlLive activity ticker (1920x50)
Fetches /api/v1/live-feed
/overlays/potw.htmlPlayer of the Week card (400x300)
Fetches /api/v1/broadcast/potw