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

Kickoff prices

A
GET /v1/odds/kickoff

Kickoff prices across matches

Kickoff prices across matches, filterable by price band. The exchange price carries no bookmaker margin, so the implied probability is close to the crowd's real view.

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

league_id string query
Restrict to one competition. Ids come from /v1/leagues: 39 is the English Premier League, 62 is Ligue 2. e.g. lg_24T9Z0G
country string query
Restrict to one country, by name as returned from /v1/countries. e.g. England
season integer query
Season by its starting year. A 2024/25 season is 2024. e.g. 2024
date_from string query
Earliest kickoff date, inclusive. ISO YYYY-MM-DD, evaluated in UTC. e.g. 2024-08-01
date_to string query
Latest kickoff date, inclusive. e.g. 2024-08-31
min_price number query
Lower bound on the kickoff price for the selection. e.g. 1.5
max_price number query
Upper bound on the kickoff price for the selection. e.g. 2.0
limit integer query
Rows per page, 1–1000. Defaults to 100. e.g. 100
page integer query
Page number, 1-based. The response carries total, total_pages, next_page and prev_page, so a UI pager has everything it needs from one call. If you send both page and cursor, page wins. e.g. 2
cursor string query
Opaque cursor from meta.next_cursor. Pages by sort position rather than offset, so page 10,000 is as fast as page 1 and a new match arriving cannot shift the boundary. Pass it back unchanged; do not build or parse one yourself.

Returns

data[].match_id string
Our id for the match. Stable: what you store today still resolves later.
data[].kickoff_date string
The kickoff date in UTC, YYYY-MM-DD.
data[].home_team_name string
The home side's name.
data[].away_team_name string
The away side's name.
data[].home_kickoff_price number
The price for a home win at kickoff, as decimal odds.
data[].draw_kickoff_price number
The price for the draw at kickoff, as decimal odds.
data[].away_kickoff_price number
The price for an away win at kickoff, as decimal odds.
data[].full_time_result empty in this example
home, draw or away, on the final score.
data[].home_implied number
Home implied.
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.
meta.count integer
How many items are in this answer.

Request

curl "https://api.footballsoccerapi.com/v1/odds/kickoff?league_id=lg_24T9Z0G&country=England&season=2024" \
  -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_2AAKB42",
            "kickoff_date": "2027-01-16",
            "home_team_name": "Swansea University",
            "away_team_name": "Carmarthen Town",
            "home_kickoff_price": 1.75,
            "draw_kickoff_price": 4.15,
            "away_kickoff_price": 4.333,
            "full_time_result": null,
            "home_implied": 57.1
        },
        {
            "match_id": "mt_1VMTPJP",
            "kickoff_date": "2026-12-12",
            "home_team_name": "Cardiff Draconians",
            "away_team_name": "Pontardawe Town",
            "home_kickoff_price": 1.95,
            "draw_kickoff_price": 3.8,
            "away_kickoff_price": 3.36,
            "full_time_result": null,
            "home_implied": 51.3
        },
        {
            "match_id": "mt_16EH1K8",
            "kickoff_date": "2026-12-05",
            "home_team_name": "Olympiakos Piraeus",
            "away_team_name": "AEK Athens FC",
            "home_kickoff_price": 2.2,
            "draw_kickoff_price": 3.2,
            "away_kickoff_price": 3.2,
            "full_time_result": null,
            "home_implied": 45.5
        }
    ],
    "meta": {
        "data_as_of": "2026-10-29T04:32:57Z",
        "request_id": "01J9QW3C7M4KX2VB",
        "count": 3
    }
}

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