The Rundown V1 Sports API
Sport listings, dates, events, schedules (V1 legacy)
Documentation
Documentation
https://docs.therundown.io/introduction
Authentication
https://docs.therundown.io/authentication
Sport listings, dates, events, schedules (V1 legacy)
openapi: 3.0.3
info:
title: TheRundown Sports V1 Delta V1 Sports API
version: 2.0.0
description: 'Real-time and historical sports betting data, odds, lines, and statistics across major North American and international sports leagues.
## Authentication
All endpoints (except `/sports` and `/affiliates`) require authentication. Pass your API key using one of:
- **Query parameter**: `?key=YOUR_API_KEY`
- **Header**: `X-Therundown-Key: YOUR_API_KEY`
## Off-the-Board Sentinel Value
The value **0.0001** indicates a line is "off the board" — the sportsbook has temporarily removed pricing (e.g., pending injury news). This is NOT an error. Display as "Off Board" or "N/A" in your UI.
## Rate Limiting
Requests are rate-limited per API key tier. Check response headers for current limits.
## Data Updates
- Live odds update in real-time during games
- Use delta endpoints for efficient polling of changes
- WebSocket connections available for streaming updates
## V1 vs V2
V2 endpoints use market-based data structures (market_id, participants, line prices). V1 endpoints use legacy line-based structures (moneyline, spread, total objects). V2 is recommended for new integrations.
'
contact:
name: TheRundown API Support
url: https://therundown.io
email: support@therundown.io
termsOfService: https://therundown.io/terms
servers:
- url: https://therundown.io
description: Production
security:
- ApiKeyQuery: []
- ApiKeyHeader: []
tags:
- name: V1 Sports
description: Sport listings, dates, events, schedules (V1 legacy)
paths:
/api/v1/sports:
get:
operationId: v1GetSports
tags:
- V1 Sports
summary: List all sports
security: []
responses:
'200':
description: List of sports
content:
application/json:
schema:
$ref: '#/components/schemas/SportsResponse'
example:
sports:
- sport_id: 1
sport_name: NCAA Football
- sport_id: 2
sport_name: NFL
- sport_id: 3
sport_name: MLB
- sport_id: 4
sport_name: NBA
- sport_id: 5
sport_name: NCAA Men's Basketball
- sport_id: 6
sport_name: NHL
- sport_id: 7
sport_name: UFC/MMA
- sport_id: 8
sport_name: WNBA
- sport_id: 10
sport_name: MLS
- sport_id: 11
sport_name: EPL
- sport_id: 12
sport_name: FRA1
- sport_id: 13
sport_name: GER1
- sport_id: 14
sport_name: ESP1
- sport_id: 15
sport_name: ITA1
- sport_id: 16
sport_name: UEFACHAMP
- sport_id: 17
sport_name: UEFAEURO
- sport_id: 18
sport_name: FIFA
- sport_id: 19
sport_name: JPN1
- sport_id: 20
sport_name: IPL
- sport_id: 21
sport_name: T20
- sport_id: 22
sport_name: Politics
- sport_id: 23
sport_name: NBA Preseason
- sport_id: 24
sport_name: NBA Playoffs
- sport_id: 25
sport_name: NFL Preseason
- sport_id: 26
sport_name: NFL Playoffs
- sport_id: 27
sport_name: NHL Preseason
- sport_id: 28
sport_name: NHL Playoffs
- sport_id: 30
sport_name: MLB Spring Training
- sport_id: 31
sport_name: MLB Playoffs
- sport_id: 32
sport_name: NBA Summer League
- sport_id: 33
sport_name: UEFA Europa League
- sport_id: 38
sport_name: TENNIS.ATP
- sport_id: 39
sport_name: TENNIS.WTA
/api/v1/sports/{sportID}/teams:
get:
operationId: v1GetTeamsBySport
tags:
- V1 Sports
summary: Get teams for a sport
parameters:
- $ref: '#/components/parameters/SportIDPath'
responses:
'200':
description: Teams
content:
application/json:
schema:
$ref: '#/components/schemas/TeamsResponse'
example:
teams:
- team_id: 11
name: Atlanta
mascot: Hawks
abbreviation: ATL
record: 26-30
- team_id: 1
name: Boston
mascot: Celtics
abbreviation: BOS
record: 35-19
/api/v1/sports/{sportID}/divisions:
get:
operationId: v1GetDivisionsBySport
tags:
- V1 Sports
summary: Get divisions for a sport
parameters:
- $ref: '#/components/parameters/SportIDPath'
responses:
'200':
description: Divisions
content:
application/json:
schema:
$ref: '#/components/schemas/DivisionsResponse'
example:
divisions:
- division_id: 15
conference_id: 39
sport_id: 4
name: Atlantic
- division_id: 16
conference_id: 39
sport_id: 4
name: Central
/api/v1/sports/{sportID}/conferences:
get:
operationId: v1GetConferencesBySport
tags:
- V1 Sports
summary: Get conferences for a sport
parameters:
- $ref: '#/components/parameters/SportIDPath'
responses:
'200':
description: Conferences
content:
application/json:
schema:
$ref: '#/components/schemas/ConferencesResponse'
example:
conferences:
- conference_id: 39
sport_id: 4
name: Eastern Conference
- conference_id: 757
sport_id: 4
name: Western Conference
/api/v1/sports/{sportID}/dates:
get:
operationId: v1GetDatesBySport
tags:
- V1 Sports
summary: Get available dates for a sport
parameters:
- $ref: '#/components/parameters/SportIDPath'
- $ref: '#/components/parameters/OffsetQuery'
- $ref: '#/components/parameters/DateFormatQuery'
responses:
'200':
description: Dates
content:
application/json:
schema:
type: object
properties:
dates:
type: array
items:
type: string
example:
dates:
- 2026-02-13T00:30:00+0000
- 2026-02-14T00:00:00+0000
- 2026-02-15T00:00:00+0000
/api/v1/sports/{sportID}/schedule:
get:
operationId: v1GetScheduleBySport
tags:
- V1 Sports
summary: Get event schedule for a sport
parameters:
- $ref: '#/components/parameters/SportIDPath'
- name: limit
in: query
schema:
type: integer
default: 50
- name: season_year
in: query
schema:
type: integer
- name: season_type_id
in: query
schema:
type: integer
- name: from
in: query
schema:
type: string
format: date
- name: team_id
in: query
schema:
type: integer
- name: last_event_uuid
in: query
schema:
type: string
description: Cursor for pagination — pass the last event UUID from previous page
- name: sort
in: query
schema:
type: string
default: asc
enum:
- asc
- desc
- name: conference_id
in: query
schema:
type: integer
- name: division_id
in: query
schema:
type: integer
- name: include_teams
in: query
schema:
type: string
description: Include team details when present
responses:
'200':
description: Schedule
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleResponse'
example:
schedules:
- event_id: 09bfa53f8484a63e584398545c035932
event_uuid: 11f1-07a5-c61d4000-867b-48b2af0d735d
sport_id: 4
event_date: '2026-02-12T00:00:00Z'
league_name: National Basketball Association
season_type: Regular Season
season_year: 2026
event_name: Atlanta at Charlotte
teams_normalized:
- team_id: 11
name: Atlanta
mascot: Hawks
abbreviation: ATL
is_away: true
is_home: false
- team_id: 12
name: Charlotte
mascot: Hornets
abbreviation: CHA
is_away: false
is_home: true
components:
schemas:
ScheduleResponse:
type: object
properties:
schedules:
type: array
items:
$ref: '#/components/schemas/ScheduledEvent'
SportsResponse:
type: object
properties:
sports:
type: array
items:
$ref: '#/components/schemas/Sport'
Team:
type: object
properties:
team_id:
type: integer
example: 1
name:
type: string
example: New England
mascot:
type: string
example: Patriots
abbreviation:
type: string
example: NE
ranking:
type: integer
nullable: true
record:
type: string
example: 10-7
conference:
$ref: '#/components/schemas/Conference'
division:
$ref: '#/components/schemas/Division'
Conference:
type: object
properties:
conference_id:
type: integer
sport_id:
type: integer
name:
type: string
TeamsResponse:
type: object
properties:
teams:
type: array
items:
$ref: '#/components/schemas/Team'
DivisionsResponse:
type: object
properties:
divisions:
type: array
items:
$ref: '#/components/schemas/Division'
Sport:
type: object
properties:
sport_id:
type: integer
example: 4
sport_name:
type: string
example: NBA
ConferencesResponse:
type: object
properties:
conferences:
type: array
items:
$ref: '#/components/schemas/Conference'
Division:
type: object
properties:
division_id:
type: integer
conference_id:
type: integer
sport_id:
type: integer
name:
type: string
ScheduledEvent:
type: object
properties:
event_id:
type: string
event_uuid:
type: string
sport_id:
type: integer
season_type:
type: string
season_year:
type: integer
away_team:
type: string
home_team:
type: string
date_event:
type: string
format: date-time
neutral_site:
type: boolean
nullable: true
conference_competition:
type: boolean
nullable: true
conference_id:
type: integer
conference_name:
type: string
league_name:
type: string
nullable: true
league_id:
type: integer
event_name:
type: string
nullable: true
broadcast:
type: string
nullable: true
event_location:
type: string
nullable: true
attendance:
type: integer
nullable: true
status:
type: string
status_detail:
type: string
away_score:
type: integer
nullable: true
home_score:
type: integer
nullable: true
parameters:
OffsetQuery:
name: offset
in: query
schema:
type: integer
default: 0
example: 300
description: 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.
DateFormatQuery:
name: format
in: query
schema:
type: string
default: iso8601
enum:
- iso8601
- epoch
description: Date format — `iso8601` returns date strings, `epoch` returns Unix timestamps
SportIDPath:
name: sportID
in: path
required: true
schema:
type: integer
description: '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
'
securitySchemes:
ApiKeyQuery:
type: apiKey
in: query
name: key
description: API key as query parameter
ApiKeyHeader:
type: apiKey
in: header
name: X-Therundown-Key
description: API key as request header