Integration GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

Update Frequencies

Intro

Soccer API endpoints update at a variable frequency, in terms of both its cache and its data.

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 Soccer API solution. TTL is focused on the validity of cached data to optimize performance, whereas data updates are concerned with the actual data within the API.


Time-to-Live (TTL)

Time-to-Live (TTL) is a mechanism used to define the lifespan of data in a cache or network. It specifies the duration for which the data remains valid and can be reused. Once the TTL expires, the data could be stale and must be re-fetched.

You can find the TTL for each RESTful feed in the response header of a request under Cache-Control. A response of public, must-revalidate, max-age=300 signifies a time-to-live of 300 seconds.


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 Soccer data will affect your suggested request frequency.



Additional Frequency Resources

Soccer API responses also provide etag headers. Use the etags header to check if the content has changed between requests.

< HTTP/2 200 
< content-type: application/xml;charset=utf-8
< content-length: 884005
< date: Wed, 03 Jul 2024 18:21:13 GMT
< x-amzn-requestid: 87355d21-5a20-429a-95e9-b36d406a992f
< strict-transport-security: max-age=15724800; includeSubDomains
< x-amzn-remapped-content-length: 884005
< content-language: en
< x-amzn-remapped-connection: close
< x-amz-apigw-id: aWR3wGSRIAMEddQ=
< cache-control: public, must-revalidate, max-age=120
< etag: "2b358d2fe60303e7bbd1be3d64a37cfe"
< x-via: Delivery-Proxy
< x-amzn-trace-id: Root=1-66859697-752ac4fa2c40a4586900aa76;Parent=667fb8ce9acca5af;Sampled=0;lineage=b9fe645c:0
< x-amzn-remapped-date: Wed, 03 Jul 2024 18:21:13 GMT
< via: 1.1 72b77c557ac4c265c32d99bdef4e9d6a.cloudfront.net (CloudFront), 1.1 d1b7c750b45b2751c2c1a34c2f5af9ec.cloudfront.net (CloudFront)
< x-amz-cf-pop: IAD79-C3
< vary: Accept-Encoding
< x-cache: Hit from cloudfront
< x-amz-cf-pop: ORD58-P6
< x-amz-cf-id: -u_iAJXYbBsYDq3ex20s2Sj7z0m-yIx5CDRpGHIPxz4k58-Pl-857A==
< age: 13
< HTTP/2 200 
< content-type: application/xml;charset=utf-8
< content-length: 884005
< date: Wed, 03 Jul 2024 18:32:17 GMT
< x-amzn-requestid: 0211fcbe-b272-49fc-9c2e-bc8c8fded090
< strict-transport-security: max-age=15724800; includeSubDomains
< x-amzn-remapped-content-length: 884005
< content-language: en
< x-amzn-remapped-connection: close
< x-amz-apigw-id: aWTfeFFkIAMEvvA=
< cache-control: public, must-revalidate, max-age=120
< etag: "94bf0a9737dd296c3ebf95f0b9de9ea5"
< x-via: Delivery-Proxy
< x-amzn-trace-id: Root=1-6685992f-41c8513b6c9423d36b717894;Parent=7c945e91890c1d79;Sampled=0;lineage=b9fe645c:0
< x-amzn-remapped-date: Wed, 03 Jul 2024 18:32:17 GMT
< via: 1.1 c3fbf93d9b0f1f9b36fcc420314f3186.cloudfront.net (CloudFront), 1.1 049d2c2e11b2a18bd6ce7ab8a5981ed2.cloudfront.net (CloudFront)
< x-amz-cf-pop: IAD79-C3
< vary: Accept-Encoding
< x-cache: Miss from cloudfront
< x-amz-cf-pop: ORD58-P6
< x-amz-cf-id: wjObvD9E5r97H03nJ95mPb1bmnnTOaLoLMtX9kOptCpyLqBQvz3Wpg==


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 Soccer (and Soccer Extended) API endpoint, as well as our recommended pulling frequency.

🚧

Note on Update Frequencies by Tier

Update frequencies in the table below reflect Tier 1 league coverage. Since coverage levels vary across tiers, data from lower-tier leagues may update less frequently.

EndpointTTL / CacheData UpdatesRecommended Pull
(Non-Live)
Recommended Pull
(Live)
Competition Info300 secondsTournaments are added within 4 hours of official publicationPull on an as needed basisNot applicable
Competition Seasons300 secondsTournaments are added within 4 hours of official publicationPull on an as needed basisNot applicable
Competitions300 secondsTournaments are added within 4 hours of official publicationPull on an as needed basisNot applicable
Competitor Profile300 secondsPlayer/roster data checks occur two weeks before the competition startPull on an as needed basisNot applicable
Competitor Schedules300 secondsSchedules are added within 4 hours of official publication

