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