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