Integration GuidesReference Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

Historical Data

The UFL API carries the league's complete history: every season since the UFL's 2024 launch, with the same feeds and payload shapes at every depth. This page covers what is on file, how completed seasons behave, and a workflow for loading them.



What Is on File

Seasons is the catalog: one entry per year and season type, each closed once its games are validated:

{
  "league": {
    "id": "d441365f-cfab-49d6-9976-6c95d91fdef7",
    "name": "United Football League",
    "alias": "UFL"
  },
  "seasons": [
    {
      "id": "e67a7c79-1e58-4334-b26e-7317d2efa16f",
      "year": 2024,
      "start_date": "2024-06-08",
      "end_date": "2024-06-15",
      "status": "closed",
      "type": {
        "code": "PST"
      }
    },
    {
      "id": "885f1348-9da8-42e9-b0a3-e8620be24242",
      "year": 2024,
      "start_date": "2024-03-30",
      "end_date": "2024-06-02",
      "status": "closed",
      "type": {
        "code": "REG"
      }
    },
    {
      "id": "940a2680-c865-11ef-b016-114bcfc0f1b1",
      "year": 2025,
      "start_date": "2025-06-07",
      "end_date": "2025-06-14",
      "status": "closed",
      "type": {
        "code": "PST"
      }
    },
    {
      "id": "94096330-c865-11ef-b016-114bcfc0f1b1",
      "year": 2025,
      "start_date": "2025-03-28",
      "end_date": "2025-06-01",
      "status": "closed",
      "type": {
        "code": "REG"
      }
    },
    {
      "id": "4123d3de-ea19-4e5a-9320-d29026eb3df6",
      "year": 2026,
      "start_date": "2026-06-06",
      "end_date": "2026-06-13",
      "status": "closed",
      "type": {
        "code": "PST"
      }
    },
    {
      "id": "4ee5ece0-6f0b-11f0-b1e6-2dad3ff60df1",
      "year": 2026,
      "start_date": "2026-03-27",
      "end_date": "2026-05-31",
      "status": "closed",
      "type": {
        "code": "REG"
      }
    }
  ]
}

Every listed season serves its full data set: schedules, standings, seasonal statistics, rosters, and complete game detail.



Data Updates

  • Completed seasons are stable: every game reads closed and its stats are validated, so one retrieval pass per feed captures a season's final state
  • Closed games keep their complete Boxscore, Play-by-Play, Statistics, and Roster detail; the drilldowns shown across the scenario pages work identically on past seasons
  • The date-scoped feeds (Daily Change Log, Daily Transactions) accept past dates, so historical league days can be replayed; the Monitoring Data Changes page covers the recovery walk
  • Completed-season feeds serve multi-hour cache TTLs; there is no reason to poll them
  • A season's payloads reflect the data points and rules in force when it was played: fields introduced in a later season do not appear in earlier seasons, and UFL rules change year to year


Data Accessibility


Past season schedules

Address any season with the {season_year}/{season_type} pair. The 2024 postseason, with its two conference finals and the championship:

