{
  "openapi": "3.0.1",
  "info": {
    "title": "Sports Odds Scraper: DraftKings, FanDuel, bet365 & 100+ Books",
    "description": "Betting odds for NFL, NBA, MLB, NHL, soccer, tennis and more: moneyline, spread and total from DraftKings, FanDuel, BetMGM, bet365 and 100+ bookmakers in 29 countries, with opening lines and best prices.",
    "version": "0.1",
    "x-build-id": "j4332McUxKAalEMVZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/keelwright~sports-odds-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-keelwright-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/keelwright~sports-odds-scraper/runs": {
      "post": {
        "operationId": "runs-sync-keelwright-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/keelwright~sports-odds-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-keelwright-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": {
          "sports": {
            "title": "Sports",
            "type": "array",
            "description": "Sports to include.",
            "items": {
              "type": "string",
              "enum": [
                "american-football",
                "basketball",
                "baseball",
                "hockey",
                "soccer",
                "tennis",
                "mma",
                "boxing",
                "cricket",
                "handball",
                "volleyball",
                "rugby-union",
                "rugby-league",
                "aussie-rules",
                "darts",
                "snooker",
                "table-tennis",
                "esports",
                "futsal"
              ],
              "enumTitles": [
                "American football (NFL, NCAA)",
                "Basketball (NBA, WNBA, NCAA, EuroLeague)",
                "Baseball (MLB, NPB, KBO)",
                "Ice hockey (NHL, KHL, SHL)",
                "Soccer (1,000+ leagues)",
                "Tennis (ATP, WTA, Challenger, ITF)",
                "MMA (UFC and more)",
                "Boxing",
                "Cricket",
                "Handball",
                "Volleyball",
                "Rugby union",
                "Rugby league",
                "Aussie rules (AFL)",
                "Darts",
                "Snooker",
                "Table tennis",
                "Esports",
                "Futsal"
              ]
            },
            "default": [
              "american-football",
              "basketball",
              "baseball",
              "hockey",
              "soccer"
            ]
          },
          "leagues": {
            "title": "Leagues",
            "type": "array",
            "description": "Only these leagues. Write \"Country: League\" as on Flashscore (USA: NBA, USA: NFL, England: Premier League), just the league name, or paste the league URL from flashscore.com. Leave empty for all leagues of the chosen sports.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "topLeaguesOnly": {
            "title": "Top leagues only",
            "type": "boolean",
            "description": "Only the biggest leagues of each sport (NFL, NBA, MLB, NHL, the top European soccer leagues, the Champions League, EuroLeague, ATP and WTA and others on Flashscore's top-leagues list).",
            "default": false
          },
          "teams": {
            "title": "Teams or players",
            "type": "array",
            "description": "Only games of these teams or players, for example Lakers, Chiefs or Arsenal. Leave empty for all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "daysAhead": {
            "title": "Upcoming days",
            "minimum": 0,
            "maximum": 7,
            "type": "integer",
            "description": "How many days after today (UTC) to include. 1 covers today and tomorrow, which includes evening games in US time zones.",
            "default": 1
          },
          "daysBack": {
            "title": "Past days",
            "minimum": 0,
            "maximum": 7,
            "type": "integer",
            "description": "How many days before today to include. Use with the status \"Finished\" to get closing lines of games already played (up to 7 days back).",
            "default": 0
          },
          "statuses": {
            "title": "Game status",
            "type": "array",
            "description": "Only games with these statuses. Scheduled games give pre-game odds; finished games give the last prices before the end (usually the closing line). Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "scheduled",
                "live",
                "finished",
                "interrupted",
                "postponed",
                "cancelled",
                "abandoned"
              ],
              "enumTitles": [
                "Scheduled (pre-game odds)",
                "Live",
                "Finished (closing lines)",
                "Interrupted",
                "Postponed",
                "Cancelled",
                "Abandoned"
              ]
            },
            "default": [
              "scheduled"
            ]
          },
          "regions": {
            "title": "Bookmaker regions",
            "maxItems": 10,
            "type": "array",
            "description": "Bookmakers licensed in these places (up to 10). Each region adds its bookmakers to the comparison; a bookmaker found in several regions is listed once. In the US the list depends on the state.",
            "items": {
              "type": "string",
              "enum": [
                "US-NJ",
                "US-NY",
                "US-VA",
                "US-MA",
                "CA-ON",
                "GB",
                "IE",
                "AU",
                "DE",
                "IT",
                "ES",
                "FR",
                "NL",
                "SE",
                "DK",
                "PL",
                "CZ",
                "AT",
                "CH",
                "PT",
                "GR",
                "RO",
                "TR",
                "MX",
                "AR",
                "CO",
                "ZA",
                "NG",
                "KE",
                "IN",
                "JP",
                "TH"
              ],
              "enumTitles": [
                "USA, New Jersey: FanDuel, DraftKings, BetMGM, Fanatics, bet365",
                "USA, New York: FanDuel, DraftKings, BetMGM, Fanatics",
                "USA, Virginia: FanDuel, DraftKings, BetMGM, Fanatics, bet365, Betr",
                "USA, Massachusetts: FanDuel, DraftKings, BetMGM, Fanatics, Betr",
                "Canada, Ontario: bet365, Betway, Sports Interaction, Betano, PointsBet and 6 more",
                "United Kingdom: bet365, Betfair, William Hill, Ladbrokes, Paddy Power, Sky Bet and 14 more",
                "Ireland: bet365, Paddy Power, Betway, Unibet and 4 more",
                "Australia: bet365, Unibet",
                "Germany: bet365, bwin, Interwetten, Betano, Oddset and 2 more",
                "Italy: bet365, Sisal, SNAI, GoldBet, Eurobet and 8 more",
                "Spain: bet365, Codere, Sportium, William Hill and 5 more",
                "France: Betclic, Winamax, Unibet, PMU and 4 more",
                "Netherlands: bet365 and 1 more",
                "Sweden: Unibet, bet365, BetMGM, Expekt and 4 more",
                "Denmark: bet365, Betano, Unibet, Expekt and 2 more",
                "Poland: STS, Fortuna, Superbet, Betclic and 2 more",
                "Czech Republic: Tipsport, Fortuna, Chance, Betano",
                "Austria: bet365, bwin, Admiral, bet-at-home",
                "Switzerland: bet365, bet-at-home",
                "Portugal: Betano, Solverde, bwin",
                "Greece: Stoiximan, bet365, Novibet, bwin and 2 more",
                "Romania: Superbet, Betano, Unibet, Fortuna and 3 more",
                "Turkey: 1xBet",
                "Mexico: Caliente, Codere, Betway, 1xBet and 4 more",
                "Argentina: bet365, Betfair, William Hill, bwin and 2 more",
                "Colombia: Wplay, BetPlay, Betano, bwin and 2 more",
                "South Africa: Betway, Sportingbet, Sunbet, Easybet and 4 more",
                "Nigeria: Bet9ja, BetKing, 1xBet",
                "Kenya: 1xBet",
                "India: 1xBet",
                "Japan: 1xBet",
                "Thailand: bet365, Betfair, Stake, 1xBet and 2 more"
              ]
            },
            "default": [
              "US-NJ"
            ]
          },
          "bookmakers": {
            "title": "Bookmakers",
            "type": "array",
            "description": "Only these bookmakers, for example DraftKings, FanDuel or bet365 (bet365 matches every bet365 site). Leave empty for all bookmakers in the chosen regions.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "markets": {
            "title": "Markets",
            "enum": [
              "main",
              "all"
            ],
            "type": "string",
            "description": "Main markets: moneyline, three-way (1X2), spread and total for each bookmaker. All markets adds every other price the bookmakers list (alternate lines, halves, quarters, periods, double chance, correct score and more), one entry per price.",
            "default": "main"
          },
          "oddsFormat": {
            "title": "Odds format",
            "enum": [
              "decimal",
              "american"
            ],
            "type": "string",
            "description": "Decimal (1.91) or American (-110) odds.",
            "default": "decimal"
          },
          "onlyChanged": {
            "title": "Only new or changed odds",
            "type": "boolean",
            "description": "Return only games that are new or whose prices changed since the last run with the same settings. Use it with a schedule to track line movement without paying again for unchanged games.",
            "default": false
          },
          "maxItems": {
            "title": "Max games",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many games. 0 means no limit.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many games to load at the same time.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: Flashscore answers Apify's servers directly. Turn on only if requests start failing.",
            "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}