The Rundown V2 Stats API

Team and player statistics (V2)

OpenAPI Specification

therundown-v2-stats-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: TheRundown Sports V1 Delta V2 Stats 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: V2 Stats
  description: Team and player statistics (V2)
paths:
  /api/v2/events/{eventID}/stats:
    get:
      operationId: v2GetStatsByEvent
      tags:
      - V2 Stats
      summary: Get team game stats for an event
      parameters:
      - $ref: '#/components/parameters/EventIDPath'
      - name: stats_ids
        in: query
        schema:
          type: string
        description: Comma-separated stat IDs (max 12)
      - name: team_id
        in: query
        schema:
          type: integer
        description: Filter by team ID
      responses:
        '200':
          description: Team game stats
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TeamGameStatResponse'
              example:
              - team:
                  team_id: 11
                  name: Atlanta Hawks
                  mascot: Hawks
                  abbreviation: ATL
                meta:
                  complete: true
                stats:
                - team_id: 11
                  stat_id: 1242
                  stat:
                    id: 1242
                    name: avgRebounds
                    display_name: Rebounds Per Game
                    abbreviation: REB
                    sport_id: 4
                  event_id: 5a0c9d5d8d3e2c0001a1b2c3
                  value: '42'
                - team_id: 11
                  stat_id: 1243
                  stat:
                    id: 1243
                    name: assistTurnoverRatio
                    display_name: Assist To Turnover Ratio
                    abbreviation: AST/TO
                    sport_id: 4
                  event_id: 5a0c9d5d8d3e2c0001a1b2c3
                  value: '2.26'
  /api/v2/events/{eventID}/players/stats:
    get:
      operationId: v2GetPlayerStatsByEvent
      tags:
      - V2 Stats
      summary: Get player game stats for an event
      parameters:
      - $ref: '#/components/parameters/EventIDPath'
      - name: stats_ids
        in: query
        schema:
          type: string
        description: Comma-separated stat IDs (max 12)
      - name: player_ids
        in: query
        schema:
          type: string
        description: Comma-separated player IDs (max 6)
      responses:
        '200':
          description: Player game stats
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlayerGameStatResponse'
              example:
              - player:
                  id: 16627
                  sport_id: 4
                  team_id: 11
                  first_name: Trae
                  last_name: Young
                  display_name: Trae Young
                  jersey: '11'
                  position: Guard
                  position_abbreviation: G
                meta:
                  complete: true
                stats:
                - stat:
                    id: 1288
                    name: points
                    display_name: Points
                    abbreviation: PTS
                    sport_id: 4
                  value: '28'
                - stat:
                    id: 1289
                    name: assists
                    display_name: Assists
                    abbreviation: AST
                    sport_id: 4
                  value: '11'
  /api/v2/stats:
    get:
      operationId: v2GetAllStats
      tags:
      - V2 Stats
      summary: List all stat definitions
      parameters:
      - name: id
        in: query
        schema:
          type: integer
        description: Filter by stat ID
      - name: sport_id
        in: query
        schema:
          type: integer
        description: Filter by sport ID
      responses:
        '200':
          description: Stat definitions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StatDefinition'
              example:
              - id: 1
                name: completionPct
                display_name: Completion Percentage
                abbreviation: CMP%
                description: The percentage of completed passes.
                sport_id: 2
              - id: 2
                name: completions
                display_name: Completions
                abbreviation: CMP
                description: The times a player completes a pass to another player.
                sport_id: 2
              - id: 1242
                name: avgRebounds
                display_name: Rebounds Per Game
                abbreviation: REB
                description: The average rebounds per game.
                sport_id: 4
components:
  schemas:
    PlayerNormalized:
      type: object
      properties:
        id:
          type: integer
        sport_id:
          type: integer
        team_id:
          type: integer
        updated_at:
          type: string
          format: date-time
          nullable: true
        first_name:
          type: string
        last_name:
          type: string
        display_name:
          type: string
        weight:
          type: number
        height:
          type: number
        display_weight:
          type: string
        display_height:
          type: string
        age:
          type: integer
        date_of_birth:
          type: string
        slug:
          type: string
        jersey:
          type: string
        position:
          type: string
        position_abbreviation:
          type: string
        debut_year:
          type: integer
        birth_place_city:
          type: string
        birth_place_country:
          type: string
        experience_years:
          type: integer
        active:
          type: boolean
        status:
          type: string
        bats:
          type: string
          description: MLB only — batting side
        throws:
          type: string
          description: MLB only — throwing arm
    TeamGameStats:
      type: object
      properties:
        team_id:
          type: integer
          nullable: true
        team:
          $ref: '#/components/schemas/TeamNormalized'
        stat_id:
          type: integer
          nullable: true
        stat:
          $ref: '#/components/schemas/StatDefinition'
        event_id:
          type: string
        value:
          type: string
    StatDefinition:
      type: object
      properties:
        id:
          type: integer
          nullable: true
        name:
          type: string
        category:
          type: string
        display_name:
          type: string
        abbreviation:
          type: string
        description:
          type: string
        sport_id:
          type: integer
    Conference:
      type: object
      properties:
        conference_id:
          type: integer
        sport_id:
          type: integer
        name:
          type: string
    StatsMeta:
      type: object
      properties:
        complete:
          type: boolean
    TeamGameStatResponse:
      type: object
      properties:
        team:
          $ref: '#/components/schemas/TeamNormalized'
        meta:
          $ref: '#/components/schemas/StatsMeta'
        stats:
          type: array
          items:
            $ref: '#/components/schemas/TeamGameStats'
    TeamNormalized:
      type: object
      properties:
        team_id:
          type: integer
        name:
          type: string
        mascot:
          type: string
        abbreviation:
          type: string
        record:
          type: string
        is_home:
          type: boolean
        is_away:
          type: boolean
        ranking:
          type: integer
          nullable: true
        conference:
          $ref: '#/components/schemas/Conference'
        division:
          $ref: '#/components/schemas/Division'
    PlayerGameStats:
      type: object
      properties:
        event_id:
          type: string
        player_id:
          type: integer
          nullable: true
        player:
          $ref: '#/components/schemas/PlayerNormalized'
        stat_id:
          type: integer
          nullable: true
        stat:
          $ref: '#/components/schemas/StatDefinition'
        value:
          type: string
        updated_at:
          type: string
          format: date-time
          nullable: true
    Division:
      type: object
      properties:
        division_id:
          type: integer
        conference_id:
          type: integer
        sport_id:
          type: integer
        name:
          type: string
    PlayerGameStatResponse:
      type: object
      properties:
        player:
          $ref: '#/components/schemas/PlayerNormalized'
        meta:
          $ref: '#/components/schemas/StatsMeta'
        stats:
          type: array
          items:
            $ref: '#/components/schemas/PlayerGameStats'
  parameters:
    EventIDPath:
      name: eventID
      in: path
      required: true
      schema:
        type: string
      description: Canonical V2 event ID from the `event_id` field returned by event endpoints
  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