{
  "openapi": "3.0.1",
  "info": {
    "title": "1xBet Odds Scraper: Pre-Match Odds & Markets",
    "description": "Scrape 1xBet (1xbet.com) odds for football, tennis, basketball, ice hockey and more, pre-match or live: matches with 1X2, double chance, handicap, total and both-teams-to-score prices, live score and period, plus every market and selection on request. Nigeria, Kenya, Ghana or Cameroon site.",
    "version": "1.0",
    "x-build-id": "FkGFjA4kuPqniUl6P"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/confidential_gnat~1xbet-odds-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-confidential_gnat-1xbet-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/confidential_gnat~1xbet-odds-scraper/runs": {
      "post": {
        "operationId": "runs-sync-confidential_gnat-1xbet-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/confidential_gnat~1xbet-odds-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-confidential_gnat-1xbet-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": {
          "startUrls": {
            "title": "1xBet URLs",
            "type": "array",
            "description": "Leave empty to scrape the sports chosen below. Or add a sport page (https://1xbet.ng/en/line/football), a league page (https://1xbet.ng/en/line/football/33957-italy-serie-d), a live sport page (https://1xbet.ng/en/live/football) or one match page (line or live). The site of the URL (any of the sites listed in 1xBet site) is the one that is read.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "cacheProjectName": {
            "title": "Cache project name",
            "type": "string",
            "description": "Use the same name on each scheduled run to get only new matches and matches whose prices or live state changed. Matches that did not change are skipped, not saved and not counted towards Max matches per URL. Each record gets changeType: new or updated. Leave empty to turn the cache off."
          },
          "maxItems": {
            "title": "Max matches per URL",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum matches saved for each start URL (or in total when no start URL is given).",
            "default": 5
          },
          "sports": {
            "title": "Sports",
            "type": "array",
            "description": "Which sports to scrape when no start URL is given. Empty means football; All sports reads every sport below. Matches are read in the order of the list, busiest leagues first, until Max matches per URL is reached.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "football",
                "tennis",
                "basketball",
                "ice-hockey",
                "baseball",
                "volleyball",
                "rugby",
                "handball",
                "table-tennis",
                "american-football",
                "futsal",
                "darts",
                "esports",
                "cricket",
                "boxing",
                "martial-arts",
                "ufc",
                "bare-knuckle-boxing",
                "wrestling",
                "badminton",
                "squash",
                "padel",
                "snooker",
                "billiards",
                "chess",
                "water-polo",
                "bandy",
                "floorball",
                "field-hockey",
                "ball-hockey",
                "rink-hockey",
                "curling",
                "australian-rules",
                "gaelic-football",
                "hurling",
                "basketball-3x3"
              ],
              "enumTitles": [
                "All sports",
                "Football (soccer)",
                "Tennis",
                "Basketball",
                "Ice hockey",
                "Baseball",
                "Volleyball",
                "Rugby",
                "Handball",
                "Table tennis",
                "American football",
                "Futsal",
                "Darts",
                "Esports",
                "Cricket",
                "Boxing",
                "Martial arts",
                "UFC",
                "Bare-knuckle boxing",
                "Wrestling",
                "Badminton",
                "Squash",
                "Padel",
                "Snooker",
                "Billiards",
                "Chess",
                "Water polo",
                "Bandy",
                "Floorball",
                "Field hockey",
                "Ball hockey",
                "Rink hockey",
                "Curling",
                "Australian rules football",
                "Gaelic football",
                "Hurling",
                "Basketball 3x3"
              ]
            }
          },
          "mode": {
            "title": "Pre-match, live or both",
            "enum": [
              "prematch",
              "live",
              "both"
            ],
            "type": "string",
            "description": "With no start URL: the upcoming matches of the sports above, the matches in play now with their score, period and live odds, or both in one run (each record says which in `mode`).",
            "default": "prematch"
          },
          "country": {
            "title": "1xBet site",
            "enum": [
              "NG",
              "KE",
              "GH",
              "CM",
              "TZ",
              "ZM",
              "CI",
              "SN",
              "RW",
              "CD",
              "BJ",
              "MW",
              "GN",
              "CG",
              "GA",
              "NA",
              "SL",
              "GM"
            ],
            "type": "string",
            "description": "Which 1xBet site to read, and the country of the residential proxy used. 1xBet answers only from its own countries. Ignored when a start URL names a site.",
            "default": "NG"
          },
          "includeAllMarkets": {
            "title": "Include all markets",
            "type": "boolean",
            "description": "Adds every priced selection of the match (often 100 to 300) with its market and selection ids, the line and the price. Names are given for the main markets.",
            "default": false
          },
          "marketIds": {
            "title": "Market ids",
            "type": "array",
            "description": "Only these markets in `outcomes` (this alone turns on the outcomes, no need for Include all markets). The ids and what they mean are in the Market ids list in the README, for example 17 is Total and 19 is Both teams to score.",
            "items": {
              "type": "string"
            }
          },
          "includeSubGames": {
            "title": "Include sub-games",
            "type": "boolean",
            "description": "Adds the sub-games of each pre-match match (halves, quarters, periods, sets) in `subGames`, each with its own main prices (and all its markets when Include all markets is on). One more request per sub-game. Live matches have no sub-games.",
            "default": false
          },
          "includeSpecialLeagues": {
            "title": "Include special leagues",
            "type": "boolean",
            "description": "A sport page skips copies of leagues with alternative rules, team-versus-player, statistics and virtual leagues. Turn this on to read them too.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "1xBet blocks datacenter and most foreign addresses, so residential proxies are needed. The proxy country is set by the 1xBet site above.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}