{
  "openapi": "3.0.1",
  "info": {
    "title": "Flashscore Football Scraper: Scores, xG, Lineups, Odds, Tables",
    "description": "Every football match of a day from Flashscore: fixtures, live scores, results with half-time and penalties, plus xG statistics, lineups with player ratings, goals and cards, referee and venue, head-to-head, bookmaker odds with opening prices and league tables. 27 more sports. No browser.",
    "version": "1.0",
    "x-build-id": "pusoI0n5zkvluBrM2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/steadyscrape~flashscore-football-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-steadyscrape-flashscore-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/steadyscrape~flashscore-football-scraper/runs": {
      "post": {
        "operationId": "runs-sync-steadyscrape-flashscore-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/steadyscrape~flashscore-football-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-steadyscrape-flashscore-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": {
          "sport": {
            "title": "Sport",
            "enum": [
              "football",
              "basketball",
              "hockey",
              "american-football",
              "baseball",
              "handball",
              "rugby-union",
              "floorball",
              "bandy",
              "futsal",
              "volleyball",
              "cricket",
              "darts",
              "snooker",
              "boxing",
              "beach-volleyball",
              "aussie-rules",
              "rugby-league",
              "badminton",
              "water-polo",
              "field-hockey",
              "table-tennis",
              "beach-soccer",
              "mma",
              "netball",
              "pesapallo",
              "esports",
              "kabaddi"
            ],
            "type": "string",
            "description": "Football by default. The other sports give the same rows — teams, scores per period, status, competition — and every detail section Flashscore has for them (statistics, lineups, events, head-to-head, odds, standings). Tennis has its own Actor: Flashscore Tennis Scraper.",
            "default": "football"
          },
          "dateFrom": {
            "title": "From day",
            "type": "string",
            "description": "<code>today</code>, <code>yesterday</code>, <code>tomorrow</code>, a number of days from today (<code>-3</code>, <code>+2</code>) or a date (<code>2026-10-12</code>). Relative days are what a scheduled run wants. Flashscore publishes days up to a week either side of today.",
            "default": "today"
          },
          "dateTo": {
            "title": "To day",
            "type": "string",
            "description": "Last day of the range, written like <b>From day</b>. Leave empty for a single day."
          },
          "utcOffsetHours": {
            "title": "Your UTC offset (hours)",
            "minimum": -12,
            "maximum": 14,
            "type": "integer",
            "description": "Where a day starts and ends: <code>0</code> cuts days at UTC, <code>-5</code> at New York time, <code>1</code> at London summer time. Match times in the output are always UTC.",
            "default": 0
          },
          "matches": {
            "title": "Matches (instead of days)",
            "type": "array",
            "description": "Flashscore match links (<code>…/match/&lt;id&gt;/</code> or <code>…?mid=&lt;id&gt;</code>), or the eight-character ids the output gives as <code>matchId</code>. When this list is not empty the days and the filters are ignored.",
            "items": {
              "type": "string"
            }
          },
          "matchStatus": {
            "title": "Match status",
            "type": "array",
            "description": "Leave empty for all. <b>finished</b> includes walkovers and awarded matches; <b>live</b> includes interrupted matches; <b>cancelled</b> includes postponed and abandoned ones.",
            "items": {
              "type": "string",
              "enum": [
                "scheduled",
                "live",
                "finished",
                "cancelled"
              ],
              "enumTitles": [
                "Scheduled",
                "Live",
                "Finished",
                "Cancelled, postponed or abandoned"
              ]
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Part of a country as Flashscore names it: <code>England</code>, <code>Spain</code>, <code>Brazil</code>, <code>Europe</code> (Champions League…), <code>World</code>. Case and accents do not matter.",
            "items": {
              "type": "string"
            }
          },
          "leagues": {
            "title": "Competitions",
            "type": "array",
            "description": "Part of a competition name: <code>Premier League</code>, <code>LaLiga</code>, <code>Serie A</code>, <code>Champions League</code>, or <code>England: Premier League</code> to tell same-named leagues apart. Case and accents do not matter.",
            "items": {
              "type": "string"
            }
          },
          "teams": {
            "title": "Teams",
            "type": "array",
            "description": "Part of a team name: <code>Arsenal</code>, <code>Real Madrid</code>, <code>Boca</code>. Case and accents do not matter.",
            "items": {
              "type": "string"
            }
          },
          "includeStatistics": {
            "title": "Match statistics",
            "type": "boolean",
            "description": "Expected goals (xG), possession, shots, passes, corners, fouls, cards… for the match and each half, each with its number and its fraction (<code>80% (360/451)</code> → 80, 360, 451).",
            "default": false
          },
          "includeLineups": {
            "title": "Lineups",
            "type": "boolean",
            "description": "Formation and team rating, starting eleven and substitutes with shirt number, nationality, captain, goalkeeper and Flashscore player rating, and the coaches.",
            "default": false
          },
          "includeEvents": {
            "title": "Events and match information",
            "type": "boolean",
            "description": "Every goal (with the assist and the score after it), card and substitution with its minute and players, the score of each half — and the referee, venue, city, capacity and attendance.",
            "default": false
          },
          "includeHeadToHead": {
            "title": "Head-to-head and recent form",
            "type": "boolean",
            "description": "Previous meetings of the two teams and the last matches of each, with competition, score and winner. Available before the match starts, which is when a model needs it.",
            "default": false
          },
          "includeOdds": {
            "title": "Betting odds",
            "type": "boolean",
            "description": "Every bookmaker's prices for the match with each one's <b>opening price</b>. Available before and during the match; bookmakers take them down after it. By default only 1X2 and over/under for the full match: <b>every market of 20 bookmakers is about 800 KB per match</b>, so add markets and halves only when you need them.",
            "default": false
          },
          "oddsCountry": {
            "title": "Bookmakers of (country)",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string",
            "description": "Two-letter country code: Flashscore lists the bookmakers licensed there. <code>GB</code> has the most (about 20: bet365, William Hill, Betfair, BetMGM…); <code>US</code> has FanDuel, DraftKings and BetMGM; try <code>DE</code>, <code>IT</code>, <code>ES</code>, <code>BR</code>… An unknown code gets an international set.",
            "default": "GB"
          },
          "oddsRegion": {
            "title": "Region of the country",
            "pattern": "^[A-Za-z0-9]{0,6}$",
            "type": "string",
            "description": "For countries that license by state. <code>USNY</code> adds the bookmakers of New York to those of the US. Leave empty otherwise."
          },
          "oddsMarkets": {
            "title": "Odds markets",
            "type": "array",
            "description": "Which markets to keep. Leave empty for every market Flashscore lists.",
            "items": {
              "type": "string",
              "enum": [
                "1x2",
                "home_away",
                "over_under",
                "asian_handicap",
                "european_handicap",
                "both_teams_to_score",
                "double_chance",
                "draw_no_bet",
                "half_full_time",
                "correct_score",
                "odd_even"
              ],
              "enumTitles": [
                "1X2 (home, draw, away)",
                "Home/away (sports without a draw)",
                "Over/under",
                "Asian handicap",
                "European handicap",
                "Both teams to score",
                "Double chance",
                "Draw no bet",
                "Half-time/full-time",
                "Correct score",
                "Odd/even"
              ]
            },
            "default": [
              "1x2",
              "over_under"
            ]
          },
          "oddsFullTimeOnly": {
            "title": "Full-time odds only",
            "type": "boolean",
            "description": "Keep the prices for the whole match and leave out the first-half and second-half markets.",
            "default": true
          },
          "includeStandings": {
            "title": "League tables",
            "type": "boolean",
            "description": "One extra row per competition of the run with its table — every group, with played, won, drawn, lost, goals, points, form and what each place leads to (promotion, playoffs, relegation). Fetched and charged once per competition, however many of its matches the run has.",
            "default": false
          },
          "recentMatchesPerTeam": {
            "title": "Recent matches per team",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "How many of each team's last matches the head-to-head carries. Meetings between the two are all kept.",
            "default": 10
          },
          "maxMatches": {
            "title": "Maximum matches",
            "minimum": 0,
            "type": "integer",
            "description": "Stops after this many matches, earliest first. <code>0</code> for no limit. Your run's maximum charge is respected either way, and it is checked before any detail is fetched.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}