{
  "openapi": "3.0.1",
  "info": {
    "title": "BetRivers & Unibet Odds Scraper",
    "description": "Live and pre-match odds from BetRivers (13 US states + Ontario) and Unibet (UK, EU, Canada): moneyline, spread, total and every market incl. player props, for NFL, NBA, MLB, NHL, soccer, tennis, UFC and more. 1,000 events in under a minute.",
    "version": "1.0",
    "x-build-id": "4sdhyepooZpjWPd5f"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/normdata~betrivers-unibet-odds-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-normdata-betrivers-unibet-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/normdata~betrivers-unibet-odds-scraper/runs": {
      "post": {
        "operationId": "runs-sync-normdata-betrivers-unibet-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/normdata~betrivers-unibet-odds-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-normdata-betrivers-unibet-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": {
          "maxItems": {
            "title": "Maximum events",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many events (games, matches, fights). Leave empty for no limit (the run stops once the matching events run out). The Apify Free plan is always capped at 10."
          },
          "bookmakers": {
            "title": "Bookmakers",
            "type": "array",
            "description": "Which sportsbook (and which state or country) to read the odds from. Pick several to compare lines: each event comes back once per bookmaker.",
            "items": {
              "type": "string",
              "enum": [
                "betrivers-nj",
                "betrivers-pa",
                "betrivers-ny",
                "betrivers-il",
                "betrivers-mi",
                "betrivers-oh",
                "betrivers-az",
                "betrivers-co",
                "betrivers-in",
                "betrivers-va",
                "betrivers-md",
                "betrivers-la",
                "betrivers-wv",
                "betrivers-on",
                "unibet-uk",
                "unibet-se",
                "unibet-dk",
                "unibet-nl",
                "unibet-be",
                "unibet-ca"
              ],
              "enumTitles": [
                "BetRivers New Jersey",
                "BetRivers Pennsylvania",
                "BetRivers New York",
                "BetRivers Illinois",
                "BetRivers Michigan",
                "BetRivers Ohio",
                "BetRivers Arizona",
                "BetRivers Colorado",
                "BetRivers Indiana",
                "BetRivers Virginia",
                "BetRivers Maryland",
                "BetRivers Louisiana",
                "BetRivers West Virginia",
                "BetRivers Ontario",
                "Unibet UK",
                "Unibet Sweden",
                "Unibet Denmark",
                "Unibet Netherlands",
                "Unibet Belgium",
                "Unibet Canada (Ontario)"
              ]
            },
            "default": [
              "betrivers-nj"
            ]
          },
          "sports": {
            "title": "Sports",
            "type": "array",
            "description": "Only these sports. Leave empty for all sports.",
            "items": {
              "type": "string",
              "enum": [
                "american_football",
                "basketball",
                "baseball",
                "ice_hockey",
                "football",
                "tennis",
                "ufc_mma",
                "boxing",
                "golf",
                "esports",
                "cricket",
                "rugby_union",
                "rugby_league",
                "australian_rules",
                "darts",
                "snooker",
                "table_tennis",
                "handball",
                "volleyball",
                "formula_1",
                "motorsports",
                "cycling",
                "lacrosse",
                "floorball",
                "bandy",
                "gaelic_sports",
                "politics"
              ],
              "enumTitles": [
                "American Football (NFL, NCAAF, CFL)",
                "Basketball (NBA, WNBA, NCAAB, EuroLeague)",
                "Baseball (MLB, KBO, NPB)",
                "Ice Hockey (NHL, SHL, KHL)",
                "Soccer",
                "Tennis",
                "UFC / MMA",
                "Boxing",
                "Golf",
                "Esports",
                "Cricket",
                "Rugby Union",
                "Rugby League",
                "Australian Rules (AFL)",
                "Darts",
                "Snooker",
                "Table Tennis",
                "Handball",
                "Volleyball",
                "Formula 1",
                "Motorsports (NASCAR)",
                "Cycling",
                "Lacrosse",
                "Floorball",
                "Bandy",
                "Gaelic Sports",
                "Politics"
              ]
            }
          },
          "leagues": {
            "title": "Leagues or countries",
            "type": "array",
            "description": "Only these competitions, by the name the sportsbook uses, e.g. \"NFL\", \"NBA\", \"NCAAF\", \"Champions League\", \"England Premier League\" (country + league when the name is shared), or a whole country like \"Spain\". Leave empty for every league.",
            "items": {
              "type": "string"
            }
          },
          "teams": {
            "title": "Teams or players",
            "type": "array",
            "description": "Only events with one of these teams or players, e.g. \"Chiefs\", \"Real Madrid\", \"Sinner\". Whole words; accents and case do not matter. Leave empty for every event.",
            "items": {
              "type": "string"
            }
          },
          "eventStatus": {
            "title": "Event status",
            "enum": [
              "all",
              "upcoming",
              "live"
            ],
            "type": "string",
            "description": "Upcoming games, games in play right now (with live score), or both.",
            "default": "all"
          },
          "startsWithinHours": {
            "title": "Starts within (hours)",
            "minimum": 1,
            "type": "integer",
            "description": "Only events starting in the next N hours, e.g. 24 for today's slate. Live games are always included. Leave empty for every scheduled event."
          },
          "onlyStreamed": {
            "title": "Only streamed events",
            "type": "boolean",
            "description": "Only events the sportsbook streams live on its site or app.",
            "default": false
          },
          "markets": {
            "title": "Market types",
            "type": "array",
            "description": "Only these kinds of markets. Main lines: the moneyline, main spread and main total. Game lines: every full-game moneyline, spread and total, alternates and team totals included. Player props: markets on one player (yards, points, goalscorer...). Periods: halves, quarters, innings, sets. Other: everything else (specials, corners, cards, winning margin...). Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "main",
                "game_lines",
                "player_props",
                "periods",
                "other"
              ],
              "enumTitles": [
                "Main lines (moneyline, spread, total)",
                "Game lines (incl. alternates and team totals)",
                "Player props",
                "Periods (halves, quarters, innings, sets)",
                "Other (specials, corners, cards...)"
              ]
            }
          },
          "marketKeywords": {
            "title": "Market keywords",
            "type": "array",
            "description": "Only markets whose name or player contains one of these words, e.g. \"Passing Yards\", \"Touchdown\", \"Mahomes\", \"Corners\". Leave empty for all.",
            "items": {
              "type": "string"
            }
          },
          "hideSuspended": {
            "title": "Hide suspended markets",
            "type": "boolean",
            "description": "Skip markets that are suspended right now (common during live play) and keep only those open for betting.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}