API DEMO

A demo version of the API is available at this url : https://www.api-football.com/demo.
You can use it without restriction in your development environment.

This is a demo and does not represent the entire API. The data is limited and not up to date and serves only as an example. For production environement use : https://api-football-v1.p.rapidapi.com/v2/.

Here are the leagues present in the demo version
  • Champions League 2018-2019
  • Brazil - Serie A 2018
  • England - Premier League 2018-2019
  • Netherlands - Eredivisie 2018-2019

API ARCHITECTURE

Here is the graphical representation of the architecture of our API. .

AUTHENTIFICATION

To use our API you must subscribe to one of our pricing plans (we have a FREE PLAN) on rapidapi.com.
For all your requests you must send in headers the key provided by rapidapi.com (X-RapidAPI-Key).

REQUESTS

Whathever your programming language, our data works with and remain the same across all platforms.
You can use the unirest open-source library recommended by rapidApi.com http://unirest.io, or the one of your choice.
All requests to the API will send you an answer in JSON format
Here are some examples of API calls.

Curl
curl --get --include 'https://api-football-v1.p.rapidapi.com/seasons' \
   -H 'X-RapidAPI-Key: XXXXXXXXXXXXXXXXXXXXXXXXX' \
   -H 'Accept: application/json'

Java
HttpResponse response = Unirest.get("https://api-football-v1.p.rapidapi.com/seasons")
   .header("X-RapidAPI-Key", "XXXXXXXXXXXXXXXXXXXXXXXXX")
   .header("Accept", "application/json")
   .asJson();

Node
unirest.get("https://api-football-v1.p.rapidapi.com/seasons")
   .header("X-RapidAPI-Key", "XXXXXXXXXXXXXXXXXXXXXXXXX")
   .header("Accept", "application/json")
   .end(function (result) {
      console.log(result.status, result.headers, result.body);
	});

Php
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/seasons",
   array(
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept" => "application/json"
   )
);

Python
response = unirest.get("https://api-football-v1.p.rapidapi.com/seasons",
   headers={
      "X-RapidAPI-Key": "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept": "application/json"
   }
)

Objective-c
NSDictionary *headers = @{@"X-RapidAPI-Key": @"XXXXXXXXXXXXXXXXXXXXXXXXX", @"Accept": @"application/json"};
   UNIUrlConnection *asyncConnection = [[UNIRest get:^(UNISimpleRequest *request) {
      [request setUrl:@"https://api-football-v1.p.rapidapi.com/seasons"];
      [request setHeaders:headers];
   }] asJsonAsync:^(UNIHTTPJsonResponse *response, NSError *error) {
      NSInteger code = response.code;
      NSDictionary *responseHeaders = response.headers;
      UNIJsonNode *body = response.body;
      NSData *rawBody = response.rawBody;
	}];

Ruby
response = Unirest.get "https://api-football-v1.p.rapidapi.com/seasons",
   headers:{
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept" => "application/json"
   }

.Net
Task response = Unirest.get("https://api-football-v1.p.rapidapi.com/seasons")
   .header("X-RapidAPI-Key", "XXXXXXXXXXXXXXXXXXXXXXXXX")
   .header("Accept", "application/json")
   .asJson();

COUNTRIES

Get all available countries in the API across all seasons and competitions.

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/countries",
   array(
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept" => "application/json"
   )
);

Response body
{
  "api": {
    "results": 22,
    "countries": {
      "1": "Argentina",
      "2": "Belarus",
      "3": "Belgium",
      "4": "Brazil",
      "5": "Bulgaria",
      "6": "China",
      "7": "Costa Rica",
      "8": "Denmark",
      "9": "England",
      "10": "France",
      "11": "Germany",
      "12": "Iceland",
      "13": "Italy",
      "14": "Japan",
      "15": "Netherlands",
      "16": "Norway",
      "17": "Poland",
      "18": "Portugal",
      "19": "Spain",
      "20": "Sweden",
      "21": "Wales",
      "22": "World"
    }
  }
}

SEASONS

Get all available seasons.

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/seasons",
   array(
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept" => "application/json"
   )
);

Response body
{
  "api": {
    "results": 4,
    "seasons": {
      "1": "2016",
      "2": "2017",
      "3": "2018",
      "4": "2019"
    }
  }
}

LEAGUES

