{
  "openapi": "3.0.1",
  "info": {
    "title": "Action Network Odds, Betting Splits & Line Movement Scraper",
    "description": "Sports betting odds from every major US sportsbook, public money/ticket percentages, line movement, props, injuries, ATS standings, futures and weather from Action Network - NFL, NBA, MLB, NHL, college, 8 soccer leagues, UFC and tennis.",
    "version": "0.2",
    "x-build-id": "aBJ3ZqZR431sTMmDj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/artsiom_k~actionnetwork-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-artsiom_k-actionnetwork-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/artsiom_k~actionnetwork-scraper/runs": {
      "post": {
        "operationId": "runs-sync-artsiom_k-actionnetwork-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/artsiom_k~actionnetwork-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-artsiom_k-actionnetwork-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": {
          "entityType": {
            "title": "Data type",
            "enum": [
              "games",
              "lineHistory",
              "props",
              "injuries",
              "standings",
              "futures"
            ],
            "type": "string",
            "description": "\"games\": one row per game (or UFC bout / tennis match) with every sportsbook's moneyline/spread/total, public money & ticket percentages, scores and status; NFL/NCAAF games this week also carry the weather forecast. \"lineHistory\": one row per game/sportsbook/market with the full timestamped odds and line movement of every outcome (the site keeps this for only a few days after a game, so schedule it). \"props\": one row per player or game prop market with every sportsbook's lines. \"injuries\", \"standings\" and \"futures\" are the current snapshot per league (dates and season are ignored). Line history, props, injuries, standings and futures are not available for UFC or tennis.",
            "default": "games"
          },
          "leagues": {
            "title": "Leagues",
            "type": "array",
            "description": "Which leagues to pull. Leave all selected for every league. Leagues that are out of season simply return nothing. UFC and tennis have odds and results only: no public betting splits, and their odds disappear from the site within days of the event.",
            "items": {
              "type": "string",
              "enum": [
                "nfl",
                "ncaaf",
                "nba",
                "ncaab",
                "wnba",
                "mlb",
                "nhl",
                "epl",
                "laliga",
                "bundesliga",
                "seriea",
                "ligue1",
                "champions",
                "europa",
                "mls",
                "ufc",
                "atp",
                "wta",
                "soccer"
              ],
              "enumTitles": [
                "NFL",
                "NCAA Football",
                "NBA",
                "NCAA Basketball",
                "WNBA",
                "MLB",
                "NHL",
                "Soccer: English Premier League",
                "Soccer: La Liga",
                "Soccer: Bundesliga",
                "Soccer: Serie A",
                "Soccer: Ligue 1",
                "Soccer: Champions League",
                "Soccer: Europa League",
                "Soccer: MLS",
                "UFC / MMA",
                "Tennis: ATP",
                "Tennis: WTA",
                "Soccer: all 8 leagues above"
              ]
            },
            "default": [
              "nfl",
              "ncaaf",
              "nba",
              "ncaab",
              "wnba",
              "mlb",
              "nhl",
              "epl",
              "laliga",
              "bundesliga",
              "seriea",
              "ligue1",
              "champions",
              "europa",
              "mls",
              "ufc",
              "atp",
              "wta"
            ]
          },
          "dateFrom": {
            "title": "Date from (YYYY-MM-DD)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "First game day for the daily leagues (NBA, NCAAB, WNBA, MLB, NHL, soccer, UFC, tennis), in US Eastern time. With dateFrom/dateTo empty you get each league's current slate. NFL and NCAA Football ignore dates - use season/week instead. Odds and betting splits go back roughly two seasons for team sports; line history only a few days; UFC/tennis odds only a few days (results much longer)."
          },
          "dateTo": {
            "title": "Date to (YYYY-MM-DD)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Last game day (inclusive). Defaults to dateFrom when only dateFrom is set. At most 400 days per run."
          },
          "season": {
            "title": "Season (NFL / NCAA Football)",
            "minimum": 2013,
            "type": "integer",
            "description": "Season year for NFL and NCAA Football, e.g. 2025. Setting it walks the weeks below; leave empty for the current week's slate."
          },
          "weekFrom": {
            "title": "First week",
            "minimum": 1,
            "type": "integer",
            "description": "First week to pull when season is set. With only weekFrom, just that week. Defaults to week 1."
          },
          "weekTo": {
            "title": "Last week",
            "minimum": 1,
            "type": "integer",
            "description": "Last week to pull when season is set. Defaults to the end of the regular season (18 for NFL, 16 for NCAA Football) or of the postseason."
          },
          "seasonType": {
            "title": "Season type",
            "enum": [
              "reg",
              "post"
            ],
            "type": "string",
            "description": "Regular season or postseason (playoffs / bowl games) for NFL and NCAA Football.",
            "default": "reg"
          },
          "bookIds": {
            "title": "Sportsbooks",
            "type": "array",
            "description": "Restrict output to these sportsbooks. Empty means the site's default set (Consensus plus about five major US books); for futures, empty means every book below that offers futures. Consensus is always included because it carries the public betting splits.",
            "items": {
              "type": "string",
              "enum": [
                "15",
                "30",
                "68",
                "69",
                "75",
                "71",
                "49",
                "123",
                "79",
                "247",
                "972",
                "1548",
                "283"
              ],
              "enumTitles": [
                "Consensus (public betting splits)",
                "Open (opening lines)",
                "DraftKings NJ",
                "FanDuel NJ",
                "BetMGM NJ",
                "BetRivers NJ",
                "Caesars NV",
                "Caesars NJ",
                "bet365 NJ",
                "Unibet NJ",
                "BetRivers NY",
                "DraftKings NY",
                "BetMGM MI"
              ]
            }
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after pushing this many rows. Defaults to 50 - a fast, cheap preview, and what keeps an unconfigured run within Apify's automated 5-minute QA check. Set to null for everything in the selected scope. Props rows are numerous (hundreds per game), so cap them.",
            "default": 50
          },
          "mode": {
            "title": "Incremental mode",
            "enum": [
              "auto",
              "full",
              "incremental"
            ],
            "type": "string",
            "description": "Applies to \"games\" only. \"auto\": the first run returns every game; later runs, with maxItems cleared, only new games and games whose status, score or closing lines changed. A capped run (the default preview) always returns games. \"full\": always every game. \"incremental\": only new/changed. Line history, props, injuries, standings and futures are always a fresh pull.",
            "default": "auto"
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Parallel requests (max 20). Line-history and props runs fetch one request per game.",
            "default": 10
          },
          "impersonate": {
            "title": "TLS impersonation target",
            "type": "string",
            "description": "curl_cffi browser TLS-impersonation target. Defaults to \"firefox\" internally; change only if requests start being blocked."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings. Not needed: the API answered every request from Apify's infrastructure in testing without a proxy.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}