The free key reads yesterday again: our one-month trial of today on the free key has finished. Read the changelog

Match events

A
GET /v1/matches/{id}/events

Goals and cards, minute by minute

Goals and red cards with the minute and the scorer, where the record carries them.

Goals and red cards is not carried on every match. The coverage figures on each competition and season give the exact share for the rows you are asking for.

Plan

This endpoint needs Archive. Calling it on a lower plan returns a 403 naming the plan it needs and a link to pricing, never a bare refusal.

Parameters

match_id string path required
The match id. Stable across re-imports: what you store today still resolves later. e.g. mt_1JK5QJ9

Returns

data.match_id string
Our id for the match. Stable: what you store today still resolves later.
data.home_team_name string
The home side's name.
data.away_team_name string
The away side's name.
data.events list
Events.
data.events[].minute integer
Minute.
data.events[].extra empty in this example
Extra.
data.events[].type string
Type.
data.events[].detail string
Detail.
data.events[].team string
Team.
data.events[].player string
Player.
data.events[].assist string
Assist.
meta.data_as_of string
When the data behind this answer was last brought up to date.
meta.request_id string
This request's id, to quote to support.

Request

curl "https://api.footballsoccerapi.com/v1/matches/mt_1JK5QJ9/events" \
  -H "X-API-Key: $FSAPI_KEY"

Example response

A real row from the archive, fetched when this page rendered. Run it against your own key below.

200 OK application/json
{
    "data": {
        "match_id": "mt_05R9AVD",
        "home_team_name": "Atletico-MG",
        "away_team_name": "Cruzeiro",
        "events": [
            {
                "minute": 4,
                "extra": null,
                "type": "Goal",
                "detail": "Normal Goal",
                "team": "Cruzeiro",
                "player": "Kaio Jorge",
                "assist": "K. Arroyo"
            }
        ]
    },
    "meta": {
        "data_as_of": "2026-10-29T04:32:57Z",
        "request_id": "01J9QW3C7M4KX2VB"
    }
}

Run it live

Paste your key and fire the real request. The key is kept in this browser only and never sent anywhere but the API.

Get a key
GET