Filters
  • leagues/ Get all available leagues
  • leagues/league/{league_id} get one league from his ID
  • leagues/season/{season} Get all leagues from one season
  • leagues/country/{country_name}/{season} Get all leagues from one country or country code (GB, FR, IT etc..) and filter by season. (Filter by season is optional)

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/leagues",
  array(
    "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
    "Accept" => "application/json"
  )
);

Response body
{
  "api": {
    "results": 85,
    "leagues": {
      "1": {
        "league_id": "1",
        "name": "2018 Russia World cup",
        "country": "World",
        "country_code": "",
        "season": "2018",
        "season_start": "2018-06-14",
        "season_end": "2018-07-15",
        "logo": "https://www.api-football.com/public/leagues/1.png",
        "flag": "",
        "standings": false
      },
      "2": {
        "league_id": "2",
        "name": "Premier League",
        "country": "England",
        "country_code": "GB",
        "season": "2018",
        "season_start": "2018-08-10",
        "season_end": "2019-05-12",
        "logo": "https://www.api-football.com/public/leagues/2.png",
        "flag": "https://www.api-football.com/public/flags/gb.svg",
        "standings": true
      },
      "3": {
        "league_id": "3",
        "name": "Championship",
        "country": "England",
        "country_code": "GB",
        "season": "2018",
        "season_start": "2018-08-03",
        "season_end": "2019-05-05",
        "logo": "https://www.api-football.com/public/leagues/3.png",
        "flag": "https://www.api-football.com/public/flags/gb.svg",
        "standings": true
      },
      "4": {
        "league_id": "4",
        "name": "Ligue 1",
        "country": "France",
        "country_code": "FR",
        "season": "2018",
        "season_start": "2018-08-11",
        "season_end": "2019-05-25",
        "logo": "https://www.api-football.com/public/leagues/4.svg",
        "flag": "https://www.api-football.com/public/flags/fr.svg",
        "standings": true
      },
...

TEAMS

Filters
  • teams/team/{team_id} Get one team from his ID
  • teams/league/{league_id} Get all teams from one league

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/teams/team/33",
   array(
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept" => "application/json"
   )
);

Response body
{
  "api": {
    "results": 1,
    "teams": {
      "33": {
        "team_id": "33",
        "name": "Manchester United",
        "code": "MUN",
        "logo": "https://www.api-football.com/public/teams/33.png"
      }
    }
  }
}

PLAYERS

Get coachs and players from one team and season.

Filters
  • players/{season}/{team_id}

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/players/2018/33",
   array(
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept" => "application/json"
   )
);

Response body
{
  "api": {
    "results": 28,
    "coachs": [
      "Jose Mourinho"
    ],
    "players": [
      {
        "number": "",
        "player": "David De Gea"
      },
      {
        "number": "",
        "player": "Victor Nilsson-Lindelof"
      },
      {
        "number": "",
        "player": "Chris Smalling"
      },
      {
        "number": "",
        "player": "Ashley Young"
      },
      {
        "number": "",
        "player": "Matteo Darmian"
      },
      {
        "number": "",
        "player": "Paul Pogba"
      },
      {
        "number": "",
        "player": "Juan Mata"
      },
      {
        "number": "",
        "player": "Anthony Martial"
      },
      {
        "number": "",
        "player": "Jesse Lingard"
      },
      {
        "number": "",
        "player": "Nemanja Matic"
      },
      {
        "number": "",
        "player": "Romelu Lukaku"
      },
      {
        "number": "",
        "player": "Phil Jones"
      },
      {
        "number": "",
        "player": "Alexis Sanchez"
      },
      {
        "number": "",
        "player": "Marcus Rashford"
      },
      {
        "number": "",
        "player": "Lee Grant"
      },
      {
        "number": "",
        "player": "Fred"
      },
      {
        "number": "",
        "player": "Antonio Valencia"
      },
      {
        "number": "",
        "player": "Marouane Fellaini"
      },
      {
        "number": "",
        "player": "Luke Shaw"
      },
      {
        "number": "",
        "player": "Eric Bailly"
      },
      {
        "number": "",
        "player": "Andreas Pereira"
      },
      {
        "number": "",
        "player": "Sergio Romero"
      },
      {
        "number": "",
        "player": "Scott McTominay"
      },
      {
        "number": "39",
        "player": "Scott Mctominay"
      },
      {
        "number": "21",
        "player": "Ander Herrera"
      },
      {
        "number": "5",
        "player": "Faustino Marcos Alberto Rojo"
      },
      {
        "number": "20",
        "player": "Diogo Dalot"
      }
    ]
  }
}

LEAGUETABLE

Standings are updated after every each end match.
Get the league table from one league or cup. To be use instead of "standings".
The return is a table of one or more rankings according to the league / cup. Some competitions have several rankings in a year, group phase, opening ranking, closing ranking etc...

Filters
  • leagueTable/{league_id}

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/leagueTable/132",
   array(
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept" => "application/json"
   )
);

