Volley APIvolley.ru ↗
Access Russian volleyball match schedules, scores, set results, and player lineups from volley.ru via two structured API endpoints.
What is the Volley API?
The volley.ru API exposes two endpoints covering Russian volleyball competitions sourced from the official VFV (Russian Volleyball Federation) website. The get_matches endpoint returns match lists with scores, set results, stage, venue, and team names for any competition ID on volley.ru, with optional date filtering. The get_match_lineup endpoint delivers full player rosters — including jersey numbers, positions, and physical attributes — for both teams in a specific match.
curl -X GET 'https://api.parse.bot/scraper/cfd8cbaa-62a4-4efe-b2cb-62242b3cffa4/get_matches?date=2026-05-17&competition_id=01K073HE7F023416SWXBSY1RJT' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace volley-ru-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: volley_ru_api SDK — bounded, re-runnable; every call capped."""
from parse_apis.volley_ru_api import Volley, MatchNotFound
client = Volley()
# List matches from a competition, filtered by date.
# competition_id comes from volley.ru calendar URLs (public site identifiers).
comp = client.competition(competition_id="cup-russia-2026-men")
for match in comp.matches(date="2026-05-17", limit=3):
print(match.team_a, match.score_a, ":", match.score_b, match.team_b, match.stage)
# Take one match and fetch its full lineup
first_match = comp.matches(limit=1).first()
if first_match:
try:
lineup = first_match.lineup()
print(lineup.team_a.name, "vs", lineup.team_b.name)
for player in lineup.team_a.players[:3]:
print(player.name, player.number, player.position)
except MatchNotFound as e:
print("match gone:", e.match_id)
print("exercised: competition.matches / match.lineup")
Retrieve volleyball matches from a competition. Returns match list with IDs, teams, dates, scores, set results, stage, and venue. Results are auto-iterated from a single competition page. When a date filter is applied, only matches on that specific date are returned.
| Param | Type | Description |
|---|---|---|
| date | string | Filter matches to a specific date in ISO format YYYY-MM-DD (e.g. 2026-05-17). When omitted, all matches in the competition are returned. |
| competition_id | string | Competition identifier from volley.ru (e.g. from a calendar page URL). When omitted, defaults to Кубок России 2026 Мужчины. |
{
"type": "object",
"fields": {
"matches": "array of match objects with match_id, date, time, teams, scores, set_scores, stage, venue, status",
"competition": "competition name string",
"total_matches": "number of matches returned",
"competition_id": "competition identifier"
},
"sample": {
"data": {
"matches": [
{
"date": "17.05.2026",
"time": "19:00",
"stage": "ФИНАЛ ШЕСТИ. ФИНАЛ МУЖЧИНЫ",
"venue": "Москва",
"status": "completed",
"team_a": "Зенит",
"team_b": "Динамо",
"score_a": 2,
"score_b": 3,
"match_id": "01KRNCBVDVC2AD0D4YHSQR1G9W",
"set_scores": [
"25 : 21",
"25 : 19",
"24 : 26",
"13 : 25",
"10 : 15"
],
"competition": "Кубок России 2026.Мужчины"
}
],
"competition": "Кубок России 2026.Мужчины",
"total_matches": 2,
"competition_id": "01K073HE7F023416SWXBSY1RJT"
},
"status": "success"
}
}About the Volley API
Match Data via get_matches
The get_matches endpoint accepts a competition_id parameter drawn from volley.ru calendar URLs. When omitted, it defaults to the Кубок России (Russian Cup) competition. Each match object in the response includes match_id, date, time, teams, scores, set_scores, stage, venue, and status. An optional date parameter in YYYY-MM-DD format narrows results to a single day. The response also carries competition (name string), competition_id, and total_matches so you can verify scope without counting the array yourself.
Roster Data via get_match_lineup
Pass a match_id obtained from get_matches to get_match_lineup to retrieve full team rosters for both sides. The response structures each team under team_a and team_b, each containing team name, city, score, a players array, and a coaching_staff array. Player records include name, jersey number, position, and physical attributes. Position data is resolved from individual player profiles, which means latency scales with roster size — expect roughly 27 additional lookups per match, typically adding a few seconds to the response time.
Coverage and Scope
Competition coverage depends on which competition IDs exist on volley.ru. The default competition is Кубок России, but any valid competition_id from the site's calendar pages can be queried. Match status fields indicate whether a match is completed, scheduled, or in another state. Coaching staff names appear in the coaching_staff array structure, though the underlying source pages do not consistently expose this data, so that array may return empty for some matches.
The Volley API is a managed, monitored endpoint for volley.ru — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when volley.ru 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 volley.ru 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?+
- Display a full match schedule for the Russian Cup filtered by date using the
dateparameter - Build a results tracker that reads
scoresandset_scoresto show detailed set-by-set breakdowns - Construct team roster pages using
playersarrays fromget_match_lineupwith jersey numbers and positions - Identify upcoming matches by
stagefield to differentiate group stage from knockout rounds - Aggregate venue data from the
venuefield across multiple competitions to map match locations - Monitor player attributes across matches to track roster changes over a competition season
- Feed match IDs from
get_matchesinto automated lineup lookups for pre-match analysis dashboards
| 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 volley.ru provide an official developer API?+
What does the date filter in get_matches actually do?+
date value in YYYY-MM-DD format is supplied, the endpoint returns only matches scheduled on that specific calendar day within the selected competition. Without it, the endpoint returns all matches iterated from the competition page — useful for building a full schedule view.Why does get_match_lineup sometimes take longer than get_matches?+
Does the API cover women's volleyball competitions or only men's?+
competition_id from volley.ru, which hosts both men's and women's competitions. The default competition (Кубок России) is a men's event, but you can pass a different competition_id to query other competitions. The endpoint list does not include a competition discovery endpoint to browse available IDs. You can fork this API on Parse and revise it to add a competitions listing endpoint.Are historical match results available, or only current-season data?+
competition_id. Historical competition pages may be accessible if their IDs are known, but there is no search or archive-browsing endpoint to enumerate past seasons. You can fork this API on Parse and revise it to add an endpoint that iterates historical competition IDs.