DocumentationCompetitions
Volleyball competition API
GET/v1/competitions/{id}
One competition with its discipline, gender, season and dates, the number of matches you can read in it and the first and last of them.
Parameters
This endpoint takes the parameters below.
| Name | Type | What it does | Example |
|---|---|---|---|
id | path | The competition id, in the address. Required. | cp_tayx7he8 |
Request
Send your key in the Authorization header as a Bearer token, or in X-API-Key. A key in the address is refused, so it never ends up in a log.
# One competition, with its dates and match count curl "https://api.volleyballapi.com/v1/competitions/cp_tayx7he8" \ -H "Authorization: Bearer $VBA_KEY"
$ch = curl_init('https://api.volleyballapi.com/v1/competitions/cp_tayx7he8'); 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/competitions/cp_tayx7he8", headers={"Authorization": f"Bearer {os.environ['VBA_KEY']}"}, ) print(r.json()["data"])
const res = await fetch("https://api.volleyballapi.com/v1/competitions/cp_tayx7he8", { headers: { "X-API-Key": process.env.VBA_KEY }, }); const { data, meta } = await res.json();
Response
Every answer is data plus meta. This is a real answer to the request above, counted 2026-10-12, with long lists cut short.
200 application/json
{
"data": {
"id": "cp_tayx7he8",
"name": "Women's Asian Senior Championship 2023",
"discipline": "indoor",
"gender": "women",
"season": 2023,
"start_date": "2023-08-30",
"end_date": "2023-09-06",
"country_code": "TH",
"matches": 43,
"first_match": "2023-08-30",
"last_match": "2023-09-06"
},
"meta": { "plan": "Complete" }
}Fields
| Field | Type | What it holds |
|---|---|---|
id | string | Stable competition id, cp_ |
name | string | The competition's name |
discipline | enum | indoor or beach |
gender | enum | men, women or mixed |
season | int | The year the season starts in |
start_date, end_date | date | First and last day, where known |
country_code | string | Two-letter country of a national competition |
matches | int | Matches in it your plan can read |
first_match, last_match | date | The first and last of them |
Errors
Errors come back as {"error": {"code", "message", "docs"}}, with plan and pricing added when a plan would answer. Every error.
| HTTP | Code | When |
|---|---|---|
| 401 | unauthorized | No key, or a key that is not known or was revoked |
| 404 | not_found | An id that does not exist |
| 422 | unknown_parameter | A parameter this endpoint does not take; the answer lists the ones it does |
| 429 | rate_limited | Too many calls this minute; Retry-After says when to try again |
| 429 | quota_exceeded | The day's or month's allowance is used; the answer says when it resets |
Try it
Fill in what you need; the request is built as you type. Paste your key to run it here, straight against the API.