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.
Endpoint | TTL / Cache | Data Updates | Recommended Pull (Non-Live) | Recommended Pull (Live) |
---|---|---|---|---|
Competition Info | 300 seconds | Tournaments are added within 4 hours of official publication | Pull on an as needed basis | Not applicable |
Competition Seasons | 300 seconds | Tournaments are added within 4 hours of official publication | Pull on an as needed basis | Not applicable |
Competitions | 300 seconds | Tournaments are added within 4 hours of official publication | Pull on an as needed basis | Not applicable |
Competitor Profile | 300 seconds | Player/roster data checks occur two weeks before the competition start | Pull on an as needed basis | Not applicable |
Competitor Schedules | 300 seconds | Schedules 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 Summaries | 300 seconds | Schedules 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 Competitor | 60 seconds | Schedules 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 Schedules | 1 second | Schedules 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 case | Can 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 Summaries | 300 seconds | Schedules 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 Timeline | 300 seconds | Statistics are updated as events occur during matches | Pull every hour or less, depending on your use case | Can request as fast as every 300s (matching the TTL) when matches are live |
Live Schedules | 1 second | Realtime | Feed 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 Summaries | 1 second | Realtime | Feed 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 | 1 second | Realtime | Feed 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 Data | 1 second | Realtime | Feed 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 Mappings | 300 seconds | Data updates as relevant changes are made to API | Pull on an as needed basis | Not applicable |
Player Mappings | 300 seconds | Data updates as relevant changes are made to API | Pull on an as needed basis | Not applicable |
Player Merge Mappings | 300 seconds | Data updates as relevant changes are made to API | Pull on an as needed basis | Not applicable |
Player Profile | 300 seconds | Player data checks occur two weeks before competition start | Pull on an as needed basis | Not applicable |
Player Schedules | 300 seconds | Schedules and results are updated when matches are closed ("status": "closed" ) | Pull every hour or less, depending on your use case | Pull ~5 minutes after a match has closed to receive the quickest result information |
Player Summaries | 300 seconds | Schedules and statistics are updated when matches are closed ("status": "closed" ) | Pull every hour or less, depending on your use case | Pull ~5 minutes after a match has closed to receive the latest stat information |
Season Competitors | 300 seconds | Data check two weeks before competition start | Pull on an as needed basis | Not applicable |
Season Form Standings | 60 seconds | Goal 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 case | Pull ~1 minute after a match has closed for the latest match results and splits |
Season Info | 300 seconds | Tournaments are added within 4 hours of official publication | Pull on an as needed basis | Not applicable |
Season Leaders | 300 seconds | Statistics are updated when matches are closed ("status": "closed" ) | Pull every hour or less, depending on your use case | Pull ~5 minutes after a match has closed to receive the latest stat information |
Season Lineups | 30 seconds | Schedules 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 case | Can 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 Links | 300 seconds | Tournaments are added within 4 hours of official publication | Pull on an as needed basis | Pull ~5 minutes after a match has closed to receive the quickest updates |
Season Missing Players | 300 seconds | Player data checks occur two weeks before competition start | Pull on an as needed basis | Not applicable |
Season Over/Under Statistics | 300 seconds | Statistics are updated when matches are closed ("status": "closed" ) | Pull every hour or less, depending on your use case | Pull ~5 minutes after a match has closed to receive the latest stat information |
Season Players | 300 seconds | Player data checks occur two weeks before competition start | Pull on an as needed basis | Not applicable |
Season Probabilities | 60 seconds | Probabilities added within four hours after official publish | Pull every hour or less, depending on your use case | Pull ~1 minute after a match has closed for the latest probabilities update |
Season Schedule | 300 seconds | Schedules 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 Standings | 10 seconds | Rankings and goal differentials update as goals are scored | Pull every hour or less, depending on your use case. | Can request as fast as every 10 seconds (matching the TTL) during matches |
Season Summaries | 300 seconds | Schedules 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 Transfers | 300 seconds | Transfer updates are available within 24 hours after official publication | Pull every hour or less, depending on your use case | Not applicable |
Seasonal Competitor Players | 30 seconds | Statistics are updated as match events occur | Pull on an as needed basis | Not applicable |
Seasonal Competitor Statistics | 30 seconds | Statistics updated in realtime | Pull on an as needed basis | Can request as fast as every 30 seconds (matching the TTL) during matches |
Seasons | 300 seconds | Tournaments are added within 4 hours of official publication | Pull on an as needed basis | Not applicable |
Sport Event Fun Facts | 300 seconds | Facts can be added up to a week before the match | 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. | 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 Lineups | 1 second | Lineups 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 Summary | 1 second | Realtime | Feed 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 Timeline | 1 second | Realtime | Feed 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 Created | 60 seconds | Last 24 hours | Pull every hour or less depending on your use case. | Not applicable |
Sport Events Removed | 60 seconds | Last 24 hours | Pull every hour or less depending on your use case | Not applicable |
Sport Events Updated | 60 seconds | Last 24 hours | Pull every hour or less depending on your use case | Not applicable |
Live Probabilities | 1 second | Realtime | Pull on an as needed basis | Can request as fast as every 1 second (matching the TTL) when a match is live |
Season Outright Probabilities | 60 seconds | Initial 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 case | Pull ~1 minute after a match has closed for the latest probabilities update |
Sport Event Probabilities | 1 second | Realtime | Pull on an as needed basis | Can request as fast as every 1 second (matching the TTL) when a match is live |
Sport Event Upcoming Probabilities | 1 second | Realtime | Pull every hour or less depending on your use case | Not applicable |
Timeline Probabilities | 1 second | Realtime | Pull on an as needed basis | Can 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.
Updated 3 days ago