Integration GuidesReference Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

Pulling Schedules

Schedule feeds are the backbone of a UFL integration: they carry every game's ID, participants, venue, broadcast, weather, status, and (once games finish) quarter-by-quarter scoring. This scenario loads a season, keeps the near-term window fresh, and reconciles schedule changes.

This scenario is commonly used to:

  • Populate season and week schedule views
  • Discover game GUIDs for boxscore, play-by-play, and statistics drilldowns
  • Show final scores without polling game feeds
  • Detect postponements, reschedules, and deleted games


Relevant Feeds

FeedScopeUse
Season Schedule{season_year}/{season_type}The full season in one response
Weekly Scheduleseason + {week_number}One week, plus the deleted_games list
Current Season SchedulenoneThe current season without knowing the year
Current Week SchedulenoneThe current week without tracking week numbers
SeasonsnoneSeason catalog with dates and statuses


High-Level Workflow

Schedule WorkflowLoad the season once, then refresh the near-term window
BootstrapSeasonsSeason Schedulestore game and team GUIDs
RefreshCurrent Week ScheduleWeekly Schedulescores fill in when a game reaches complete
Reconciledeleted_gamesdrop listed IDs; postponed games return as new IDs
Dashed pill = optional depth. Cadences come from Update Frequencies.


Integration Steps


1. Load the season

Pull the Season Schedule for the season and type you cover. The response nests weeks[], each with games[]. Store the game GUIDs, team GUIDs, and scheduled times; a finished game also carries scoring with quarter-by-quarter points:

{
  "id": "4ee5ece0-6f0b-11f0-b1e6-2dad3ff60df1",
  "year": 2026,
  "type": "REG",
  "name": "REG",
  "weeks": [
    {
      "id": "841dbf60-6f0f-11f0-8e93-47bfe41b3663",
      "sequence": 1,
      "title": "1",
      "games": [
        {
          "id": "5760df8f-cb02-4592-aaa8-56f7e41986b1",
          "status": "closed",
          "scheduled": "2026-03-28T00:00:00+00:00",
          "entry_mode": "LDE",
          "sr_id": "sr:match:68165530",
          "game_type": "regular",
          "conference_game": false,
          "duration": "2:50",
          "venue": {
            "id": "9e41a750-b8f0-11f0-8d80-75dca144275c",
            "name": "Lynn Family Stadium",
            "city": "Louisville",
            "state": "KY",
            "country": "USA",
            "zip": "40206",
            "address": "350 Adams Street",
            "capacity": 15304,
            "surface": "turf",
            "roof_type": "outdoor",
            "sr_id": "sr:venue:55649",
            "location": {
              "lat": "38.259846",
              "lng": "-85.733223"
            }
          },
          "home": {
            "id": "ff1f47e0-b8ef-11f0-9440-2f32b8d49d12",
            "name": "Louisville Kings",
            "alias": "LOU",
            "game_number": 1,
            "sr_id": "sr:competitor:1320808"
          },
          "away": {
            "id": "f4305130-9675-11ec-8570-4594a07130f0",
            "name": "Birmingham Stallions",
            "alias": "BHM",
            "game_number": 1,
            "sr_id": "sr:competitor:882409"
          },
          "broadcast": {
            "network": "FOX"
          },
          "time_zones": {
            "venue": "US/Eastern",
            "home": "US/Eastern",
            "away": "US/Central"
          },
          "weather": {
            "condition": "Partly cloudy",
            "humidity": 65,
            "temp": 46,
            "wind": {
              "speed": 12,
              "direction": "NNW"
            }
          },
          "scoring": {
            "home_points": 13,
            "away_points": 15,
            "periods": [
              {
                "period_type": "quarter",
                "id": "fbe1791c-cda5-4c2e-aa23-67ee0b22f798",
                "number": 1,
                "sequence": 1,
                "home_points": 7,
                "away_points": 6
              },
              {
                "period_type": "quarter",
                "id": "830e9004-5b4e-40e4-848f-4c9319f16d97",
                "number": 2,
                "sequence": 2,
                "home_points": 0,
                "away_points": 3
              },
              {
                "period_type": "quarter",
                "id": "86604d73-7345-4732-b73f-7078e6b33691",
                "number": 3,
                "sequence": 3,
                "home_points": 3,
                "away_points": 0
              },
              {
                "period_type": "quarter",
                "id": "a3e944ee-c149-41b0-852f-d4ba887f76d7",
                "number": 4,
                "sequence": 4,
                "home_points": 3,
                "away_points": 6
              }
            ]
          }
        }
      ]
    }
  ]
}