{
  "id": "e67a7c79-1e58-4334-b26e-7317d2efa16f",
  "year": 2024,
  "type": "PST",
  "name": "PST",
  "weeks": [
    {
      "id": "73520b6b-5457-4cc5-bee6-d11ba1e9ebc1",
      "sequence": 1,
      "title": "1",
      "games": [
        {
          "id": "304ec2bb-46c5-4c37-8712-d67786d09784",
          "status": "closed",
          "scheduled": "2024-06-08T19:10:00+00:00",
          "entry_mode": "LDE",
          "sr_id": "sr:match:50503035",
          "game_type": "playoff",
          "conference_game": true,
          "title": "USFL Conference Final",
          "home": {
            "id": "f4305130-9675-11ec-8570-4594a07130f0",
            "name": "Birmingham Stallions",
            "alias": "BHAM",
            "sr_id": "sr:competitor:882409"
          },
          "away": {
            "id": "8bcdfcd0-9677-11ec-9ad0-d3ebe46bbb12",
            "name": "Michigan Panthers",
            "alias": "MICH",
            "sr_id": "sr:competitor:882417"
          },
          "scoring": {
            "home_points": 31,
            "away_points": 18
          }
        },
        {
          "id": "ca05dd04-7bb9-4ed8-b164-75f2f5119bda",
          "status": "closed",
          "scheduled": "2024-06-09T23:15:00+00:00",
          "entry_mode": "LDE",
          "sr_id": "sr:match:50503031",
          "game_type": "playoff",
          "conference_game": true,
          "title": "XFL Conference Final",
          "home": {
            "id": "d4799bc0-c045-11ee-ad92-cf16c0a8aa31",
            "name": "St. Louis Battlehawks",
            "alias": "STL",
            "sr_id": "sr:competitor:661855"
          },
          "away": {
            "id": "b7951020-c045-11ee-ad92-cf16c0a8aa31",
            "name": "San Antonio Brahmas",
            "alias": "SA",
            "sr_id": "sr:competitor:978099"
          },
          "scoring": {
            "home_points": 15,
            "away_points": 25
          }
        }
      ]
    },
    {
      "id": "92c0953c-827b-4b11-ba25-57c6c868bdbf",
      "sequence": 2,
      "title": "2",
      "games": [
        {
          "id": "9edd5ade-180d-4a18-aad5-2aa53c7e4d62",
          "status": "closed",
          "scheduled": "2024-06-16T21:00:00+00:00",
          "entry_mode": "LDE",
          "sr_id": "sr:match:50655003",
          "game_type": "playoff",
          "conference_game": false,
          "title": "UFL Championship",
          "neutral_site": true,
          "home": {
            "id": "b7951020-c045-11ee-ad92-cf16c0a8aa31",
            "name": "San Antonio Brahmas",
            "alias": "SA",
            "sr_id": "sr:competitor:978099"
          },
          "away": {
            "id": "f4305130-9675-11ec-8570-4594a07130f0",
            "name": "Birmingham Stallions",
            "alias": "BHM",
            "sr_id": "sr:competitor:882409"
          },
          "scoring": {
            "home_points": 0,
            "away_points": 25
          }
        }
      ]
    }
  ]
}

Each season reflects the league as it played that year: the 2024 postseason ran conference finals under the XFL and USFL groupings, while 2026 plays "Playoff Game" semifinals and the United Bowl. Read week titles, game titles, and groupings from each season's own responses rather than assuming the current shape.


Completed-game detail

Game GUIDs from a past schedule drill into the same game feeds. The 2024 championship's boxscore, retrieved like any current game:

{
  "id": "9edd5ade-180d-4a18-aad5-2aa53c7e4d62",
  "status": "closed",
  "scheduled": "2024-06-16T21:00:00+00:00",
  "sr_id": "sr:match:50655003",
  "title": "UFL Championship",
  "quarter": 4,
  "clock": "00:00",
  "scoring": [
    {
      "period_type": "quarter",
      "id": "7298f7c7-2563-4e00-8260-f224799383c8",
      "number": 1,
      "sequence": 1,
      "home_points": 0,
      "away_points": 0
    },
    {
      "period_type": "quarter",
      "id": "00910680-b0f1-4995-84f7-2b74c48f7c23",
      "number": 2,
      "sequence": 2,
      "home_points": 0,
      "away_points": 8
    },
    {
      "period_type": "quarter",
      "id": "890ff332-2a6f-4070-b359-62cd2e25afe1",
      "number": 3,
      "sequence": 3,
      "home_points": 0,
      "away_points": 14
    },
    {
      "period_type": "quarter",
      "id": "bf66ed11-0ed7-4929-b07d-2f9b71635d83",
      "number": 4,
      "sequence": 4,
      "home_points": 0,
      "away_points": 3
    }
  ],
  "summary": {
    "season": {
      "id": "e67a7c79-1e58-4334-b26e-7317d2efa16f",
      "year": 2024,
      "type": "PST"
    },
    "home": {
      "id": "b7951020-c045-11ee-ad92-cf16c0a8aa31",
      "name": "Brahmas",
      "market": "San Antonio",
      "alias": "SA",
      "points": 0
    },
    "away": {
      "id": "f4305130-9675-11ec-8570-4594a07130f0",
      "name": "Stallions",
      "market": "Birmingham",
      "alias": "BHAM",
      "points": 25
    }
  }
}

The response is shown trimmed to the header and summary; the full payload carries the complete scoring plays, drives, and situation detail.


Past standings

Standings serve every season on file, in that season's structure. The 2024 table groups the eight teams into the XFL Conference and USFL Conference divisions, where 2026 plays a single UFL Conference table; build grouping from the response itself:

