Volleyball API
DocumentationLiveCoveragePricingMCPStatusSign inGet a free key
Indoor since 2001
Beach since 2005
Live every 15 s
13.1M+ rallies
JSON and OpenAPI
22 endpoints
MCP for AI agents
Volleyball REST API Data back to 2001

The volleyball data API for developers.

Live scores, results, rally-by-rally points and player figures for indoor and beach volleyball. One key, one JSON shape, from world championships to national leagues.

526,062matches
13.1Mrallies
15 slive refresh
Yenisey W
11:14
Leningradka W
Set 3, 2026-11-13Superleague Womenrally 26
1 2 3 4
1 ServeLeningradka W
2 ReceiveYenisey W
3 SetYenisey W
4 AttackYenisey W
GET /v1/matches/mt_3snvqtp8/points200 OK

By the numbers

526,062 matches. 13.1M rallies. One call away.

Every indoor and beach match we hold, from world tours to national leagues, in one JSON shape. Your key is free and works in the next thirty seconds.

  • No card
  • 50 calls a day
  • Yesterday's results, free
Try it: yesterday's results
$ curl https://api.volleyballapi.com/v1/results/yesterday \
    -H "Authorization: Bearer YOUR_KEY"
{ "data": [
    { "team_a": { "name": "MOYA Radomka Radom" },
      "team_b": { "name": "LOTTO Chemik Police" },
      "score": { "a": 0, "b": 3 },
      "sets": [{ "a": 20, "b": 25 }, { "a": 18, "b": 25 }, { "a": 25, "b": 27 }] },
    ...
  ],
  "meta": { "plan": "Free key", "total": 43 } }
Matches served
526,062

225,964 beach, 300,098 indoor

Rallies stored
13.1M

across 82,188 matches, about 160 each

Competitions
16,947

316 leagues, 3,147 seasons

History
2001 to now

beach 2005, indoor 2001, rallies 2019

Volleyball results API

Every match, every set, in clean JSON since 2001.

Indoor and beach volleyball results for men, women and youth: world tours, continental championships and the top leagues of 27 countries, merged so each match appears once. Every result carries the set-by-set score, match and set durations, round, pool and venue, updated every 15 seconds while a match is live.

TAURON Liga Kobiet 2026/2027, women1:26:00
MOYA Radomka Radom
LOTTO Chemik Police
03
2025
1825
2527
XXI Central American VB U-21 Women - Honduras 2026, women1:54:00
Nicaragua
Guatemala
31
2225
2521
2522
2521
XXI Central American VB U-21 Women - Honduras 2026, women1:00:00
Costa Rica
Panama
30
2511
2513
2515
43 finished yesterdayGET /v1/results/yesterday

One match, as the API returns it

200 OK
{
  "id": "mt_0psf8rp2",
  "discipline": "indoor",
  "gender": "men",
  "status": "finished",
  "date": "2017-08-26",
  "time_local": "17:50",
  "start_utc": "2017-08-26T14:00:00Z",
  "competition": { "id": "cp_wqxyp8gn",
    "name": "Boys' U19 World Championship",
    "season": 2017 },
  "pool": "Semifinals",
  "team_a": { "id": "tm_drr98vzn", "name": "Japan" },
  "team_b": { "id": "tm_tkazz6yt", "name": "Russia" },
  "score": { "a": 0, "b": 3 },
  "winner": "b",
  "sets": [
    { "set": 1, "a": 17, "b": 25, "duration_s": 1200 },
    { "set": 2, "a": 23, "b": 25, "duration_s": 1500 },
    { "set": 3, "a": 28, "b": 30, "duration_s": 1860 }
  ],
  "sets_complete": true,
  "duration_s": 4560
}

The match object

GET /v1/matches/{id}
FieldTypeWhat it holds
idstringstable match id, mt_0psf8rp2
disciplineenumindoor or beach
genderenummen, women or mixed
statusenumscheduled, live, finished or cancelled
current_setintthe set being played, while live
date, time_localdatethe venue's calendar day and clock
start_utcdatetimescheduled start in UTC, ISO 8601
competitionobjectid, name and season
round, poolstring"Semifinals", "Pool B"
team_a, team_bobjectid and name: a club, a national team or a beach pair
scoreobjectsets won, {"a": 3, "b": 1}
winnerenuma or b
setsarrayeach set: number, points each side, duration
duration_sintmatch length in seconds
venue, city, country_codestringwhere it was playedone match
spectatorsintofficial attendanceone match
refereesarrayfirst and second refereeone match

