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
| Feed | Scope | Use |
|---|---|---|
| Season Schedule | {season_year}/{season_type} | The full season in one response |
| Weekly Schedule | season + {week_number} | One week, plus the deleted_games list |
| Current Season Schedule | none | The current season without knowing the year |
| Current Week Schedule | none | The current week without tracking week numbers |
| Seasons | none | Season catalog with dates and statuses |
High-Level Workflow
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:
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_gameson every Weekly Schedule pull - Treat
time-tbdandflex-schedulekickoff 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
Updated 11 days ago