Response body
{
  "api": {
    "results": 1,
    "standings": [
      [
        {
          "rank": "1",
          "teamName": "Borussia Dortmund",
          "matchsPlayed": "6",
          "win": "4",
          "draw": "1",
          "lose": "1",
          "goalsFor": "10",
          "goalsAgainst": "2",
          "goalsDiff": "8",
          "points": "13",
          "group": "Group A",
          "lastUpdate": "2018-12-12"
        },
        {
          "rank": "2",
          "teamName": "Atletico Madrid",
          "matchsPlayed": "6",
          "win": "4",
          "draw": "1",
          "lose": "1",
          "goalsFor": "9",
          "goalsAgainst": "6",
          "goalsDiff": "3",
          "points": "13",
          "group": "Group A",
          "lastUpdate": "2018-12-12"
        },
        {
          "rank": "3",
          "teamName": "Club Brugge KV",
          "matchsPlayed": "6",
          "win": "1",
          "draw": "3",
          "lose": "2",
          "goalsFor": "6",
          "goalsAgainst": "5",
          "goalsDiff": "1",
          "points": "6",
          "group": "Group A",
          "lastUpdate": "2018-12-12"
        },
        {
          "rank": "4",
          "teamName": "Monaco",
          "matchsPlayed": "6",
          "win": "0",
          "draw": "1",
          "lose": "5",
          "goalsFor": "2",
          "goalsAgainst": "14",
          "goalsDiff": "-12",
          "points": "1",
          "group": "Group A",
          "lastUpdate": "2018-12-12"
        },
        {
          "rank": "1",
          "teamName": "Barcelona",
          "matchsPlayed": "6",
          "win": "4",
          "draw": "2",
          "lose": "0",
          "goalsFor": "14",
          "goalsAgainst": "5",
          "goalsDiff": "9",
          "points": "14",
          "group": "Group B",
          "lastUpdate": "2018-12-12"
        },
        {...}
      ]
    }
}

FIXTURES

All Matches are updated every minute

Available matchs status & status short
- TDB | Time To Be Defined
- NS | Not Started
- 1H | First Half, Kick Off
- HT | Halftime
- 2H | Second Half, 2nd Half Started
- ET | Extra Time
- P | Penalty In Progress
- FT | Match Finished
- AET | Match Finished After Extra Time
- PEN Match Finished After Penalty
- BT | Break Time (in Extra Time)
- SUSP | Match Suspended
- INT | Match Interrupted
- PST | Match Postponed
- CANC Match Cancelled
- ABD | Match Abandoned
- AWD | Technical Loss
- WO | WalkOver

Filters
  • fixtures/live Get all fixtures in play
  • fixtures/date/{date} Get all fixtures from one date | YYYY-MM-DD
  • fixtures/id/{fixture_id} Get one fixture from his ID
  • fixtures/league/{league_id} Get all fixtures from one league
  • fixtures/h2h/{team_id_1}/{team_id_2} Get all Head 2 Heads between 2 teams
  • fixtures/team/{team_id} Get all fixtures from one team

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/fixtures/live",
  array(
    "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
    "Accept" => "application/json"
  )
);

