Documentation / Events
Snooker API: One event: its dates, venue, champion, final, prize fund and its own figures (frames played, deciding frames, whitewashes, centuries)
One event: its dates, venue, champion, final, prize fund and its own figures (frames played, deciding frames, whitewashes, centuries).
GEThttps://api.snookerapi.net/v1/events/{event_id}
Try it
Parameters
| Name | Type | What it is |
|---|---|---|
| event_id | id, required, in the path | The event, as an ev_ id from GET /v1/events. |
Returns
| Field | Type | What it holds |
|---|---|---|
| id | string | The record's own id: stable, and the same in every call. |
| name | string | The name, as we hold it. |
| season | string or null | The season, as 2025-26. |
| tour | string | professional, women, seniors or q_school. |
| kind | string or null | ranking or invitational, where it is known. |
| competition | object | The competition it is an edition of: id and name. |
| start_date | date or null | The first day. |
| end_date | date or null | The last day. |
| held_in | string or null | The month or year, for an event whose days are not known. |
| venue | string or null | The venue. |
| town | string or null | The town or city. |
| country | string or null | The country. |
| location | object or null | Where 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_zone | string or null | The venue's time zone, as Europe/London. Every time the API gives is UTC; this is for showing it locally. |
| utc_offset | string or null | The venue's offset from UTC on the first day, summer time included, as +01:00. |
| winner | object or null | The champion: id and name. |
| runner_up | object or null | The runner-up: id and name. |
| final_score | string or null | The final's score, as 18-14. |
| highest_break | integer or null | The event's highest break: the article's figure, or else the highest main-stage century in its century list. |
| highest_break_basis | string or null | Where 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_fund | string or null | The total prize fund, as published. |
| matches | integer | How many matches are held. |
| prizes | list | Prize money by finish: for, amount and currency. |
| stats | object | The event's own figures: matches_played, frames_played, deciding_frames (won by one frame at full length), whitewashes (won without losing a frame) and century_breaks. Frames count only where the score is in frames. |
| seeds | list | The seeded players, as the event's main draw writes them: seed and player. Empty where the draw gives no seeds. |
Example answer
A real answer, read from the data within the last hour: GET /v1/events/ev_80r2d1px
{
"data": {
"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,
"prizes": [
{
"for": "total",
"amount": 2395000,
"currency": "GBP"
},
{
"for": "winner",
"amount": 500000,
"currency": "GBP"
},
{
"for": "runner_up",
"amount": 200000,
"currency": "GBP"
},
{
"for": "semi_final",
"amount": 100000,
"currency": "GBP"
},
{
"for": "quarter_final",
"amount": 50000,
"currency": "GBP"
},
{
"for": "last_16",
"amount": 30000,
"currency": "GBP"
},
{
"for": "last_32",
"amount": 20000,
"currency": "GBP"
},
{
"for": "last_48",
"amount": 15000,
"currency": "GBP"
},
{
"for": "last_80",
"amount": 10000,
"currency": "GBP"
},
{
"for": "last_112",
"amount": 5000,
"currency": "GBP"
}
],
"stats": {
"matches_played": 141,
"frames_played": 2321,
"deciding_frames": 18,
"whitewashes": 0,
"century_breaks": 254
},
"seeds": []
},
"meta": {
"plan": "House key"
}
}Errors
| Status | Code | When |
|---|---|---|
| 401 | unauthorized | No key, or a key that is not valid. Errors |
| 400 | bad_request | A parameter has the wrong shape. Errors |
| 422 | unknown_parameter | A parameter this call does not take. Errors |
| 429 | rate_limited | Too many calls this minute; wait for Retry-After. Errors |
| 404 | not_found | No record has that id. Errors |
| 403 | upgrade_required | The record is older than yesterday and the key is the free one. Errors |