# Changelog of Tennis Player Career Scraper — Serve Stats, Surface Splits (`scapypuppy/tennis-player-career-scraper`) Actor

- **URL**: https://apify.com/scapypuppy/tennis-player-career-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/scapypuppy/tennis-player-career-scraper.md

## Changelog

### 1.1

New fields and options; nothing was renamed or removed, and the defaults are the same.

- `careerSummary` in every profile: titles and finals by season and level, head-to-head by opponent,
  splits by round, best of 3 and 5, last 52 weeks and tour level, sets, games, tiebreaks, hold and
  break rates, and a summary by tournament. It covers every match that passed the filters, not only
  the returned ones, and comes with the profile price. New views: **Head-to-head**, **Tournaments**
  and **Titles**.
- Each match carries `bestOf`, `entry` and `opponentEntry`, `opponentDateOfBirth`,
  `opponentAgeAtMatch`, `opponentId` (men's matches) and `provisional`.
- The tournament of the current week loses the source's "ATP " or "WTA " prefix ("ATP Shanghai" is
  now Shanghai) and is marked `provisional: true`; its `matchKey` is computed from the name without
  the prefix, so it no longer changes when the source renames the tournament.
- ITF levels have names: `ITF M15`, `ITF W25` and so on instead of the bare prize money; women's
  `C` is `WTA 125`. `levelCode` is unchanged.
- The profile adds `peakRankLastDate`, `doublesRank`, `doublesPeakRank`, `active`, `atpId`,
  `wtaPath` and `itfId`.
- `maxMatchesPerPlayer: 0` returns the profile with the career totals only, billed as one profile.
- A last name that only one player has is enough ("Swiatek"); a shared one returns the error
  `ambiguous name` with `candidates`, unbilled.
- Women's players skip the men's page when the tour is known beforehand, up to three players load at
  a time (one at a time after the source first refuses a request), and a proxy that refuses the
  connection (HTTP 407) fails the run with a proxy message instead of "source unavailable".

### 1.0 — first public version

The records and every view are described in the README (**Output**, **Match key and joins**,
**Download as a spreadsheet**) and in the dataset schema. Changes of the output since the 0.1
test builds:

- Every career match carries `matchKey`, the same in both players' careers, `sourceMatchId`,
  the source's own ID of the match where it writes one, and `opponentSlug`, which works as a
  `players` entry.
- New filter `opponents`: only the matches against these players.
- The **Career matches** view carries the player's `slug`.

From here on a field that is renamed or removed, or a default that changes, comes with a new
major version. To stay on one build, pass its build number (such as `1.0.3`, shown in the run's
details) as `build` when you start a run through the API.