Response body
{
  "api": {
    "results": 12,
    "fixtures": {
      "2839": {
        "fixture_id": "2839",
        "event_timestamp": "1534185000",
        "event_date": "2018-08-13T18:30:00+00:00",
        "league_id": "9",
        "round": "2. Bundesliga - 2",
        "homeTeam_id": "192",
        "awayTeam_id": "182",
        "homeTeam": "FC Koln",
        "awayTeam": "Union Berlin",
        "status": "Match Finished",
        "statusShort": "FT",
        "goalsHomeTeam": "1",
        "goalsAwayTeam": "1",
        "halftime_score": "1 - 0",
        "final_score": "1 - 1",
        "penalty": null,
        "elapsed": "93",
        "firstHalfStart": "1534185060",
        "secondHalfStart": "1534188780"
      },
      "3439": {
        "fixture_id": "3439",
        "event_timestamp": "1534187700",
        "event_date": "2018-08-13T19:15:00+00:00",
        "league_id": "11",
        "round": "Primeira Liga - 1",
        "homeTeam_id": "216",
        "awayTeam_id": "222",
        "homeTeam": "Portimonense",
        "awayTeam": "Boavista",
        "status": "Match Finished",
        "statusShort": "FT",
        "goalsHomeTeam": "0",
        "goalsAwayTeam": "2",
        "halftime_score": "0 - 0",
        "final_score": "0 - 2",
        "penalty": null,
        "elapsed": "94",
        "firstHalfStart": "1534187760",
        "secondHalfStart": "1534191480"
      },
      "4951": {
        "fixture_id": "4951",
        "event_timestamp": "1534179600",
        "event_date": "2018-08-13T17:00:00+00:00",
        "league_id": "15",
        "round": "Eliteserien - 18",
        "homeTeam_id": "328",
        "awayTeam_id": "326",
        "homeTeam": "Haugesund",
        "awayTeam": "Valerenga",
        "status": "Match Finished",
        "statusShort": "FT",
        "goalsHomeTeam": "1",
        "goalsAwayTeam": "0",
        "halftime_score": "0 - 0",
        "final_score": "1 - 0",
        "penalty": null,
        "elapsed": "90",
        "firstHalfStart": "1534179600",
        "secondHalfStart": "1534183200"
      },
	  {...}
      }
    }
  }
}

EVENTS

Match events are updated every minute

Available events
- yellow cards
- second yellow cards
- red cards
- goals
- own goals
- penalty
- missed penalty
- substitution

Filters
  • events/{fixture_id} Get all events from one fixture

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/events/37509",
   array(
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept" => "application/json"
   )
);

Response body
{
  "api": {
    "results": 10,
    "events": [
      {
        "elapsed": "12",
        "teamName": "Parana",
        "player": "Richard",
        "type": "Card",
        "detail": "Yellow Card"
      },
      {
        "elapsed": "14",
        "teamName": "Atletico mg",
        "player": "Fabio Santos",
        "type": "Goal",
        "detail": "Penalty"
      },
      {
        "elapsed": "18",
        "teamName": "Parana",
        "player": "Andrey",
        "type": "Card",
        "detail": "Yellow Card"
      },
      {
        "elapsed": "29",
        "teamName": "Parana",
        "player": "Silvinho",
        "type": "Card",
        "detail": "Red Card"
      },
      {
        "elapsed": "35",
        "teamName": "Atletico mg",
        "player": "Emerson Junior",
        "type": "Card",
        "detail": "Yellow Card"
      },
      {
        "elapsed": "45",
        "teamName": "Parana",
        "player": "Alex Santana",
        "type": "Card",
        "detail": "Yellow Card"
      },
      {
        "elapsed": "48",
        "teamName": "Parana",
        "player": "Andrey",
        "type": "Card",
        "detail": "Second Yellow Card"
      },
      {
        "elapsed": "49",
        "teamName": "Atletico mg",
        "player": "Bruno Roberto",
        "type": "Card",
        "detail": "Yellow Card"
      },
      {
        "elapsed": "52",
        "teamName": "Atletico mg",
        "player": "Patric",
        "type": "Card",
        "detail": "Yellow Card"
      },
      {
        "elapsed": "62",
        "teamName": "Parana",
        "player": "Charles",
        "type": "Card",
        "detail": "Yellow Card"
      }
    ]
  }
}

LINE UPS

Line ups are available between 20 and 40 minutes before the match

  • Formation
  • Coach
  • Start XI
  • Substitutes

Filters
  • lineups/{fixture_id} Get all line ups from one fixture

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/lineups/40697",
   array(
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept" => "application/json"
   )
);

