Tipsport APItipsport.cz ↗
Access pre-match ice hockey odds and player-prop markets from tipsport.cz. Get match listings, player goals, assists, and points across NHL, Extraliga, and more.
What is the Tipsport API?
The Tipsport.cz Ice Hockey API exposes 3 endpoints covering the full pre-match ledni-hokej offer from tipsport.cz, including match listings grouped by league and player-prop markets (goals, assists, kanadské body) at the per-match or bulk level. The list_hockey_events endpoint returns every upcoming pre-match fixture across competitions including NHL, Česká Tipsport extraliga, KHL, and Nordic leagues. Live matches are excluded from all endpoints.
curl -X GET 'https://api.parse.bot/scraper/bda06887-3248-4fd1-b77e-a69a1d38a68e/list_hockey_events?league=NHL' \ -H 'X-API-Key: $PARSE_API_KEY'
Lists every upcoming pre-match ice hockey match on tipsport.cz (the ledni-hokej offer), grouped by league/competition (NHL, Liga mistrů, Česká Tipsport extraliga, Finská liga, Německá liga, Švédská liga, KHL when offered, junior leagues, ...). One call fetches the whole pre-match offer plus the site's bulk 'Hráči' player listing (two data requests, no paging; source_total_count is the site's own count, which also includes outright/long-term markets that are dropped because they have no home/away). Live (in-play) matches are never included. Each match carries match_id (the value get_player_props accepts), league_id/league_name, home, away, start_time (ISO-8601 with the site's Europe/Prague offset), the match page url, market_count (number of betting tables on the match page), has_lineup and has_player_props — true when the site offers at least one 'Hráči' market (player goals, points or assists) for that match, so callers know before calling get_player_props which matches will return players; matches_with_props counts the returned matches with has_player_props true. Optional league filter: a competition id (e.g. 22) matches league_id exactly, any other text is a case-insensitive substring match on the league name; an unknown league yields an empty leagues list. Every request carries a bounded timeout, so the call fails with an error envelope instead of hanging.
| Param | Type | Description |
|---|---|---|
| league | string | League/competition filter: numeric league_id for an exact id match, or free text matched case-insensitively against league_name (one shape: NHL). Omitted = all leagues. |
{
"type": "object",
"fields": {
"leagues": "array of league groups, each {league_id, league_name, matches[]} in the site's offer order",
"match_count": "number of matches returned after filtering",
"league_count": "number of league groups returned after filtering",
"league_filter": "the league filter applied, or null",
"leagues[].matches": "array of match rows: match_id (integer), name, home, away, start_time, league_id, league_name, competition_annual_id (season id), sport, url, market_count, has_lineup, has_player_props (boolean: the site offers Hráči player markets for this match)",
"matches_with_props": "number of returned matches whose has_player_props is true",
"source_total_count": "site-reported pre-match item count before outrights are removed and before the league filter"
},
"sample": {
"data": {
"leagues": [
{
"matches": [
{
"url": "https://www.tipsport.cz/kurzy/zapas/ledni-hokej-kookoo-mannheim/8261430",
"away": "Mannheim",
"home": "KooKoo",
"name": "KooKoo - Mannheim",
"sport": "Lední hokej - muži",
"match_id": 8261430,
"league_id": 60081,
"has_lineup": false,
"start_time": "2026-10-13T17:30:00.000+02:00",
"league_name": "Liga mistrů",
"market_count": 7,
"has_player_props": false,
"competition_annual_id": 267083
}
],
"league_id": 60081,
"league_name": "Liga mistrů"
},
{
"matches": [
{
"url": "https://www.tipsport.cz/kurzy/zapas/ledni-hokej-boston-bruins-philadelphia-flyers/8404285",
"away": "Philadelphia Flyers",
"home": "Boston Bruins",
"name": "Boston Bruins - Philadelphia Flyers",
"sport": "Lední hokej - muži",
"match_id": 8404285,
"league_id": 22,
"has_lineup": true,
"start_time": "2026-10-10T19:07:00.000+02:00",
"league_name": "NHL",
"market_count": 60,
"has_player_props": true,
"competition_annual_id": 267082
}
],
"league_id": 22,
"league_name": "NHL"
}
],
"match_count": 111,
"league_count": 22,
"league_filter": null,
"matches_with_props": 50,
"source_total_count": 121
},
"status": "success"
}
}About the Tipsport API
Match Listings
The list_hockey_events endpoint returns all upcoming pre-match ice hockey fixtures from tipsport.cz in one call. Results are structured as an array of league groups, each carrying league_id, league_name, and a matches[] array. Each match row includes match_id, home, away, name, start_time (ISO-8601 with Europe/Prague offset), league_id, league_name, and competition_annual_id (the season identifier). The optional league parameter accepts either a numeric league_id for an exact match or a free-text string matched case-insensitively across league names. The response also surfaces source_total_count, the site's own pre-match item count before outrights are stripped and before any filter is applied.
Per-Match Player Props
get_player_props accepts a required match_id (integer, as returned by list_hockey_events) and returns the 'Hráči' player-prop tables for that match: player goals (Dá gól, Dá 2 a více gólů, Dá 3 a více gólů), player points — kanadské body (Získá bod, Získá 2 a více bodů, Získá 3 a více bodů), and player assists. Each player row in players[] carries id, name, team, box_ids[], and cells[]. Each cell includes id, name, active, winning, odd, eventId, oppNumber, and dateClo. The markets_found object summarises which market types are present on the match, keyed by market type with table_id, table_name, and cell_count. An optional market parameter accepts a comma-separated subset of goals, points, assists to restrict output.
Bulk Player Props
get_all_player_props fetches player-prop data across every upcoming pre-match event in one call, using the same league-then-match grouping as list_hockey_events. Match rows include all fields from the listings endpoint plus players[] and player_count. The response includes markets_requested, matches_with_props, match_ids_with_props, and a market_status object keyed by market type reporting status (ok, error, or parse_error) and matches_with_market. Both the league and market filter parameters are available. This endpoint is suited for monitoring the full player-prop slate without assembling match IDs first.
The Tipsport API is a managed, monitored endpoint for tipsport.cz — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tipsport.cz 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 tipsport.cz 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?+
- Aggregate pre-match player goal odds across all NHL matches using
get_all_player_propswith market=goals - Monitor opening and current odds for player assists in the Česká Tipsport extraliga via the
leaguefilter onget_player_props - Build a match schedule dashboard for Czech and Slovak hockey fans using
list_hockey_eventsmatch rows includingstart_timeandleague_name - Identify which upcoming matches have player-prop markets available using
match_ids_with_propsfromget_all_player_props - Compare kanadské body (points) odds across teams in a specific competition by filtering
get_all_player_propswith market=points and a league id - Track
competition_annual_idvalues across seasons to distinguish current-season fixtures from tournament overlaps
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does tipsport.cz have an official public developer API?+
What does `get_player_props` return when a match has no player-prop markets?+
markets_found field will be an empty object and player_count will be zero. The match-level fields (home, away, start_time, league_name, etc.) are still returned. You can check markets_found before processing players[] to skip matches with no Hráči offer.Does the API cover live (in-play) matches?+
Are outrights (season winner, top scorer, etc.) included in the match listings?+
source_total_count reflects the site's raw item count before that removal, so the difference between source_total_count and match_count can reveal how many outrights were present. The API currently covers head-to-head pre-match fixtures and their player-prop tables. You can fork it on Parse and revise to add an outrights endpoint.How can I get player props for only one market type, such as assists, without retrieving goals and points?+
get_player_props and get_all_player_props accept a market parameter. Pass market=assists to return only assist markets. You can also combine values: market=goals,assists returns both goals and assists while omitting points. Omitting the parameter returns all three market types.