view progressive
Last updated
Last updated
GET
https://api.soccerfootball.info/v1/matches/view/progressive/?i=ID
This endpoint returns with match data (stats and odds) every 30 seconds. This endpoints has data since 2020-01-01 Live match can be view only by 🟩 ULTRA user plan This call is our killer features. You can test your strategy on historical data in live method. Format CSV is in MS excel compatible mode (double click open without import!)
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
{
"status":200,
"errors":[],
"pagination":[],
"result":[
...,
{ // all stats may be null if 0 or not set
"timer":"52:00", // start from "00:00" every 30 seconds (00:00 00:30 01:00 01:30)
"teamA":{
"goal": "1",
"possession":"46",
"attacks":{
"n":"58", // normal
"d":"10" // dangerous
},
"shoots":{
"t":"1", // total
"off":"0", // off target
"on":"1", // on target
"g_a":"1" // goal attemps
},
"penalties":null,
"corners":null,
"fouls":{
"t":null, // total
"y_c":"3", // yellow card
"y_t_r_c":null, // yellow to red card
"r_c":null // red card
},
"substitutions":null,
"throwins":null,
"injuries":null,
"dominance":{
"index": "10.22", // exact dominance index at this time
"avg_2_5": "10.50" // avg last 2,5 minutes of d.index
},
"xG" : "0.88"
},
"teamB":{
... // same of teamA
},
"odds":{
"1X2":{
"1":"21.000",
"2":"1.125",
"X":"6.500"
},
"asian_handicap":{
"1":"2.075",
"2":"1.725",
"v":"+0.25"
},
"over_under":{
"o":"1.775",
"u":"2.025",
"v":"2"
},
"asian_corner":{
"o":"1.825",
"u":"1.975",
"v":"6"
},
"1h_asian_handicap":{
"1":"3.900",
"2":"1.240",
"v":"0"
},
"1h_goalline":{
"o":"5.900",
"u":"1.130",
"v":"0.5"
},
"1h_asian_corner":{
"o":"2.375",
"u":"1.550",
"v":"1.5"
},
"1h_result":{
"1":"13.000",
"2":"8.000",
"X":"1.083"
}
}
},
...
]
}
timer;teamA_goal;teamB_goal;teamA_possession;teamB_possession;teamA_attacks_n;teamB_attacks_n;teamA_attacks_d;teamB_attacks_d;teamA_off_sides;teamB_off_sides;teamA_shoots;teamB_shoots;teamA_shoots_on_target;teamB_shoots_on_target;teamA_shoots_off_target;teamB_shoots_off_target;teamA_goal_attemps;teamB_goal_attemps;teamA_penalties;teamB_penalties;teamA_corners;teamB_corners;teamA_fouls;teamB_fouls;teamA_yellow_cards;teamB_yellow_cards;teamA_yellow_t_red_cards;teamB_yellow_t_red_cards;teamA_red_cards;teamB_red_cards;teamA_substitutions;teamB_substitutions;teamA_throwins;teamB_throwins;teamA_injuries;teamB_injuries;teamA_dominance_index;teamB_dominance_index;teamA_dominance_index_2_5;teamB_dominance_index_2_5;teamA_xG;teamB_xG;odd_1x2_1;odd_1x2_X;odd_1x2_2;odd_asian_handicap_1;odd_asian_handicap_2;odd_asian_handicap_v;odd_over_under_o;odd_over_under_u;odd_over_under_v;odd_asian_corner_o;odd_asian_corner_u;odd_asian_corner_v;odd_1h_asian_handicap_1;odd_1h_asian_handicap_2;odd_1h_asian_handicap_v;odd_1h_goalline_o;odd_1h_goalline_u;odd_1h_goalline_v;odd_1h_asian_corner_o;odd_1h_asian_corner_u;odd_1h_asian_corner_v;odd_1h_result_1;odd_1h_result_X;odd_1h_result_2
00:00;0;0;50;50;0;0;0;0;;;0;0;0;0;0;0;;;0;0;0;0;;;0;0;;;0;0;0;0;;;;;5.00;5.00;5.00;5.00;;;;;;;;;;;;;;;;;;;;;;;;;;
$url = 'https://api.soccerfootball.info/v1/matches/view/progressive/?t=TOKEN&i=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);
$err = 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/view/progressive/?t=TOKEN&i=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/view/progressive/?t=TOKEN&i=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/view/progressive/?t=TOKEN&i=ID"
response = requests.get(url).json()
print(response)
curl --request GET \
--url 'https://api.soccerfootball.info/v1/matches/view/progressive/?t=TOKEN&i=ID'
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.soccerfootball.info/v1/matches/view/progressive/?t=TOKEN&i=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))
}
$url = 'https://soccer-football-info.p.rapidapi.com/matches/view/progressive/?i=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: soccer-football-info.p.rapidapi.com",
"X-RapidAPI-Key: TOKEN"
],
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if (!$err) {
$result = json_decode($response);
print_r($result);
} else {
echo "cURL Error:" . $err;
}
fetch("https://soccer-football-info.p.rapidapi.com/matches/view/progressive/?i=ID", {
"method": "GET",
"headers": {
"X-RapidAPI-Key": "TOKEN",
"X-RapidAPI-Host": "soccer-football-info.p.rapidapi.com"
}
})
.then(response => {
console.log(response);
})
.catch(err => {
console.error(err);
});
const request = require('request');
const options = {
method: 'GET',
url: "https://soccer-football-info.p.rapidapi.com/matches/view/progressive/?i=ID",
headers: {
"X-RapidAPI-Key": "TOKEN",
"X-RapidAPI-Host": "soccer-football-info.p.rapidapi.com"
useQueryString: true
}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
import requests
url = "https://soccer-football-info.p.rapidapi.com/matches/view/progressive/?i=ID"
headers = {
"X-RapidAPI-Key": "TOKEN",
"X-RapidAPI-Host": "soccer-football-info.p.rapidapi.com"
}
response = requests.request("GET", url, headers=headers)
print(response.text)
curl --request GET \
--url https://soccer-football-info.p.rapidapi.com/matches/view/progressive/?i=ID \
--header 'X-RapidAPI-Host: soccer-football-info.p.rapidapi.com' \
--header 'X-RapidAPI-Key: TOKEN'
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://soccer-football-info.p.rapidapi.com/matches/view/progressive/?i=ID"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-RapidAPI-Key", "TOKEN")
req.Header.Add("X-RapidAPI-Host", "soccer-football-info.p.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
t
string
Your API Token DIRECT API ONLY
i
string
Match ID
f
string
Format response can be "json" or "csv" ( default "json")
X-RapidAPI-Key
string
Your API token RAPIDAPI ONLY
X-RapidAPI-Host
string
soccerfootballinfo.rapidapi.com RAPIDAPI ONLY