Response body
{
  "api": {
    "results": 2,
    "lineUps": {
      "germany": {
        "formation": "3-4-3",
        "coach": "Joachim Loew",
        "startXI": [
          {
            "number": "",
            "player": "Manuel Neuer"
          },
          {
            "number": "",
            "player": "Mats Hummels"
          },
          {
            "number": "",
            "player": "Niklas Suele"
          },
          {
            "number": "",
            "player": "Antonio Rudiger"
          },
          {
            "number": "",
            "player": "Thilo Kehrer"
          },
          {
            "number": "",
            "player": "Toni Kroos"
          },
          {
            "number": "",
            "player": "Nico Schulz"
          },
          {
            "number": "",
            "player": "Joshua Kimmich"
          },
          {
            "number": "",
            "player": "Timo Werner"
          },
          {
            "number": "",
            "player": "Leroy Sane"
          },
          {
            "number": "",
            "player": "Serge Gnabry"
          }
        ],
        "substitutes": [
          {
            "number": "",
            "player": "Jonas Hector"
          },
          {
            "number": "",
            "player": "Matthias Ginter"
          },
          {
            "number": "",
            "player": "Leon Goretzka"
          },
          {
            "number": "",
            "player": "Julian Brandt"
          },
          {
            "number": "",
            "player": "Marco Reus"
          },
          {
            "number": "",
            "player": "Bernd Leno"
          },
          {
            "number": "",
            "player": "Thomas Mueller"
          }
        ]
      },
      "netherlands": {
        "formation": "4-3-3",
        "coach": "Ronald Koeman",
        "startXI": [
          {
            "number": "1",
            "player": "Jasper Cillessen"
          },
          {
            "number": "",
            "player": "Kenny Tete"
          },
          {
            "number": "",
            "player": "Matthijs De Ligt"
          },
          {
            "number": "",
            "player": "Virgil Van Dijk"
          },
          {
            "number": "5",
            "player": "Daley Blind"
          },
          {
            "number": "",
            "player": "Marten De Roon"
          },
          {
            "number": "",
            "player": "Frenkie De Jong"
          },
          {
            "number": "20",
            "player": "Georginio Wijnaldum"
          },
          {
            "number": "",
            "player": "Quincy Promes"
          },
          {
            "number": "21",
            "player": "Memphis Depay"
          },
          {
            "number": "",
            "player": "Ryan Babel"
          }
        ],
        "substitutes": [
          {
            "number": "",
            "player": "Denzel Dumfries"
          },
          {
            "number": "",
            "player": "Jeroen Zoet"
          },
          {
            "number": "3",
            "player": "Stefan De Vrij"
          },
          {
            "number": "",
            "player": "Nathan Ake"
          },
          {
            "number": "17",
            "player": "Kevin Strootman"
          },
          {
            "number": "",
            "player": "Donny Van De Beek"
          },
          {
            "number": "",
            "player": "Pablo Paulino Rosario"
          }
        ]
      }
    }
  }
}

MATCH STATISTICS

Matchs statistics are updated every 20 minutes

Available statistics
- Assists
- Blocked Shots
- Corner Kicks
- Counter Attacks
- Cross Attacks
- Fouls
- Free Kicks
- Goals
- Goal Attempts
- Offsides
- Ball Possession
- Red Cards
- Goalkeeper Saves
- Shots off Goal
- Shots on Goal
- Substitutions
- Throwins
- Medical Treatment
- Yellow Cards

Filters
  • statistics/fixture/{fixture_id} Get team statistics for a one fixture

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/statistics/fixture/78028/",
   array(
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept" => "application/json"
   )
);

Response body
{
    "api":{
        "results":19,
        "statistics":{
            "Assists":{
                "home":"2",
                "away":"0"
            },
            "Blocked Shots":
                "home":"0",
                "away":"2"
            },
            "Corner Kicks":{
                "home":"4",
                "away":"3"
            },
            "Counter Attacks":{
                "home":"2",
                "away":"0"
            },
            "Cross Attacks":{
                "home":"18",
                "away":"19"
            },
            "Fouls":{
                "home":"13",
                "away":"9"
            },
            "Free Kicks":{
                "home":"12",
                "away":"18"
            },
            "Goals":{
                "home":"3",
                "away":"0"
            },
            "Goal Attempts":{
                "home":"6",
                "away":"7"
            },
            "Offsides":{
                "home":"5",
                "away":"3"
            },
            "Ball Possession":{
                "home":"45%",
                "away":"55%"
            },
            "Red Cards":{
                "home":"1",
                "away":"0"
            },
            "Goalkeeper Saves":{
                "home":"1",
                "away":"4"
            },
            "Shots off Goal":{
                "home":"7",
                "away":"5"
            },
            "Shots on Goal":{
                "home":"6",
                "away":"1"
            },
            "Substitutions":{
                "home":"3",
                "away":"3"
            },
            "Throwins":{
                "home":"17",
                "away":"16"
            },
            "Medical Treatment":{
                "home":"0",
                "away":"1"
            },
            "Yellow Cards":{
                "home":"1",
                "away":"1"
            }
        }
    }
}