Ask for exactly the matches you need

GET /v1/matches
ParameterAcceptsExampleReal answer
dateone day, in venue time/v1/matches?date=2017-08-26206matches
from, toany range up to 31 days?from=2026-10-01&to=2026-10-31&gender=women1,790matches
disciplineindoor or beach?date=2026-11-12&discipline=beach0matches
gendermen, women or mixed?gender=women
statusscheduled, live, finished, cancelled?status=live1live now
competitiona competition id/v1/competitions/{id}/matches16,947competitions
teama team id, under every name it plays as/v1/teams?q=poland22teams
page, per_page, cursorup to 200 rows a page, or a cursor?per_page=200&page=2

Live score apps and widgets

Running set scores and the current set for every match in play, refreshed every 15 seconds, with a seconds-behind figure in every answer.

/v1/matches/live/v1/results/yesterday

Prediction and betting models

Years of set scores, durations and head-to-head records to train on, plus rally-by-rally data for side-out and break-point rates.

/v1/head-to-head/points

Fantasy, media and graphics

Upcoming fixtures, results as they finish and player figures for club leagues, ready for previews, recaps and on-screen graphics.

/v1/competitions/players

Research and analysis

One consistent shape across tours and leagues since 2001, stable ids for teams and players, and pages of up to 200 rows for bulk pulls.

/v1/teams/{id}/matches

Volleyball point-by-point API

Every rally: who served, who won, the score after it.

13.1M rallies from 82,188 matches, rally by rally since 2019 and arriving live while a match is played. Work out side-out and break-point rates, runs, momentum and clutch performance for any team, set or season, without watching a single video.

Set 3, rally by rally

Yenisey W v Leningradka W
Yenisey W 0:0 Leningradka W
Yenisey W aheadLeningradka W aheadlongest run
0%side-out, Yenisey W
0break points, Yenisey W
0longest run
0lead changes

The rally object

GET /v1/matches/{id}/points
FieldTypeWhat it holds
setintset number, 1 to 5
a, bintthe score after the rally
won_byenuma or b, the side that won the rally
served_byenuma or b, the side that served it
ralliesarrayevery rally of the set, in the order played
{ "data": { "match": "mt_3snvqtp8",
  "sets": [{ "set": 3, "rallies": [
    { "a": 1, "b": 0, "won_by": "a", "served_by": "a" },
    { "a": 1, "b": 1, "won_by": "b", "served_by": "a" },
    ...
  ]}]},
  "meta": { "rallies": 144 } }
Included on LiveArchiveCompleteFree key

Side-out rate

How often a team wins the rally when the other side serves: the core measure of reception and first attack.

won_by != served_by / rallies received

Break points

Rallies won on your own serve. The number that decides close sets, by team, rotation or season.

won_by == served_by and served_by == team

Runs and momentum

Longest scoring runs, lead changes and comebacks, set by set, in the exact order the rallies happened.

consecutive won_by per set

Clutch points

Performance from 20-20 in indoor and 18-18 on the beach, where sets are actually won and lost.

rallies where a, b both >= 20

13.1M rallies, ready to modelOn the Live, Archive and Complete plans, with the free key for everything else.

See the plansStart with a free key

Volleyball data coverage

Coverage you can count, not a list of promises.

526,062 matches across 16,947 competitions: world and continental championships, the Beach Pro Tour, and the top national leagues of 27 countries, with live scores from 316 leagues and cups worldwide. Every figure on this page is counted from the database the API answers from.

Where every match comes from

served once each
International beach tours235,009
League and cup matches203,756
National league match sheets110,423
International indoor29,953
Same match, second source-44,775
Test and withdrawn, hidden-10,214
Matches served526,062

Indoor and beach

?discipline=
57% indoor
Indoor300,098
Beach225,964
16,947competitions
3,147league seasons
82,188matches with rallies
27countries with player figures

How far back each kind of data goes

2001 to today
Beach internationals from 2005Beach 2005
Indoor internationals from 2001Indoor 2001
League and cup results from 2009Leagues 2009
Rally by rally from 2019Rallies 2019
Player figures from 2009Stats 2009
200102200304200506200708200910201112201314201516201718201920202122202324202526

International indoor

29,953 matches since 2001

