Matchroom Pool APImatchroompool.com ↗
Access World Nineball Tour schedules, player rankings, profiles, and news via the Matchroom Pool API. 7 endpoints covering events, stats, and articles.
What is the Matchroom Pool API?
The Matchroom Pool API covers 7 endpoints exposing World Nineball Tour event schedules, player rankings, individual player profiles, and news articles from matchroompool.com. The get_schedule endpoint returns every upcoming and past tour event with title, date, location, and URL, while get_player_profile delivers career statistics including highest rank, majors won, and career prize money for any player by slug.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/b990a4e1-f728-47b8-b542-b84049d151c0/get_schedule' \ -H 'X-API-Key: $PARSE_API_KEY'
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 matchroompool-com-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: Matchroom Pool SDK — bounded, re-runnable; every call capped."""
from parse_apis.matchroom_pool_api import MatchroomPool, ResourceNotFound
client = MatchroomPool()
# List upcoming events on the World Nineball Tour schedule
for event in client.events.list(limit=5):
print(event.title, event.date, event.location)
# Get player rankings — ordered by rank ascending
for player in client.rankedplayers.list(limit=3):
print(player.rank, player.name, player.country)
# Drill into a player's profile via sub-resource navigation
first_player = client.players.list(limit=1).first()
if first_player:
profile = first_player.profile.get()
print(profile.name, profile.rank, profile.stats)
# Drill into event details via sub-resource
event = client.events.list(limit=1).first()
if event:
try:
details = event.details.get()
print(details.title, details.broadcast_on_wnt_tv, details.participating_players)
except ResourceNotFound as exc:
print(f"Event not found: {exc}")
# Read full article content from the latest news
article = client.newsarticles.list(limit=1).first()
if article:
full = article.content.get()
print(full.title, full.date)
print("exercised: events.list / rankedplayers.list / players.list / player.profile.get / event.details.get / newsarticles.list / article.content.get")
Retrieve the full list of events from the World Nineball Tour schedule page. Returns all upcoming and past events with title, date, location, slug, and URL. Events are ordered chronologically. The response includes a count field for the total number of events returned.
No input parameters required.
{
"type": "object",
"fields": {
"count": "integer total number of events",
"events": "array of event objects with title, date, location, url, and slug"
},
"sample": {
"data": {
"count": 34,
"events": [
{
"url": "https://matchroompool.com/events/mezz-bucharest-open/",
"date": "July 3 - 5 2026",
"title": "Mezz Bucharest Open",
"location": "IDM Club, Bucharest, Romania"
},
{
"url": "https://matchroompool.com/events/2am-prague-open/",
"date": "July 8 - 11 2026",
"title": "2AM Prague Open",
"location": "2AM Billiards, Prague, Czech Republic"
}
]
},
"status": "success"
}
}About the Matchroom Pool API
Events and Schedule
The get_schedule endpoint returns a full chronological list of World Nineball Tour events, each with a title, date, location, and url. To get deeper detail on a specific event, pass its slug to get_event_details — for example 'mosconi-cup' or 'premier-league-pool'. That response includes a description, a broadcast_on_wnt_tv boolean, and a participating_players array. Note that some events use image-based banners rather than structured data, so date and location may be null for those entries.
Players and Rankings
get_rankings returns an ordered list of ranked players with rank, name, country, and total_prize_money. get_players_list provides a broader roster including unranked players, each with a profile_url that supplies the slug for get_player_profile. That endpoint returns a stats object with fields such as alias, hometown, age, height, highest_rank, majors_won, and prize_money, plus a freeform bio string when available.
News and Articles
get_latest_news retrieves recent articles and media items with title, date, url, and thumbnail. Some entries are YouTube video embeds, which return null for url and date. To read a full article, pass its URL to get_news_article, which returns the complete content as plain text alongside the title and publication date. There is no pagination parameter; all available news items are returned in a single response.
The Matchroom Pool API is a managed, monitored endpoint for matchroompool.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when matchroompool.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official matchroompool.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a tour calendar app that displays all WNT events with dates and locations from
get_schedule. - Track player ranking movements over time by periodically polling
get_rankingsfor rank and prize money data. - Generate player stat cards using
get_player_profilefields likehighest_rank,majors_won, andage. - Monitor WNT news feeds by fetching article titles and thumbnails from
get_latest_newsand full text viaget_news_article. - Check which events are broadcast on WNT TV using the
broadcast_on_wnt_tvfield fromget_event_details. - List the confirmed player lineup for a specific tournament by reading
participating_playersfromget_event_details. - Identify unranked tour players by filtering
get_players_listresults whererankis null.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Matchroom Pool have an official developer API?+
What does `get_event_details` return, and when are `date` and `location` null?+
title, description, broadcast_on_wnt_tv boolean, and participating_players array. The date and location fields are null when the event's page uses an image-based banner instead of structured text — this is common for flagship events like the Mosconi Cup.Does the API expose live match scores or real-time results?+
Can I filter news articles by date range or category?+
get_latest_news returns all available articles in a single response with no filter parameters. Filtering by date or topic would need to be done client-side on the returned date and title fields. You can fork this API on Parse and revise it to add server-side filtering logic.Are historical ranking snapshots available through the rankings endpoint?+
get_rankings returns the current World Nineball Tour rankings only — there is no season or date parameter for historical snapshots. Individual player history is partially reflected in get_player_profile via the highest_rank stat field. You can fork this API on Parse and revise it to store and expose historical ranking records.