# Carlos Alcaraz match history with serve stats (whole career)

**Use case:** 

Every ATP singles match on Carlos Alcaraz's Tennis Abstract page (469 on 21 Sep 2026): tournament, level, surface, round, result, score, opponent with rank and country, match time, and aces, double faults, serve points, first serves in, serve points won, service games and break points for both players.

## Input

```json
{
  "players": [
    "Carlos Alcaraz"
  ],
  "headToHead": [
    "Jannik Sinner vs Carlos Alcaraz"
  ],
  "maxMatchesPerPlayer": 0,
  "monitoringMode": false,
  "resetMonitoringState": false
}
```

## Output

```json
{
  "player": {
    "label": "Player",
    "format": "string"
  },
  "tournamentStartDate": {
    "label": "Tournament Start Date",
    "format": "string"
  },
  "tournament": {
    "label": "Tournament",
    "format": "string"
  },
  "surface": {
    "label": "Surface",
    "format": "string"
  },
  "round": {
    "label": "Round",
    "format": "string"
  },
  "result": {
    "label": "Result",
    "format": "string"
  },
  "score": {
    "label": "Score",
    "format": "string"
  },
  "opponent": {
    "label": "Opponent",
    "format": "string"
  },
  "opponentRank": {
    "label": "Opponent Rank",
    "format": "string"
  },
  "aces": {
    "label": "Aces",
    "format": "string"
  },
  "doubleFaults": {
    "label": "Double Faults",
    "format": "string"
  },
  "servePoints": {
    "label": "Serve Points",
    "format": "string"
  },
  "breakPointsSaved": {
    "label": "Break Points Saved",
    "format": "string"
  },
  "breakPointsFaced": {
    "label": "Break Points Faced",
    "format": "string"
  },
  "headToHead": {
    "label": "Head To Head",
    "format": "string"
  },
  "meetings": {
    "label": "Meetings",
    "format": "string"
  },
  "player1Wins": {
    "label": "Player1 Wins",
    "format": "string"
  },
  "player2Wins": {
    "label": "Player2 Wins",
    "format": "string"
  },
  "status": {
    "label": "Status",
    "format": "string"
  },
  "note": {
    "label": "Note",
    "format": "string"
  },
  "source": {
    "label": "Source",
    "format": "string"
  },
  "rowType": {
    "label": "Row Type",
    "format": "string"
  },
  "player1": {
    "label": "Player1",
    "format": "string"
  },
  "player1Id": {
    "label": "Player1 Id",
    "format": "string"
  },
  "player2": {
    "label": "Player2",
    "format": "string"
  },
  "player2Id": {
    "label": "Player2 Id",
    "format": "string"
  },
  "walkovers": {
    "label": "Walkovers",
    "format": "string"
  },
  "bySurface": {
    "label": "By Surface",
    "format": "string"
  },
  "lastMeetingTournamentStartDate": {
    "label": "Last Meeting Tournament Start Date",
    "format": "string"
  },
  "lastMeetingTournament": {
    "label": "Last Meeting Tournament",
    "format": "string"
  },
  "lastMeetingRound": {
    "label": "Last Meeting Round",
    "format": "string"
  },
  "lastMeetingWinner": {
    "label": "Last Meeting Winner",
    "format": "string"
  },
  "lastMeetingScore": {
    "label": "Last Meeting Score",
    "format": "string"
  },
  "firstMeetingTournamentStartDate": {
    "label": "First Meeting Tournament Start Date",
    "format": "string"
  },
  "playerUrl": {
    "label": "Player Url",
    "format": "string"
  },
  "playerId": {
    "label": "Player Id",
    "format": "string"
  },
  "requestedAs": {
    "label": "Requested As",
    "format": "string"
  },
  "level": {
    "label": "Level",
    "format": "string"
  },
  "levelName": {
    "label": "Level Name",
    "format": "string"
  },
  "outcome": {
    "label": "Outcome",
    "format": "string"
  },
  "bestOf": {
    "label": "Best Of",
    "format": "string"
  },
  "playerRank": {
    "label": "Player Rank",
    "format": "string"
  },
  "playerSeed": {
    "label": "Player Seed",
    "format": "string"
  },
  "playerEntry": {
    "label": "Player Entry",
    "format": "string"
  },
  "opponentId": {
    "label": "Opponent Id",
    "format": "string"
  },
  "opponentSeed": {
    "label": "Opponent Seed",
    "format": "string"
  },
  "opponentEntry": {
    "label": "Opponent Entry",
    "format": "string"
  },
  "opponentHand": {
    "label": "Opponent Hand",
    "format": "string"
  },
  "opponentBackhand": {
    "label": "Opponent Backhand",
    "format": "string"
  },
  "opponentBirthDate": {
    "label": "Opponent Birth Date",
    "format": "string"
  },
  "opponentHeightCm": {
    "label": "Opponent Height Cm",
    "format": "string"
  },
  "opponentCountry": {
    "label": "Opponent Country",
    "format": "string"
  },
  "minutes": {
    "label": "Minutes",
    "format": "string"
  },
  "statsAvailable": {
    "label": "Stats Available",
    "format": "string"
  },
  "firstServesIn": {
    "label": "First Serves In",
    "format": "string"
  },
  "firstServePointsWon": {
    "label": "First Serve Points Won",
    "format": "string"
  },
  "secondServePointsWon": {
    "label": "Second Serve Points Won",
    "format": "string"
  },
  "serviceGames": {
    "label": "Service Games",
    "format": "string"
  },
  "opponentAces": {
    "label": "Opponent Aces",
    "format": "string"
  },
  "opponentDoubleFaults": {
    "label": "Opponent Double Faults",
    "format": "string"
  },
  "opponentServePoints": {
    "label": "Opponent Serve Points",
    "format": "string"
  },
  "opponentFirstServesIn": {
    "label": "Opponent First Serves In",
    "format": "string"
  },
  "opponentFirstServePointsWon": {
    "label": "Opponent First Serve Points Won",
    "format": "string"
  },
  "opponentSecondServePointsWon": {
    "label": "Opponent Second Serve Points Won",
    "format": "string"
  },
  "opponentServiceGames": {
    "label": "Opponent Service Games",
    "format": "string"
  },
  "opponentBreakPointsSaved": {
    "label": "Opponent Break Points Saved",
    "format": "string"
  },
  "opponentBreakPointsFaced": {
    "label": "Opponent Break Points Faced",
    "format": "string"
  },
  "matchId": {
    "label": "Match Id",
    "format": "string"
  },
  "matchChartingUrl": {
    "label": "Match Charting Url",
    "format": "string"
  },
  "scrapedAt": {
    "label": "Scraped At",
    "format": "string"
  },
  "query": {
    "label": "Query",
    "format": "string"
  }
}
```

## About this Actor

This example demonstrates how to use [Tennis Abstract Match History Scraper - Stats, H2H, New Matches](https://apify.com/neverempty/tennis-abstract-match-history.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/neverempty/tennis-abstract-match-history.md) to learn more, explore other use cases, and run it yourself.


## How to integrate an Actor?

This Task's input is already configured above. Use it as-is rather than inventing a new one.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For full API examples (JavaScript, Python, CLI, MCP, OpenAPI), see this Task's Actor page: https://apify.com/neverempty/tennis-abstract-match-history.md

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).
