Matched volume
A
GET
/v1/odds/volume
Matched volume, pre-match and at kickoff
Matched volume before the match and at kickoff, as a measure of how deep the market was.
Matched volume is not carried on every match. The coverage figures on each competition and season give the exact share for the rows you are asking for.
Plan
This endpoint needs Archive.
Calling it on a lower plan returns a 403 naming the plan it needs and
a link to pricing, never a bare refusal.
Parameters
league_id
string
query
Restrict to one competition. Ids come from
/v1/leagues: 39 is the English Premier League, 62 is Ligue 2. e.g. lg_24T9Z0G
season
integer
query
Season by its starting year. A 2024/25 season is
2024. e.g. 2024
group_by
string
query
Aggregate by
league, season, country or league_season. e.g. league
Returns
data[].league_id
string
Our id for the competition.
data[].country_name
string
The country the competition belongs to.
data[].league_name
string
The competition's name.
data[].matches
integer
Matches counted.
data[].goals_per_game
number
Goals per game.
data[].home_win_pct
number
Home win, as a percentage.
meta.data_as_of
string
When the data behind this answer was last brought up to date.
meta.request_id
string
This request's id, to quote to support.
meta.count
integer
How many items are in this answer.
meta.group_by
string
Group by.
Request
curl "https://api.footballsoccerapi.com/v1/odds/volume?league_id=lg_24T9Z0G&season=2024&group_by=league" \ -H "X-API-Key: $FSAPI_KEY"
const res = await fetch("https://api.footballsoccerapi.com/v1/odds/volume?league_id=lg_24T9Z0G&season=2024&group_by=league", { headers: { "X-API-Key": process.env.FSAPI_KEY } }); const { data, meta } = await res.json();
import os, requests r = requests.get( "https://api.footballsoccerapi.com/v1/odds/volume?league_id=lg_24T9Z0G&season=2024&group_by=league", headers={"X-API-Key": os.environ["FSAPI_KEY"]}, ) data = r.json()["data"]
$ch = curl_init("https://api.footballsoccerapi.com/v1/odds/volume?league_id=lg_24T9Z0G&season=2024&group_by=league"); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["X-API-Key: {$key}"], ]); $data = json_decode(curl_exec($ch), true)["data"];
Example response
A real row from the archive, fetched when this page rendered. Run it against your own key below.
200 OK
application/json
{
"data": [
{
"league_id": "lg_2DGPHND",
"country_name": "World",
"league_name": "Friendlies Clubs",
"matches": 40344,
"goals_per_game": 3.36,
"home_win_pct": 44.7
},
{
"league_id": "lg_06VYC58",
"country_name": "England",
"league_name": "Championship",
"matches": 18554,
"goals_per_game": 2.58,
"home_win_pct": 44.5
},
{
"league_id": "lg_1869AE0",
"country_name": "England",
"league_name": "League One",
"matches": 18291,
"goals_per_game": 2.6,
"home_win_pct": 44.2
}
],
"meta": {
"data_as_of": "2026-10-29T04:32:57Z",
"request_id": "01J9QW3C7M4KX2VB",
"count": 3,
"group_by": "league"
}
}
Run it live
Paste your key and fire the real request. The key is kept in this browser only and never sent anywhere but the API.