Results
FreeFinished matches since a date, newest first, with the final score. Results land within two hours of full time.
Parameters
| Name | What it does | Example |
|---|---|---|
competitionid, optional | Only this competition. IDs come from Competitions. | cp_1ACRS3C |
sincedatetime, optional | Results on or after this date. Defaults to yesterday on a free key and to seven days ago on Archive and Live. | 2026-10-24 |
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
Since yesterday. An earlier since returns 403 with the upgrade link.
Archive
Any date back to our first season.
Live
Everything in Archive, plus today's matches by time zone and webhooks.
Response fields
| Field | Meaning |
|---|---|
count | Matches returned, up to 500 |
since | The date actually used |
data[] | Each match has id, date, kickoff_utc, status, competition, season, and home and away with team id, name and score. |
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 | since is before yesterday, on a free key. |
422 | bad_parameter | A parameter is malformed, or unknown (unknown_parameter names the ones this endpoint takes). |
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/results?since=2026-10-24 \
-H "Authorization: Bearer YOUR_KEY"$ch = curl_init('https://api.rugbyapi.com/v1/results?since=2026-10-24'); 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/results", params={"since": "2026-10-24"}, headers={"Authorization": "Bearer YOUR_KEY"}, ) data = r.json()
const r = await fetch('https://api.rugbyapi.com/v1/results?since=2026-10-24', { headers: { Authorization: 'Bearer YOUR_KEY' } }); const data = await r.json();
200ResponseExample from the live archive, lists cut to 3
{
"count": 66,
"since": "2026-10-24",
"data": [
{
"id": "mt_0GDJH2P",
"date": "2026-11-08",
"kickoff_utc": "2026-11-08T14:00:00Z",
"status": "finished",
"competition": {
"id": "cp_1ACRS3C",
"name": "Top 14"
},
"season": {
"id": "ss_0VKTFYP",
"name": "2026-27"
},
"home": {
"id": "tm_1ZDY5V0",
"name": "Vannes",
"score": 23
},
"away": {
"id": "tm_2V0SRR1",
"name": "Bordeaux Begles",
"score": 14
}
},
{
"id": "mt_0GT1BM2",
"date": "2026-11-07",
"kickoff_utc": "2026-11-07T15:35:00Z",
"status": "finished",
"competition": {
"id": "cp_1ACRS3C",
"name": "Top 14"
},
"season": {
"id": "ss_0VKTFYP",
"name": "2026-27"
},
"home": {
"id": "tm_2KW51M5",
"name": "Castres Olympique",
"score": 28
},
"away": {
"id": "tm_0QS8K9D",
"name": "Racing 92",
"score": 30
}
},
{
"id": "mt_08J2SMA",
"date": "2026-11-07",
"kickoff_utc": "2026-11-07T15:35:00Z",
"status": "finished",
"competition": {
"id": "cp_1ACRS3C",
"name": "Top 14"
},
"season": {
"id": "ss_0VKTFYP",
"name": "2026-27"
},
"home": {
"id": "tm_2QWN0R8",
"name": "Montpellier",
"score": 21
},
"away": {
"id": "tm_3XANJDG",
"name": "Lyon",
"score": 19
}
}
]
}