Results are updated when matches are closed ("status": "closed")
Pull every hour or less, depending on your use case

Note that this feed should be used for schedule info prior to a match start. For status of a live match, reference a "sport event" endpoint
Pull ~5 minutes after a match has closed to receive the quickest result information
Competitor Summaries300 secondsSchedules are added within 4 hours of official publication

Statistics are updated when matches are closed ("status": "closed")
Pull every hour or less, depending on your use case

Note that this feed should be used for schedule info prior to a match start. For status of a live match, reference a "sport event" endpoint
Pull ~5 minutes after a match has closed to receive the quickest stat updates
Competitor vs Competitor60 secondsSchedules are added within 4 hours of official publication

Statistics are updated when matches are closed ("status": "closed")
Pull every hour or less, depending on your use case

Note that this feed should be used for schedule info prior to a match start. For status of a live match, reference a "sport event" endpoint
Pull ~1 minute after a match has closed to receive the quickest updates
Daily Schedules1 secondSchedules are added within 4 hours of official publication

Match status and scores are updated in realtime
Pull every hour or less, depending on your use caseCan request as fast as every second (matching the TTL) when matches are live

However, for more comprehensive match statistics and events, use a "sport event" or "live" feed
Daily Summaries300 secondsSchedules are added within 4 hours of official publication

Statistics are updated as events occur during matches
Pull every hour or less, depending on your use case

Note that this feed should be used for schedule info prior to a match start. For status of a live match, reference a "sport event" endpoint
Can request as fast as every 300s (matching the TTL) when matches are live

However, for quicker and more comprehensive match statistics, use a "sport event" or "live" feed
League Timeline300 secondsStatistics are updated as events occur during matchesPull every hour or less, depending on your use caseCan request as fast as every 300s (matching the TTL) when matches are live
Live Schedules1 secondRealtimeFeed can be ignored until a few minutes before kickoff.

Utilize the Sport Event Updated feed to capture data changes after a match has ended
Can request as fast as every second (matching the TTL) when a match is live
Live Summaries1 secondRealtimeFeed can be ignored until a few minutes before kickoff

Utilize the Sport Event Updated feed to capture data changes after a match has ended
Can request as fast as every second (matching the TTL) when a match is live
Live Timelines1 secondRealtimeFeed can be ignored until a few minutes before kickoff

Utilize the Sport Event Updated feed to capture data changes after a match has ended
Can request as fast as every second (matching the TTL) when a match is live
Live Timelines Data1 secondRealtimeFeed can be ignored until a few minutes before kickoff

Utilize the Sport Event Updated feed to capture data changes after a match has ended
Can request as fast as every second (matching the TTL) when a match is live
Competitor Mappings300 secondsData updates as relevant changes are made to APIPull on an as needed basisNot applicable
Player Mappings300 secondsData updates as relevant changes are made to APIPull on an as needed basisNot applicable
Player Merge Mappings300 secondsData updates as relevant changes are made to APIPull on an as needed basisNot applicable
Player Profile300 secondsPlayer data checks occur two weeks before competition startPull on an as needed basisNot applicable
Player Schedules300 secondsSchedules and results are updated when matches are closed ("status": "closed")Pull every hour or less, depending on your use casePull ~5 minutes after a match has closed to receive the quickest result information
Player Summaries300 secondsSchedules and statistics are updated when matches are closed ("status": "closed")Pull every hour or less, depending on your use casePull ~5 minutes after a match has closed to receive the latest stat information
Season Competitors300 secondsData check two weeks before competition startPull on an as needed basisNot applicable
Season Form Standings60 secondsGoal differentials are updated as goals are scored

Result statistics (wins, losses, ties) are updated when matches are closed ("status": "closed")
Pull every hour or less, depending on your use casePull ~1 minute after a match has closed for the latest match results and splits
Season Info300 secondsTournaments are added within 4 hours of official publicationPull on an as needed basisNot applicable
Season Leaders300 secondsStatistics are updated when matches are closed ("status": "closed")Pull every hour or less, depending on your use casePull ~5 minutes after a match has closed to receive the latest stat information
Season Lineups30 secondsSchedules are added within 4 hours of official publication

