Standings
FreeThe table for a season: played, won, drawn, lost, points for and against, difference, bonus points and total.
Parameters
| Name | What it does | Example |
|---|---|---|
idpath, required | The ID in the path. | ss_1VSX6S8 |
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
The current season of each competition.
Archive
Every season we hold.
Live
Every season we hold.
Response fields
| Field | Meaning |
|---|---|
season, competition | ID and name of each |
updated_utc | When the table was last refreshed |
data[].pos | Position |
data[].team | Team ID and name |
data[].p, w, d, l | Played, won, drawn, lost |
data[].pf, pa, pd | Points for, against and the difference |
data[].bp, pts | Bonus points and table points |
Errors you can get
| Status | Code | When |
|---|---|---|
400 | key_in_address | The key was put in the address. Send it in a header (see Authentication). |
401 | missing_key | No Authorization: Bearer header, or the key was rotated (invalid_key, revoked_key). |
403 | plan_required | The season is not the current one, on a free key. |
404 | not_found | No season with that ID (bad_id if it is not in our format). |
429 | daily_limit | Today'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.
curl https://api.rugbyapi.com/v1/seasons/ss_1VSX6S8/standings \
-H "Authorization: Bearer YOUR_KEY"$ch = curl_init('https://api.rugbyapi.com/v1/seasons/ss_1VSX6S8/standings'); 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/seasons/ss_1VSX6S8/standings", headers={"Authorization": "Bearer YOUR_KEY"}, ) data = r.json()
const r = await fetch('https://api.rugbyapi.com/v1/seasons/ss_1VSX6S8/standings', { headers: { Authorization: 'Bearer YOUR_KEY' } }); const data = await r.json();
200ResponseExample from the live archive, lists cut to 3
{
"season": {
"id": "ss_1VSX6S8",
"name": "2026-27"
},
"competition": {
"id": "cp_2EW9542",
"name": "United Rugby Championship"
},
"updated_utc": "2026-11-09T04:46:12Z",
"count": 16,
"data": [
{
"pos": 1,
"team": {
"id": "tm_0QPNGJQ",
"name": "Glasgow Warriors"
},
"p": 5,
"w": 4,
"d": 1,
"l": 0,
"pf": 148,
"pa": 112,
"pd": 36,
"bp": 5,
"pts": 23
},
{
"pos": 2,
"team": {
"id": "tm_0FWX7QJ",
"name": "Bulls"
},
"p": 5,
"w": 4,
"d": 0,
"l": 1,
"pf": 214,
"pa": 106,
"pd": 108,
"bp": 5,
"pts": 21
},
{
"pos": 3,
"team": {
"id": "tm_3KFPVP6",
"name": "Stormers"
},
"p": 5,
"w": 4,
"d": 0,
"l": 1,
"pf": 166,
"pa": 101,
"pd": 65,
"bp": 5,
"pts": 21
}
]
}