Tennis Scores & Fixtures API - ATP, WTA, ITF avatar

Tennis Scores & Fixtures API - ATP, WTA, ITF

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Tennis Scores & Fixtures API - ATP, WTA, ITF

Tennis Scores & Fixtures API - ATP, WTA, ITF

[💰 $1.00 / 1K] Get ATP, WTA, Challenger and ITF scores and fixtures, refreshed approximately hourly for live matches and twice daily for upcoming fixtures. Filter by player or tournament, track changes and send webhook alerts. No external API key required.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Fetch Finch

Fetch Finch

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Share

No API key required Pricing Usage Export Refresh HTTP API

Get ATP, WTA, Challenger and ITF scores and fixtures, refreshed approximately hourly for live matches and twice daily for upcoming fixtures. Filter by player or tournament, track changes and send webhook alerts. No external API key required.

What you can collect

  • Live tennis match snapshots and scores
  • Upcoming ATP and WTA fixtures, including Challenger and ITF-level events available in the feed
  • Singles and doubles matches
  • Player, tournament, round, status, score and scheduled start-time data
  • Stable match IDs for integrations and recurring monitoring
  • Cache freshness metadata on every result

This is a cached sports-data API, not a real-time scoring service. A live record can be up to approximately one refresh interval old, and coverage varies by tour, tournament and match.

Quick start

Current live matches

{
"mode": "liveMatches",
"emit": "all",
"maxItems": 100
}

Upcoming fixtures

{
"mode": "upcomingMatches",
"date": "",
"formats": ["singles"],
"maxItems": 200
}

An empty date returns all upcoming fixtures currently in the cache. To target one day, provide the desired UTC date in YYYY-MM-DD format; do not reuse a date from this README.

Find matches involving a player

{
"mode": "allCachedMatches",
"playerQuery": "Sinner",
"emit": "all",
"maxItems": 100
}

Monitor match changes

Set a stable monitorId and schedule the Actor with the same input. The Actor remembers the previous snapshot and can emit only new or changed matches.

{
"mode": "liveMatches",
"playerQuery": "Sinner",
"monitorId": "sinner-live",
"emit": "changes",
"maxCacheAgeMinutes": 90
}

Detected changes include:

  • newMatch
  • scoreChanged
  • statusChanged
  • startTimeChanged
  • oddsChanged when odds are available

The first run of a new monitor treats matching records as new. Later runs compare them with the saved monitor state.

Send webhook alerts

Provide an HTTPS endpoint to receive one JSON batch whenever matching changes are emitted.

{
"mode": "liveMatches",
"tournamentQuery": "Montreal",
"monitorId": "montreal-live",
"emit": "changes",
"webhookUrl": "https://example.com/tennis-alerts",
"webhookSecret": "YOUR_SIGNING_SECRET"
}

When webhookSecret is supplied, the request includes an X-Tennis-Monitor-Signature HMAC-SHA256 signature.

Filters

You can combine the following inputs:

  • mode: live matches, upcoming matches, or both
  • date: UTC match date in YYYY-MM-DD format; leave empty for all cached fixtures
  • eventIds: match IDs returned by an earlier run
  • playerQuery: case-insensitive player or team name
  • tournamentQuery: case-insensitive tournament name
  • statuses: in progress, not started, finished, canceled or postponed
  • formats: singles or doubles
  • maxItems: maximum number of dataset matches returned

Output and timestamps

Each dataset item represents one match and includes:

  • Match and source identifiers
  • Tournament, season and round
  • Home and away players or doubles teams
  • Match status and scheduled start time
  • Set, game and point score information when available
  • Match format and surface when available
  • Optional odds, statistics, timeline and point-by-point fields
  • Monitoring change types
  • Cache freshness information

Timestamp meanings:

  • startTime: scheduled match start supplied by the data feed, represented in ISO 8601 UTC
  • cacheUpdatedAt: when the shared live or fixtures snapshot was refreshed
  • scrapedAt: when the source snapshot was collected; it is not an individual browser scrape time
  • cacheAgeSeconds: age of the snapshot when your Actor run read it
  • isCacheStale: whether the snapshot exceeds your maxCacheAgeMinutes threshold

Stale records are returned rather than silently discarded, allowing workflows to detect a delayed refresh without losing the last available snapshot.

Pricing example

The Store price is $1 per 1,000 dataset matches, plus a $0.00005 Actor-start charge. Platform usage is included in this pricing; users are not charged a separate Apify usage fee.

For a run returning 100 matches, the event charges are approximately:

  • $0.100 for 100 dataset matches
  • $0.00005 for the Actor start
  • no separate platform-usage charge passed to the user
  • Estimated event total: $0.10005

Dataset-match charges apply to records returned by your run. The managed cache refreshes are private maintenance operations and are not counted as customer dataset matches. A run that returns no matches still incurs the $0.00005 Actor-start charge.

Coverage and freshness

Live snapshots are refreshed approximately hourly. Upcoming fixtures are refreshed twice daily. These intervals may improve as demand grows.

Coverage varies by tour, tournament and match. Odds, statistics, timelines, surface information and point-by-point data are optional and can be null. Do not use this Actor where delayed or incomplete sports data could create safety-critical or financial risk.

Usage notes

  • No external API credential is required from customers.
  • Use emit: "all" for complete filtered snapshots.
  • Use emit: "changes" with a stable monitorId for scheduled monitoring.
  • Check isCacheStale when freshness is important to your workflow.
  • Use narrow filters and an appropriate maxItems value to keep datasets compact.

This Actor aggregates data supplied by independent third-party sports-data services. It is not affiliated with or endorsed by ATP, WTA, ITF or any tournament organizer.