{
  "openapi": "3.0.1",
  "info": {
    "title": "Action Network Scraper & API",
    "description": "Scrape Action Network odds for NFL, NBA, MLB, NHL, college, soccer, tennis and UFC: every sportsbook's moneyline, spread and total, public betting splits, expert picks, line movement, props and box scores.",
    "version": "1.0",
    "x-build-id": "dybtLMrYhInmQlzJs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~action-network-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-action-network-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/parsebird~action-network-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-action-network-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/parsebird~action-network-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-action-network-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": {
          "leagues": {
            "title": "Leagues",
            "maxItems": 21,
            "type": "array",
            "description": "Pick the leagues to cover. Out-of-season leagues return nothing. ATP, WTA, UFC and Boxing return one row per match or fight, with the two competitors instead of teams. Soccer (all leagues) is Action Network's combined soccer slate; a fixture reached both through it and through a single league is collected and charged once.",
            "items": {
              "type": "string",
              "enum": [
                "nfl",
                "ncaaf",
                "nba",
                "ncaab",
                "wnba",
                "ncaaw",
                "mlb",
                "nhl",
                "soccer",
                "epl",
                "laliga",
                "bundesliga",
                "seriea",
                "ligue1",
                "mls",
                "champions",
                "europa",
                "atp",
                "wta",
                "ufc",
                "boxing"
              ],
              "enumTitles": [
                "NFL",
                "NCAA Football",
                "NBA",
                "NCAA Basketball (men)",
                "WNBA",
                "NCAA Basketball (women)",
                "MLB",
                "NHL",
                "Soccer (all leagues)",
                "Premier League",
                "La Liga",
                "Bundesliga",
                "Serie A",
                "Ligue 1",
                "MLS",
                "Champions League",
                "Europa League",
                "ATP tennis",
                "WTA tennis",
                "UFC",
                "Boxing"
              ]
            }
          },
          "date": {
            "title": "Date",
            "type": "string",
            "description": "Enter the day to cover (YYYY-MM-DD, US Eastern). Leave empty for today. Leave it empty for NFL and NCAA Football, which are scheduled by week: a date combined with either of them stops the run instead of returning the wrong week."
          },
          "week": {
            "title": "Week (NFL and NCAA Football)",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "Enter the week number. Only NFL and NCAA Football are scheduled by week; every other league uses the date. Regular season runs 1-18, postseason 1-4, preseason 1-3, and a week outside its range returns nothing. Leave empty for the current week. Without a season, the current season is used."
          },
          "season": {
            "title": "Season",
            "minimum": 2015,
            "maximum": 2030,
            "type": "integer",
            "description": "Enter the season year, for example 2025. Used with the week for NFL and NCAA Football. Results, box scores and play-by-play reach back to 2015. Full sportsbook pricing and betting splits start with the 2024 season; 2023 carries only the consensus and opening lines, and earlier seasons carry results without prices. A season without a week returns the week that matches today's date in that season."
          },
          "seasonType": {
            "title": "Season type",
            "enum": [
              "reg",
              "post",
              "pre"
            ],
            "type": "string",
            "description": "Pick regular season, postseason or preseason. Used with the week for NFL and NCAA Football."
          },
          "gameIds": {
            "title": "Specific game IDs",
            "maxItems": 200,
            "type": "array",
            "description": "Add Action Network game IDs (the number at the end of a game page URL) to cover only those games. Overrides the league and date selection. Works for team sports; tennis, UFC and boxing are reached through their league.",
            "items": {
              "type": "string"
            }
          },
          "gameUrls": {
            "title": "Specific game URLs",
            "maxItems": 200,
            "type": "array",
            "description": "Paste Action Network game page links instead of IDs. Overrides the league and date selection.",
            "items": {
              "type": "string"
            }
          },
          "gameStatus": {
            "title": "Game status",
            "type": "array",
            "description": "Keep only games in these states. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "upcoming",
                "live",
                "finished"
              ],
              "enumTitles": [
                "Upcoming",
                "Live",
                "Finished"
              ]
            }
          },
          "teams": {
            "title": "Teams or players",
            "maxItems": 50,
            "type": "array",
            "description": "Keep only games involving these teams. Enter names or abbreviations (Patriots, NE, Boston Bruins). For tennis, UFC and boxing, enter a competitor's name.",
            "items": {
              "type": "string"
            }
          },
          "onlyTrending": {
            "title": "Trending games only",
            "type": "boolean",
            "description": "Keep only games Action Network flags as trending.",
            "default": false
          },
          "minBets": {
            "title": "Minimum bet count",
            "minimum": 0,
            "type": "integer",
            "description": "Skip games with fewer bets tracked by Action Network than this. Useful for ignoring thin markets."
          },
          "books": {
            "title": "Sportsbooks",
            "maxItems": 38,
            "type": "array",
            "description": "Enter Action Network sportsbook IDs to price. Leave empty for the majors: DraftKings 68, FanDuel 69, BetMGM 75, bet365 79, BetRivers 71, Caesars 123. The consensus (15) and opening (30) lines are always included, so betting splits and line movement never go missing. See the README for more book IDs.",
            "items": {
              "type": "string"
            }
          },
          "periods": {
            "title": "Game segments",
            "type": "array",
            "description": "Pick the segments to price. The full game is always included. Halves and quarters apply to football and basketball, periods to hockey, innings to baseball and halves to soccer.",
            "items": {
              "type": "string",
              "enum": [
                "event",
                "firsthalf",
                "secondhalf",
                "firstquarter",
                "secondquarter",
                "thirdquarter",
                "fourthquarter",
                "firstperiod",
                "secondperiod",
                "thirdperiod",
                "firstinning",
                "firstfiveinnings"
              ],
              "enumTitles": [
                "Full game",
                "1st half",
                "2nd half",
                "1st quarter",
                "2nd quarter",
                "3rd quarter",
                "4th quarter",
                "1st period",
                "2nd period",
                "3rd period",
                "1st inning",
                "First 5 innings"
              ]
            }
          },
          "maxGames": {
            "title": "Maximum games",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many games, matches or fights. The cap is shared across the selected leagues, earliest start first in each league. Leave empty for no limit."
          },
          "includeExpertPicks": {
            "title": "Expert picks",
            "type": "boolean",
            "description": "Attach expert selections on each game with their win/loss record, units and ROI. Included at no extra charge.",
            "default": true
          },
          "includeLineMovement": {
            "title": "Full line movement history",
            "type": "boolean",
            "description": "Add every timestamped price change per sportsbook, back to the opening line. Opening and current prices are always included without this. Available for upcoming, live and recently finished team games; charged per game that has history.",
            "default": false
          },
          "includeProps": {
            "title": "Player and game props",
            "type": "boolean",
            "description": "Add the full prop board per game across the selected sportsbooks. Props are listed until a game is finished. Adds a lot of data (100+ prop markets per NFL game), so expect longer runs; charged per game that has props.",
            "default": false
          },
          "includeStandings": {
            "title": "Standings",
            "type": "boolean",
            "description": "Add one row per league with the current league table, including against-the-spread and over/under records. Leagues without a published table (most soccer leagues, tennis, UFC, boxing) add no row.",
            "default": false
          },
          "includeInjuries": {
            "title": "Injury report",
            "type": "boolean",
            "description": "Add one row per league with the current injury report. Leagues with no listed injuries add no row and are not charged.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}