Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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, volleyball match results, volleyball schedules, or Dutch volleyball clubs. Don't use when: user asks about other sports — use football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-da
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-18 | ✓→✗ | ▼ Worse | 144% | 0% |
| case-21 | ✓→✗ | ▼ Worse | 279% | 0% |
| case-22 | ✓→✗ | ▼ Worse | 49% | 0% |
| case-09 | ✓→✓ | = Same ✓ | 87% | 0% |
Before writing queries, consult references/api-reference.md for endpoints, ID conventions, and data shapes.
Before first use, check if the CLI is available:
bashwhich sports-skills || pip install sports-skills
If pip install fails (package not found or Python version error), install from GitHub:
bashpip install git+https://github.com/machina-sports/sports-skills.git
The package requires Python 3.10+. If your default Python is older, use a specific version:
bashpython3 --version # check version # If < 3.10, try: python3.12 -m pip install sports-skills # On macOS with Homebrew: /opt/homebrew/bin/python3.12 -m pip install sports-skills
No API keys required. All data comes from the Nevobo (Nederlandse Volleybalbond) open API.
Prefer the CLI — it avoids Python import path issues:
bashsports-skills volleyball get_competitions sports-skills volleyball get_standings --competition_id=nevobo-eredivisie-heren sports-skills volleyball get_results --competition_id=nevobo-eredivisie-dames sports-skills volleyball get_schedule --competition_id=nevobo-topdivisie-heren-a
Python SDK (alternative):
pythonfrom sports_skills import volleyball standings = volleyball.get_standings(competition_id="nevobo-eredivisie-heren") results = volleyball.get_results(competition_id="nevobo-eredivisie-dames")
CRITICAL: Before calling any data endpoint, verify:
competition_id uses a valid value from references/competition-ids.md — never guess.club_id (use get_clubs to find one — the organisatiecode field).get_competitions or get_clubs to discover them.competition_id Parameter8 leagues across the top 3 tiers of Dutch volleyball are pre-configured. The competition_id follows the pattern nevobo-<league>-<gender>[-<pool>]:
nevobo-eredivisie-heren, nevobo-eredivisie-damesnevobo-topdivisie-heren-a, nevobo-topdivisie-heren-b, nevobo-topdivisie-dames-a, nevobo-topdivisie-dames-bnevobo-superdivisie-heren, nevobo-superdivisie-damesFor 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.
| 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.
Example 1: Eredivisie standings User says: "What are the current Dutch volleyball standings?" Actions:
get_standings(competition_id="nevobo-eredivisie-heren") for menget_standings(competition_id="nevobo-eredivisie-dames") for womenResult: League tables with rank, team name, matches played, and points
Example 2: Recent match results User says: "Show me recent Eredivisie volleyball results" Actions:
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:
get_clubs(limit=10) and find LSV's organisatiecode (CKL5C67)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:
get_standings(competition_id="nevobo-topdivisie-heren-a") for men pool Aget_standings(competition_id="nevobo-topdivisie-heren-b") for men pool BResult: Two pool tables with 10 teams each
Example 5: Discover lower divisions User says: "What divisions are available in Dutch volleyball?" Actions:
get_poules(regio="nationale-competitie", limit=20)Result: List of national-level poules including 1e/2e/3e Divisie with their abbreviations and descriptions
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.
When a command fails, do not surface raw errors to the user. Instead:
get_clubs to find the organisatiecode firstget_competitions to verify available leaguesError: 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
Other measured skills in the registry, with their headline benchmark lift.