volleyball-data
Dutch volleyball data (Eredivisie, Topdivisie, Superdivisie, and the full Dutch pyramid) via the Nevobo API. Standings, schedules, results, clubs, tournaments, and news. Zero config, no API keys. Use when: user asks about Dutch volleyball, Eredivisie volleyball, Nevobo, volleyball standings, volleyb
By machina-sports · 499 installs
npx skills add machina-sports/sports-skills --skill volleyball-data
Source repository · Upstream listing
Volleyball Data (Nevobo — Dutch Volleyball)
Before writing queries, consult references/api reference.md for endpoints, ID conventions, and data shapes.
Setup
Before first use, check if the CLI is available:
If pip install fails (package not found or Python version error), install from GitHub:
The package requires Python 3.10+. If your default Python is older, use a specific version:
No API keys required. All data comes from the Nevobo (Nederlandse Volleybalbond) open API.
Quick Start
Prefer the CLI — it avoids Python import path issues:
Python SDK (alternative):
CRITICAL: Before Any Query
CRITICAL: Before calling any data endpoint, verify:
The competition id uses a valid value from references/competition ids.md — never guess.
For club specific commands, you have a valid Nevobo club id (use get clubs to find one — the organisatiecode field).
Do NOT guess club IDs or competition IDs. Use get competitions or get clubs to discover them.
The competition id Parameter
8 leagues across the top 3 tiers of Dutch volleyball are pre configured. The competition id follows the pattern nevobo <league <gender [ <pool ] :
Eredivisie (Tier 1, 8 teams): nevobo eredivisie heren , nevobo eredivisie dames
Topdivisie (Tier 2, 10 teams/pool): nevobo topdivisie heren a , nevobo topdivisie heren b , nevobo topdivisie dames a , nevobo topdivisie dames b
Superdivisie (Tier 3, 10 teams): nevobo superdivisie heren , nevobo superdivisie dames
For lower divisions (1e/2e/3e Divisie, regional, youth, beach — 6,400+ poules), use get poules to discover them.
See references/competition ids.md for the full reference with team counts and the Dutch volleyball pyramid.
Commands
Command Description
get competitions List all available competitions and leagues
get standings League table (rank, team, matches, points)
get schedule Upcoming matches (teams, venue, date)
get results Match results (score, set by set scores)
get clubs List volleyball clubs (name, city, province)
get club schedule Club's upcoming matches across all teams
get club results Club's results across all teams
get poules Browse Nevobo poules (for lower divisions discovery)
get tournaments Tournament calendar
get news Federation news
See references/api reference.md for full parameter lists and return shapes.
Examples
Example 1: Eredivisie standings
User says: "What are the current Dutch volleyball standings?"
Actions:
1. Call get standings(competition id="nevobo eredivisie heren") for men
2. Call get standings(competition id="nevobo eredivisie dames") for women
Result: League tables with rank, team name, matches played, and points
Example 2: Recent match results
User says: "Show me recent Eredivisie volleyball results"
Actions:
1. Call get results(competition id="nevobo eredivisie heren")
Result: Match results with home/away teams, match score (e.g. "3 1"), and set scores (e.g. ["25 21", "25 18", "21 25", "25 20"])
Example 3: Club schedule
User says: "What matches does LSV have coming up?"
Actions:
1. Call get clubs(limit=10) and find LSV's organisatiecode (CKL5C67)
2. Call get club schedule(club id="CKL5C67")
Result: Upcoming matches for all of LSV's teams with venues and dates
Example 4: Second tier standings
User says: "Show me the Topdivisie standings"
Actions:
1. Call get standings(competition id="nevobo topdivisie heren a") for men pool A
2. Call get standings(competition id="nevobo topdivisie heren b") for men pool B
Result: Two pool tables with 10 teams each
Example 5: Discover lower divisions
User says: "What divisions are available in Dutch volleyball?"
Actions:
1. Call get poules(regio="nationale competitie", limit=20)
Result: List of national level poules including 1e/2e/3e Divisie with their abbreviations and descriptions
Commands that DO NOT exist — never call these
~~ get scoreboard ~~ — does not exist. Use get results for recent match results.
~~ get rankings ~~ — does not exist. Volleyball uses get standings for league tables.
~~ get team roster ~~ — does not exist. Use get clubs for club information.
~~ get player info ~~ — does not exist. Player level data is not available via this API.
If a command is not listed in the Commands table above, it does not exist.
Error Handling
When a command fails, do not surface raw errors to the user . Instead:
1. Catch silently and try alternatives
2. If a club name is given instead of ID, use get clubs to find the organisatiecode first
3. If a competition id returns no data, use get competitions to verify available leagues
4. Only report failure with a clean message after exhausting alternatives
Troubleshooting
Error: sports skills command not found
Cause: Package not installed
Solution: Run pip install sports skills . If not on PyPI, install from GitHub: pip install git+https://github.com/machina sports/sports skills.git
Error: Standings returns empty list
Cause: The competition's regular season phase may have ended, or the season hasn't started yet
Solution: Use get results to check recent results, or get poules to discover current active poule paths
Error: Schedule returns 0 matches
Cause: The competition phase has completed and no more matches are scheduled for that poule
Solution: This is expected between season phases. Check other leagues (Topdivisie/Superdivisie may still be active)
Error: Club schedule/results returns error
Cause: The club id may be incorrect
Solution: Use get clubs to find valid club IDs (the organisatiecode field, e.g. "CKL5C67")
Error: Connection errors or timeouts
Cause: The Nevobo API may be temporarily unavailable
Solution: Wait a moment and retry. The API is public and unauthenticated but may have brief outages