Update Frequencies
Intro
Each Soccer API endpoint updates at a variable frequency, in terms of both its cache and its data.
For example, a Sport Event endpoint may have a 1 second cache during a live game and a longer cache outside of a live game. Alternatively, the Season Leaders endpoint may had a 300s second cache, but the data within will only update when matches 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 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 API endpoint, as well as our recommended pulling frequency.
Endpoint | TTL / Cache | Data Updates | Recommended Pull (Non-Live) | Recommended Pull (Live) |
---|---|---|---|---|
Competition Info | 300 seconds | Tournaments are added within 4 hours after official publish | Pull on an as needed basis | Not applicable |
Competition Seasons | 300 seconds | Tournaments are added within 4 hours after official publish | Pull on an as needed basis | Not applicable |
Competitions | 300 seconds | Tournament added within 4 hours after official publish | 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 | Schedule added within four hours after official publish | 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. | Not applicable |
Competitor Summaries | 300 seconds | Schedule added within four hours after official publish Statistics update in realtime | 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. | Not applicable |
Competitor vs Competitor | 60 seconds | Schedule added within four hours after official publish | Pull on an as needed basis | Not applicable |
Daily Schedules | 1 second | Schedule added within four hours after official publish | 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. | Not applicable |
Daily Summaries | 300 seconds | Schedule added within four hours after official publish Statistics update in realtime | 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. | Not applicable |
League Timeline | 300 seconds | Statistics are updated shortly after a match moving to closed | Pull every hour or less, depending on your use case. | Not applicable |
Live Schedules | 1 second | Realtime | Not applicable | Can request as fast as every 1 second (matching the TTL) when a match is live. |
Live Summaries | 1 second | Realtime | Not applicable | Can request as fast as every 1 second (matching the TTL) when a match is live. |
Live Timelines | 1 second | Realtime | Not applicable | Can request as fast as every 1 second (matching the TTL) when a match is live. |
Live Timelines Data | 1 second | Realtime | Not applicable | Can request as fast as every 1 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 | Schedule added within four hours after official publish. | Pull every hour or lease, 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. | Not applicable |
Player Summaries | 300 seconds | Schedule added within four hours after official publish Statistics update in realtime | 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. | Not applicable |
Season Competitors | 300 seconds | Player Data check two weeks before competition start | Pull on an as needed basis | Not applicable |
Season Form Standings | 60 seconds | Standings are updated when matches are set to closed . | Pull every hour or less, depending on your use case | Not applicable |
Season Info | 300 seconds | Season information is added within four hours after official publish. | Pull on an as needed basis | Not applicable |
Season Leaders | 300 seconds | Statistics update in realtime | Pull every hour or less, depending on your use case | Not applicable |
Season Lineups | 30 seconds | Schedule and lineup information added within four hours after official publish | Pull every hour or less, depending on your use case | Not applicable |
Season Links | 300 seconds | Bracket information is updated within four hours after official publish | Pull on an as needed basis | Not applicable |
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 update in realtime | Pull every hour or less, depending on your use case | Not applicable |
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. | Not applicable |
Season Schedule | 300 seconds | Schedules added within four hours after official publish | 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. | Not applicable |
Season Standings | 10 seconds | Live: rankings and GD changes as goals are scored | Pull every hour or less, depending on your use case. | Can request as fast as every 10 second (matching the TTL) during matches. |
Season Summaries | 300 seconds | Schedule added within 4 hours after official publish Statistics update in realtime | 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. | Not applicable |
Season Transfers | 300 seconds | Transfer updates available within 24 hours after official publish | Pull every hour or less, depending on your use case. | Not applicable |
Seasonal Competitor Players | 300 seconds | Player data checks occur two weeks before competition start. | Pull on an as needed basis | Not applicable |
Seasonal Competitor Statistics | 30 seconds | Statistics updated in realtime | Pull every hour or less, depending on your use case. | Not applicable |
Seasons | 300 seconds | Season information added within four hours of official publish | Pull on an as needed basis | Not applicable |
Sport Event Fun Facts | 300 seconds | Facts are added shortly before the match | Pull on an as needed basis | Pull on an as needed basis |
Sport Event Lineups | 1 second | Realtime. Data is added within one hour prior to and 15 min AFTER kickoff | 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) before a match starts. |
Sport Event Summary | 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 Timeline | 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 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 |
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 about 18 hours ago