Description
Get historical match data for World Cup 2026. You can filter by date range to retrieve matches from specific periods. Includes full match results and statistics.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
key |
string | Yes | Your API key for authentication |
date_from |
string | No | Start date in YYYY-MM-DD format |
date_to |
string | No | End date in YYYY-MM-DD format |
lang |
string | No | Language code (es, fr, de, etc.) - defaults to English |
page |
integer | No | Page number (default: 1) |
team_id |
integer | No | The team ID |
Example Request
GET /history?key=YOUR_API_KEY
Example Response
[
{
"group_id": null,
"id": 385735,
"status": "FINISHED",
"location": "Lusail Stadium, Lusail",
"away": {
"id": 1439,
"logo": "https://cdn.worldcupapi.com/teams/f762fd07a14509496998fff35234ffdb.png",
"name": "France"
},
"scheduled": "15:00",
"time": "AP",
"date": "2022-12-18",
"fixture_id": 1581460,
"last_changed": "2022-12-18 18:54:06",
"odds": {
"pre": {
"1": 2.7,
"2": 2.88,
"X": 3.1
},
"live": {
"1": 26,
"2": 26,
"X": 1.01
}
},
"home": {
"id": 1443,
"logo": "https://cdn.worldcupapi.com/teams/5b3b41349230d0618dc36a8c217b9647.png",
"name": "Argentina"
},
"round": "F",
"outcomes": {
"half_time": "1",
"full_time": "X",
"extra_time": "X",
"penalty_shootout": "1"
},
"scores": {
"score": "3 - 3",
"ht_score": "2 - 0",
"ft_score": "2 - 2",
"et_score": "3 - 3",
"ps_score": "4 - 2"
}
},
{
"group_id": null,
"id": 385530,
"status": "FINISHED",
"location": "Khalifa International Stadium, Al Rayyan",
"away": {
"id": 1435,
"logo": "https://cdn.worldcupapi.com/teams/6b8ec4afb9e1ef20d9812eb7074d3c8e.png",
"name": "Morocco"
},
"scheduled": "15:00",
"time": "FT",
"date": "2022-12-17",
"fixture_id": 1581459,
"last_changed": "2022-12-17 18:54:16",
"odds": {
"pre": {
"1": 2.2,
"2": 3.1,
"X": 3.5
},
"live": {
"1": 1.01,
"2": 501,
"X": 21
}
},
"home": {
"id": 211,
"logo": "https://cdn.worldcupapi.com/teams/5359e81da2c5812b807dc8d1c00d45b1.png",
"name": "Croatia"
},
"round": "3PPO",
"outcomes": {
"half_time": "1",
"full_time": "1",
"extra_time": null,
"penalty_shootout": null
},
"scores": {
"score": "2 - 1",
"ht_score": "2 - 1",
"ft_score": "2 - 1",
"et_score": "",
"ps_score": ""
}
},
{
"group_id": null,
"id": 385174,
"status": "FINISHED",
"location": "Al Bayt Stadium, Al Khor",
"away": {
"id": 1435,
"logo": "https://cdn.worldcupapi.com/teams/6b8ec4afb9e1ef20d9812eb7074d3c8e.png",
"name": "Morocco"
},
"scheduled": "19:00",
"time": "FT",
"date": "2022-12-14",
"fixture_id": 1581458,
"last_changed": "2022-12-14 22:54:02",
"odds": {
"pre": {
"1": 1.55,
"2": 6.5,
"X": 4
},
"live": {
"1": 1.01,
"2": 126,
"X": 26
}
},
"home": {
"id": 1439,
"logo": "https://cdn.worldcupapi.com/teams/f762fd07a14509496998fff35234ffdb.png",
"name": "France"
},
"round": "SF",
"outcomes": {
"half_time": "1",
"full_time": "1",
"extra_time": null,
"penalty_shootout": null
},
"scores": {
"score": "2 - 0",
"ht_score": "1 - 0",
"ft_score": "2 - 0",
"et_score": "",
"ps_score": ""
}
}
]
Code Examples
JavaScript (Fetch)
const response = await fetch('https://api.worldcupapi.com/history?key=YOUR_API_KEY');
const data = await response.json();
console.log(data);
Python (Requests)
import requests
url = 'https://api.worldcupapi.com/history'
params = {'key': 'YOUR_API_KEY'}
response = requests.get(url, params=params)
data = response.json()
print(data)
PHP (cURL)
$url = 'https://api.worldcupapi.com/history?key=YOUR_API_KEY'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
Java (HttpURLConnection)
URL url = new URL("https://api.worldcupapi.com/history?key=YOUR_API_KEY");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String response = in.readLine();
C# (HttpClient)
using (var client = new HttpClient())
{
var response = await client.GetAsync("https://api.worldcupapi.com/history?key=YOUR_API_KEY");
var content = await response.Content.ReadAsStringAsync();
var data = JsonSerializer.Deserialize<object>(content);
}
Go
import (
"encoding/json"
"net/http"
)
resp, err := http.Get("https://api.worldcupapi.com/history?key=YOUR_API_KEY")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
Ruby
require 'net/http'
require 'json'
uri = URI('https://api.worldcupapi.com/history?key=YOUR_API_KEY')
response = Net::HTTP.get_response(uri)
data = JSON.parse(response.body)