{
  "openapi": "3.0.1",
  "info": {
    "title": "Football Results Scraper - Goals, Cards & Stats, All Leagues",
    "description": "For football bettors, fantasy players and data teams: results from every league on Flashscore with goal scorers, assists, cards, substitutions, half-time score, round and stats incl. xG. 3,260 of 3,260 matches matched Flashscore's page in a 3-day check. Monitoring returns only matches that changed.",
    "version": "0.1",
    "x-build-id": "080GO7Rr4El2B597J"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~football-results-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-football-results-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/neverempty~football-results-scraper/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-football-results-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/neverempty~football-results-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-football-results-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": {
          "days": {
            "title": "Days",
            "type": "array",
            "description": "Which days to read: today, yesterday, tomorrow, a number of days from today (-7 to 7), or a date as YYYY-MM-DD. Flashscore's daily feed covers 7 days back and 7 days ahead of today; other days are refused before anything is requested. Empty = today. A match is returned under the day Flashscore's own page lists it on.",
            "items": {
              "type": "string"
            }
          },
          "utcOffsetHours": {
            "title": "Time zone (hours from UTC)",
            "minimum": -12,
            "maximum": 14,
            "type": "integer",
            "description": "Where a day starts and ends, as on Flashscore when your browser is in that time zone. 0 = UTC. Example: -5 for New York in winter, 1 for London in summer, 9 for Tokyo. startTime is always in UTC.",
            "default": 0
          },
          "countries": {
            "title": "Countries or regions",
            "type": "array",
            "description": "Keep only matches of competitions under these countries or regions, as Flashscore names them (case-insensitive, whole name): England, Spain, Brazil, Europe, World, South America... Empty = all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "leagues": {
            "title": "Leagues",
            "type": "array",
            "description": "Keep a match if its competition matches one of these. Write the Flashscore header (england: premier league, spain: laliga), part of it (champions league), the league path (england/premier-league) or a league URL from flashscore.com. Headers are matched as a partial text, so premier league alone also keeps other countries' Premier Leagues. Empty = all leagues.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "teams": {
            "title": "Teams",
            "type": "array",
            "description": "Keep a match if one of these appears in the home or away team name or slug (case-insensitive, partial): arsenal, real madrid, boca.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "matchStatuses": {
            "title": "Match status",
            "type": "array",
            "description": "Keep only these. live = in play (halves, half time, extra time, penalty shoot-out). finished = finished (also after extra time or penalties), walkover or awarded. scheduled = not started. other = postponed, cancelled, interrupted, abandoned, delayed and similar. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "live",
                "finished",
                "scheduled",
                "other"
              ],
              "enumTitles": [
                "Live",
                "Finished",
                "Scheduled",
                "Other (postponed, cancelled, interrupted...)"
              ]
            },
            "default": []
          },
          "includeEvents": {
            "title": "Add goals, cards and substitutions",
            "type": "boolean",
            "description": "On = one extra request per returned match that has started, for goal scorers with assists and minute, yellow and red cards, substitutions, missed penalties, half scores, referee, stadium and attendance. Off = faster; those columns stay empty.",
            "default": true
          },
          "includeStatistics": {
            "title": "Add match statistics (possession, shots, xG...)",
            "type": "boolean",
            "description": "On = one extra request per returned match that has started, for Flashscore's match statistics (possession, shots, shots on target, corners, fouls, and xG where Flashscore has it) for the match and each half. Off = faster; those columns stay empty.",
            "default": true
          },
          "includeRound": {
            "title": "Add the round (Round 5, Quarter-finals...)",
            "type": "boolean",
            "description": "The round is not in Flashscore's daily feed. On = one extra small request per returned match to read it from the match page (only the first 32 KB are read). Off = faster, round is null.",
            "default": true
          },
          "maxMatches": {
            "title": "Maximum matches to return",
            "minimum": 1,
            "maximum": 3000,
            "type": "integer",
            "description": "How many match rows to return. You are charged for the rows you actually receive. Between 2026-09-14 and 2026-09-20 a day carried 171 to 1,780 matches across all leagues (weekend days the most). Not used in monitoring mode, which always checks every match that fits your input.",
            "default": 200
          },
          "monitoringMode": {
            "title": "Monitoring mode: return only matches that changed",
            "type": "boolean",
            "description": "Off = return every match that fits your input. On = remember the last row returned for each match and, on later runs, return only matches that changed (see Change detail). Each match compared is a check with a small fee, also the first time; a match already returned as finished that has not changed is not charged. For a schedule that runs across midnight use days yesterday and today. Remembered per filter set, for 10 days.",
            "default": false
          },
          "monitorEveryLeague": {
            "title": "Allow monitoring every league",
            "type": "boolean",
            "description": "Monitoring has no row limit, so without countries, leagues or teams its first run would return and charge every match of the day (up to about 1,800 on a weekend). Such a run is refused with a free row unless this is on.",
            "default": false
          },
          "changeDetail": {
            "title": "Change detail",
            "enum": [
              "score",
              "finished"
            ],
            "type": "string",
            "description": "What counts as a change in monitoring mode. score = a goal, a red card, extra-time or penalty score, or a change of match status (kick-off, full time, postponed...); half time and the minute do not count. finished = only when a match reaches a final state (finished, walkover, awarded, cancelled or abandoned): each match is returned once, with its final result.",
            "default": "score"
          },
          "resetMonitoringState": {
            "title": "Forget what was already returned",
            "type": "boolean",
            "description": "Clear the remembered rows for this filter set before this run, so every match counts as new again.",
            "default": false
          },
          "useProxy": {
            "title": "Use an Apify proxy if Flashscore refuses a request",
            "type": "boolean",
            "description": "On = if Flashscore answers 401, 403, 429 or 503, the request is retried through a proxy. Off = retried directly, then returned as a free row.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}