DocumentationGuides
Volleyball results API guide
Results and sets
Finished matches with every set score and its duration, the venue, town, attendance and referees. One call a day keeps a results page up to date; any day since the first season is a date away.
What it covers
Every finished match since 2001 with the score in sets, every set's points and duration, and where it was played: hall, town and country where the source gives them, with attendance and both referees. A match whose source left sets out says so with sets_complete false, never with made-up numbers.
The endpoints
| Endpoint | What it returns |
|---|---|
| GET /v1/results/yesterday | Yesterday's finished matches |
| GET /v1/matches | Matches on a day or between two days, filtered by discipline, gender, status, competition or team |
| GET /v1/matches/{id} | One match: teams, result, every set, duration, venue, spectators and referees |
How the records link
Each match names its competition and both teams by id, with the round and pool. A match that reached us twice is served once under one id.
Yesterday's results
Answers on every plan, the free key included: one call a day keeps a results page current.
# Yesterday's results curl "https://api.volleyballapi.com/v1/results/yesterday?per_page=50" \ -H "Authorization: Bearer $VBA_KEY"
$q = http_build_query(['per_page' => '50']); $ch = curl_init('https://api.volleyballapi.com/v1/results/yesterday?' . $q); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('VBA_KEY')], CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true); print_r($res['data']);
import os, requests r = requests.get( "https://api.volleyballapi.com/v1/results/yesterday", params={"per_page": "50"}, headers={"Authorization": f"Bearer {os.environ['VBA_KEY']}"}, ) print(r.json()["data"])
const res = await fetch("https://api.volleyballapi.com/v1/results/yesterday?per_page=50", { headers: { "X-API-Key": process.env.VBA_KEY }, }); const { data, meta } = await res.json();
One day, or a range
Up to 31 days a call, filtered by discipline, gender, status, competition or team.
# One day, or a range curl "https://api.volleyballapi.com/v1/matches?date=2021-09-24&gender=men" \ -H "Authorization: Bearer $VBA_KEY"
$q = http_build_query(['date' => '2021-09-24', 'gender' => 'men']); $ch = curl_init('https://api.volleyballapi.com/v1/matches?' . $q); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('VBA_KEY')], CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true); print_r($res['data']);
import os, requests r = requests.get( "https://api.volleyballapi.com/v1/matches", params={"date": "2021-09-24", "gender": "men"}, headers={"Authorization": f"Bearer {os.environ['VBA_KEY']}"}, ) print(r.json()["data"])
const res = await fetch("https://api.volleyballapi.com/v1/matches?date=2021-09-24&gender=men", { headers: { "X-API-Key": process.env.VBA_KEY }, }); const { data, meta } = await res.json();
One match in full
Venue, town, attendance, referees and coaches, with links to its rallies and lineups where they exist.
# One match in full curl "https://api.volleyballapi.com/v1/matches/mt_pcbe3hvw" \ -H "Authorization: Bearer $VBA_KEY"
$ch = curl_init('https://api.volleyballapi.com/v1/matches/mt_pcbe3hvw'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('VBA_KEY')], CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true); print_r($res['data']);
import os, requests r = requests.get( "https://api.volleyballapi.com/v1/matches/mt_pcbe3hvw", headers={"Authorization": f"Bearer {os.environ['VBA_KEY']}"}, ) print(r.json()["data"])
const res = await fetch("https://api.volleyballapi.com/v1/matches/mt_pcbe3hvw", { headers: { "X-API-Key": process.env.VBA_KEY }, }); const { data, meta } = await res.json();
Stuck on something?
Ask support