rugbyAPI
Matches / Fixtures

Fixtures

Free

Matches still to be played in the next days, nearest first. Kickoff times appear as soon as they are set.

GEThttps://api.rugbyapi.com/v1/fixtures

Parameters

NameWhat it doesExample
competitionid, optionalOnly this competition. IDs come from Competitions.cp_1ACRS3C
daysint, optionalHow 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

FieldMeaning
countMatches 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

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).
422bad_parameterA parameter is malformed, or unknown (unknown_parameter names the ones this endpoint takes).
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/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
      }
    }
  ]
}