by basic
View all matches of a specific filter with basic data ⬜ 🟨 🟦 🟩
GET
https://api.soccerfootball.info/v1/matches/by/basic/
This endpoint returns with all matches of as specific filter with basic data.
You can filter by: c
championship id, m
manager id and s
stadium id. If you use more filter will be use AND logic.
You can get specific items id from other endpoints.
if this entity has has_image
to true, you can access/download the entity media; see te instruction inside FAQ. The parameters l
must be a language code getted from languages/list endpoint.
Some elements such as championship and team names can be translated
Add bet365_url
that contains bet365 url match.
Please note, this is the link pointing to the match. After kickoff, the link may change but bet365 should send you back to the updated link.
You have to replace .EXT with your needed extension ".com, .it etc..."
Query Parameters
t
string
Your API Token DIRECT API ONLY
c
string
Championship ID
m
string
Manager ID
s
string
Stadium ID
p
string
Page
l
string
Language code (default value is "en_US")
Headers
x-rapidapi-key
string
Your API token RAPIDAPI ONLY
x-rapidapi-host
string
soccerfootballinfo.rapidapi.com RAPIDAPI ONLY
{
"status": 200,
"errors": [
],
"pagination": [
{
"page": 1,
"per_page": 100,
"items": 327
}
],
"result": [
{
"id": "6050031284c7991a",
"date": "2021-03-19 00:00:00",
"status": "ENDED",
"timer": "90:00",
"championship": {
"id": "5fda5fac01e49b16",
"name": "Ecuador Primera B",
"s_name": "LigaPro Primera B 2021"
},
"teamA": {
"id": "5fda5fd7100d115f",
"name": "America de Quito",
"score": {
"f": "1",
"1h": "0",
"2h": "1",
"o": null,
"p": null
},
"stats": {
"possession": "51",
"attacks": {
"n": "101",
"d": "46",
"o_s": null
},
"shoots": {
"t": "8",
"off": "1",
"on": "7",
"g_a": null
},
"penalties": "0",
"corners": {
"t": "4",
"f": "4",
"h": "3"
},
"fouls": {
"t": null,
"y_c": "4",
"y_t_r_c": "0",
"r_c": "0"
},
"substitutions": "0",
"throwins": null,
"injuries": "1"
"dominance_avg_2_5": "10.10", // average of last 2.5 minutes of dominance index
"xG" : {
"kickoff" : "1.02", // Expected goal at kickoff
"live" : "0.88" // Current expected goal
}
},
"manager": null
},
"teamB": {
"id": "5fda60336dfb2746",
"name": "El Nacional",
"score": {
"f": "1",
"1h": "0",
"2h": "1",
"o": null,
"p": null
},
"stats": {
"possession": "49",
"attacks": {
"n": "100",
"d": "51",
"o_s": null
},
"shoots": {
"t": "5",
"off": "2",
"on": "3",
"g_a": null
},
"penalties": "0",
"corners": {
"t": "7",
"f": "7",
"h": "4"
},
"fouls": {
"t": null,
"y_c": "2",
"y_t_r_c": "0",
"r_c": "0"
},
"substitutions": "0",
"throwins": null,
"injuries": "1"
"dominance_avg_2_5": "10.10", // average of last 2.5 minutes of dominance index
"xG" : {
"kickoff" : "1.02", // Expected goal at kickoff
"live" : "0.88" // Current expected goal
}
},
"manager": null
},
"events": [
{
"type": "yellow_card",
"timer": "90+5",
"team": "A"
},
{
"type": "yellow_card",
"timer": "90+2",
"team": "A"
},
{
"type": "yellow_card",
"timer": "86",
"team": "A"
},
{
"type": "yellow_card",
"timer": "80",
"team": "A"
},
{
"type": "goal",
"timer": "72",
"team": "B"
},
{
"type": "corner",
"timer": "70",
"team": "B"
},
{
"type": "corner",
"timer": "65",
"team": "B"
},
{
"type": "corner",
"timer": "63",
"team": "B"
},
{
"type": "goal",
"timer": "59",
"team": "A"
},
{
"type": "corner",
"timer": "58",
"team": "A"
},
{
"type": "yellow_card",
"timer": "42",
"team": "B"
},
{
"type": "corner",
"timer": "41",
"team": "A"
},
{
"type": "yellow_card",
"timer": "33",
"team": "B"
},
{
"type": "corner",
"timer": "24",
"team": "B"
},
{
"type": "corner",
"timer": "21",
"team": "B"
},
{
"type": "corner",
"timer": "17",
"team": "A"
},
{
"type": "corner",
"timer": "12",
"team": "B"
},
{
"type": "corner",
"timer": "9",
"team": "B"
},
{
"type": "corner",
"timer": "6",
"team": "A"
}
],
"dominance_index": [
{
"timer":"00:00", // timer of dominance index
"teamA":"5",
"teamB":"5"
},
...
],
"referee": null,
"stadium": {
"id": "5fb9697971d74bf8",
"name": "Olimpico Atahualpa"
},
"bet365_url" : "https://www.bet365.EXT/#/AC/B1/C1/D8/E128998076/F3"
},
...
]
}
Example of code for direct API
$url = 'https://api.soccerfootball.info/v1/matches/by/basic/?t=TOKEN&c=CHAMPIOSHIP_ID';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_PROXY => null,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_CUSTOMREQUEST => "GET"
));
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if (!$err) {
$result = json_decode($response);
print_r($result);
} else {
echo "cURL Error:" . $err;
}
fetch("https://api.soccerfootball.info/v1/matches/by/basic/?t=TOKEN&c=CHAMPIOSHIP_ID", {
"method": "GET"
})
.then(response => {
console.log(response);
})
.catch(err => {
console.error(err);
});
const request = require('request');
const options = {
method: 'GET',
url: 'https://api.soccerfootball.info/v1/matches/by/basic/?t=TOKEN&c=CHAMPIOSHIP_ID'
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
import requests
url = "https://api.soccerfootball.info/v1/matches/by/basic/?t=TOKEN&c=CHAMPIOSHIP_ID"
response = requests.get(url).json()
print(response)
curl --request GET \
--url 'https://api.soccerfootball.info/v1/matches/by/basic/?t=TOKEN&c=CHAMPIOSHIP_ID'
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.soccerfootball.info/v1/matches/by/basic/?t=TOKEN&c=CHAMPIOSHIP_ID"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
Example of code for RapidAPI
$url = 'https://soccerfootballinfo.rapidapi.com/v1/matches/by/basic/?c=CHAMPIOSHIP_ID';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_PROXY => null,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-rapidapi-host: soccerfootballinfo.rapidapi.com",
"x-rapidapi-key: TOKEN"
],
));
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if (!$err) {
$result = json_decode($response);
print_r($result);
} else {
echo "cURL Error:" . $err;
}
fetch("https://api.soccerfootball.info/v1/matches/by/basic/?c=CHAMPIOSHIP_ID", {
"method": "GET",
"headers": {
"x-rapidapi-key": "TOKEN",
"x-rapidapi-host": "soccerfootballinfo.rapidapi.com"
}
})
.then(response => {
console.log(response);
})
.catch(err => {
console.error(err);
});
const request = require('request');
const options = {
method: 'GET',
url: "https://api.soccerfootball.info/v1/matches/by/basic/?c=CHAMPIOSHIP_ID",
headers: {
"x-rapidapi-key": "TOKEN",
"x-rapidapi-host": "soccerfootballinfo.rapidapi.com"
useQueryString: true
}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
import requests
url = "https://soccerfootballinfo.rapidapi.com/v1/matches/by/basic/?c=CHAMPIOSHIP_ID"
headers = {
"x-rapidapi-key": "TOKEN",
"x-rapidapi-host": "soccerfootballinfo.rapidapi.com"
}
response = requests.request("GET", url, headers=headers)
print(response.text)
curl --request GET \
--url https://api.soccerfootball.info/v1/matches/by/basic/?c=CHAMPIOSHIP_ID \
--header 'x-rapidapi-host: soccerfootballinfo.rapidapi.com' \
--header 'x-rapidapi-key: TOKEN'
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://soccerfootballinfo.rapidapi.com/v1/matches/by/basic/?c=CHAMPIOSHIP_ID"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-rapidapi-key", "TOKEN")
req.Header.Add("x-rapidapi-host", "soccerfootballinfo.rapidapi.com")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
More example of code on rapidAPI
Last updated