Discover/Vesus API
live

Vesus APIvesus.org

Discover upcoming chess tournaments and access detailed information about events including venues, prize pools, organizers, and competition formats like time controls and round structures. Plan your chess competition calendar by browsing tournament listings and reviewing specific event details from vesus.org.

Endpoint health
monitored
get_event
get_tournament
list_events
Checks pendingself-healing
Endpoints
3
Updated
2h ago
Try it
Filter events by name (partial match).
Cursor for pagination. Use end_cursor from previous response to get next page.
Number of events per page (max results to return).
Filter by rated status. Pass 'true' for rated tournaments only, 'false' for unrated only. Omit for all.
Event timing filter.
Filter events by location/city name.
ISO 3-letter country code to filter events by country (e.g. ITA, DEU, GBR). Omit for all countries.
Attendance mode filter. Accepted values: INPERSON, ONLINE. Omit for all.
Tournament type filter. Accepted values: INDIVIDUAL, TEAM. Omit for all.
Comma-separated list of time control types to filter by. Accepted values: BLITZ, RAPID, CLASSICAL, STANDARD. Omit for all.
api.parse.bot/scraper/b399456b-6da2-4fff-aa0f-5120a16986b8/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/b399456b-6da2-4fff-aa0f-5120a16986b8/list_events?limit=5&rated=false&timing=FUTURE&country_code=ITA&attendance_mode=INPERSON&tournament_type=INDIVIDUAL&time_control_type=BLITZ' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 vesus-org-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: Vesus Chess Tournaments API — browse events, drill into details."""
from parse_apis.vesus_org_api import Vesus, Timing, TimeControlType, ResourceNotFound

client = Vesus()

# List upcoming blitz chess events in Italy (auto-paginated, capped at 5 total)
for event in client.events.search(timing=Timing.FUTURE, country_code="ITA", limit=5):
    print(event.name, "|", event.location, "|", event.confirmed_registrations, "registered")

# Take one event and drill into its tournament details
event = client.events.search(timing=Timing.FUTURE, limit=1).first()
if event:
    tournament_summary = event.tournaments[0]
    detail = tournament_summary.details()
    print(detail.event_name, "—", detail.rounds, "rounds,", detail.time_control[0].white_minutes, "min")

# Get full event details (venue, prize money, organiser)
if event:
    tournament = client.tournaments.get(short_key=event.tournaments[0].short_key)
    try:
        event_detail = client.event_details.get(short_key=tournament.event_short_key)
        print(event_detail.name, "|", event_detail.venue, "|", event_detail.organiser)
    except ResourceNotFound as exc:
        print(f"Event not found: {exc}")

print("exercised: events.search / tournament_summary.details / tournaments.get / event_details.get")
All endpoints · 3 totalmissing one? ·

Search and list chess events/tournaments with optional filters. Returns paginated results ordered by start date. Each event includes its tournaments with registration counts, time control types, and status. Results are auto-iterated across pages.

Input
ParamTypeDescription
namestringFilter events by name (partial match).
afterstringCursor for pagination. Use end_cursor from previous response to get next page.
limitintegerNumber of events per page (max results to return).
ratedstringFilter by rated status. Pass 'true' for rated tournaments only, 'false' for unrated only. Omit for all.
timingstringEvent timing filter.
locationstringFilter events by location/city name.
country_codestringISO 3-letter country code to filter events by country (e.g. ITA, DEU, GBR). Omit for all countries.
attendance_modestringAttendance mode filter. Accepted values: INPERSON, ONLINE. Omit for all.
tournament_typestringTournament type filter. Accepted values: INDIVIDUAL, TEAM. Omit for all.
time_control_typestringComma-separated list of time control types to filter by. Accepted values: BLITZ, RAPID, CLASSICAL, STANDARD. Omit for all.
Response
{
  "type": "object",
  "fields": {
    "events": "array of event objects with tournaments",
    "end_cursor": "string, pagination cursor for next page",
    "has_next_page": "boolean"
  },
  "sample": {
    "data": {
      "events": [
        {
          "id": "ZXZlbnQ6Mzc5NTA1ZmQtMjI1OC00NmQ4LWExYjAtZDY5N2YyOWExMTg2",
          "end": "2026-07-02T21:00:00.000Z",
          "name": "3 a tappa - Circuito serale THUNDER THURSDAY",
          "start": "2026-07-02T19:00:00.000Z",
          "location": "Canegrate",
          "tournaments": [
            {
              "end": "2026-07-02T21:00:00.000Z",
              "name": null,
              "type": "INDIVIDUAL",
              "rated": false,
              "start": "2026-07-02T19:00:00.000Z",
              "rounds": 5,
              "short_key": "cnw-opsw",
              "attendance_mode": "INPERSON",
              "time_control_type": "BLITZ",
              "registration_status": "OPEN",
              "confirmed_registrations": 8
            }
          ],
          "country_code": "ITA",
          "registrations_limit": 30,
          "confirmed_registrations": 8
        }
      ],
      "end_cursor": "RXZlbnRFZGdlOnsib2Zmc2V0IjoyMH0=",
      "has_next_page": true
    },
    "status": "success"
  }
}

About the Vesus API

The Vesus API on Parse exposes 3 endpoints for the publicly available data on vesus.org. 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.