TourneyRadar API
Free chess tournament API with no key: upcoming events aggregated from 140+ national federations, plus a country index and keyword search. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the TourneyRadar API?
TourneyRadar aggregates upcoming chess tournaments from more than 140 national federations into one keyless JSON API. The countries endpoint returns the federations currently covered as ISO code and name pairs.
Chess federations each publish their calendar in their own format, in their own language, on their own site — which is why finding tournaments abroad is such a chore. TourneyRadar does the aggregation and normalises everything into one schema, so a player planning a trip can query one endpoint instead of reading forty federation websites.
Starting from `/v1/countries` rather than `/v1/tournaments` is the right approach, and the reason is coverage. Federations get added and removed as sources come and go, so the country list is the live statement of what is actually available right now — building a filter dropdown from a hard-coded ISO list will offer users countries that return nothing. The response is a flat `data` array of code and name pairs, with the country names in English regardless of the federation's own language.
Quick facts
- Base URL
https://tourneyradar-api.vercel.app/v1- Authentication
- No API key and no account.
- Rate limit
- No published limit. Tournament calendars change slowly — cache for hours.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the TourneyRadar API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. List the covered chess federations
GET https://tourneyradar-api.vercel.app/v1/countries
curl 'https://tourneyradar-api.vercel.app/v1/countries'const res = await fetch("https://tourneyradar-api.vercel.app/v1/countries");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://tourneyradar-api.vercel.app/v1/countries", timeout=20)
res.raise_for_status()
print(res.json()){
"data": [
{
"country_code": "AM",
"country": "Armenia"
},
{
"country_code": "AO",
"country": "Angola"
},
{
"country_code": "AR",
"country": "Argentina"
},
{
"country_code": "AT",
"country": "Austria"
},
{
"country_code": "AZ",
"country": "Azerbaijan"
},
{
"country_code": "BR",
"country": "Brazil"
},
{
"country_code": "CA",
"country": "Canada"
},
{
"country_code": "CH",
"country": "Switzerland"
},
{
"country_code": "CN",
"country": "China"
},
{
"country_code": "CY",
"country": "Cyprus"
},
{
"country_code": "CZ",
"country": "Czech Republic"
},
{
"country_code": "DE",
"country": "Germany"
},
{
"country_code": "EG",
"country": "Egypt"
},
{
"country_code": "ES",
"country": "Spain"
},
{
"country_code": "FI",
"country": "Finland"
},
{
"country_code": "FR",
"country": "France"
},
{
"country_code": "GB",
"country": "England"
},
{
"country_code": "GR",
"country": "Greece"
},
{
"country_code": "HR",
"country": "Croatia"
},
{
"country_code": "HU",
"country": "Hungary"
},
{
"country_code": "ID",
"country": "Indonesia"
},
{
"country_code": "IL",
"country": "Israel"
},
{
"country_code": "IN",
"country": "India"
},
{
"countrParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
(none) | n/a | Optional | The countries endpoint takes no parameters. |
/tournaments | path | Optional | The main listing endpoint, filterable by country. |
/search | path | Optional | Keyword search across tournament names, taking a `q` parameter. |
Response fields
dataarray- The covered federations, sorted by country code.
data[].country_codestring- ISO 3166-1 alpha-2 code, for example `AM` or `BR`.
data[].countrystring- English country name, regardless of the federation's own language.
What you can build with the TourneyRadar API
- Build a country picker that only offers federations with actual coverage
- Find upcoming tournaments abroad for a travelling player
- Track how many federations publish machine-readable calendars
- Feed a chess club's noticeboard with regional events
Common errors and how to fix them
Country returns no tournaments
That federation is covered but currently has nothing upcoming.
Fix: An empty list is a valid answer. Distinguish it from an unsupported country by checking the countries endpoint first.
Country missing from the list
Coverage depends on which federations publish usable calendars.
Fix: Do not hard-code an ISO country list. Build your filter from this endpoint so it always matches reality.
Stale event data
Tournaments are aggregated from upstream federation sites on a schedule.
Fix: Cache for hours and always link back to the federation listing as the authority.
TourneyRadar API — frequently asked questions
Is the TourneyRadar API free?
Yes, free with no key and no account. It aggregates publicly published federation calendars.
How many federations are covered?
More than 140, but the exact set changes as sources come and go. The countries endpoint is the live answer at any moment.
Why start with the countries endpoint?
Because coverage is not universal. Building a filter from a static ISO list will offer users countries with no data behind them; building it from this endpoint cannot.
Can I search by tournament name?
Yes. The `/v1/search?q=` endpoint runs a keyword search across the aggregated tournament listings.
Tools that pair with this API
Tournament Bracket Generator
Build a printable single or double elimination bracket from your entrant list. Automatic byes, standard seeding or a random draw, and numbered matches throughout.
Date Difference Calculator
Calculate the exact difference between two dates in years, months and days, plus total days, weeks, hours and minutes. Free, fast and private.
Time Zone Converter
Convert any date and time between world time zones. See UTC offsets, daylight saving handled automatically, and compare multiple zones at once.
TourneyRadar is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.