/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,
$ npx -y skills add machina-sports/sports-skills --skill volleyball-data --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/volleyball-data
Context preview
The summary Claude sees to decide when to auto-load this skill.
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,
SKILL.md
volleyball-data.SKILL.mdname: volleyball-data
description: |
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-data (NHL), mlb-data (MLB), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), tennis-data (tennis), or fastf1 (F1). For betting odds use polymarket or kalshi. For general news use sports-news.
license: MIT
metadata:
author: machina-sports
version: "0.1.0"
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:
which sports-skills || pip install sports-skills
If `pip install` fails (package not found or Python version error), install from GitHub:
pip 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:
python3 --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.
Quick Start
Prefer the CLI — it avoids Python import path issues:
sports-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):
from sports_skills import volleyball
standings = volleyball.get_standings(competition_id="nevobo-eredivisie-heren")
results = volleyball.get_results(competition_id="nevobo-eredivisie-dames")
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 da
Read more
name: volleyball-data description: | 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-data (NHL), mlb-data (MLB), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), tennis-data (tennis), or fastf1 (F1). For betting odds use polymarket or kalshi. For general news use sports-news. license: MIT metadata: author: machina-sports version: "0.1.0"
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:
which sports-skills || pip install sports-skills
If `pip install` fails (package not found or Python version error), install from GitHub:
pip 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:
python3 --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.
Quick Start
Prefer the CLI — it avoids Python import path issues:
sports-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):
from sports_skills import volleyball standings = volleyball.get_standings(competition_id="nevobo-eredivisie-heren") results = volleyball.get_results(competition_id="nevobo-eredivisie-dames")
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 da
Open-source agent skills for live sports data and prediction markets. Built for the Agent Skills spec. Works with sportsclaw, OpenClaw, Claude Code, Cursor, Copilot, Gemini CLI, Hermes Agent, and every major AI agent. Zero API keys. Zero signup.
Other skills on sports-skills.
- /betting
Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement. Pure computation, no API calls. Works with odds from any source: ESPN (American odds), Polymarket (decimal probabilities), Kalshi (integer
Open skill - /cbb-data
College Basketball (CBB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, win probability, rankings, futures, team/player stats, and news for Division I men's basketball, plus official D2/D3
Open skill - /cfb-data
College Football (CFB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, rankings, injuries, futures, team/player stats, and news for FBS, plus official FCS scoreboards, NCAA game detail with
Open skill - /cricket-data
Cricket data via ESPN public endpoints and Cricsheet open data — live-ish series scoreboards, standings, match summaries and news (ESPN), plus historical ball-by-ball, player stats, and player registry (Cricsheet, ODC-BY 1.0). Zero config, no API keys. Use when: user asks about
Open skill - /esports
Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia). Pro matches, tournaments, teams, and structured LoL competitive data. Use when: user asks about Dota 2 pro matches/teams/leagues, or LoL esports tournaments/rosters/results. Don't use when: user asks
Open skill - /fastf1
Formula 1 data — race schedules, results, lap timing, driver and team info. Powered by the FastF1 library. Covers F1 sessions, qualifying, practice, race results, sector times, tire strategy. Use when: user asks about F1 race results, qualifying, lap times, driver stats, team
Open skill

