The Rundown V1 Sports API

Sport listings, dates, events, schedules (V1 legacy)

OpenAPI Specification

therundown-v1-sports-api-openapi.yml Raw ↑
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