World Championships, the Volleyball Nations League, World Cups, Olympic tournaments and qualifiers, club world championships and continental championships, men's, women's and youth.

World ChampionshipsNations LeagueWorld CupOlympic GamesClub World ChampionshipU17 to U23

Beach volleyball

225,964 matches since 2005

Pairs, pools and knockout rounds from the world tour, the Beach Pro Tour, world championships, Olympic tournaments and continental tours, with set durations.

Beach Pro TourWorld TourWorld ChampionshipsOlympic GamesAsian GamesContinental tours

National leagues

316 leagues and cups

Top-flight leagues and cups from 2009, with full match sheets and player figures from the federations of 27 countries.

ArgentinaBelgiumBulgariaBrazilSwitzerlandCzechiaGermanyEstoniaSpainFinlandFranceGreeceCroatiaHungaryIsraelKazakhstanLatviaNorwayPeruPortugalRomaniaSerbiaSwedenSloveniaSlovakiaTurkeyUkraine

Volleyball API for developers

From key to first result in one minute.

A plain REST API over HTTPS with JSON answers in one envelope, keys in a header, stable ids, page or cursor pagination and rate headers on every response. 22 endpoints, an OpenAPI file for code generators and an llms.txt for AI tools.

1

Get a free key

Sign in with Google. Your key is shown once; it works straight away, no card.

vba_6c1f...e9 (40 characters)
2

Send it in a header

As a Bearer token or in X-API-Key. Keys in the address are refused, so they never end up in logs.

Authorization: Bearer $VBA_KEY
3

Read data and meta

Every answer is data plus meta: counts, pages, the next cursor and your plan.

{ "data": [...], "meta": { ... } }

Every endpoint

https://api.volleyballapi.com
EndpointWhat it returnsPlans
/v1/matches/liveevery match in play, with the running set scoresLiveComplete
/v1/results/yesterdayyesterday's finished matchesAll plans
/v1/matchesmatches by day or range, discipline, gender, status, competition or teamAll plans
/v1/matches/{id}one match: teams, result, every set, venue, spectators, refereesAll plans
/v1/matches/{id}/pointsevery rally: the score after it, who won it, who servedLiveArchiveComplete
/v1/matches/{id}/playersper-player points, serve, reception, attack and blockArchiveComplete
/v1/competitionscompetitions, newest first, by discipline, gender, season or nameAll plans
/v1/competitions/{id}one competition, with its dates and match countAll plans
/v1/competitions/{id}/matchesa competition's matchesAll plans
/v1/competitions/{id}/standingsleague and pool tables worked out from the resultsAll plans
/v1/teamsteams and beach pairs, found by nameAll plans
/v1/teams/{id}one team, its kind, federation and playersAll plans
/v1/teams/{id}/matchesa team's matches, newest firstAll plans
/v1/playersplayers, found by nameAll plans
/v1/players/{id}one player, their teams and their careerAll plans
/v1/head-to-headevery meeting of two teams, with the record between themLiveArchiveComplete
/v1/usageyour plan, calls today and this month, your limitsAll plans
# Every match being played now
curl https://api.volleyballapi.com/v1/matches/live \
  -H "Authorization: Bearer $VBA_KEY"

# One day, beach only, 200 a page
curl "https://api.volleyballapi.com/v1/matches?date=2026-11-12&discipline=beach&per_page=200" \
  -H "X-API-Key: $VBA_KEY"

# Every rally of a match
curl https://api.volleyballapi.com/v1/matches/mt_3snvqtp8/points \
  -H "Authorization: Bearer $VBA_KEY"

Errors that tell you what to fix

HTTPCodeWhen
400bad_requesta value is the wrong shape, or a key was sent in the address
401unauthorizedno key, or a key that is not known or was revoked
403upgrade_requiredthe plan does not include this; the answer names the plans that do
404not_foundno endpoint, match, team or player with that id
422unknown_parametera parameter the endpoint does not take; the answer lists the ones it does
429rate_limitedtoo many calls this minute; Retry-After says when to try again
429quota_exceededthe day's or month's allowance is used; the answer says when it resets
500server_errorour fault; it is logged and looked at
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-ResetX-Quota-LimitX-Quota-RemainingX-Quota-ResetRetry-After

Volleyball data for AI agents

Ask Claude, ChatGPT or Cursor about any match.

An MCP server on every plan. Add it once with your key and your assistant can look up live scores, results, rallies and head-to-head records itself, and answer with real figures instead of guesses.

