DocumentationGuides
Volleyball data bulk export guide
Bulk export
Whole ranges in one call for loading your own database: up to 184 days of matches, 92 of lineups or 14 of rallies at a time.
What it covers
For loading a season or a history into your own database without paging: every match between two days with its full record, every lineup, or every rally. One call is one call against your quota, whatever its size. On the Complete plan.
The endpoints
Every planEvery paid planLive and CompleteArchive and CompleteComplete
| Endpoint | What it returns |
|---|---|
| GET /v1/export/matches | Every match between two days in one call, with sets, venue, officials and coaches (up to 184 days) |
| GET /v1/export/lineups | Every lineup between two days in one call: starting six by zone, players who came on, coaches (up to 92 days) |
| GET /v1/export/points | Every rally of every match between two days in one call (up to 14 days) |
How the records link
Exports carry the same ids as every other endpoint, so a match from an export, a page or a live call is the same match.
A month of matches
The full match record, sets, venue, referees and coaches, up to 184 days a call.
# A month of matches curl "https://api.volleyballapi.com/v1/export/matches?from=2021-09-24&to=2021-09-24&gender=men" \ -H "Authorization: Bearer $VBA_KEY"
$q = http_build_query(['from' => '2021-09-24', 'to' => '2021-09-24', 'gender' => 'men']); $ch = curl_init('https://api.volleyballapi.com/v1/export/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/export/matches", params={"from": "2021-09-24", "to": "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/export/matches?from=2021-09-24&to=2021-09-24&gender=men", { headers: { "X-API-Key": process.env.VBA_KEY }, }); const { data, meta } = await res.json();
Lineups for a range
Up to 92 days a call.
# Lineups for a range curl "https://api.volleyballapi.com/v1/export/lineups?from=2026-11-10&to=2026-11-10" \ -H "Authorization: Bearer $VBA_KEY"
$q = http_build_query(['from' => '2026-11-10', 'to' => '2026-11-10']); $ch = curl_init('https://api.volleyballapi.com/v1/export/lineups?' . $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/lineups", params={"from": "2026-11-10", "to": "2026-11-10"}, headers={"Authorization": f"Bearer {os.environ['VBA_KEY']}"}, ) print(r.json()["data"])
const res = await fetch("https://api.volleyballapi.com/v1/export/lineups?from=2026-11-10&to=2026-11-10", { headers: { "X-API-Key": process.env.VBA_KEY }, }); const { data, meta } = await res.json();
Stuck on something?
Ask support