Integration GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

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 Only

Update 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)

Competition Info

300 seconds

Tournaments added at the end of the previous season

Pull on an as needed basis

Not applicable

Competition Seasons

300 seconds

Tournaments added at the end of the previous season

Pull on an as needed basis

Not applicable

Competitions

300 seconds

Tournaments added at the end of the previous season

Pull on an as needed basis

Not applicable

Competitions by Category

300 seconds

Tournaments added at the end of the previous season

Pull on an as needed basis

Not applicable

Competitor Merge Mappings

300 seconds

Player Data check 2 weeks before competition start

Pull on an as needed basis

Not applicable

Competitor Profile

300 seconds

Player Data check 2 weeks before competition start

Pull on an as needed basis

Not applicable

Competitor Summaries

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

Competitor vs Competitor

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

Complexes

300 seconds

Complexes set shortly before the draw

Pull on an as needed basis

Not applicable

Daily Summaries

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

Doubles Competitors Played

300 seconds

Player Data check 2 weeks before competition start

Pull on an as needed basis

Not appliable

Doubles Competitor Rankings

300 seconds

Rankings updated weekly on Mondays (except during multi-week tournaments such as Grand Slams)

  • *Monday (update day)**: Pull every few hours until the update is captured
  • Rest of the week*: Pull just once per day for confirmation or redundancy

Not applicable

Doubles Race Rankings

300 seconds

Rankings updated weekly on Mondays (except during multi-week tournaments such as Grand Slams)

  • *Monday (update day)**: Pull every few hours until the update is captured
  • Rest of the week*: Pull just once per day for confirmation or redundancy

Not appliable

Live Summaries

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

Live Timelines

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

Live Timelines Delta

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

Race Rankings

300 seconds

Rankings updated weekly on Mondays (except during multi-week tournaments such as Grand Slams)

  • Monday (update day): Pull every few hours until the update is captured
  • Rest of the week: Pull just once per day for confirmation or redundancy

Not applicable

Rankings

300 seconds

Rankings updated weekly on Mondays (except during multi-week tournaments such as Grand Slams)

  • Monday (update day): Pull every few hours until the update is captured
  • Rest of the week: Pull just once per day for confirmation or redundancy

Not applicable

Season Competitors

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

Season Info

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

Season Links

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

Season Probabilities

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

Season Standings

10s

Standings update at the same rate as match results since they are tied to a specific tournament (requires a season_id)

Pull less frequently (e.g., daily) for redundancy or confirmation.

Pull every 5-10 minutes during active play if showing live tables

Season Summaries

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

Seasons

300s

Tournaments added at the end of the previous season

Pull on an as needed basis

Not applicable

Sport Event Summary

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

Sport Event Timeline

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

Sport Events Created

60s

Match details are updated continuously

Pull every hour or less depending on your use case

Not applicable

Sport Events Removed

60s

Match details are updated continuously

Pull every hour or less depending on your use case

Not applicable

Sport Events Updated

60s

Match details are updated continuously

Pull every hour or less depending on your use case

Not applicable

Live Probabilities

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

Season Outright Probabilities

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.

Sport Event 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

Sport Event Upcoming Probabilities

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

Timeline 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