Integration GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

Update Frequencies

Intro

Each MLB API endpoint updates at a variable frequency, in terms of both its cache and its data.

For example, a Game endpoint may have a 3-second cache during a live game. After the game concludes, this shifts to a 600-second cache, and after seven days, to 4 hours. Alternatively, a Standings endpoint may have a 12-hour cache, with the data updating when games conclude.

Given your limited amount of API requests and QPS, these frequencies should be understood and factored into your pull rate.

Use this section to help determine the best pull frequency for your needs.



Time-to-Live (TTL) and Data Updates

Understanding the distinction between TTL and data updates is crucial for designing an efficient and reliable MLB API solution. TTL is focused on the length of time an object is cached, whereas data updates are concerned with the actual data within the API.


Time-to-Live (TTL)

Time-to-Live (TTL) defines the maximum duration a response may be served from cache before revalidation. TTL values are returned in the Cache-Control header for each REST feed. For example:

Cache-Control: public, must-revalidate, max-age=300

This indicates a TTL of 300 seconds.

TTL is an upper bound, not a guarantee. When underlying event data changes, our system proactively invalidates and replaces the cached object immediately, even if the TTL has not expired.


Data Updates

Data Updates refer to the changes made to the underlying data that the API provides access to. This can occur through various operations such as creating, updating, or deleting our sports data.

Data updates are critical to ensuring that the API delivers the most current and accurate information. Data entry workflows and processes specific to MLB data will affect your suggested request frequency.



Additional Frequency Resources

Visit our Headers documentation to learn how to interpret and use header responses to access the freshest sports data.



Frequency Chart

What is the right request frequency for your use? Which endpoints should you pull to get the most efficient use of your allotted calls?

The below chart provides answers to these questions, with a breakdown of the cache and data updates for every MLB API endpoint, as well as our recommended pulling frequency.

EndpointTTL / CacheData Updates

Recommended Pull

(Non-Live)

Recommended Pull

(Live)

Awards List4 hoursNew awards appear as they are added to the databasePull on an as-needed basis.Not applicable
Daily Boxscore

5 minutes for days with active games (games in non-closed status)

12 hours for days without active games

Realtime

Pull on an as-needed basis.

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case.

Utilize the Daily Change Log to capture data changes after a game has ended.

Can request as fast as every 5 minutes (matching the TTL) when a game is live
Daily Change Log
  • 15 minutes for current day
  • 1 hour for current month
  • 4 hours for current year
  • 12 hours for past years

Entries populate live for changes to teams, players, game statistics, schedules, and standings.

Start time of the log is 10:00:00 UTC; end time is 09:59:59 UTC

Pull every 4 hours, depending on your use case.Not applicable
Daily Schedule600 secondsSchedule info updates in realtime as changes are made.Pull every hour or less during the current day, depending on your use case.Not applicable
Daily Summary

5 minutes for days with active games (games in non-closed status)

12 hours for days without active games

Realtime

Pull on an as-needed basis.

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case.

Utilize the Daily Change Log to capture data changes after a game has ended.

Can request as fast as every 5 minutes (matching the TTL) when a game is live
Daily Transactions4 hoursTransactions update in realtime as they are entered.Pull every 4 hours, depending on your use case.Not applicable
Event Tracking

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

Realtime

Pull on an as-needed basis.

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case.

Utilize the Daily Change Log to capture data changes after a game has ended.

Can request as fast as every 3 seconds (matching the TTL) when a game is live.

Game feeds should be requested 10 minutes before the scheduled start.

Free Agents4 hoursUpdates in realtime as changes are made to rosters or player profiles.Pull every 4 hours, depending on your use case.Not applicable
Game Boxscore

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis.

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case.

Utilize the Daily Change Log to capture data changes after a game has ended.

Can request as fast as every 3 seconds (matching the TTL) when a game is live.

Game feeds should be requested 10 minutes before the scheduled start.

Game Extended Summary

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis.

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case.

Utilize the Daily Change Log to capture data changes after a game has ended.

Can request as fast as every 2 seconds (matching the TTL) when a game is live.

Game feeds should be requested 10 minutes before the scheduled start.

Game Pitch Metrics

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis.

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case.

Utilize the Daily Change Log to capture data changes after a game has ended.

Can request as fast as every 2 seconds (matching the TTL) when a game is live.

Game feeds should be requested 10 minutes before the scheduled start.

Game Play Statistics

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis.

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case.

Utilize the Daily Change Log to capture data changes after a game has ended.

Can request as fast as every 3 seconds (matching the TTL) when a game is live.

Game feeds should be requested 10 minutes before the scheduled start.

Game Play-by-Play

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis.

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case.

Utilize the Daily Change Log to capture data changes after a game has ended.

Can request as fast as every 2 seconds (matching the TTL) when a game is live.

Game feeds should be requested 10 minutes before the scheduled start.

Game Summary

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis.

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case.

