A free, open-source REST API for over-the-board chess tournament data. No authentication required. No API key needed.
Base URL: https://tourneyradar-api.vercel.app
Returns a paginated list of chess tournaments.
Query parameters:
| Parameter | Type | Description |
|---|---|---|
country |
string | 2-letter country code (e.g. IN, DE, US) |
category |
string | Classical, Rapid, or Blitz |
upcoming |
boolean | true to return only future tournaments |
fide_rated |
boolean | true to return only FIDE rated tournaments |
limit |
number | Results per page (1–100, default 50) |
page |
number | Page number (default 1) |
Example: GET /v1/tournaments?country=IN&upcoming=true&limit=5
Response:
{
"data": [
{
"id": "cr_1234567",
"name": "Chennai Open 2026",
"city": "Chennai",
"country": "India",
"country_code": "IN",
"date": "2026-06-01",
"end_date": "2026-06-07",
"category": "Classical",
"fide_rated": true,
"rounds": 9,
"format": "Swiss",
"lat": 13.0827,
"lng": 80.2707,
"source_url": "https://chess-results.com/..."
}
],
"meta": {
"page": 1,
"limit": 5,
"total": 248,
"hasMore": true
}
}Returns a single tournament by ID.
Example: GET /v1/tournaments/cr_1371843
Response:
{
"data": { ...full tournament object }
}Returns all countries that have tournament data.
Example: GET /v1/countries
Response:
{
"data": [
{ "country_code": "IN", "country": "India" },
{ "country_code": "DE", "country": "Germany" }
]
}60 requests per minute per IP.
Responses include rate limit headers:
X-RateLimit-LimitX-RateLimit-Remaining
JavaScript / TypeScript
const res = await fetch(
'https://tourneyradar-api.vercel.app/v1/tournaments?country=IN&upcoming=true'
)
const { data, meta } = await res.json()
console.log(`Found ${meta.total} tournaments`)Python
import requests
res = requests.get(
'https://tourneyradar-api.vercel.app/v1/tournaments',
params={'country': 'DE', 'upcoming': 'true', 'limit': 10}
)
data = res.json()curl
curl "https://tourneyradar-api.vercel.app/v1/tournaments?country=US&upcoming=true"Tournament data is scraped weekly from Chess-Results.com and geocoded via the Google Maps API. Coverage grows with every weekly scrape run.
Using this API in your project? Open a PR to add it here.
- TourneyRadar — the interactive world map powered by this API
Contributions welcome. Please open an issue before submitting a PR for significant changes.
MIT — see LICENSE