A question, answered from the data

How did Serbia's women start the 2019 World Cup?
matches(team: "Serbia", competition: "World Cup Women 2019")
They opened with a 3-0 win over Kenya on 16 September: 25-13, 25-11, 25-17, with every set inside 23 minutes. Want the rest of their matches?
Yes, and their record against Brazil.
head_to_head(team_a: "Serbia", team_b: "Brazil")

Tools your assistant gets

/mcp
live_matchesmatches being played now
results_yesterdayyesterday's finished matches
matchesmatches by day, range, competition or team
matchone match in full
match_pointsevery rally of a match
head_to_headevery meeting of two teams
search_teamsfind a team or beach pair
search_playersfind a player
{ "mcpServers": { "volleyball": {
    "url": "https://volleyballapi.com/mcp",
    "headers": { "Authorization": "Bearer YOUR_KEY" } } } }
Works with ClaudeChatGPTCursorany MCP client

Volleyball API pricing

Start free. Pay for live, rallies or the archive.

Every plan uses the same API and the same JSON. Upgrade or cancel at any time; limits change the moment you do, and nothing is ever charged for going over. Pay yearly and two months are free.

Free key

to try it and for hobby projects

Free
50 calls a day
  • Yesterday's and today's matches
  • Competitions, teams, players
  • 10 calls a minute
  • Live scores
  • Point by point
  • History before yesterday
Get a free key

Live

for live score apps and widgets

$39 a month
50,000 calls a month
  • Live scores every 15 seconds
  • Point by point
  • Last 30 days of matches
  • Head to head
  • 60 calls a minute
  • Player figures
Choose Live

Archive

for models, research and back catalogues

$39 a month
50,000 calls a month
  • Every match since 2001
  • Point by point
  • Player figures
  • Head to head
  • 60 calls a minute
  • Live scores
Choose Archive
Best pick

Complete

everything, for products in production

$79 a month
250,000 calls a month
  • Live scores every 15 seconds
  • Every match since 2001
  • Point by point
  • Player figures
  • Head to head
  • 120 calls a minute
Choose Complete
 FreeLiveArchiveComplete
Price a month$0$39$39$79
Price a year$0$390$390$790
Calls a minute106060120
Calls included50 a day50k a month50k a month250k a month
Matches you can readyesterday onlast 30 dayssince 2001since 2001
Live scores–✓–✓
Point by point–✓✓✓
Player figures––✓✓
Head to head–✓✓✓
Commercial use–✓✓✓
MCP for AI agents✓✓✓✓

Prices in US dollars. Card charges appear as DEVELOPERDATA.NET. Questions about a charge: developerdata.net/support.

Questions

Before you sign up.

Anything else is in the documentation, or ask us at support.

What is the Volleyball API?

A REST API with live scores, results, set scores, rally-by-rally points and player figures for indoor and beach volleyball, as JSON, with an MCP server for AI agents.

How far back does the data go?

Beach volleyball internationals from 2005, indoor internationals from 2001, league and cup results from 2009, rally-by-rally data from 2019 and player figures from 2009.

How live are the live scores?

Matches in play refresh every 15 seconds. Every answer says when the data last changed and how many seconds behind it is, so your app can show it honestly.

Which competitions are covered?

World Championships, the Volleyball Nations League, World Cups, Olympic tournaments, the Beach Pro Tour and continental events, plus 316 leagues and cups and the top leagues of 27 countries.

Indoor and beach, men and women?

Both disciplines; men's, women's and youth competitions; club and national teams; beach pairs as teams with their two players.

Is there a free volleyball API?

Yes. The free key gives yesterday's and today's matches, competitions, teams and players, 50 calls a day, with no card.

What happens when I reach my limit?

You get a 429 with the time your allowance resets, and every response carries rate and quota headers so you can see it coming. Nothing is charged automatically.

Can I use it in a commercial product?

Yes, on the paid plans: apps, sites, betting and fantasy products, broadcast graphics. The terms set out what you can show and redistribute.

Do ids stay the same?

Yes. Every match, competition, team and player has a stable id (mt_, cp_, tm_, pl_) that never changes, and a match recorded twice is served once under one id.

Who runs Volleyball API?

A small team that builds sports and data APIs. The company behind it is named in the terms, and support answers every ticket.

526,062 matches are waiting.

Your free key works in thirty seconds. Yesterday's results, competitions, teams and players, 50 calls a day, no card.