The Rundown V2 Stats API

Team and player statistics (V2)

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/therundown-v2-stats-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

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