Chess Results APIchess-results.com ↗
Track chess tournaments across any federation by viewing schedules, pairings, and upcoming games, or browse available tournaments to find competitions of interest. Get detailed round-by-round matchups and game information to stay updated on tournament progress and player performance.
curl -X GET 'https://api.parse.bot/scraper/6cfbc235-7768-4f73-ad21-6f656ef67685/list_tournaments?status=playing&federation=ISR' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace chess-results-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: ChessResults SDK — browse federation tournaments and upcoming games."""
from parse_apis.chess_results_com_api import ChessResults, TournamentStatus, NotFoundError
client = ChessResults()
# List active tournaments for the Israeli chess federation.
for tournament in client.tournaments.search(federation="ISR", status=TournamentStatus.PLAYING, limit=5):
print(tournament.name, tournament.tournament_id, tournament.status)
# Get a specific tournament and list its round schedule.
t = client.tournaments.search(federation="ISR", status=TournamentStatus.PLAYING, limit=1).first()
if t:
for rd in t.rounds.list(limit=10):
print(rd.round, rd.date, rd.time)
# Get pairings for a specific round of that tournament.
if t:
for pairing in t.pairings.list(round="4", limit=5):
print(pairing.board, pairing.white.name, "vs", pairing.black.name, "->", pairing.result)
# Typed error handling: try fetching a tournament that may not exist.
try:
detail = client.tournaments.get(tournament_id="9999999")
print(detail.name)
except NotFoundError as exc:
print(f"Tournament not found: {exc}")
# Get upcoming games across all active tournaments in the next 14 days.
for game in client.tournaments.upcoming(federation="ISR", max_tournaments=5, limit=3):
print(game.tournament_name, game.date, game.time, f"({game.total_boards} boards)")
print("exercised: tournaments.search / rounds.list / pairings.list / tournaments.get / tournaments.upcoming")
List tournaments registered under a chess federation with their current status. Tournaments are sorted by most recent activity. Each tournament includes a unique ID that can be used with other endpoints to fetch schedule and pairing details.
| Param | Type | Description |
|---|---|---|
| status | string | Filter by tournament status. Omitting returns all tournaments. |
| federation | string | Three-letter FIDE federation code (e.g. ISR, USA, GER, RUS, FRA). |
{
"type": "object",
"fields": {
"total": "integer",
"federation": "string",
"tournaments": "array of tournament objects"
},
"sample": {
"data": {
"total": 27,
"federation": "ISR",
"tournaments": [
{
"url": "https://chess-results.com/tnr1443093.aspx?lan=1",
"name": "PT Classic JUN-JUL 2026",
"number": 1,
"status": "playing",
"last_update": "St1 Hours 41 Min.",
"tournament_id": "1443093"
}
]
},
"status": "success"
}
}About the Chess Results API
The Chess Results API on Parse exposes 4 endpoints for the publicly available data on chess-results.com. Calls return JSON over HTTPS and are billed per successful response.
Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.