Fixtures
FreeMatches still to be played in the next days, nearest first. Kickoff times appear as soon as they are set.
Parameters
| Name | What it does | Example |
|---|---|---|
competitionid, optional | Only this competition. IDs come from Competitions. | cp_1ACRS3C |
daysint, optional | How many days ahead to look, 1 to 60. Defaults to 7. | 14 |
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
Included.
Archive
Included.
Live
Included.
Response fields
| Field | Meaning |
|---|---|
count | Matches returned, up to 500 |
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). |
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/fixtures?days=14 \
-H "Authorization: Bearer YOUR_KEY"$ch = curl_init('https://api.rugbyapi.com/v1/fixtures?days=14'); 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/fixtures", params={"days": "14"}, headers={"Authorization": "Bearer YOUR_KEY"}, ) data = r.json()
const r = await fetch('https://api.rugbyapi.com/v1/fixtures?days=14', { headers: { Authorization: 'Bearer YOUR_KEY' } }); const data = await r.json();
200ResponseExample from the live archive, lists cut to 3
{
"count": 7,
"data": [
{
"id": "mt_395Y96Y",
"date": "2026-11-20",
"kickoff_utc": "2026-11-20T00:00:00Z",
"status": "scheduled",
"competition": {
"id": "cp_1KQ4HZ9",
"name": "Pro D2"
},
"season": {
"id": "ss_2CK8A4Z",
"name": "2026-27"
},
"home": {
"id": "tm_2WVEM0Z",
"name": "Beziers",
"score": null
},
"away": {
"id": "tm_1SV4K8X",
"name": "US Dax",
"score": null
}
},
{
"id": "mt_133H1QC",
"date": "2026-11-20",
"kickoff_utc": "2026-11-20T00:00:00Z",
"status": "scheduled",
"competition": {
"id": "cp_1KQ4HZ9",
"name": "Pro D2"
},
"season": {
"id": "ss_2CK8A4Z",
"name": "2026-27"
},
"home": {
"id": "tm_3RYW47W",
"name": "Aurillac",
"score": null
},
"away": {
"id": "tm_31AZMJ3",
"name": "Colomiers",
"score": null
}
},
{
"id": "mt_2RJZW8R",
"date": "2026-11-20",
"kickoff_utc": "2026-11-20T00:00:00Z",
"status": "scheduled",
"competition": {
"id": "cp_1KQ4HZ9",
"name": "Pro D2"
},
"season": {
"id": "ss_2CK8A4Z",
"name": "2026-27"
},
"home": {
"id": "tm_02EKCKP",
"name": "Grenoble FC",
"score": null
},
"away": {
"id": "tm_2ZKXEJB",
"name": "Provence Rugby",
"score": null
}
}
]
}