The response is shown trimmed to the opening game; the full feed returns all ten weeks with every game. The entry's scoring, venue, and broadcast fields render directly into a finished-game card; club marks are placeholders for your own or licensed assets:

FINALWeek 1 · 2026-03-28
Q1Q2Q3Q4T
BHMBirmingham Stallions630615
LOULouisville Kings703313
Lynn Family Stadium · FOX

2. Refresh the near-term window

During the season, the convenience feeds keep the active window fresh without date math. Current Week Schedule returns the week in play; between seasons it continues to serve the final week of the most recently completed season:

{
  "id": "4123d3de-ea19-4e5a-9320-d29026eb3df6",
  "year": 2026,
  "type": "PST",
  "name": "PST",
  "week": {
    "id": "9f36f25e-246f-4e9a-a1ef-96d169cc3337",
    "sequence": 2,
    "title": "United Bowl",
    "games": [
      {
        "id": "475db4da-d8a9-49ee-b7a4-1239f916533a",
        "status": "closed",
        "scheduled": "2026-06-13T19:00:00+00:00",
        "entry_mode": "LDE",
        "sr_id": "sr:match:71976470",
        "game_type": "playoff",
        "conference_game": false,
        "title": "United Bowl",
        "neutral_site": true,
        "venue": {
          "id": "59e88b40-c046-11ee-9772-5f005754c5a2",
          "name": "Audi Field",
          "city": "Washington",
          "state": "DC",
          "sr_id": "sr:venue:27207"
        },
        "home": {
          "id": "ff1f47e0-b8ef-11f0-9440-2f32b8d49d12",
          "name": "Louisville Kings",
          "alias": "LOU",
          "sr_id": "sr:competitor:1320808"
        },
        "away": {
          "id": "a3407150-c045-11ee-b66f-5d382d09dbaf",
          "name": "DC Defenders",
          "alias": "DC",
          "sr_id": "sr:competitor:661851"
        },
        "scoring": {
          "home_points": 27,
          "away_points": 20
        }
      }
    ]
  }
}

The response is shown trimmed to the game's core fields.


3. Read scores from the schedule

Game and period scores are added to schedule feeds when a game's status reaches complete. For a scores view, this means the schedule alone is enough; reserve the Game Boxscore for live windows and drive-level detail.


4. Reconcile deletions and reschedules

The Weekly Schedule and Season Schedule carry a deleted_games array listing IDs that no longer belong to the schedule; drop them from your store (the Daily Change Log lists the same removals by day). A postponed game's makeup arrives as a new game ID, so keep re-pulling the affected week until the makeup appears:

{
  "id": "4ee5ece0-6f0b-11f0-b1e6-2dad3ff60df1",
  "year": 2026,
  "type": "REG",
  "name": "REG",
  "week": {
    "id": "94bf1a30-6f0f-11f0-8ccc-9d0033d58091",
    "sequence": 10,
    "title": "10",
    "games": [
      {
        "id": "df7f8f01-d296-47cf-80c2-9dae929fef3b",
        "status": "closed",
        "scheduled": "2026-05-30T00:00:00+00:00",
        "entry_mode": "LDE",
        "sr_id": "sr:match:68165648",
        "game_type": "regular",
        "conference_game": false,
        "home": {
          "id": "d4799bc0-c045-11ee-ad92-cf16c0a8aa31",
          "name": "St. Louis Battlehawks",
          "alias": "STL",
          "sr_id": "sr:competitor:661855"
        },
        "away": {
          "id": "38355600-c045-11ee-8037-85feac748e1f",
          "name": "Dallas Renegades",
          "alias": "DAL",
          "sr_id": "sr:competitor:661843"
        },
        "scoring": {
          "home_points": 16,
          "away_points": 20
        }
      }
    ]
  },
  "deleted_games": []
}

The response is shown trimmed to one game; week_number is a zero-padded string (01 through 12).



Common Use Cases

  • Season view: Season Schedule once, refreshed daily
  • This week's slate: Current Week Schedule on a timer
  • Scores ticker: Current Week Schedule plus status-driven boxscore polling during game windows
  • Postseason: the PST schedule pairs with the tournament feeds on the Tracking Playoffs page


Best Practices

  • Key stored games by GUID and update rows in place; never key on kickoff time or matchup
  • Honor deleted_games on every Weekly Schedule pull
  • Treat time-tbd and flex-schedule kickoff times as provisional
  • Schedule feeds carry a roughly 10-minute cache TTL; a few pulls per hour keeps a schedule view current outside live windows, and the Update Frequencies chart carries the full cadence guidance

Did this page help you?