Update Frequencies
Intro
Each Tennis API endpoint updates 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 Tennis 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 Tennis data will affect your suggested request frequency.
Additional Frequency Resources
Tennis 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 Charts
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 Tennis API endpoint, as well as our recommended pulling frequency.
The Following Data is For Tier 1 OnlyUpdate frequencies in the table below reflect Tier 1 league coverage. Since coverage levels vary across tiers, data from lower-tier competitions/seasons may update less frequently.
Endpoint | TTL / Cache | Data Updates | Recommended Pull (Non-Live) | Recommended Pull (Live) |
---|---|---|---|---|
300 seconds | Tournaments added at the end of the previous season | Pull on an as needed basis | Not applicable | |
300 seconds | Tournaments added at the end of the previous season | Pull on an as needed basis | Not applicable | |
300 seconds | Tournaments added at the end of the previous season | Pull on an as needed basis | Not applicable | |
300 seconds | Tournaments added at the end of the previous season | Pull on an as needed basis | Not applicable | |
300 seconds | Player Data check 2 weeks before competition start | Pull on an as needed basis | Not applicable | |
300 seconds | Player Data check 2 weeks before competition start | Pull on an as needed basis | Not applicable | |
300 seconds | Draw added within 3 hrs of official release; fixtures checked continuously Draw changes shown within 2 hrs; newly scheduled matches appear within 30 mins Complexes set shortly before the draw | Pull every hour or less depending on your use case | Not applicable | |
60 seconds | Draw added within 3 hrs of official release; fixtures checked continuously Draw changes shown within 2 hrs; newly scheduled matches appear within 30 mins Complexes set shortly before the draw | Pull every hour or less depending on your use case | Not applicable | |
300 seconds | Complexes set shortly before the draw | Pull on an as needed basis | Not applicable | |
300 seconds | Draw added within 3 hrs of official release; fixtures checked continuously. Draw changes shown within 2 hrs; newly scheduled matches appear within 30 mins. Complexes set shortly before the draw. | Pull every hour or less depending on your use case | Not applicable | |
300 seconds | Player Data check 2 weeks before competition start | Pull on an as needed basis | Not appliable | |
300 seconds | Rankings updated weekly on Mondays (except during multi-week tournaments such as Grand Slams) |
| Not applicable | |
300 seconds | Rankings updated weekly on Mondays (except during multi-week tournaments such as Grand Slams) |
| Not appliable | |
1 second | Updates are made during live play and up to one hour after the match | Feed can be ignored until a few minutes before match start Use 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 | |
1 second | Updates are made during live play and up to one hour after the match | Feed can be ignored until a few minutes before match start Use 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 | |
1 second | Updates are made during live play and up to one hour after the match | Feed can be ignored until a few minutes before match start Use 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 | |
300 seconds | Rankings updated weekly on Mondays (except during multi-week tournaments such as Grand Slams) |
| Not applicable | |
300 seconds | Rankings updated weekly on Mondays (except during multi-week tournaments such as Grand Slams) |
| Not applicable | |
300s | Tournaments added at the end of the previous season Player Data check 2 weeks before competition start | Pull on an as needed basis | Not applicable | |
300s | Tournaments added at the end of the previous season Player Data check 2 weeks before competition start | Pull on an as needed basis | Not applicable | |
300s | Draw added within 3 hrs of official release; fixtures checked continuously. Draw changes shown within 2 hrs; newly scheduled matches appear within 30 mins. Complexes set shortly before the draw. | Pull every hour or less depending on your use case | Not applicable | |
60s | Probabilities are updated continuously | Pull on an as needed basis (e.g., pre-tournament or for periodic snapshots) | Every 1-5 minutes depending on your use case and how often you need refreshed probabilities | |
10s | Standings update at the same rate as match results since they are tied to a specific tournament (requires a | Pull less frequently (e.g., daily) for redundancy or confirmation. | Pull every 5-10 minutes during active play if showing live tables | |
300s | Updates are made during live play and up to one hour after the match | Pull on an as needed basis | Can request as fast as every 300 seconds (matching the TTL) when matches are live For even even faster updates for a specific live match, use the Sport Event Summary feed | |
300s | Tournaments added at the end of the previous season | Pull on an as needed basis | Not applicable | |
1s | Updates are made during live play and up to one hour after the match | Feed can be ignored until a few minutes before match start Use 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 | |
1s | Updates are made during live play and up to one hour after the match | Feed can be ignored until a few minutes before match start Use 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 | |
60s | Match details are updated continuously | Pull every hour or less depending on your use case | Not applicable | |
60s | Match details are updated continuously | Pull every hour or less depending on your use case | Not applicable | |
60s | Match details are updated continuously | Pull every hour or less depending on your use case | Not applicable | |
1s | Updates are made during live play | Feed can be ignored until a few minutes before match start | Can request as fast as every 1 second (matching the TTL) when a match is live | |
60s | Probabilities are updated continuously | Pull on an as-needed basis (e.g., pre-tournament or for periodic snapshots). | Every 1-5 minutes, depending on your use case and how often you need refreshed probabilities. | |
1s | Updates are made during live play | Pull on an as needed basis | Can request as fast as every 1 second (matching the TTL) when a match is live | |
1s | Probabilities are updated continuously | Pull on an as needed basis | Can request as fast as every 1 second (matching the TTL when a match is live | |
1s | Updates are made during live play | Pull on an as needed basis | Can request as fast as every 1 second (matching the TTL) when a match is live |
Updated 2 days ago