curl --request GET \
--url https://therundown.io/api/v1/sports/{sportID}/events/{date} \
--header 'X-TheRundown-Key: <api-key>'import requests
url = "https://therundown.io/api/v1/sports/{sportID}/events/{date}"
headers = {"X-TheRundown-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-TheRundown-Key': '<api-key>'}};
fetch('https://therundown.io/api/v1/sports/{sportID}/events/{date}', 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://therundown.io/api/v1/sports/{sportID}/events/{date}",
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-TheRundown-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://therundown.io/api/v1/sports/{sportID}/events/{date}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-TheRundown-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://therundown.io/api/v1/sports/{sportID}/events/{date}")
.header("X-TheRundown-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://therundown.io/api/v1/sports/{sportID}/events/{date}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-TheRundown-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"events": [
{
"event_id": "09bfa53f8484a63e584398545c035932",
"sport_id": 4,
"event_date": "2026-02-12T00:00:00Z",
"teams_normalized": [
{
"team_id": 11,
"name": "Atlanta",
"mascot": "Hawks",
"abbreviation": "ATL",
"record": "26-30",
"is_away": true,
"is_home": false
},
{
"team_id": 12,
"name": "Charlotte",
"mascot": "Hornets",
"abbreviation": "CHA",
"record": "26-29",
"is_away": false,
"is_home": true
}
],
"lines": {
"4": {
"line_id": 17980122,
"moneyline": {
"moneyline_away": -105,
"moneyline_home": -115
},
"spread": {
"point_spread_away": 1.5,
"point_spread_away_money": -110,
"point_spread_home": -1.5,
"point_spread_home_money": -110
},
"total": {
"total_over": 235.5,
"total_over_money": -110,
"total_under": 235.5,
"total_under_money": -110
}
}
}
}
]
}Get events with lines for a sport and date
curl --request GET \
--url https://therundown.io/api/v1/sports/{sportID}/events/{date} \
--header 'X-TheRundown-Key: <api-key>'import requests
url = "https://therundown.io/api/v1/sports/{sportID}/events/{date}"
headers = {"X-TheRundown-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-TheRundown-Key': '<api-key>'}};
fetch('https://therundown.io/api/v1/sports/{sportID}/events/{date}', 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://therundown.io/api/v1/sports/{sportID}/events/{date}",
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-TheRundown-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://therundown.io/api/v1/sports/{sportID}/events/{date}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-TheRundown-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://therundown.io/api/v1/sports/{sportID}/events/{date}")
.header("X-TheRundown-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://therundown.io/api/v1/sports/{sportID}/events/{date}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-TheRundown-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"events": [
{
"event_id": "09bfa53f8484a63e584398545c035932",
"sport_id": 4,
"event_date": "2026-02-12T00:00:00Z",
"teams_normalized": [
{
"team_id": 11,
"name": "Atlanta",
"mascot": "Hawks",
"abbreviation": "ATL",
"record": "26-30",
"is_away": true,
"is_home": false
},
{
"team_id": 12,
"name": "Charlotte",
"mascot": "Hornets",
"abbreviation": "CHA",
"record": "26-29",
"is_away": false,
"is_home": true
}
],
"lines": {
"4": {
"line_id": 17980122,
"moneyline": {
"moneyline_away": -105,
"moneyline_home": -115
},
"spread": {
"point_spread_away": 1.5,
"point_spread_away_money": -110,
"point_spread_home": -1.5,
"point_spread_home_money": -110
},
"total": {
"total_over": 235.5,
"total_over_money": -110,
"total_under": 235.5,
"total_under_money": -110
}
}
}
}
]
}Authorizations
Recommended API key request header for new integrations
Path Parameters
Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1
Query Parameters
UTC offset in minutes for the date boundary. Use 300 for US Central, 240 for Eastern, 360 for Mountain, 420 for Pacific. Without this, the API day boundary is midnight UTC.
300
Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.
On V2 event endpoints (/api/v2/sports/{sportID}/events/{date}, /api/v2/events/{eventID}, and their openers/closing siblings), affiliate_ids=0 is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat affiliate_ids as a sportsbook filter only.
Comma-separated event status strings to include (e.g. STATUS_IN_PROGRESS,STATUS_HALFTIME). Applied before exclude_status.
Comma-separated event statuses to exclude
all_periods