rugbyAPI
Matches / Live matches
Documentation/Matches/Live matches

Live matches

Live

Matches in play: the score, the period, every try, kick and card, and the match clock as a point your app counts on from. Read every 2 minutes while in play and pushed to your webhooks as it changes. Also lists every fixture of the next 7 days we follow live, so you know which games will be covered.

GEThttps://api.rugbyapi.com/v1/matches/live

Parameters

NameWhat it doesExample
matchid, optionalCount only this match.mt_4K9Q34X

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
refreshHow often a match in play is read, and that changes are pushed to your webhooks
data[]Each match as in every match list, with a live block
live.statusscheduled, live or finished
live.periodpre, 1H, HT, 2H, ET or FT
live.clockrunning, elapsed_s at at_utc: while running, the clock now is elapsed_s plus the seconds since at_utc. precision is minute when read from the match page, second when a scorer runs it. display is the clock when the response was made
live.scoreHome and away, from the events agreed so far
live.events[]Each try, conversion, penalty, drop goal and card: id, minute, side, type, player, points, score_after, at_utc
live.scorersHow many scorers are on the match
covered_ahead[]Every fixture of the next 7 days we follow live
live.sourcecollected (read from the match page) or scorer (run by hand)

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).
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/matches/live \
  -H "Authorization: Bearer YOUR_KEY"
$ch = curl_init('https://api.rugbyapi.com/v1/matches/live');
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/matches/live",
    headers={"Authorization": "Bearer YOUR_KEY"},
)
data = r.json()
const r = await fetch('https://api.rugbyapi.com/v1/matches/live', {
  headers: { Authorization: 'Bearer YOUR_KEY' }
});
const data = await r.json();
200ResponseExample from the live archive, lists cut to 3
{
  "refresh": "Matches we collect are read every 120 seconds while in play and pushed as soon as they change; poll no faster than every 15 seconds.",
  "generated_at": "2026-10-22T06:17:14Z",
  "count": 0,
  "data": [],
  "covered_ahead": [
    {
      "id": "mt_15N41Q1",
      "date": "2026-10-22",
      "kickoff_utc": "2026-10-22T19:00:00Z",
      "status": "scheduled",
      "competition": {
        "id": "cp_1KQ4HZ9",
        "name": "Pro D2"
      },
      "season": {
        "id": "ss_2CK8A4Z",
        "name": "2026-27"
      },
      "home": {
        "id": "tm_0M35813",
        "name": "US Oyonnax",
        "score": null
      },
      "away": {
        "id": "tm_0M35813",
        "name": "US Oyonnax",
        "score": null
      },
      "live": {
        "status": "scheduled",
        "source": "collected",
        "scorers": 0
      }
    },
    {
      "id": "mt_31QBSHQ",
      "date": "2026-10-22",
      "kickoff_utc": "2026-10-22T19:00:00Z",
      "status": "scheduled",
      "competition": {
        "id": "cp_1KQ4HZ9",
        "name": "Pro D2"
      },
      "season": {
        "id": "ss_2CK8A4Z",
        "name": "2026-27"
      },
      "home": {
        "id": "tm_0BJFX3Q",
        "name": "Mont-de-Marsan",
        "score": null
      },
      "away": {
        "id": "tm_0M35813",
        "name": "US Oyonnax",
        "score": null
      },
      "live": {
        "status": "scheduled",
        "source": "collected",
        "scorers": 0
      }
    },
    {
      "id": "mt_1AYD103",
      "date": "2026-10-23",
      "kickoff_utc": "2026-10-23T17:30:00Z",
      "status": "scheduled",
      "competition": {
        "id": "cp_1KQ4HZ9",
        "name": "Pro D2"
      },
      "season": {
        "id": "ss_2CK8A4Z",
        "name": "2026-27"
      },
      "home": {
        "id": "tm_01V3HMS",
        "name": "Angouleme",
        "score": null
      },
      "away": {
        "id": "tm_1SV4K8X",
        "name": "US Dax",
        "score": null
      },
      "live": {
        "status": "scheduled",
        "source": "collected",
        "scorers": 0
      }
    }
  ]
}