Our Flagship: TheBigTourney.com — The #1 March Madness Contest Platform

Developer API Documentation

Integrate contest data into your apps, websites, dashboards, and broadcast systems with our REST API. Available on Pro and Enterprise plans.

API Overview

Base URL:

https://www.officepoolgames.com/api/v1/

Authentication: Bearer token in Authorization header or ?api_key= query parameter.

Rate Limit: 60 requests per minute per API key.

Response Format: JSON

Quick Start

// JavaScript Example const response = await fetch( 'https://www.officepoolgames.com/api/v1/leaderboard?site_id=123', { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } } ); const data = await response.json();

API Endpoints

Endpoint Method Description
/entriesGETGet all entries for a contest (with name, email, points, created_at)
/leaderboardGETGet current standings (rank, name, score)
/contest-infoGETContest metadata: scoring rules, deadlines, round structure
/picksGETGet a specific entry's picks/selections + tiebreaker
/picks-by-roundGETAll entries' picks for a specific round (e.g., Sweet16, Elite8)
/picks-compareGETHead-to-head comparison between two entries
/perfect-trackerGETEntries still mathematically perfect (with survival probability)

Get Entries

GET /api/v1/entries?site_id=123&limit=100&offset=0

Parameters:

  • site_id (required) — Your contest site ID
  • limit — Max results (default 100, max 500)
  • offset — Pagination offset

Response:

{ "site_id": 123, "contest_type": "madness", "entries": [ { "id": 5821, "name": "John Smith", "email": "john@example.com", "points": 142, "created_at": "2026-03-15T14:30:00Z" } ] }

Get Leaderboard

GET /api/v1/leaderboard?site_id=123

Response:

{ "site_id": 123, "round": "Sweet16", "leaderboard": [ { "rank": 1, "name": "Jane Doe", "score": 185 } ] }

Get Entry Picks

GET /api/v1/picks?entry_id=5821

Response: Entry's complete selections including bracket picks by round and tiebreaker value.

Webhooks

Receive real-time notifications when events occur in your contest.

POST https://yourdomain.com/webhooks/opg { "event": "entry.created", "data": { "entry_id": 5821, "name": "John Smith", "email": "john@example.com" } }

Supported events: entry.created, entry.updated, scoring.updated, contest.started, contest.ended

PHP

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.officepoolgames.com/api/v1/leaderboard?site_id=123'); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer YOUR_KEY' ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $data = json_decode($response, true);

JavaScript

const res = await fetch( 'https://www.officepoolgames.com/api/v1/leaderboard?site_id=123', { headers: { 'Authorization': 'Bearer YOUR_KEY' } } ); const data = await res.json();

Python

import requests resp = requests.get( 'https://www.officepoolgames.com/api/v1/leaderboard', params={'site_id': 123}, headers={ 'Authorization': 'Bearer YOUR_KEY' } ) data = resp.json()

Need API Access?

API access is available on Pro and Enterprise plans. Contact us to get your API keys and start building.

Request API Access