SnookerAPI
Documentation / Events
GET /eventsFree key, archive on paidMCP: find_events

Snooker API: Events: every tournament and championship, newest first

Events: every tournament and championship, newest first.

GEThttps://api.snookerapi.net/v1/events

Try it

Get a key

Parameters

NameTypeWhat it is
seasonseasonSeason, e.g. 2025-26.
yearyearCalendar year the event started in.
tourstringWhich tour: amateur is the IBSF, EBSA and ACBS championships and their junior events; q_tour the development tour (the Q Tour and the Challenge Tour before it), a season to an event, its events as rounds. professional women seniors q_school amateur q_tour
competition_ididOnly this competition (cp_ id).
qstringWords in the event name.
pageintegerPage number, from 1.
cursorstringThe next_cursor from the previous page.
per_pageintegerRows per page.

Returns

FieldTypeWhat it holds
idstringThe record's own id: stable, and the same in every call.
namestringThe name, as we hold it.
seasonstring or nullThe season, as 2025-26.
tourstringprofessional, women, seniors or q_school.
kindstring or nullranking or invitational, where it is known.
competitionobjectThe competition it is an edition of: id and name.
start_datedate or nullThe first day.
end_datedate or nullThe last day.
held_instring or nullThe month or year, for an event whose days are not known.
venuestring or nullThe venue.
townstring or nullThe town or city.
countrystring or nullThe country.
locationobject or nullWhere the event was played: lat and lon, and basis (venue for the venue's own coordinates, town where only the town's are known). Null where neither is known.
time_zonestring or nullThe venue's time zone, as Europe/London. Every time the API gives is UTC; this is for showing it locally.
utc_offsetstring or nullThe venue's offset from UTC on the first day, summer time included, as +01:00.
winnerobject or nullThe champion: id and name.
runner_upobject or nullThe runner-up: id and name.
final_scorestring or nullThe final's score, as 18-14.
highest_breakinteger or nullThe event's highest break: the article's figure, or else the highest main-stage century in its century list.
highest_break_basisstring or nullWhere highest_break comes from: article (the event's own figure), german_article (the German article's figure, where the English one gives none) or century_list (the highest century it lists).
prize_fundstring or nullThe total prize fund, as published.
matchesintegerHow many matches are held.

Example answer

A real answer, read from the data within the last hour: GET /v1/events?q=World+Snooker+Championship&per_page=2

{
    "data": [
        {
            "id": "ev_z867dfpm",
            "name": "2027 World Snooker Championship",
            "season": "2026-27",
            "tour": "professional",
            "kind": "ranking",
            "competition": {
                "id": "cp_19bahdvy",
                "name": "World Snooker Championship"
            },
            "start_date": "2027-04-17",
            "end_date": "2027-05-03",
            "held_in": null,
            "venue": "Crucible Theatre",
            "town": "Sheffield",
            "country": "England",
            "location": {
                "lat": 53.38111,
                "lon": -1.46667,
                "basis": "venue"
            },
            "time_zone": "Europe/London",
            "utc_offset": "+01:00",
            "winner": null,
            "runner_up": null,
            "final_score": null,
            "highest_break": null,
            "highest_break_basis": null,
            "prize_fund": "£3,000,000",
            "matches": 0
        },
        {
            "id": "ev_80r2d1px",
            "name": "2026 World Snooker Championship",
            "season": "2025-26",
            "tour": "professional",
            "kind": "ranking",
            "competition": {
                "id": "cp_19bahdvy",
                "name": "World Snooker Championship"
            },
            "start_date": "2026-04-18",
            "end_date": "2026-05-04",
            "held_in": null,
            "venue": "Crucible Theatre",
            "town": "Sheffield",
            "country": "England",
            "location": {
                "lat": 53.38111,
                "lon": -1.46667,
                "basis": "venue"
            },
            "time_zone": "Europe/London",
            "utc_offset": "+01:00",
            "winner": {
                "id": "pl_ra6m6b4g",
                "name": "Wu Yize"
            },
            "runner_up": {
                "id": "pl_w2c64qam",
                "name": "Shaun Murphy"
            },
            "final_score": "18-17",
            "highest_break": 147,
            "highest_break_basis": "article",
            "prize_fund": "£2,395,000",
            "matches": 143
        }
    ],
    "meta": {
        "plan": "House key",
        "count": 2,
        "next_cursor": "bzIuMjY0ZmE2",
        "page": 1,
        "per_page": 2,
        "total": 96,
        "total_pages": 48,
        "next_page": 2,
        "prev_page": null
    }
}

Errors

StatusCodeWhen
401unauthorizedNo key, or a key that is not valid. Errors
400bad_requestA parameter has the wrong shape. Errors
422unknown_parameterA parameter this call does not take. Errors
429rate_limitedToo many calls this minute; wait for Retry-After. Errors