Utilize the Daily Change Log to capture data changes after a game has ended.

Can request as fast as every 2 seconds (matching the TTL) when a game is live.

Game feeds should be requested 10 minutes before the scheduled start.

Glossary4 hoursNew data points and updates appear after development work is complete, typically during the offseason.Pull on an as-needed basis.Not applicable
Injuries4 hours

Injuries update based on the game day and injury reporting workflows.

See our Data Entry Workflow section for specific timings on injury updates.

Pull every hour or less, depending on your use case.Not applicable
League Depth Chart4 hoursDepth charts may update multiple times per week to remain current.Pull every hour or less, depending on your use case.Not applicable
League Hierarchy4 hoursHierarchy updates appear as they are updated in the database.Pull daily or less, depending on your use case.Not applicable
League Leaders4 hoursLeague leaders update around 5 minutes after a game moves to closed.

Pull on an as-needed basis.

Utilize the Daily Change Log to capture data changes after a game has ended.

Pull 5-10 mins after a game moves to closed to receive the quickest updates
League Schedule4 hoursSchedule info updates in realtime as changes are made

Pull every hour or less, depending on your use case.

Note that this feed should be used for schedule info prior to a game start. For status of a live game, reference a "game" endpoint.

Not applicable
Officials4 hoursOfficials update in realtime as profiles change.Pull on an as-needed basis.Not applicable
Player Profile15 minutes for active players; else 12 hoursSeasonal stats update on a 5-minute timer after a game moves to closed.

Pull on an as-needed basis.

Utilize the Daily Change Log to capture data changes after a game has ended.

Pull 5-10 mins after a game is moved to closed to receive the quickest updates
Rankings12 hours

Rankings update nightly after all games finish.

As the playoffs near, the clinched data point updates about 5 minutes after a game closes.

Pull every hour or less depending on your use case.Pull 2-5 mins after a game moves to complete to receive the quickest updates
Seasonal Awards12 hoursAward entries are added as they are announcedPull every hour or less, depending on your use case.Not applicable
Seasonal Pitch Metrics12 hoursSeasonal stats update on a 5-minute timer after a game moves to closed.

Pull on an as-needed basis.

Utilize the Daily Change Log to capture data changes after a game has ended.

Pull 5-10 mins after a game is moved to closed to receive the quickest updates
Seasonal Splits12 hoursSeasonal stats update on a 5-minute timer after a game moves to closed.

Pull on an as-needed basis.

Utilize the Daily Change Log to capture data changes after a game has ended.

Pull 5-10 mins after a game is moved to closed to receive the quickest updates
Seasonal Statistics12 hoursSeasonal stats update on a 5-minute timer after a game moves to closed

Pull on an as-needed basis.

Utilize the Daily Change Log to capture data changes after a game has ended.

Pull 5-10 mins after a game is moved to closed to receive the quickest updates
Seasons4 hours

New seasons appear as they are added to the database.

Season statuses update during the day of a status change.

Pull on an as-needed basis.Not applicable
Series Schedule

5 minutes for series with active games (games in non-closed status)

12 hours for series' without active games

Schedule info updates in realtime as changes are made.

The initial playoff schedule (with TBD matchups) will be available in August.

Pull on an as-needed basis.

Pull every hour or less, depending on your use case.

Note that this feed should be used for schedule info prior to a game start. For status of a live game, reference a "game" endpoint.

Series Statistics4 hoursSeries stats update around 5 minutes after a game moves to closed.

Pull on an as-needed basis.

Utilize the Daily Change Log to capture data changes after a game has ended.

Pull 5-10 mins after a game is moved to closed to receive the quickest updates
Series Summary4 hoursSeries stats update around 5 minutes after a game moves to closed.

Pull on an as-needed basis.

Utilize the Daily Change Log to capture data changes after a game has ended.

Pull 5-10 mins after a game is moved to closed to receive the quickest updates
Standings12 hoursStandings update within 2 minutes of each game moving to complete.Pull every hour or less, depending on your use case.Pull 2-5 mins after a game moves to complete to receive the quickest updates
Statcast Leaders12 hoursStatcast leaders update once daily at the beginning of each day.Pull on an as-needed basis.Not applicable
Team Depth Chart4 hoursDepth charts may update multiple times per week to remain current.Pull every hour or less, depending on your use case.Not applicable
Team Full Roster4 hoursTeam profiles update in realtime as rosters or player profiles changePull every hour or less, depending on your use case.Not applicable
Team Profile4 hoursTeam profiles update in realtime as rosters or player profiles change.Pull every hour or less, depending on your use case.Not applicable
Teams4 hoursNew teams appear as they are added to the database.Pull on an as-needed basis.Not applicable
Venues4 hoursVenues update in realtime as venue details change.Pull on an as-needed basis.Not applicable

Important Note

Pull recommendations are based on a typical customer's needs. We suggest starting with our recommended rate and adjusting as necessary according to your needs.






Did this page help you?