{
  "season": {
    "id": "885f1348-9da8-42e9-b0a3-e8620be24242",
    "year": 2024,
    "type": "REG"
  },
  "conferences": [
    {
      "id": "23f26d00-966b-11ec-aba0-0f22e7db39c9",
      "name": "UFL",
      "alias": "UFL",
      "divisions": [
        {
          "id": "cf16ca01-9675-11ec-b3cb-77bc504b6aa0",
          "name": "XFL Conference",
          "alias": "XFL",
          "teams": [
            {
              "id": "d4799bc0-c045-11ee-ad92-cf16c0a8aa31",
              "name": "Battlehawks",
              "market": "St. Louis",
              "alias": "STL",
              "sr_id": "sr:competitor:661855",
              "rank": {
                "conference": 2,
                "division": 1,
                "clinched": "division"
              },
              "wins": 7,
              "losses": 3,
              "ties": 0,
              "win_pct": 0.7,
              "points_for": 260,
              "points_against": 202,
              "strength_of_schedule": {
                "sos": 0.47,
                "wins": 47,
                "total": 100
              },
              "strength_of_victory": {
                "sov": 0.4,
                "wins": 28,
                "total": 70
              },
              "streak": {
                "type": "win",
                "length": 1,
                "desc": "Won 1"
              },
              "records": [
                {
                  "category": "road",
                  "wins": 2,
                  "losses": 3,
                  "ties": 0,
                  "win_pct": 0.4,
                  "points_for": 140,
                  "points_against": 120
                },
                {
                  "category": "home",
                  "wins": 5,
                  "losses": 0,
                  "ties": 0,
                  "win_pct": 1.0,
                  "points_for": 120,
                  "points_against": 82
                },
                {
                  "category": "division",
                  "wins": 5,
                  "losses": 1,
                  "ties": 0,
                  "win_pct": 0.833,
                  "points_for": 164,
                  "points_against": 129
                }
              ]
            }
          ]
        },
        {
          "id": "e63229f1-9675-11ec-ad67-9189b3965ff6",
          "name": "USFL Conference",
          "alias": "USFL",
          "teams": [
            {
              "id": "f4305130-9675-11ec-8570-4594a07130f0",
              "name": "Stallions",
              "market": "Birmingham",
              "alias": "BHM",
              "sr_id": "sr:competitor:882409",
              "rank": {
                "conference": 1,
                "division": 1,
                "clinched": "division"
              },
              "wins": 9,
              "losses": 1,
              "ties": 0,
              "win_pct": 0.9,
              "points_for": 265,
              "points_against": 180,
              "strength_of_schedule": {
                "sos": 0.41,
                "wins": 41,
                "total": 100
              },
              "strength_of_victory": {
                "sov": 0.378,
                "wins": 34,
                "total": 90
              },
              "streak": {
                "type": "win",
                "length": 1,
                "desc": "Won 1"
              },
              "records": [
                {
                  "category": "road",
                  "wins": 4,
                  "losses": 1,
                  "ties": 0,
                  "win_pct": 0.8,
                  "points_for": 127,
                  "points_against": 75
                },
                {
                  "category": "home",
                  "wins": 5,
                  "losses": 0,
                  "ties": 0,
                  "win_pct": 1.0,
                  "points_for": 138,
                  "points_against": 105
                },
                {
                  "category": "division",
                  "wins": 6,
                  "losses": 0,
                  "ties": 0,
                  "win_pct": 1.0,
                  "points_for": 179,
                  "points_against": 104
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

The response is shown trimmed to each division's top row.



Historical Retrieval Workflow

Historical Retrieval WorkflowWalk the catalog, load each season, drill into games
CatalogSeasonsevery year and season type on file
Per seasonSeason SchedulePostgame StandingsSeasonal StatisticsREG and PST per year
Per gameGame BoxscorePlay-by-PlayGame Statisticslocal store
Dashed pills = optional depth. Every game in a completed season reads closed, so one pass per feed captures its final state.


Best Practices

  • Key stored seasons by the season id from the catalog and address them by {season_year}/{season_type}
  • Store historical rows by GUID: team GUIDs are stable across seasons even where markets, names, aliases, and groupings changed, as covered in ID Handling
  • Load a completed season once and treat the result as final; spend polling budget on the live season

Did this page help you?