standings

League standings table

get/v1/standings

Request

  • Base URL: https://api.bigballsdata.com
  • URL: https://api.bigballsdata.com/v1/standings
  • Auth: one of:
    • API key in header x-api-key
    • HTTP bearer

Query parameters

leaguestring required

A short league code, not an id. GET /v1/leagues returns the authoritative list in its id field; that is the value to pass to every ?league= parameter. Some codes accept an alias (serie_a and seriea both resolve).

Example:epl
seasonstring

Season LABEL, not a calendar year: the year a season STARTS in. 2025 means the 2025-26 campaign for leagues that cross the new year (EPL, NBA, NHL) and the 2025 season for those that do not (MLB, MLS, WNBA). Filtering resolves each league's own start month, so a season never spans two calendar years' worth of rows.

sport'football' | 'basketball' | 'baseball' | 'ice_hockey' | 'cricket' | 'mma' | 'boxing' | 'formula1' | 'american_football'
conferencestring

Narrow the table to one conference/division inside the league. Case-insensitive, matched against the conference field on each row. The response shape does not change; still one group per league; so a conference table and a whole-league table parse identically. A conference we do not hold returns 400 listing the ones we do, rather than an empty 200.

Response

ok

Example response

{
  "data": {
    "standings": [
      {
        "league_id": "cf2d81c8-8e7c-4eaf-a515-c51be3962e57",
        "league_name": "NHL",
        "rows": [
          {
            "team_id": "cf2d81c8-8e7c-4eaf-a515-c51be3962e57",
            "streak": "W3",
            "conference": "Big Ten Conference"
          }
        ]
      }
    ]
  },
  "meta": {
    "date_window": {
      "timezone": "UTC",
      "start_utc": "2026-09-13T00:00:00.000Z",
      "end_utc": "2026-09-14T00:00:00.000Z"
    },
    "source": "official-league",
    "confidence": 0.95,
    "cache_age_ms": 4200,
    "request_id": "req_abc123",
    "note": "match_id is omitted on 380 of 380 rows in this response. The live feed behind them does not carry an id we can resolve to a stored match, so we return no id rather than one that will not work. For rows with ids you can call back into, use /v1/stored/matches with the same sport or league, for example /v1/stored/matches?league=epl."
  },
  "error": {
    "code": "NOT_FOUND"
  }
}

Changes

No recorded changes to this operation across all 2 revisions of this API.