Discover/ATP Tour API
live

ATP Tour APIatptour.com

Access ATP Tour player profiles, career stats, rankings breakdowns, and match results via 9 structured endpoints. Filter by surface, year, rank range, and match type.

Endpoint health
verified 23h ago
get_player_stats
get_player_activity
get_player_profile
get_player_rankings
list_rankings
9/9 passing latest checkself-healing
Endpoints
9
Updated
23h ago

What is the ATP Tour API?

The ATP Tour API exposes 9 endpoints covering player profiles, serve/return statistics, rankings tables, points breakdowns, and match-by-match activity from atptour.com. get_player_profile returns biographical fields including coach, handedness, backhand style, height, and weight keyed by ATP player ID. Bulk endpoints like list_rankings_breakdown and list_rankings_activity let you pull data for an entire rank range in a single call rather than looping over individual players.

This call costs1 credit / call— charged only on success
Try it
ATP player ID (e.g. 's0ag' for Jannik Sinner, 'a0e2' for Carlos Alcaraz). Found in the player's profile URL on atptour.com.
api.parse.bot/scraper/1935c3a3-665d-4c07-a20e-34cb2f37c676/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/1935c3a3-665d-4c07-a20e-34cb2f37c676/get_player_profile?player_id=s0ag' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 9 totalmissing one? ·

Retrieve a player's biographical details, current ranking, career win-loss record, titles, and prize money. Returns one player per call keyed by their ATP player ID.

Input
ParamTypeDescription
player_idrequiredstringATP player ID (e.g. 's0ag' for Jannik Sinner, 'a0e2' for Carlos Alcaraz). Found in the player's profile URL on atptour.com.
Response
{
  "type": "object",
  "fields": {
    "age": "integer",
    "coach": "string or null",
    "plays": "string — handedness description",
    "backhand": "string — backhand style",
    "height_cm": "integer",
    "is_active": "boolean",
    "last_name": "string",
    "player_id": "string — uppercase ATP player ID",
    "weight_kg": "integer",
    "birth_city": "string",
    "birth_date": "string — ISO datetime",
    "first_name": "string",
    "turned_pro": "integer — year turned professional",
    "nationality": "string — country name",
    "profile_url": "string — relative URL to player profile",
    "doubles_rank": "integer or null",
    "singles_rank": "integer or null",
    "singles_ytd_won": "integer",
    "ytd_prize_money": "string — formatted with currency symbol",
    "nationality_code": "string — 3-letter country code",
    "singles_ytd_lost": "integer",
    "doubles_high_rank": "integer",
    "singles_high_rank": "integer",
    "career_prize_money": "string — formatted with currency symbol",
    "singles_career_won": "integer",
    "singles_ytd_titles": "integer",
    "singles_career_lost": "integer",
    "singles_career_titles": "integer",
    "doubles_high_rank_date": "string — ISO datetime",
    "singles_high_rank_date": "string — ISO datetime"
  },
  "sample": {
    "data": {
      "age": 24,
      "coach": "Simone Vagnozzi, Darren Cahill",
      "plays": "Right-Handed",
      "backhand": "Two-Handed",
      "height_cm": 191,
      "is_active": true,
      "last_name": "Sinner",
      "player_id": "S0AG",
      "weight_kg": 77,
      "birth_city": "San Candido, Italy",
      "birth_date": "2001-08-16T00:00:00",
      "first_name": "Jannik",
      "turned_pro": 2018,
      "nationality": "Italy",
      "profile_url": "/en/players/jannik-sinner/s0ag/overview",
      "doubles_rank": null,
      "singles_rank": 1,
      "singles_ytd_won": 44,
      "ytd_prize_money": "$6,853,344",
      "nationality_code": "ITA",
      "singles_ytd_lost": 3,
      "doubles_high_rank": 124,
      "singles_high_rank": 1,
      "career_prize_money": "$64,837,801",
      "singles_career_won": 365,
      "singles_ytd_titles": 6,
      "singles_career_lost": 89,
      "singles_career_titles": 30,
      "doubles_high_rank_date": "2021-09-27T00:00:00",
      "singles_high_rank_date": "2024-06-10T00:00:00"
    },
    "status": "success"
  }
}

About the ATP Tour API

Player Data

get_player_profile returns biographical details for one player per call using the ATP player ID (e.g. s0ag for Jannik Sinner, a0e2 for Carlos Alcaraz). Fields include age, coach, plays (handedness), backhand, height_cm, weight_kg, birth_city, and is_active. get_player_stats filters serve and return statistics by year (a 4-digit string or 'all' for career) and surface. It returns structured service_stats (aces, double faults, first serve percentage) and return_stats (break points converted, return games won percentage).

Rankings

list_rankings returns one row per player in a rank window defined by rank_range (e.g. '0-100'), with fields for rank, week-on-week rank movement, player ID, and points. You can pass a historical date_week (ISO date, Monday) to retrieve a past ranking week. list_rankings_breakdown extends this with each player's full Official Points breakdown — the tournament-by-tournament contributions — for the current week, across up to 100 ranks per call. get_player_rankings targets individual players (up to 5 comma-separated IDs) and supports both 'roll' (52-week ATP Rankings) and 'race' (ATP Race To Turin) via the rank_type parameter. All ranking endpoints accept match_type ('sgl' or 'dbl') to switch between singles and doubles.

