{
  "openapi": "3.0.1",
  "info": {
    "title": "Flashscore Scraper — Live Scores, Results, Odds & Stats",
    "description": "Scrape Flashscore results, fixtures and live scores for football, tennis, basketball, hockey and 25+ sports. Full season history, odds by bookmaker, match stats, lineups, events and tennis point-by-point. No login or API key. Export JSON, CSV, Excel.",
    "version": "1.0",
    "x-build-id": "78C89fQEGhJrko9wn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~flashscore-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-flashscore-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/logiover~flashscore-scraper/runs": {
      "post": {
        "operationId": "runs-sync-logiover-flashscore-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/logiover~flashscore-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-flashscore-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": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "daily",
              "leagues",
              "matches"
            ],
            "type": "string",
            "description": "<b>Daily scores & fixtures</b>: every match of the selected sports for up to 7 days back and 7 days ahead. <b>League / tournament history</b>: complete results (and optionally fixtures) of whole seasons — current and past — for the league URLs or names below; a tennis category URL (e.g. ATP - Singles) or a country URL (e.g. England) expands to all of its tournaments. <b>Specific matches</b>: the match URLs or ids below. If you fill in league URLs or match URLs, the matching mode is used automatically.",
            "default": "daily"
          },
          "sports": {
            "title": "Sports (daily mode)",
            "type": "array",
            "description": "Sports to collect in daily mode. Every duel sport on Flashscore is supported.",
            "items": {
              "type": "string",
              "enum": [
                "football",
                "tennis",
                "basketball",
                "hockey",
                "american-football",
                "baseball",
                "handball",
                "volleyball",
                "rugby-union",
                "rugby-league",
                "cricket",
                "darts",
                "snooker",
                "table-tennis",
                "badminton",
                "esports",
                "futsal",
                "floorball",
                "bandy",
                "beach-volleyball",
                "aussie-rules",
                "water-polo",
                "field-hockey",
                "beach-soccer",
                "boxing",
                "mma",
                "netball",
                "pesapallo"
              ],
              "enumTitles": [
                "Football (soccer)",
                "Tennis",
                "Basketball",
                "Hockey",
                "American football",
                "Baseball",
                "Handball",
                "Volleyball",
                "Rugby union",
                "Rugby league",
                "Cricket",
                "Darts",
                "Snooker",
                "Table tennis",
                "Badminton",
                "Esports",
                "Futsal",
                "Floorball",
                "Bandy",
                "Beach volleyball",
                "Aussie rules",
                "Water polo",
                "Field hockey",
                "Beach soccer",
                "Boxing",
                "MMA",
                "Netball",
                "Pesäpallo"
              ]
            },
            "default": [
              "football",
              "tennis",
              "basketball",
              "hockey"
            ]
          },
          "daysBack": {
            "title": "Days back (daily mode)",
            "minimum": 0,
            "maximum": 7,
            "type": "integer",
            "description": "How many past days to include: 0 = today only, 1 = yesterday and today, … up to 7 (Flashscore's daily feeds cover 7 days back). For older matches use the league / tournament history mode.",
            "default": 1
          },
          "daysAhead": {
            "title": "Days ahead (daily mode)",
            "minimum": 0,
            "maximum": 7,
            "type": "integer",
            "description": "How many future days of fixtures to include (0–7).",
            "default": 0
          },
          "leagueUrls": {
            "title": "League / tournament URLs (history mode)",
            "type": "array",
            "description": "Flashscore URLs. A league or tournament (https://www.flashscore.com/football/england/premier-league/, https://www.flashscore.com/tennis/atp-singles/wimbledon/), a specific season (…/premier-league-2019-2020/), a tennis category (https://www.flashscore.com/tennis/atp-singles/ = every ATP singles tournament) or a country (https://www.flashscore.com/football/spain/ = every Spanish competition). Short paths like football/spain/laliga also work.",
            "items": {
              "type": "string"
            }
          },
          "leagueNames": {
            "title": "League / tournament names (history mode)",
            "type": "array",
            "description": "Optional: league names to look up with Flashscore's own search, e.g. \"Premier League\", \"LaLiga\", \"NBA\", \"Wimbledon\". The best match is used; URLs above are more precise.",
            "items": {
              "type": "string"
            }
          },
          "seasons": {
            "title": "Number of seasons per league (history mode)",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many of the most recent seasons to collect for each league, from Flashscore's archive (1 = current season only). The Premier League archive goes back to the 1990s; tennis tournaments list one season per year.",
            "default": 1
          },
          "seasonNames": {
            "title": "Specific seasons (history mode)",
            "type": "array",
            "description": "Optional: pick exact seasons instead of \"the last N\", e.g. 2023/2024, 2019/2020 or 2024 (tennis, calendar-year leagues).",
            "items": {
              "type": "string"
            }
          },
          "includeFixtures": {
            "title": "Include upcoming fixtures (history mode)",
            "type": "boolean",
            "description": "Also collect the not-yet-played matches of the current season.",
            "default": false
          },
          "matchUrls": {
            "title": "Match URLs or ids (matches mode)",
            "type": "array",
            "description": "Flashscore match URLs (https://www.flashscore.com/match/football/arsenal-hA1Zm19f/everton-KluSTr9s/?mid=jXP8f29S) or 8-character match ids (jXP8f29S).",
            "items": {
              "type": "string"
            }
          },
          "matchStatus": {
            "title": "Match status filter",
            "enum": [
              "all",
              "finished",
              "scheduled",
              "live"
            ],
            "type": "string",
            "description": "Keep only finished matches (results), only scheduled ones (fixtures), only live ones — or everything.",
            "default": "all"
          },
          "details": {
            "title": "Extra match details (optional)",
            "type": "array",
            "description": "Each selected detail adds one request per match. <b>Summary</b>: venue, city, attendance, referee/umpire, match and set durations, exact half-time score. <b>Statistics</b>: every stat Flashscore shows, per period (aces, double faults, break points, serve %, xG, possession, shots, …). <b>Events</b>: goals with scorer, assist and score, cards, substitutions, VAR. <b>Lineups</b>: formations, starting XI, substitutes, coaches. <b>Point-by-point</b> (tennis): every game and point with server, breaks, BP/SP/MP. <b>Odds</b>: pre-match 1X2 / home-away closing and opening odds per bookmaker plus over/under lines (also for upcoming matches).",
            "items": {
              "type": "string",
              "enum": [
                "summary",
                "statistics",
                "events",
                "lineups",
                "pointByPoint",
                "odds"
              ],
              "enumTitles": [
                "Summary (venue, referee, attendance, durations)",
                "Statistics",
                "Events (goals, cards, substitutions)",
                "Lineups",
                "Point-by-point (tennis)",
                "Odds (bookmakers, opening & closing)"
              ]
            },
            "default": []
          },
          "oddsCountry": {
            "title": "Odds country",
            "type": "string",
            "description": "Two-letter country code that decides which bookmakers Flashscore shows (GB = bet365, William Hill, Betfair, Unibet, …).",
            "default": "GB"
          },
          "maxItems": {
            "title": "Maximum number of matches",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many matches (0 = no limit). One match = one result.",
            "default": 10000
          },
          "concurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many requests run at once. The default is fast and polite; there is rarely a reason to change it.",
            "default": 16
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed: Flashscore answers the direct connection, and the Actor switches to Apify Proxy by itself if it is ever refused. Set a proxy only if you have a specific reason.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}