{
  "openapi": "3.0.1",
  "info": {
    "title": "US Sportsbook Odds: DraftKings, FanDuel, BetMGM, Caesars Lines",
    "description": "Compare the moneyline, spread and total at DraftKings, FanDuel, BetMGM, Caesars, bet365, BetRivers and Unibet for NFL, NBA, NHL, MLB, college and soccer games: one record per market per sportsbook, as relayed by Action Network, with American and decimal odds and implied probability.",
    "version": "0.1",
    "x-build-id": "2BssQ5TKfOSogCB5j"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automatic~actionnetwork-odds/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automatic-actionnetwork-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/automatic~actionnetwork-odds/runs": {
      "post": {
        "operationId": "runs-sync-automatic-actionnetwork-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/automatic~actionnetwork-odds/run-sync": {
      "post": {
        "operationId": "run-sync-automatic-actionnetwork-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",
            "uniqueItems": true,
            "type": "array",
            "description": "Leagues to collect. Leave the field out to collect the default scope (NFL and NBA); that default run stops with a clear message when neither league has a priced game in the date window, for example in July. An empty list is refused. An input with no league, book, date or maxResults at all runs a 10-record sample. \"soccer\" collects every soccer competition listed for the day.",
            "items": {
              "type": "string",
              "enum": [
                "nfl",
                "ncaaf",
                "nba",
                "wnba",
                "ncaab",
                "ncaaw",
                "mlb",
                "nhl",
                "epl",
                "laliga",
                "seriea",
                "bundesliga",
                "ligue_1",
                "ucl",
                "uel",
                "mls",
                "soccer",
                "ufc"
              ],
              "enumTitles": [
                "NFL (National Football League)",
                "NCAAF (NCAA Football (FBS))",
                "NBA (National Basketball Association)",
                "WNBA (Women's National Basketball Association)",
                "NCAAB (NCAA Men's Basketball (Division I))",
                "NCAAW (NCAA Women's Basketball (Division I))",
                "MLB (Major League Baseball)",
                "NHL (National Hockey League)",
                "English Premier League",
                "La Liga (Spanish La Liga)",
                "Serie A (Italian Serie A)",
                "Bundesliga (German Bundesliga)",
                "Ligue 1 (French Ligue 1)",
                "UEFA Champions League",
                "UEFA Europa League",
                "MLS (Major League Soccer)",
                "Soccer (all listed competitions) (Every soccer competition the source lists that day)",
                "UFC (Ultimate Fighting Championship)"
              ]
            }
          },
          "books": {
            "title": "Sportsbooks",
            "uniqueItems": true,
            "type": "array",
            "description": "Sportsbooks to compare, by key. Leave the field out for the default set (an empty list is refused): draftkings_nj, fanduel_nj, betmgm_nj, caesars_nj, bet365_nj, betrivers_nj, betrivers_ny, unibet_nj, consensus, open. \"consensus\" (a blended line) and \"open\" (the recorded opening line) are not sportsbooks. More keys are listed in the README; a numeric book id from the source's catalogue is also accepted. At most 40 per run.",
            "items": {
              "type": "string"
            }
          },
          "marketFamilies": {
            "title": "Markets",
            "uniqueItems": true,
            "type": "array",
            "description": "Which main lines to collect. Team totals (each team's own over/under) are optional and add up to two records per game per sportsbook.",
            "items": {
              "type": "string",
              "enum": [
                "moneyline",
                "spreads",
                "totals",
                "team_totals"
              ],
              "enumTitles": [
                "Moneyline (three-way for soccer)",
                "Spread",
                "Total (over/under)",
                "Team totals"
              ]
            },
            "default": [
              "moneyline",
              "spreads",
              "totals"
            ]
          },
          "periods": {
            "title": "Game periods",
            "uniqueItems": true,
            "type": "array",
            "description": "Full-game lines by default. The first half and quarters apply to football and basketball, the first half to soccer, periods to hockey; a period that does not apply to a league is skipped for it. Fewer sportsbooks publish period lines.",
            "items": {
              "type": "string",
              "enum": [
                "game",
                "first_half",
                "first_period",
                "second_period",
                "third_period",
                "fourth_period"
              ],
              "enumTitles": [
                "Full game",
                "First half",
                "First quarter / first period",
                "Second quarter / second period",
                "Third quarter / third period",
                "Fourth quarter"
              ]
            },
            "default": [
              "game"
            ]
          },
          "dateFrom": {
            "title": "First day",
            "type": "string",
            "description": "First game day to collect, as YYYY-MM-DD (US Eastern calendar day). Leave both dates empty for today and the next 2 days, plus the whole current week for the NFL and college football. With only this date set, that single day is collected."
          },
          "dateTo": {
            "title": "Last day",
            "type": "string",
            "description": "Last game day to collect, as YYYY-MM-DD. A window may cover at most 14 days. NFL and college football are only available for the current week."
          },
          "includeBettingPercentages": {
            "title": "Include betting percentages",
            "type": "boolean",
            "description": "Add the share of tickets and of money on each side of a market, where published, to the record's canonical extension.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum records",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop after this many dataset records (one record is one market for one game at one sportsbook). Leave it out with no league, book or date set and the run is a 10-record sample; otherwise 1,000 when left out."
          },
          "requestDelaySecs": {
            "title": "Delay between requests",
            "minimum": 0.5,
            "maximum": 10,
            "type": "number",
            "description": "Seconds between request starts. The default of 1 keeps the run to about one request per second.",
            "default": 1
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}