{
  "openapi": "3.0.1",
  "info": {
    "title": "Live Odds Scraper: NFL, NBA, MLB In-Play & Closing Lines",
    "description": "Opening, closing and current moneyline, spread and total for every game in American, decimal and fractional odds, plus the in-play line while a game runs and the graded result after it ends. NFL, NCAAF, NCAAB, NBA, MLB, NHL, WNBA and 20 soccer leagues. No API key, no browser.",
    "version": "0.1",
    "x-build-id": "wgHtZjEk6DlW3iOO6"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~sports-odds-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-sports-odds-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrapersdelight~sports-odds-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-sports-odds-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrapersdelight~sports-odds-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-sports-odds-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "leagues": {
            "title": "Leagues",
            "type": "array",
            "description": "Which leagues to pull the betting line for. Every slug in this list was probed live and confirmed to carry a DraftKings line on the ESPN feed. Leave empty for the default eight (NFL, NCAAF, NBA, MLB, NHL, NCAAM, MLS, Premier League). Note: UFC, PGA, F1, NCAA hockey and the NBA G League are deliberately absent — ESPN carries no line for them (27 UFC fights sampled, zero with odds).",
            "items": {
              "type": "string",
              "enum": [
                "nfl",
                "college-football",
                "nba",
                "wnba",
                "mens-college-basketball",
                "womens-college-basketball",
                "mlb",
                "college-baseball",
                "nhl",
                "usa.1",
                "usa.nwsl",
                "eng.1",
                "eng.2",
                "esp.1",
                "ita.1",
                "ger.1",
                "fra.1",
                "ned.1",
                "por.1",
                "mex.1",
                "tur.1",
                "arg.1",
                "bra.1",
                "uefa.champions",
                "uefa.europa",
                "uefa.europa.conf",
                "conmebol.libertadores",
                "concacaf.leagues.cup"
              ],
              "enumTitles": [
                "NFL",
                "NCAA Football (FBS)",
                "NBA",
                "WNBA",
                "NCAA Men's Basketball",
                "NCAA Women's Basketball",
                "MLB",
                "NCAA Baseball",
                "NHL",
                "MLS",
                "NWSL",
                "English Premier League",
                "EFL Championship",
                "Spanish LaLiga",
                "Italian Serie A",
                "German Bundesliga",
                "French Ligue 1",
                "Dutch Eredivisie",
                "Portuguese Primeira Liga",
                "Liga MX",
                "Turkish Super Lig",
                "Argentine Liga Profesional",
                "Brazilian Serie A",
                "UEFA Champions League",
                "UEFA Europa League",
                "UEFA Conference League",
                "CONMEBOL Libertadores",
                "Leagues Cup"
              ]
            },
            "default": [
              "nfl",
              "college-football",
              "nba",
              "mlb",
              "nhl",
              "mens-college-basketball",
              "usa.1",
              "eng.1"
            ]
          },
          "dateFrom": {
            "title": "Date from",
            "type": "string",
            "description": "First day of the window, `YYYY-MM-DD` (UTC). Leave blank for today. Past dates work and are how you pull settled games with their closing line and graded result.",
            "default": ""
          },
          "dateTo": {
            "title": "Date to",
            "type": "string",
            "description": "Last day of the window, `YYYY-MM-DD` (UTC). Leave blank to use **Days ahead** counted from the start date.",
            "default": ""
          },
          "daysAhead": {
            "title": "Days ahead",
            "minimum": 0,
            "maximum": 120,
            "type": "integer",
            "description": "Used only when **Date to** is blank: how many days past the start date to include. 6 covers a full NFL week and the Saturday college slate. DraftKings posts most lines roughly a day out (MLB especially), so days far in the future often have games but no line yet.",
            "default": 6
          },
          "lineTypes": {
            "title": "Line types",
            "enum": [
              "all",
              "prematch",
              "live"
            ],
            "type": "string",
            "description": "`prematch` is the standard DraftKings market (and Bet 365 on top European soccer). `live` is ESPN's provider 200, \"DraftKings - Live Odds\" — the in-play line, which exists only while a game is actually running and which the public scoreboard feed never shows.",
            "default": "all"
          },
          "gameStatus": {
            "title": "Game status",
            "enum": [
              "any",
              "scheduled",
              "live",
              "final"
            ],
            "type": "string",
            "description": "Filter by where the game is in its lifecycle. Use `final` to build a closing-line-value dataset — the `close` block and the graded result only exist once a game has started/finished.",
            "default": "any"
          },
          "maxEvents": {
            "title": "Max games",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many games (earliest kickoff first). One game usually yields one row; a running game or a top European soccer match yields two. 0 = no limit — raise it once you know the scope you want, a full autumn Saturday is 130+ college football games on its own.",
            "default": 50
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Parallel requests to ESPN's core API. 10 measured clean (30 calls, 30 x 200, zero failures). Lower it if you are running through a shared proxy.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. ESPN's public feed has no anti-bot and needs no proxy — both endpoints returned byte-identical payloads from a home IP, Apify AUTO and Apify RESIDENTIAL. Add one only if your own network blocks ESPN or you are running at very high volume.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}