{
  "openapi": "3.0.1",
  "info": {
    "title": "Football Scraper: Live Scores, Results, Lineups & Odds",
    "description": "Football (soccer) live scores, results and fixtures for 1,000+ leagues from Flashscore, with optional goals and cards, lineups, match statistics with xG, head-to-head and bookmaker odds from about 30 countries.",
    "version": "0.1",
    "x-build-id": "H4jl4KEDbuViWhdm0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/keelwright~football-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-keelwright-football-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/keelwright~football-scraper/runs": {
      "post": {
        "operationId": "runs-sync-keelwright-football-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/keelwright~football-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-keelwright-football-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": {
          "daysBack": {
            "title": "Past days",
            "minimum": 0,
            "maximum": 7,
            "type": "integer",
            "description": "How many days before today (UTC) to include. 0 means today only. Results are available for the last 7 days.",
            "default": 0
          },
          "daysAhead": {
            "title": "Upcoming days",
            "minimum": 0,
            "maximum": 7,
            "type": "integer",
            "description": "How many days after today to include, for fixtures (up to 7).",
            "default": 0
          },
          "statuses": {
            "title": "Match status",
            "type": "array",
            "description": "Only matches with these statuses. Leave empty for all. Choose only \"Live\" for in-play matches (matches that started before midnight UTC and are still going are included).",
            "items": {
              "type": "string",
              "enum": [
                "scheduled",
                "live",
                "finished",
                "interrupted",
                "postponed",
                "cancelled",
                "abandoned"
              ],
              "enumTitles": [
                "Scheduled",
                "Live",
                "Finished (incl. after extra time, penalties, walkovers)",
                "Interrupted",
                "Postponed",
                "Cancelled",
                "Abandoned"
              ]
            },
            "default": []
          },
          "topLeaguesOnly": {
            "title": "Top leagues only",
            "type": "boolean",
            "description": "Only Flashscore's top competitions: Premier League, LaLiga, Serie A, Bundesliga, Ligue 1, Eredivisie, Champions League, Europa League, Conference League, Nations League, Copa Libertadores and the World Cup and Euro.",
            "default": false
          },
          "competitions": {
            "title": "Competitions",
            "type": "array",
            "description": "Only these competitions. Write \"Country: Name\" as on Flashscore (England: Premier League, Spain: LaLiga, Europe: Champions League), just the name, or paste the competition URL from flashscore.com. Leave empty for all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Only competitions from these countries or regions, for example England, Spain, Brazil, Europe or World. Leave empty for all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "teams": {
            "title": "Teams",
            "type": "array",
            "description": "Only matches of these teams, for example Arsenal or Real Madrid. Leave empty for all teams.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "matchUrls": {
            "title": "Match URLs or ids",
            "type": "array",
            "description": "Flashscore football match URLs (any Flashscore domain) or 8-character match ids. When set, the days and filters above are not used.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeEvents": {
            "title": "Goals, cards and match info",
            "type": "boolean",
            "description": "Goals with assists, penalties, cards, substitutions and the penalty shootout, minute by minute, plus the round, referee, stadium, attendance and TV channels.",
            "default": false
          },
          "includeStatistics": {
            "title": "Match statistics",
            "type": "boolean",
            "description": "Expected goals (xG), possession, shots, big chances, corners, passes, tackles, saves and more, for the match and for each half.",
            "default": false
          },
          "includeLineups": {
            "title": "Lineups",
            "type": "boolean",
            "description": "Formations, starting eleven, substitutes and coaches, with shirt numbers, captains, goalkeepers and player ratings. Published about an hour before kick-off.",
            "default": false
          },
          "includeHeadToHead": {
            "title": "Head-to-head and recent form",
            "type": "boolean",
            "description": "Earlier meetings of the two teams, each team's last 10 matches, and form strings such as WWDLW.",
            "default": false
          },
          "includeOdds": {
            "title": "Bookmaker odds",
            "type": "boolean",
            "description": "1X2, over/under 2.5 goals and both teams to score from the bookmakers in the countries below, with opening prices, the best and average price and the implied probability.",
            "default": false
          },
          "oddsMarkets": {
            "title": "Odds markets",
            "enum": [
              "main",
              "all"
            ],
            "type": "string",
            "description": "The main markets only, or every market Flashscore lists: halves, double chance, draw no bet, Asian and European handicap, correct score, half-time/full-time, odd/even.",
            "default": "main"
          },
          "oddsCountries": {
            "title": "Bookmakers from",
            "type": "array",
            "description": "Bookmakers differ by country. The United Kingdom has the most (about 20). Pick several to compare more bookmakers; each extra country adds one request per match.",
            "items": {
              "type": "string",
              "enum": [
                "GB",
                "IT",
                "ES",
                "FR",
                "IE",
                "SE",
                "MX",
                "ZA",
                "CA-ON",
                "CA-QC",
                "DE",
                "RO",
                "AR",
                "CO",
                "DK",
                "PL",
                "TH",
                "US-NJ",
                "US-NY",
                "US-AZ",
                "GR",
                "AT",
                "CZ",
                "NG",
                "PT",
                "AU",
                "CH",
                "NL",
                "IN",
                "JP",
                "KE",
                "TR"
              ],
              "enumTitles": [
                "United Kingdom",
                "Italy",
                "Spain",
                "France",
                "Ireland",
                "Sweden",
                "Mexico",
                "South Africa",
                "Canada (Ontario)",
                "Canada (other provinces)",
                "Germany",
                "Romania",
                "Argentina",
                "Colombia",
                "Denmark",
                "Poland",
                "Thailand",
                "USA (New Jersey)",
                "USA (New York)",
                "USA (Arizona)",
                "Greece",
                "Austria",
                "Czechia",
                "Nigeria",
                "Portugal",
                "Australia",
                "Switzerland",
                "Netherlands",
                "India",
                "Japan",
                "Kenya",
                "Turkey"
              ]
            },
            "default": [
              "GB"
            ]
          },
          "onlyChanged": {
            "title": "Only new or changed matches",
            "type": "boolean",
            "description": "Save only matches that are new or whose status, score or red cards changed since the previous run with the same settings. Use it with a schedule (for example every 5 minutes) to follow live scores without paying for unchanged rows.",
            "default": false
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many matches. 0 means no limit. A busy day has 1,000 or more matches worldwide; top leagues are listed first.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many matches are loaded at the same time when extra data is on.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed in most cases: Flashscore answers Apify's servers directly. Turn it on only if runs start failing with \"blocked\".",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}