Hoops Menu API and developer resources
Hoops Menu publishes what it computes. The travel and schedule-fatigue data behind the boards is a public, read-only API — no key, no sign-up, no rate limit — and every discovery document an agent needs to find it is served from a well-known URL. This page is the human-readable version of all of it.
The travel data API
One endpoint per travel-capable league, in two formats:
GET /data/travel/{leagueSlug}— JSONGET /data/travel/{leagueSlug}/csv— the same fields as a flat CSV download
Live examples: NBA JSON / CSV · WNBA JSON / CSV.
A bare endpoint returns the newest scheduled season. Add ?season=2025-26 for an available historical season; an unavailable season returns a JSON 404. JSON and CSV always resolve the same season.
Responses are unauthenticated and permit cross-origin requests (Access-Control-Allow-Origin: *), so a browser chart can fetch them directly. Each carries a schemaVersion, currently 1.1. Changes inside a major version are additive only — existing names, shapes, and rounding stay put; a breaking change raises the major version.
The data is published under CC BY 4.0. Reuse it in charts, articles, broadcasts, and research, with attribution to Hoops Menu and a link to hoopsmenu.com. Units, definitions, and sourcing are documented at /data/travel.
Machine-readable discovery
Nothing here needs to be guessed at. Each of these is served with open CORS and cached at the edge for an hour.
- /openapi.json — OpenAPI 3.1 description of the API, including the full response schema.
- /.well-known/api-catalog — RFC 9727 API catalog, as an RFC 9264 linkset.
- /llms.txt — the site index for LLMs and browsing agents, one line per board.
- /.well-known/agent-skills/index.json — Agent Skills Discovery index, with a SKILL.md that teaches an agent to use the travel dataset.
- /sitemap.xml — every indexable URL, including per-team travel pages.
- GET /api — an index of the public endpoints. Anything else under
/apianswers with a JSON 404 that points back here.
Markdown for agents
Every key page renders as GitHub-flavored markdown as well as HTML. Ask for it by content negotiation — browsers always send text/html, so a bare markdown Accept is the signal:
curl -H "Accept: text/markdown" https://hoopsmenu.com/nba/travel
The same renditions have direct twin URLs under /md — https://hoopsmenu.com/md/nba/travel — which is the better choice for anything that caches by URL. Responses carry an x-markdown-tokens estimate so an agent can budget context before reading.
Status and contact
/api/health answers 200 after a database round trip and 503 when the database is unavailable.
Questions, corrections, or a note about what you built with the data: hello@hoopsmenu.com.

