SportsPuff

SportsPuff API

v1.0.0

About

This is the API backend for www.sportspuff.org. It serves live scores, schedules, standings, and season info across 12 sports/leagues: MLB, NBA, NFL, NHL, WNBA, MLS, IPL, MLC, FIFA World Cup, ATP, WTA, and the UCI World Tour (Tour de France, Giro, Vuelta, classics). Canonical API routes live under /v1 and negotiate JSON vs plain text with the Accept header. Legacy /api/v1 and /curl/v1 routes remain available as compatibility shims. Interactive API docs at /docs and /redoc.

Sports

League Slug Scores Schedule Standings Season info
MLBmlb
NBAnba
NFLnfl
NHLnhl
WNBAwnba
MLSmls
IPL (cricket)ipl
MLC (cricket)mlc
FIFA World Cupwc✓ (group stage)
ATP tennisatpfixture onlyn/atour calendar
WTA tenniswtafixture onlyn/atour calendar
UCI World Tour (cycling)cyclingcalendar + results fieldsGC when configuredrace calendar

Tennis still has fixture-only coverage upstream. Cycling now surfaces stage winner and GC rank fields when the configured collector provides them; standings are available when the source exposes GC data.

Endpoints

Scores

/v1/scores/today CANONICAL All sports; use Accept to choose JSON or text
/v1/scores/{sport}/today CANONICAL Single sport; use Accept to choose JSON or text
/api/v1/scores/today JSON Legacy JSON compatibility route
/api/v1/scores/{sport}/today JSON Legacy JSON compatibility route
/curl/v1/scores/today TEXT Legacy plain-text compatibility route
/curl/v1/scores/{sport}/today TEXT Legacy plain-text compatibility route

Schedules

/v1/schedules/today CANONICAL All sports; use Accept to choose JSON or text
/v1/schedule/{sport}/today CANONICAL Single sport; use Accept to choose JSON or text
/api/v1/schedules/today JSON Legacy JSON compatibility route
/api/v1/schedule/{sport}/today JSON Legacy JSON compatibility route
/curl/v1/schedules/today TEXT Legacy plain-text compatibility route
/curl/v1/schedule/{sport}/today TEXT Legacy plain-text compatibility route

Standings

/v1/standings/{sport} CANONICAL Use Accept to choose JSON or text
/api/v1/standings/{sport} JSON Legacy JSON compatibility route
/curl/v1/standings/{sport} TEXT Legacy plain-text compatibility route

Season Info

/v1/season-info/{league} CANONICAL Season phase dates, current phase, last champion (when known)
/api/v1/season-info/{league} JSON Legacy JSON compatibility route

Status & docs

/v1/status CANONICAL Upstream + endpoint health snapshot; use Accept to choose JSON or text
/api/v1/status JSON Legacy JSON compatibility route
/status HTML status page
/curl/v1/status TEXT Legacy plain-text compatibility route
/docs Interactive API docs (Swagger UI)
/redoc Reference API docs (ReDoc)
/openapi.json JSON OpenAPI 3 spec (for client codegen)

Help

/help Full endpoint reference (HTML)
/api/help JSON Full endpoint reference
/curl/help TEXT Full endpoint reference

Usage

Canonical endpoints live under /v1 and negotiate format via the Accept header. Legacy /api/v1 and /curl/v1 routes remain available as compatibility shims.

Replace today with yesterday, tomorrow, or a date like 2026-04-28. Sports: mlb, nba, nfl, nhl, wnba, ipl, mlc, or all. Add ?tz=et for Eastern time (default is Pacific).