TEAM STATISTICS

Filters
  • statistics/{league_id}/{team_id} Get team statistics for a one league/cup
  • statistics/{league_id}/{team_id}/{date} Get team statistics for a one league/cup with a date limit | YYYY-MM-DD

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/statistics/22/77/2019-07-22",
   array(
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
      "Accept" => "application/json"
   )
);

Response body
{
  "api": {
    "results": 1,
    "stats": {
      "matchs": {
        "matchsPlayed": {
          "home": "19",
          "away": "19",
          "total": "38"
        },
        "wins": {
          "home": "5",
          "away": "4",
          "total": "9"
        },
        "draws": {
          "home": "7",
          "away": "7",
          "total": "14"
        },
        "loses": {
          "home": "7",
          "away": "8",
          "total": "15"
        }
      },
      "goals": {
        "goalsFor": {
          "home": "23",
          "away": "19",
          "total": "42"
        },
        "goalsAgainst": {
          "home": "28",
          "away": "24",
          "total": "52"
        }
      },
      "goalsAvg": {
        "goalsFor": {
          "home": "1.2",
          "away": "1.0",
          "total": "1.1"
        },
        "goalsAgainst": {
          "home": "1.5",
          "away": "1.3",
          "total": "1.4"
        }
      }
    }
  }
}

ODDS

We provide pre-match odds between 1 and 15 days before the match. (Some competitions do not have this feature).

Filters
  • odds/{fixture_id} Get all pre-match odds from one fixture

Php Request example Test this
$response = Unirest\Request::get("https://api-football-v1.p.rapidapi.com/odds/123",
   array(
      "X-RapidAPI-Key" => "XXXXXXXXXXXXXXXXXXXXXXXXX",
	  "Accept" => "application/json"
   )
);

