curl --request GET \
--url https://therundown.io/api/v2/delta \
--header 'X-TheRundown-Key: <api-key>'import requests
url = "https://therundown.io/api/v2/delta"
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/v2/delta', 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/v2/delta",
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/v2/delta"
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/v2/delta")
.header("X-TheRundown-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://therundown.io/api/v2/delta")
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{
"meta": {
"delta_last_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"deltas": [
{
"data": "{\"event_id\":\"09bfa53f8484a63e584398545c035932\",\"sport_id\":4,\"event_date\":\"2026-02-12T00:00:00Z\",\"lines\":{...}}"
},
{
"data": "{\"event_id\":\"b9c4e2a1f3d5670089ab12cd34ef5678\",\"sport_id\":4,\"event_date\":\"2026-02-12T00:00:00Z\",\"lines\":{...}}"
}
]
}Get event changes since a delta ID
Returns raw JSON delta payloads for events that changed since last_id. Each delta entry is a raw JSON string containing the full event update — the data field is a serialized JSON string, not a parsed object.
The response is wrapped in a meta object containing the delta_last_id cursor for subsequent polling.
curl --request GET \
--url https://therundown.io/api/v2/delta \
--header 'X-TheRundown-Key: <api-key>'import requests
url = "https://therundown.io/api/v2/delta"
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/v2/delta', 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/v2/delta",
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/v2/delta"
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/v2/delta")
.header("X-TheRundown-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://therundown.io/api/v2/delta")
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{
"meta": {
"delta_last_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"deltas": [
{
"data": "{\"event_id\":\"09bfa53f8484a63e584398545c035932\",\"sport_id\":4,\"event_date\":\"2026-02-12T00:00:00Z\",\"lines\":{...}}"
},
{
"data": "{\"event_id\":\"b9c4e2a1f3d5670089ab12cd34ef5678\",\"sport_id\":4,\"event_date\":\"2026-02-12T00:00:00Z\",\"lines\":{...}}"
}
]
}Authorizations
Recommended API key request header for new integrations
Query Parameters
Delta cursor (36-character UUID). Use 00000000-0000-0000-0000-000000000000 for initial fetch, then pass the delta_last_id from the previous response.
36Filter by sport ID
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.