DocumentationGuides
Volleyball point-by-point data guide
Point by point
Every rally of every set in the order played: the score after it, who won it and who served. Enough for side-out and break-point rates, runs and clutch points.
What it covers
For each set, every rally in the order it was played: the score after it, the side that won it and the side that served it. From that come side-out and break-point rates, runs, momentum swings and clutch points. Rallies are on every paid plan.
The endpoints
Every planEvery paid planLive and CompleteArchive and CompleteComplete
| Endpoint | What it returns |
|---|---|
| GET /v1/matches/{id}/points | Every rally of every set: the score after it, who won it and who served |
| GET /v1/export/points | Every rally of every match between two days in one call (up to 14 days) |
How the records link
Rallies hang off a match by its id; detail on the match says whether it has them. Sets are numbered as in sets on the match.
Every rally of a match
One call per match, all sets at once.
# Every rally of a match curl "https://api.volleyballapi.com/v1/matches/mt_854w9wh4/points" \ -H "Authorization: Bearer $VBA_KEY"
$ch = curl_init('https://api.volleyballapi.com/v1/matches/mt_854w9wh4/points'); 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_854w9wh4/points", headers={"Authorization": f"Bearer {os.environ['VBA_KEY']}"}, ) print(r.json()["data"])
const res = await fetch("https://api.volleyballapi.com/v1/matches/mt_854w9wh4/points", { headers: { "X-API-Key": process.env.VBA_KEY }, }); const { data, meta } = await res.json();
Many matches at once
On Complete, every rally of every match between two days, up to 14 days a call.
# Many matches at once curl "https://api.volleyballapi.com/v1/export/points?from=2026-11-11&to=2026-11-11" \ -H "Authorization: Bearer $VBA_KEY"
$q = http_build_query(['from' => '2026-11-11', 'to' => '2026-11-11']); $ch = curl_init('https://api.volleyballapi.com/v1/export/points?' . $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/export/points", params={"from": "2026-11-11", "to": "2026-11-11"}, headers={"Authorization": f"Bearer {os.environ['VBA_KEY']}"}, ) print(r.json()["data"])
const res = await fetch("https://api.volleyballapi.com/v1/export/points?from=2026-11-11&to=2026-11-11", { headers: { "X-API-Key": process.env.VBA_KEY }, }); const { data, meta } = await res.json();
Stuck on something?
Ask support