Response body
{
  "api": {
    "results": 29,
    "odds": {
      "Win the match": {
        "1": {
          "label": "1",
          "pos": "1",
          "odd": "1.83"
        },
        "2": {
          "label": "2",
          "pos": "3",
          "odd": "5.00"
        },
        "N": {
          "label": "N",
          "pos": "2",
          "odd": "3.25"
        }
      },
      "Handicap [0:3]": {
        "1": {
          "label": "1",
          "pos": "1",
          "odd": "14.00"
        },
        "2": {
          "label": "2",
          "pos": "3",
          "odd": "1.01"
        },
        "N": {
          "label": "N",
          "pos": "2",
          "odd": "7.00"
        }
      },
      "Half Time": {
        "1": {
          "label": "1",
          "pos": "1",
          "odd": "2.35"
        },
        "2": {
          "label": "2",
          "pos": "3",
          "odd": "4.50"
        },
        "N": {
          "label": "N",
          "pos": "2",
          "odd": "1.80"
        }
      },
      "Exact score": {
        "1 - 0": {
          "label": "1 - 0",
          "pos": "1",
          "odd": "4.60"
        },
        "2 - 0": {
          "label": "2 - 0",
          "pos": "2",
          "odd": "6.50"
        },
        "2 - 1": {
          "label": "2 - 1",
          "pos": "3",
          "odd": "9.00"
        }
		{...}
      },
      "Double chance": {
        "1/N": {
          "label": "1/N",
          "pos": "1",
          "odd": "1.11"
        },
        "N/2": {
          "label": "N/2",
          "pos": "2",
          "odd": "1.88"
        },
        "1/2": {
          "label": "1/2",
          "pos": "3",
          "odd": "1.28"
        }
      },
      "Result & The 2 teams score": {
        "France / Yes": {
          "label": "France / Yes",
          "pos": "1",
          "odd": "4.45"
        },
        "France / No": {
          "label": "France / No",
          "pos": "2",
          "odd": "2.20"
        },
        "N / Yes": {
          "label": "N / Yes",
          "pos": "3",
          "odd": "4.20"
        },
        "N / No": {
          "label": "N / No",
          "pos": "4",
          "odd": "5.25"
        },
        "Croatie / Yes": {
          "label": "Croatie / Yes",
          "pos": "5",
          "odd": "10.00"
        },
        "Croatie / No": {
          "label": "Croatie / No",
          "pos": "6",
          "odd": "5.25"
        }
      },
      "Both teams score": {
        "Yes": {
          "label": "Yes",
          "pos": "1",
          "odd": "2.05"
        },
        "No": {
          "label": "No",
          "pos": "2",
          "odd": "1.45"
        }
      },
      "Over / Under 4.5 goals (Regulatory time)": {
        "Over": {
          "label": "Over",
          "pos": "1",
          "odd": "6.00"
        },
        "Under": {
          "label": "Under",
          "pos": "2",
          "odd": "1.01"
        }
      },
      "Over / Under 3.5 goals (Regulatory time)": {
        "Over": {
          "label": "Over",
          "pos": "1",
          "odd": "3.70"
        },
        "Under": {
          "label": "Under",
          "pos": "2",
          "odd": "1.10"
        }
      },
      "Over / Under 2.5 goals (Regulatory time)": {
        "Over": {
          "label": "Over",
          "pos": "1",
          "odd": "2.30"
        },
        "Under": {
          "label": "Under",
          "pos": "2",
          "odd": "1.35"
        }
      },
      "Over / Under 1.5 goal (Regulatory time)": {
        "Over": {
          "label": "Over",
          "pos": "1",
          "odd": "1.42"
        },
        "Under": {
          "label": "Under",
          "pos": "2",
          "odd": "2.10"
        }
      },
      "Scorer (90 Mins)": {
        "A.Griezmann": {
          "label": "A.Griezmann",
          "pos": "1",
          "odd": "2.60"
        },
        "A.Griezmann & L.Modric": {
          "label": "A.Griezmann & L.Modric",
          "pos": "2",
          "odd": "13.00"
        },
        "A.Griezmann & O.Girord": {
          "label": "A.Griezmann & O.Girord",
          "pos": "3",
          "odd": "8.50"
        },
        "A.Griezmann (2 or +)": {
          "label": "A.Griezmann (2 or +)",
          "pos": "4",
          "odd": "9.00"
        },
		{...}
      },
      "1st Goal scorer (90 Mins)": {
        "A.Griezmann": {
          "label": "A.Griezmann",
          "pos": "1",
          "odd": "5.00"
        },
        "B.Matuidi": {
          "label": "B.Matuidi",
          "pos": "2",
          "odd": "15.00"
        },
		{...}
      },
      "Face to Face": {
        "France": {
          "label": "France",
          "pos": "1",
          "odd": "1.28"
        },
        "Croatie": {
          "label": "Croatie",
          "pos": "2",
          "odd": "2.55"
        }
      },
      "1st goal": {
        "Team 1": {
          "label": "Team 1",
          "pos": "1",
          "odd": "1.50"
        },
        "Team 2": {
          "label": "Team 2",
          "pos": "2",
          "odd": "2.65"
        },
        "No goal": {
          "label": "No goal",
          "pos": "3",
          "odd": "6.50"
        }
      },
      "HT/FT": {
        "1/1": {
          "label": "1/1",
          "pos": "1",
          "odd": "2.65"
        },
        "1/N": {
          "label": "1/N",
          "pos": "2",
          "odd": "14.50"
        },
        "1/2": {
          "label": "1/2",
          "pos": "3",
          "odd": "30.00"
        },
        "N/1": {
          "label": "N/1",
          "pos": "4",
          "odd": "3.90"
        },
        "N/N": {
          "label": "N/N",
          "pos": "5",
          "odd": "4.00"
        },
        "N/2": {
          "label": "N/2",
          "pos": "6",
          "odd": "8.50"
        },
        "2/1": {
          "label": "2/1",
          "pos": "7",
          "odd": "22.00"
        },
        "2/N": {
          "label": "2/N",
          "pos": "8",
          "odd": "15.00"
        },
        "2/2": {
          "label": "2/2",
          "pos": "9",
          "odd": "7.50"
        }
      },
      "Result & Over/Under": {
        "France & over 3,5": {
          "label": "France & over 3,5",
          "pos": "1",
          "odd": "6.00"
        },
        "Draw & over 3,5": {
          "label": "Draw & over 3,5",
          "pos": "2",
          "odd": "11.00"
        },
        "Croatie & over 3,5": {
          "label": "Croatie & over 3,5",
          "pos": "3",
          "odd": "18.50"
        },
        "France & under 3,5": {
          "label": "France & under 3,5",
          "pos": "4",
          "odd": "2.00"
        },
        "Draw & under 3,5": {
          "label": "Draw & under 3,5",
          "pos": "5",
          "odd": "3.30"
        },
        "Croatie & under 3,5": {
          "label": "Croatie & under 3,5",
          "pos": "6",
          "odd": "5.00"
        },
        "France & over 1,5": {
          "label": "France & over 1,5",
          "pos": "1",
          "odd": "2.45"
        },
        "Draw & over 1,5": {
          "label": "Draw & over 1,5",
          "pos": "2",
          "odd": "3.65"
        },
        "Croatie & over 1,5": {
          "label": "Croatie & over 1,5",
          "pos": "3",
          "odd": "7.00"
        },
        "France & under 1,5": {
          "label": "France & under 1,5",
          "pos": "4",
          "odd": "4.70"
        },
        "Draw & under 1,5": {
          "label": "Draw & under 1,5",
          "pos": "5",
          "odd": "6.50"
        },
        "Croatie & under 1,5": {
          "label": "Croatie & under 1,5",
          "pos": "6",
          "odd": "8.50"
        },
        "France & over 2,5": {
          "label": "France & over 2,5",
          "pos": "1",
          "odd": "3.75"
        },
        "Draw & over 2,5": {
          "label": "Draw & over 2,5",
          "pos": "2",
          "odd": "11.00"
        },
        "Croatie & over 2,5": {
          "label": "Croatie & over 2,5",
          "pos": "3",
          "odd": "10.00"
        },
        "France & under 2,5": {
          "label": "France & under 2,5",
          "pos": "4",
          "odd": "2.60"
        },
        "Draw & under 2,5": {
          "label": "Draw & under 2,5",
          "pos": "5",
          "odd": "3.50"
        },
        "Croatie & under 2,5": {
          "label": "Croatie & under 2,5",
          "pos": "6",
          "odd": "6.25"
        },
        "France & over 4,5": {
          "label": "France & over 4,5",
          "pos": "1",
          "odd": "8.25"
        },
        "Draw & over 4,5": {
          "label": "Draw & over 4,5",
          "pos": "2",
          "odd": "19.50"
        },
        "Croatie & over 4,5": {
          "label": "Croatie & over 4,5",
          "pos": "3",
          "odd": "25.00"
        },
        "France & under 4,5": {
          "label": "France & under 4,5",
          "pos": "4",
          "odd": "1.85"
        },
        "Draw & under 4,5": {
          "label": "Draw & under 4,5",
          "pos": "5",
          "odd": "3.25"
        },
        "Croatie & under 4,5": {
          "label": "Croatie & under 4,5",
          "pos": "6",
          "odd": "5.00"
        }
      },
      "Double Chance HT": {
        "1/N": {
          "label": "1/N",
          "pos": "1",
          "odd": "1.10"
        },
        "N/2": {
          "label": "N/2",
          "pos": "2",
          "odd": "1.40"
        },
        "1/2": {
          "label": "1/2",
          "pos": "3",
          "odd": "1.68"
        }
      },
      "Exact Score HT": {
        "1 - 0": {
          "label": "1 - 0",
          "pos": "1",
          "odd": "3.15"
        },
        "2 - 0": {
          "label": "2 - 0",
          "pos": "2",
          "odd": "10.50"
        },
		{...}
      },
      "Over/Under HT 0.5 goal": {
        "Over": {
          "label": "Over",
          "pos": "1",
          "odd": "1.45"
        },
        "Under": {
          "label": "Under",
          "pos": "2",
          "odd": "2.05"
        }
      },
      "Over/Under MT 2,5 goals": {
        "Over": {
          "label": "Over",
          "pos": "1",
          "odd": "5.50"
        },
        "Under": {
          "label": "Under",
          "pos": "2",
          "odd": "1.01"
        }
      },
      "Over/Under HT 1.5 goal": {
        "Over": {
          "label": "Over",
          "pos": "1",
          "odd": "3.00"
        },
        "Under": {
          "label": "Under",
          "pos": "2",
          "odd": "1.19"
        }
      },
      "Both teams score HT": {
        "Yes": {
          "label": "Yes",
          "pos": "1",
          "odd": "4.20"
        },
        "No": {
          "label": "No",
          "pos": "2",
          "odd": "1.06"
        }
      },
      "1N2_2eMT": {
        "1": {
          "label": "1",
          "pos": "1",
          "odd": "2.10"
        },
        "2": {
          "label": "2",
          "pos": "3",
          "odd": "4.20"
        },
        "N": {
          "label": "N",
          "pos": "2",
          "odd": "2.05"
        }
      }
    }
  }
}