{
  "openapi": "3.0.1",
  "info": {
    "title": "Soccer Fixtures Results Scraper - Football Live Scores, Lineups",
    "description": "Every football match on a date: 185 leagues and 746 matches in one request. A match card carries 1,415 fields with shot maps, expected goals, player ratings and lineups. Football standings for 17 seasons per league, 433 leagues in 94 countries. Soccer stats scraper, no API key.",
    "version": "0.1",
    "x-build-id": "MehkXHvVc1FY4CIdq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/snow_leo_data~football-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-snow_leo_data-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/snow_leo_data~football-scraper/runs": {
      "post": {
        "operationId": "runs-sync-snow_leo_data-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/snow_leo_data~football-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-snow_leo_data-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "day",
              "league",
              "standings",
              "team",
              "player",
              "match",
              "search"
            ],
            "type": "string",
            "description": "day = every match played anywhere on a date, in one request. league = a league season's fixtures and results, any season the source knows. standings = league tables. team = one club's matches and squad. player = player cards. match = full match cards for the URLs you paste. search = find teams, players and leagues by name.",
            "default": "day"
          },
          "date": {
            "title": "Date",
            "type": "string",
            "description": "Day to read: YYYY-MM-DD or YYYYMMDD, or today / tomorrow / yesterday, or an offset in days such as +3.",
            "default": "today"
          },
          "days": {
            "title": "How many days",
            "minimum": 1,
            "maximum": 14,
            "type": "integer",
            "description": "Read this many consecutive days starting from the date above. One request per day. Up to 14.",
            "default": 1
          },
          "utcOffsetMinutes": {
            "title": "Time zone offset in minutes",
            "minimum": -720,
            "maximum": 840,
            "type": "integer",
            "description": "Your time zone, in minutes east of UTC (London summer = 60, New York = -240). A 21:00 kick-off in Europe is a different calendar day in Sydney, and the day feed is built in the source's own zone, so matches that fall outside your day are trimmed before you are charged.",
            "default": 0
          },
          "leagueIds": {
            "title": "League ids",
            "type": "array",
            "description": "For league and standings mode. The number in a FotMob league URL - 47 is the Premier League. Full URLs work too.",
            "items": {
              "type": "string"
            }
          },
          "season": {
            "title": "Season",
            "type": "string",
            "description": "One season, written the way the source writes it: 2024/2025. Leave empty for the current one. The source honours this parameter - verified, because a parameter that is silently ignored turns seventeen seasons into seventeen copies of this one."
          },
          "allSeasons": {
            "title": "All seasons",
            "type": "boolean",
            "description": "Walk every season the source has for the league instead of the current one. The Premier League has 17, about 380 matches each, so set maxItems.",
            "default": false
          },
          "includeTable": {
            "title": "Add the league table",
            "type": "boolean",
            "description": "In league mode, also write standings rows for the season.",
            "default": false
          },
          "standingTypes": {
            "title": "Which tables",
            "type": "array",
            "description": "The source keeps five tables per league, not one: all, home, away, form and xg (expected goals). A naive parse takes the first and silently loses four.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "home",
                "away",
                "form",
                "xg"
              ],
              "enumTitles": [
                "Overall",
                "Home only",
                "Away only",
                "By recent form",
                "By expected goals"
              ]
            },
            "default": [
              "all"
            ]
          },
          "teamIds": {
            "title": "Team ids",
            "type": "array",
            "description": "For team mode. The number in a FotMob team URL. Full URLs work too.",
            "items": {
              "type": "string"
            }
          },
          "includeSquad": {
            "title": "Add the squad",
            "type": "boolean",
            "description": "In team mode, also write one row per player with position, contract end and club.",
            "default": false
          },
          "playerIds": {
            "title": "Player ids",
            "type": "array",
            "description": "For player mode. The number in a FotMob player URL. Full URLs work too.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Match URLs",
            "type": "array",
            "description": "For match mode. Paste FotMob match links - the id is the number after the # - or bare match ids.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "For search mode. Names of clubs, players or leagues.",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Match card blocks to add",
            "type": "array",
            "description": "The match card is ONE request and carries every block, so asking for nine costs exactly what asking for one costs. stats, lineup, shotmap (shot by shot with expected goals), momentum, playerStats (per-player ratings), h2h, table, liveticker, matchFacts. Blocks the source does not have for a match are left out instead of failing the run.",
            "items": {
              "type": "string",
              "enum": [
                "stats",
                "lineup",
                "shotmap",
                "momentum",
                "playerStats",
                "h2h",
                "table",
                "liveticker",
                "matchFacts"
              ],
              "enumTitles": [
                "Team statistics",
                "Lineups and formations",
                "Shot map with expected goals",
                "Momentum graph",
                "Per-player ratings",
                "Head to head",
                "League table at kick-off",
                "Live text ticker",
                "Events, highlights and insights"
              ]
            },
            "default": []
          },
          "statuses": {
            "title": "Only these match states",
            "type": "array",
            "description": "Keep only matches in these states: upcoming, live, finished, cancelled. Rows with no state, such as standings and players, are never dropped by this.",
            "items": {
              "type": "string"
            }
          },
          "leagueContains": {
            "title": "League name contains",
            "type": "array",
            "description": "Keep only matches whose league name contains one of these words.",
            "items": {
              "type": "string"
            }
          },
          "countryContains": {
            "title": "Country contains",
            "type": "array",
            "description": "Keep only rows whose country or three-letter code contains one of these words.",
            "items": {
              "type": "string"
            }
          },
          "teamContains": {
            "title": "Team name contains",
            "type": "array",
            "description": "Keep only matches where one of the teams matches one of these words.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Upper bound on DELIVERED rows, not on rows crawled. With a filter on, the crawl keeps going until it has this many rows that actually pass, so a small limit plus a narrow filter cannot hand you an empty dataset.",
            "default": 100
          },
          "onlyChanged": {
            "title": "Only what changed since the last run",
            "type": "boolean",
            "description": "Remember delivered rows between runs and write only new ones and ones whose score, state or kick-off time moved. Built for scheduled monitoring: without it a daily run pays for yesterday's results again.",
            "default": false
          },
          "emitUnchanged": {
            "title": "Also emit unchanged rows",
            "type": "boolean",
            "description": "In incremental mode, write unchanged rows too, tagged UNCHANGED.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Memory name",
            "type": "string",
            "description": "Separate memory for separate watches. Two schedules on two leagues should not share one memory."
          },
          "compactOutput": {
            "title": "Compact output",
            "type": "boolean",
            "description": "Drop empty fields from every row. Smaller files and less context for AI agents.",
            "default": false
          },
          "includeRawData": {
            "title": "Include the raw match card",
            "type": "boolean",
            "description": "In match mode, attach the untouched JSON the source returned.",
            "default": false
          },
          "detailConcurrency": {
            "title": "Match cards in parallel",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Eight read a hundred cards without a single rate limit; sixteen was already throttled.",
            "default": 8
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}