rugbyAPI
Analytics / Crowds

Crowds

Live

Attendance by team, ground and season: averages, peaks and the share of the ground filled.

GEThttps://api.rugbyapi.com/v1/analytics/crowds

Parameters

NameWhat it doesExample
teamstring, optionalOnly matches this team played in.
competitionstring, optionalOnly this competition. IDs come from Competitions.
seasonstring, optionalOnly this season. IDs come from a competition's Seasons.ss_2H1294N

Any other parameter is refused with a 422 naming the ones this endpoint takes, so a typo never silently returns everything.

What each plan returns

Free key

Not included. Returns 403 with the upgrade link.

Archive

Not included. Returns 403 with the upgrade link.

Live

Included.

Response fields

FieldMeaning
analysisWhich analysis this is, for example totals.
scopeThe team, competition and season asked for, each with its ID and name, or null.
basis.matches_in_scopeFinished matches in the scope.
basis.matches_countedHow many of them this analysis could use.
basis.countedThe rule for which matches count, for example only those whose scoring timeline adds up to the final score.
notesHow the figures are worked out, in plain words.
dataThe figures. With a team, the team's own; without one, the whole scope with a row per team.
built_utcWhen the answer was worked out. Each scope is kept for three hours.

Errors you can get

StatusCodeWhen
400key_in_addressThe key was put in the address. Send it in a header (see Authentication).
401missing_keyNo Authorization: Bearer header, or the key was rotated (invalid_key, revoked_key).
403plan_requiredYour plan is below Live.
422bad_parameterA parameter is malformed, or unknown (unknown_parameter names the ones this endpoint takes).
422missing_parameterNone of team, competition or season was given. A team can be combined with a competition or a season.
429daily_limitToday's lookups are used. Resets at 00:00 UTC.

Every error has the same shape. All error codes

Try it live

Runs this call from your browser with your own key and shows what comes back.

Your key Get a free key
curl https://api.rugbyapi.com/v1/analytics/crowds?season=ss_2H1294N \
  -H "Authorization: Bearer YOUR_KEY"
$ch = curl_init('https://api.rugbyapi.com/v1/analytics/crowds?season=ss_2H1294N');
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer YOUR_KEY'],
    CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
import requests

r = requests.get(
    "https://api.rugbyapi.com/v1/analytics/crowds",
    params={"season": "ss_2H1294N"},
    headers={"Authorization": "Bearer YOUR_KEY"},
)
data = r.json()
const r = await fetch('https://api.rugbyapi.com/v1/analytics/crowds?season=ss_2H1294N', {
  headers: { Authorization: 'Bearer YOUR_KEY' }
});
const data = await r.json();
200ResponseExample from the live archive, lists cut to 3
{
  "analysis": "crowds",
  "scope": {
    "team": null,
    "competition": {
      "id": "cp_2EW9542",
      "name": "United Rugby Championship"
    },
    "season": {
      "id": "ss_2H1294N",
      "name": "2025-26"
    }
  },
  "basis": {
    "matches_in_scope": 151,
    "matches_counted": 151,
    "counted": "Finished matches with a recorded attendance."
  },
  "notes": [
    "Attendance is not recorded for every match; matches_in_scope against matches_counted shows how many carry a figure.",
    "Fill is attendance over the ground's capacity, from matches where both are known; near_capacity counts crowds at 98% of capacity or more."
  ],
  "data": {
    "matches": 151,
    "average": 11214,
    "highest": 53862,
    "avg_fill_pct": 56.1,
    "near_capacity": 6,
    "matches_with_capacity": 79,
    "by_season": [
      {
        "season": {
          "id": "ss_2H1294N",
          "name": "2025-26"
        },
        "matches": 151,
        "average": 11214,
        "highest": 53862,
        "avg_fill_pct": 56.1,
        "near_capacity": 6,
        "matches_with_capacity": 79
      }
    ],
    "grounds": [
      {
        "ground": {
          "id": "vn_0R2RMSF",
          "name": "Croke Park"
        },
        "matches": 2,
        "average": 45522,
        "highest": 51859,
        "avg_fill_pct": 55.3,
        "near_capacity": 0,
        "matches_with_capacity": 2
      },
      {
        "ground": {
          "id": "vn_2KK89BE",
          "name": "Scottish Gas Murrayfield"
        },
        "matches": 2,
        "average": 28080,
        "highest": 38179,
        "avg_fill_pct": null,
        "near_capacity": 0,
        "matches_with_capacity": 0
      },
      {
        "ground": {
          "id": "vn_0FZEQHC",
          "name": "DHL Stadium"
        },
        "matches": 10,
        "average": 26616,
        "highest": 53862,
        "avg_fill_pct": 45.6,
        "near_capacity": 0,
        "matches_with_capacity": 10
      }
    ],
    "biggest_crowds": [
      {
        "match": "mt_25ZRT53",
        "date": "2026-01-03",
        "home": {
          "id": "tm_3KFPVP6",
          "name": "Stormers"
        },
        "away": {
          "id": "tm_0FWX7QJ",
          "name": "Bulls"
        },
        "ground": "DHL Stadium",
        "attendance": 53862
      },
      {
        "match": "mt_1EECKEH",
        "date": "2026-01-24",
        "home": {
          "id": "tm_3KFPVP6",
          "name": "Stormers"
        },
        "away": {
          "id": "tm_24KCBBM",
          "name": "Sharks"
        },
        "ground": "DHL Stadium",
        "attendance": 52087
      },
      {
        "match": "mt_2H9DFTF",
        "date": "2025-10-18",
        "home": {
          "id": "tm_2XG5PQN",
          "name": "Leinster"
        },
        "away": {
          "id": "tm_344015A",
          "name": "Munster"
        },
        "ground": "Croke Park",
        "attendance": 51859
      }
    ],
    "teams_at_home": [
      {
        "team": {
          "id": "tm_3KFPVP6",
          "name": "Stormers"
        },
        "matches": 10,
        "average": 26616,
        "highest": 53862,
        "avg_fill_pct": 45.6,
        "near_capacity": 0,
        "matches_with_capacity": 10
      },
      {
        "team": {
          "id": "tm_2XG5PQN",
          "name": "Leinster"
        },
        "matches": 12,
        "average": 21180,
        "highest": 51859,
        "avg_fill_pct": 35.5,
        "near_capacity": 0,
        "matches_with_capacity": 12
      },
      {
        "team": {
          "id": "tm_24KCBBM",
          "name": "Sharks"
        },
        "matches": 9,
        "average": 17518,
        "highest": 44517,
        "avg_fill_pct": null,
        "near_capacity": 0,
        "matches_with_capacity": 0
      }
    ]
  },
  "built_utc": "2026-10-22T03:17:30Z"
}