Paste ANY tennisexplorer.com URL and it is routed automatically — a match, a player, a ranking table (incl. a year archive), a results day or an upcoming day.
The day to collect matches for, as YYYY-MM-DD (e.g. 2026-08-10). today and yesterday also work. A JSON array scrapes several in one run.
Other surfaces, same syntax:
• upcoming:2026-08-14 — fixtures not yet played, with pre-match odds where the market is open (odds appear close to the match; a day two out usually has none yet).
• ranking:atp-men or ranking:wta-women — the ranking table, 60 players per page.
• search:alcaraz — find a player's id by name. Returns id, full name and country. Use this to get the id right: Carlos Alcaraz is alcaraz-5ab70, not alcaraz.
• detail:3289773 — one match in full: round and surface (which appear nowhere else), both players' ranking at match time plus birthdate, height, weight and playing hand, the head-to-head record with every previous meeting, and per-bookmaker odds across four markets with the opening price and every line move.
• ranking:atp-men:2025 — the ranking table as it stood in an earlier year.
• player:sinner-8b8e8 — one player's profile (country, birth date, height/weight, plays, current and career-best rank in singles and doubles). Take the id from a match row's player1Id or a ranking row's playerId — do not guess it: player:alcaraz is Alcaraz Susana L. of Mexico, not Carlos Alcaraz.
Rows carry recordType (match, ranking or player) so you can tell them apart.