Lineups are typically available up to one hour before kickoff and up to 15 minutes after the match begins
Pull every hour or less, depending on your use caseCan request as fast as every 30 seconds (matching the TTL) when a matches are live

However, for quicker lineup and substitution data, pull the Sport Event Timeline and Sport Event Lineups feeds
Season Links300 secondsTournaments are added within 4 hours of official publicationPull on an as needed basisPull ~5 minutes after a match has closed to receive the quickest updates
Season Missing Players300 secondsPlayer data checks occur two weeks before competition startPull on an as needed basisNot applicable
Season Over/Under Statistics300 secondsStatistics are updated when matches are closed ("status": "closed")Pull every hour or less, depending on your use casePull ~5 minutes after a match has closed to receive the latest stat information
Season Players300 secondsPlayer data checks occur two weeks before competition startPull on an as needed basisNot applicable
Season Probabilities60 secondsProbabilities added within four hours after official publishPull every hour or less, depending on your use casePull ~1 minute after a match has closed for the latest probabilities update
Season Schedule300 secondsSchedules are added within 4 hours of official publication

Scores are updated as goals 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 match start. For status of a live game, reference a "sport event" endpoint
Can request as fast as every 300 seconds (matching the TTL) during matches

However, for quicker scoring updates, reverence a "live" or "sport event" endpoint
Season Standings10 secondsRankings and goal differentials update as goals are scoredPull every hour or less, depending on your use case.Can request as fast as every 10 seconds (matching the TTL) during matches
Season Summaries300 secondsSchedules are added within 4 hours of official publication

Statistics are updated as match events occur
Pull every hour or less, depending on your use case

Note that this feed should be used for schedule info prior to a match start. For status of a live match, reference a "sport event" endpoint
Can request as fast as every 300 seconds (matching the TTL) during matches

However, for quicker stat updates, reverence a "live" or "sport event" endpoint
Season Transfers300 secondsTransfer updates are available within 24 hours after official publicationPull every hour or less, depending on your use caseNot applicable
Seasonal Competitor Players30 secondsStatistics are updated as match events occurPull on an as needed basisNot applicable
Seasonal Competitor Statistics30 secondsStatistics updated in realtimePull on an as needed basisCan request as fast as every 30 seconds (matching the TTL) during matches
Seasons300 secondsTournaments are added within 4 hours of official publicationPull on an as needed basisNot applicable
Sport Event Fun Facts300 secondsFacts can be added up to a week before the matchFor the earliest access to match facts, make your first request within five days of the confirmed match start.

Facts remain accessible at any time after they become available.
For the earliest access to match facts, make your first request within five days of the confirmed match start.

Facts remain accessible at any time after they become available.
Sport Event Lineups1 secondLineups are typically available up to one hour before kickoff and up to 15 minutes after the match begins

Lineup changes during a match are updated in realtime.
Lineups should start to be requested 75 minutes before the scheduled start

Can request as fast as every 1 second (matching the TTL) before a match starts
Can request as fast as every 1 second (matching the TTL) during the match to capture any lineup changes.
Sport Event Summary1 secondRealtimeFeed can be ignored until a few minutes before kickoff, depending on your use case

Utilize the Sport Event Updated feed to capture data changes after a match has ended
Can request as fast as every 1 second (matching the TTL) when a match is live
Sport Event Timeline1 secondRealtimeFeed can be ignored until a few minutes before kickoff, depending on your use case

Utilize the Sport Event Updated feed to capture data changes after a match has ended
Can request as fast as every 1 second (matching the TTL) when a match is live
Sport Events Created60 secondsLast 24 hoursPull every hour or less depending on your use case.Not applicable
Sport Events Removed60 secondsLast 24 hoursPull every hour or less depending on your use caseNot applicable
Sport Events Updated60 secondsLast 24 hoursPull every hour or less depending on your use caseNot applicable
Live Probabilities1 secondRealtimePull on an as needed basisCan request as fast as every 1 second (matching the TTL) when a match is live
Season Outright Probabilities60 secondsInitial season outright probabilities are added within four hours of official publication.

Outright probabilities are updated when matches are closed ("status": "closed")
Pull every hour or less depending on your use casePull ~1 minute after a match has closed for the latest probabilities update
Sport Event Probabilities1 secondRealtimePull on an as needed basisCan request as fast as every 1 second (matching the TTL) when a match is live
Sport Event Upcoming Probabilities1 secondRealtimePull every hour or less depending on your use caseNot applicable
Timeline Probabilities1 secondRealtimePull on an as needed basisCan request as fast as every 1 second (matching the TTL) when a match is live

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.