curl --request GET \
--url https://api.vatic.trading/api/v1/games \
--header 'x-api-key: <api-key>'import requests
url = "https://api.vatic.trading/api/v1/games"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.vatic.trading/api/v1/games', 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://api.vatic.trading/api/v1/games",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://api.vatic.trading/api/v1/games"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.vatic.trading/api/v1/games")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vatic.trading/api/v1/games")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "espn:401879264",
"sport": "<string>",
"league": "<string>",
"status": "scheduled",
"home": {
"id": "soccer:espn:359",
"name": "<string>",
"abbreviation": "<string>",
"logo_url": "<string>",
"sport": "<string>",
"league": "<string>"
},
"away": {
"id": "soccer:espn:359",
"name": "<string>",
"abbreviation": "<string>",
"logo_url": "<string>",
"sport": "<string>",
"league": "<string>"
},
"time": {
"kickoff_at": "2023-11-07T05:31:56Z",
"est_end_at": "2023-11-07T05:31:56Z",
"end_p90_at": "2023-11-07T05:31:56Z",
"actual_end_at": "2023-11-07T05:31:56Z",
"est_basis": "<string>",
"previous_kickoffs": [
{}
]
},
"score": {
"home": 123,
"away": 123,
"clock": "67'",
"period": 123,
"detail": "HT",
"updated_at": "2023-11-07T05:31:56Z"
},
"spine": {
"source": "<string>",
"event_id": "<string>"
},
"supersedes": "<string>",
"redistributable": "yes",
"platforms": [
{
"source": "polymarket",
"confidence": "exact",
"redistributable": "yes",
"license_note": "<string>",
"events": 123,
"markets_stored": 123,
"last_seen": "2023-11-07T05:31:56Z"
}
],
"coverage": [
{
"source": "<string>",
"status": "listed",
"checked_at": "2023-11-07T05:31:56Z"
}
]
}
],
"next_cursor": "<string>",
"meta": {
"as_of": "2023-11-07T05:31:56Z",
"redistributable_filter": "yes_only",
"venues_checked": [
"<string>"
],
"total": 123,
"withheld": {
"games": 123,
"reason": "<string>"
}
}
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>"
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>"
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>"
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>"
}List games
Every game in a time window, including games offered by only one platform and games offered by none. Each game lists the platforms (venues) where we found markets for it (platforms) and, on request, whether each integrated venue was checked (coverage). Use day + tz for a viewer-local day, or from/to for an explicit UTC window. Results are keyset-paginated.
curl --request GET \
--url https://api.vatic.trading/api/v1/games \
--header 'x-api-key: <api-key>'import requests
url = "https://api.vatic.trading/api/v1/games"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.vatic.trading/api/v1/games', 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://api.vatic.trading/api/v1/games",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://api.vatic.trading/api/v1/games"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.vatic.trading/api/v1/games")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vatic.trading/api/v1/games")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "espn:401879264",
"sport": "<string>",
"league": "<string>",
"status": "scheduled",
"home": {
"id": "soccer:espn:359",
"name": "<string>",
"abbreviation": "<string>",
"logo_url": "<string>",
"sport": "<string>",
"league": "<string>"
},
"away": {
"id": "soccer:espn:359",
"name": "<string>",
"abbreviation": "<string>",
"logo_url": "<string>",
"sport": "<string>",
"league": "<string>"
},
"time": {
"kickoff_at": "2023-11-07T05:31:56Z",
"est_end_at": "2023-11-07T05:31:56Z",
"end_p90_at": "2023-11-07T05:31:56Z",
"actual_end_at": "2023-11-07T05:31:56Z",
"est_basis": "<string>",
"previous_kickoffs": [
{}
]
},
"score": {
"home": 123,
"away": 123,
"clock": "67'",
"period": 123,
"detail": "HT",
"updated_at": "2023-11-07T05:31:56Z"
},
"spine": {
"source": "<string>",
"event_id": "<string>"
},
"supersedes": "<string>",
"redistributable": "yes",
"platforms": [
{
"source": "polymarket",
"confidence": "exact",
"redistributable": "yes",
"license_note": "<string>",
"events": 123,
"markets_stored": 123,
"last_seen": "2023-11-07T05:31:56Z"
}
],
"coverage": [
{
"source": "<string>",
"status": "listed",
"checked_at": "2023-11-07T05:31:56Z"
}
]
}
],
"next_cursor": "<string>",
"meta": {
"as_of": "2023-11-07T05:31:56Z",
"redistributable_filter": "yes_only",
"venues_checked": [
"<string>"
],
"total": 123,
"withheld": {
"games": 123,
"reason": "<string>"
}
}
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>"
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>"
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>"
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>"
}Authorizations
Required for order endpoints. Obtain your API key from the Vatic dashboard.
Query Parameters
Window start (inclusive), ISO-8601.
Window end (exclusive), ISO-8601.
A local calendar day YYYY-MM-DD (use with tz; cannot be combined with from/to).
"2026-10-10"
IANA timezone for day.
"America/Mexico_City"
Number of consecutive local days starting at day (2 = a weekend).
1 <= x <= 14Comma-separated league codes (see /api/v1/leagues).
"eng.1,esp.1"
Comma-separated: scheduled, live, finished, postponed, cancelled.
"scheduled,live"
Only games offered by these platforms (comma-separated).
"polymarket"
platforms (default), coverage, both, or empty for neither.
"platforms,coverage"
1 <= x <= 200next_cursor of the previous page.
Was this page helpful?