{
  "openapi": "3.0.1",
  "info": {
    "title": "Sports Odds Scraper - NFL, NBA & Soccer Lines, Scores, No Login",
    "description": "Sports odds scraper at $1.50 per 1,000 games. Moneyline, spread and total from Pinnacle, Unibet and DraftKings for NFL, NBA, MLB, NHL, soccer, tennis, UFC and cricket: best price, implied and margin-free probability, line movement, live and final scores. No login.",
    "version": "0.1",
    "x-build-id": "Me8B1xo7GW1bazsSb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/locaihost~sports-odds/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-locaihost-sports-odds",
        "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/locaihost~sports-odds/runs": {
      "post": {
        "operationId": "runs-sync-locaihost-sports-odds",
        "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/locaihost~sports-odds/run-sync": {
      "post": {
        "operationId": "run-sync-locaihost-sports-odds",
        "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": "Competitions to read. Soccer leagues, tennis and UFC included. Cricket covers international and T20 leagues with odds only (no score feed).",
            "items": {
              "type": "string",
              "enum": [
                "nfl",
                "ncaaf",
                "nba",
                "wnba",
                "ncaab",
                "euroleague",
                "mlb",
                "nhl",
                "epl",
                "championship",
                "laliga",
                "seriea",
                "bundesliga",
                "ligue1",
                "eredivisie",
                "primeira",
                "ucl",
                "uel",
                "mls",
                "ligamx",
                "atp",
                "wta",
                "ufc",
                "cricket"
              ],
              "enumTitles": [
                "NFL",
                "NCAA Football",
                "NBA",
                "WNBA",
                "NCAA Basketball",
                "EuroLeague",
                "MLB",
                "NHL",
                "English Premier League",
                "English Championship",
                "LaLiga",
                "Serie A",
                "Bundesliga",
                "Ligue 1",
                "Eredivisie",
                "Primeira Liga",
                "UEFA Champions League",
                "UEFA Europa League",
                "MLS",
                "Liga MX",
                "ATP Tour (tennis)",
                "WTA Tour (tennis)",
                "UFC",
                "Cricket"
              ]
            },
            "default": [
              "nfl",
              "nba",
              "epl"
            ]
          },
          "eventStatus": {
            "title": "Games",
            "type": "array",
            "description": "Upcoming games, games in progress (with the live score), and finished games (with the final score, from ESPN). Odds come only for upcoming and live games: bookmakers stop listing a game once it ends.",
            "items": {
              "type": "string",
              "enum": [
                "upcoming",
                "live",
                "finished"
              ],
              "enumTitles": [
                "Upcoming",
                "Live",
                "Finished (final scores)"
              ]
            },
            "default": [
              "upcoming",
              "live"
            ]
          },
          "daysAhead": {
            "title": "Days ahead",
            "minimum": 0,
            "maximum": 14,
            "type": "integer",
            "description": "How far ahead to look for upcoming games, 0 to 14. 0 means today only.",
            "default": 7
          },
          "daysBack": {
            "title": "Days back (finished games)",
            "minimum": 0,
            "maximum": 7,
            "type": "integer",
            "description": "With Finished selected: how many past days of final scores to include, 0 to 7. 0 means today only.",
            "default": 1
          },
          "bookmakers": {
            "title": "Bookmakers",
            "type": "array",
            "description": "Whose prices to include. Pinnacle is the sharpest market; Unibet is a large European book; DraftKings lines (with the opening line) come from ESPN for US sports and the major soccer leagues. Leave empty for schedules and scores only.",
            "items": {
              "type": "string",
              "enum": [
                "pinnacle",
                "unibet",
                "draftkings"
              ],
              "enumTitles": [
                "Pinnacle",
                "Unibet",
                "DraftKings"
              ]
            },
            "default": [
              "pinnacle",
              "unibet",
              "draftkings"
            ]
          },
          "markets": {
            "title": "Markets",
            "type": "array",
            "description": "Moneyline (match result, with the draw in soccer and cricket), spread (handicap) and total (over/under). Full game, main lines.",
            "items": {
              "type": "string",
              "enum": [
                "moneyline",
                "spread",
                "total"
              ],
              "enumTitles": [
                "Moneyline / 1X2",
                "Spread / handicap",
                "Total / over-under"
              ]
            },
            "default": [
              "moneyline",
              "spread",
              "total"
            ]
          },
          "teams": {
            "title": "Teams or players (optional)",
            "type": "array",
            "description": "Only games involving these teams or players. Part of a name is enough, e.g. \"Chiefs\", \"Arsenal\", \"Djokovic\".",
            "items": {
              "type": "string"
            }
          },
          "includeEventsWithoutOdds": {
            "title": "Include upcoming games with no odds yet",
            "type": "boolean",
            "description": "Off: upcoming and live games are returned only when at least one chosen bookmaker prices them. On: every scheduled game in the window is returned.",
            "default": false
          },
          "onlyChanged": {
            "title": "Only games whose odds, status or score changed since the last run",
            "type": "boolean",
            "description": "For scheduled runs: return (and pay for) only games that are new, or whose prices, lines, status or score moved since this task last ran. Every row also shows each price's previous value and change, whether or not this is on.",
            "default": false
          },
          "onlyNew": {
            "title": "Only games not returned before",
            "type": "boolean",
            "description": "Return each game once, the first time it appears (for building a fixture list). onlyChanged is usually what you want for odds.",
            "default": false
          },
          "maxResults": {
            "title": "Max games",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many games (rows). 0 = no limit.",
            "default": 0
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}