curl --request GET \
--url https://padelapi.org/api/tournaments/{tournament}/matches \
--header 'Authorization: Bearer <token>'import requests
url = "https://padelapi.org/api/tournaments/{tournament}/matches"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://padelapi.org/api/tournaments/{tournament}/matches', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://padelapi.org/api/tournaments/{tournament}/matches",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://padelapi.org/api/tournaments/{tournament}/matches"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://padelapi.org/api/tournaments/{tournament}/matches")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://padelapi.org/api/tournaments/{tournament}/matches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"self": "<string>",
"name": "<string>",
"url": "<string>",
"category": "men",
"draw": "main",
"watchability": 123,
"round": 123,
"round_name": "<string>",
"index": 123,
"seeds": "<string>",
"played_at": "<string>",
"schedule_label": "<string>",
"scheduled_at": "<string>",
"scheduled_at_local": "<string>",
"court": "<string>",
"court_order": 123,
"status": "scheduled",
"score": "<string>",
"winner": "<string>",
"started_time": "<string>",
"started_time_local": "<string>",
"duration": "<string>",
"players": {
"team_1": [
{
"id": 123,
"self": "<string>",
"name": "<string>",
"short_name": "<string>",
"nationality": "<string>",
"side": "drive",
"connections": "<string>"
}
],
"team_2": [
{
"id": 123,
"self": "<string>",
"name": "<string>",
"short_name": "<string>",
"nationality": "<string>",
"side": "drive",
"connections": "<string>"
}
]
},
"updated_at": "<string>",
"connections": "<string>",
"tournament": {
"id": 123,
"self": "<string>",
"name": "<string>",
"url": "<string>",
"photo_url": "<string>",
"location": "<string>",
"venue": {
"name": "<string>",
"address": "<string>"
},
"country": "<string>",
"timezone": "<string>",
"level": "major",
"format": "pairs",
"status": "pending",
"court_type": "indoor",
"prize": {
"amount": 123,
"currency": "<string>"
},
"start_date": "<string>",
"end_date": "<string>",
"winners": {},
"links": "<string>",
"updated_at": "<string>",
"connections": "<string>"
},
"tie": {
"id": "<string>",
"group": "<string>",
"team_1": "<string>",
"team_2": "<string>",
"rubber": 123,
"score": {
"team_1": 123,
"team_2": 123
},
"winner": "team_1"
}
}
],
"links": {
"first": "<string>",
"last": "<string>",
"prev": "<string>",
"next": "<string>"
},
"meta": {
"current_page": 123,
"from": 123,
"last_page": 123,
"links": [
{
"url": "<string>",
"label": "<string>",
"active": true
}
],
"path": "<string>",
"per_page": 123,
"to": 123,
"total": 123
}
}{
"message": "<string>"
}{
"message": "Subscription required."
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}List Tournament Matches
Endpoint to retrieve all matches from a specific tournament with optional filters for date, round, category, court name, and last update time. Results can be sorted by date, court, court order, round or update time.
Only the main draw is returned unless you set draw: use draw=all to include qualifying and, in team tournaments, the group stage and placement ties.
Sort by court and court_order to rebuild the order of play. Matches without an announced start time still carry a scheduled_at, estimated from the court’s order of play and recalculated hourly — see the schedule estimates guide.
curl --request GET \
--url https://padelapi.org/api/tournaments/{tournament}/matches \
--header 'Authorization: Bearer <token>'import requests
url = "https://padelapi.org/api/tournaments/{tournament}/matches"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://padelapi.org/api/tournaments/{tournament}/matches', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://padelapi.org/api/tournaments/{tournament}/matches",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://padelapi.org/api/tournaments/{tournament}/matches"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://padelapi.org/api/tournaments/{tournament}/matches")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://padelapi.org/api/tournaments/{tournament}/matches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"self": "<string>",
"name": "<string>",
"url": "<string>",
"category": "men",
"draw": "main",
"watchability": 123,
"round": 123,
"round_name": "<string>",
"index": 123,
"seeds": "<string>",
"played_at": "<string>",
"schedule_label": "<string>",
"scheduled_at": "<string>",
"scheduled_at_local": "<string>",
"court": "<string>",
"court_order": 123,
"status": "scheduled",
"score": "<string>",
"winner": "<string>",
"started_time": "<string>",
"started_time_local": "<string>",
"duration": "<string>",
"players": {
"team_1": [
{
"id": 123,
"self": "<string>",
"name": "<string>",
"short_name": "<string>",
"nationality": "<string>",
"side": "drive",
"connections": "<string>"
}
],
"team_2": [
{
"id": 123,
"self": "<string>",
"name": "<string>",
"short_name": "<string>",
"nationality": "<string>",
"side": "drive",
"connections": "<string>"
}
]
},
"updated_at": "<string>",
"connections": "<string>",
"tournament": {
"id": 123,
"self": "<string>",
"name": "<string>",
"url": "<string>",
"photo_url": "<string>",
"location": "<string>",
"venue": {
"name": "<string>",
"address": "<string>"
},
"country": "<string>",
"timezone": "<string>",
"level": "major",
"format": "pairs",
"status": "pending",
"court_type": "indoor",
"prize": {
"amount": 123,
"currency": "<string>"
},
"start_date": "<string>",
"end_date": "<string>",
"winners": {},
"links": "<string>",
"updated_at": "<string>",
"connections": "<string>"
},
"tie": {
"id": "<string>",
"group": "<string>",
"team_1": "<string>",
"team_2": "<string>",
"rubber": 123,
"score": {
"team_1": 123,
"team_2": 123
},
"winner": "team_1"
}
}
],
"links": {
"first": "<string>",
"last": "<string>",
"prev": "<string>",
"next": "<string>"
},
"meta": {
"current_page": 123,
"from": 123,
"last_page": 123,
"links": [
{
"url": "<string>",
"label": "<string>",
"active": true
}
],
"path": "<string>",
"per_page": 123,
"to": 123,
"total": 123
}
}{
"message": "<string>"
}{
"message": "Subscription required."
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The tournament ID
Query Parameters
Date when the match was played in YYYY-MM-DD format.
Round of the match (1 = Final, 2 = Semifinal, 4 = Quarterfinal, 8 = Round of 16, 16 = Round of 32, 32 = Round of 64, 0 = group stage of team tournaments)
0, 1, 2, 4, 8, 16, 32 Category of the match. Either men or women.
men, women Draw the match belongs to: main, qualy, group or placement (team tournaments only), or all for every draw. Defaults to main.
main, all Name of the court where the match was played.
Identifier of the tie, matching tie.id in the response. Sent as ?tie[id]=men-main-1-0, it returns the rubbers of that single tie. Team tournaments only.
Group of the tie (e.g. A), matching tie.group in the response. Sent as ?tie[group]=A. Team tournaments only.
1Name of the team on the first side of the tie, matching tie.team_1 in the response (case-insensitive). Sent as ?tie[team_1]=Spain. Team tournaments only.
Name of the team on the second side of the tie, matching tie.team_2 in the response (case-insensitive). Sent as ?tie[team_2]=Argentina. Team tournaments only.
Filter matches updated after this datetime in ISO 8601 format.
Filter matches updated before this datetime in ISO 8601 format.
Name of the parameter to sort the matches by.
played_at, court, court_order, round, updated_at Order of the sorting, either asc or desc.
asc, desc Page number to return, starting at 1.
x >= 1Number of results per page, from 1 to 50. Larger values return 50.
x >= 1