Match Activity

get_player_activity returns a player's tournament results for a given year, including nested match-level detail: opponent, score, and round. Summary fields include won, lost, titles, and prize_money. list_rankings_activity scales this to a full rank range in one call, returning the same activity structure for every player in the window. list_rankings_breakdown_with_matches combines points breakdown data with the actual matches played in each contributing tournament, so you can see both the points earned and the results that generated them.

Photo and Bulk Endpoints

list_rankings_photos returns the profile photo URL (photo_url) and has_photo boolean for every player in a rank range, alongside the standard ranking-table fields. The response includes a players_with_photo count and a failed_players array listing any players whose image request did not succeed. Bulk endpoints (list_rankings_breakdown, list_rankings_photos, list_rankings_activity) all cap at a 100-rank window per call and report failures in a dedicated array rather than failing the whole response.

Reliability & maintenanceVerified

The ATP Tour API is a managed, monitored endpoint for atptour.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when atptour.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official atptour.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
23h ago
Latest check
9/9 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a live ATP singles rankings table with rank movement arrows using list_rankings and rank_change fields.
  • Compare serve statistics across clay, grass, and hard court for a player using get_player_stats with the surface filter.
  • Track year-to-date titles and prize money for top-100 players by combining list_rankings with get_player_activity.
  • Generate a points-to-defend calendar by reading the breakdown array from get_player_rankings.
  • Display player profile cards with headshots, nationality, and ranking using list_rankings_photos.
  • Analyse doubles rankings separately from singles by setting match_type to 'dbl' across any ranking endpoint.
  • Reconstruct how a player accumulated their current ranking points by using list_rankings_breakdown_with_matches to join tournament points with round-by-round match results.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does ATP Tour have an official developer API?+
ATP Tour does not publish a public developer API. atptour.com exposes player, ranking, and statistics pages to end users, but there is no documented API with keys, docs, or a developer portal available to third parties.
How do I retrieve rankings for a specific historical week rather than the current week?+
list_rankings and list_rankings_photos both accept a date_week parameter in ISO format (YYYY-MM-DD, the Monday the ranking was published, e.g. '2025-06-02'). Omitting date_week returns the most recent published ranking week. list_rankings_breakdown and list_rankings_breakdown_with_matches reflect the current week only and do not accept a historical date parameter.
What does the `breakdown` array in `get_player_rankings` contain?+
It contains one entry per tournament that contributes to the player's current ranking points. Each entry includes the event_class (the player's ranking section for that event) and the points earned. It is returned for the first player in the request; the players array carries summary totals (total_points, ytd_won, ytd_lost, ytd_titles, ytd_prize) for every requested player.
Does the API cover ATP Challenger or ITF tournament data?+
Not currently. The endpoints cover ATP Tour-level data as published on atptour.com — player profiles, rankings, and match activity at the tour level. Challenger and ITF data are not included. You can fork this API on Parse and revise it to add endpoints targeting those sections of the site.
What happens when a bulk endpoint cannot retrieve data for some players in the rank range?+
Bulk endpoints (list_rankings_breakdown, list_rankings_photos, list_rankings_activity, list_rankings_breakdown_with_matches) include a failed_players array listing each player whose individual request did not succeed, along with their player_id, rank, and the upstream_status_code. The rest of the response is still returned. list_rankings_breakdown_with_matches adds a separate failed_activity array for players where the activity lookup specifically failed.
Page content last updated . Spec covers 9 endpoints from atptour.com.
Related APIs in SportsSee all →
stats.ncaa.org API
Access comprehensive NCAA sports statistics to search for players, teams, and coaches, view game box scores and play-by-play data, and review team schedules, rosters, and rankings. Get detailed head coach records and scoreboard information to analyze performance across college sports.
whoscored.com API
Search for players and teams, then dive deep into their performance metrics, match statistics, and detailed passing data to analyze football games and player abilities. Get comprehensive insights on team performance, individual player stats, and play-by-play event information to power your football analysis and decision-making.
tennisexplorer.com API
Access comprehensive tennis data from TennisExplorer, including player profiles, ATP rankings, tournament schedules, and today's match listings across ATP and WTA tours at all competition levels.
maxpreps.com API
Access high school sports data from MaxPreps. Search for schools, retrieve team rosters and schedules, look up athlete profiles, and browse national or state rankings across all sports.
europeantour.com API
Track detailed hole-by-hole scorecards and round-by-round statistics for DP World Tour players to analyze performance across European Tour tournaments. Monitor individual player scores, course difficulty, and scoring patterns to gain insights into competitive golf results.
fotmob.com API
Get live football scores, detailed match results, and comprehensive league statistics across multiple competitions. Access player and team performance data, browse upcoming fixtures by date, and dive into in-depth analytics for your favorite leagues and matches.
flashscore.com API
Search teams and competitions, pull daily fixtures and live scores, and retrieve match details including events, statistics, and league standings from FlashScore.
ittf.com API
Access official World Table Tennis player statistics, match results, and event data to track tournament outcomes, compare player rankings, and explore international competition details. Search player profiles, browse featured athletes, and review results from global table tennis events.