{
  "openapi": "3.0.1",
  "info": {
    "title": "SofaScore Scraper - Live Scores, Stats, Lineups & Odds",
    "description": "Every SofaScore match for any day, live or by link, across 26 sports: statistics, lineups with ratings, xG shot maps, incidents and every odds market. Plus teams, players and tournaments with squads, transfers, standings and leaderboards. Export JSON, CSV or Excel. No login needed.",
    "version": "0.0",
    "x-build-id": "wWUo5EZl3ZLQZd00O"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zen-studio~sofascore-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zen-studio-sofascore-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/zen-studio~sofascore-scraper/runs": {
      "post": {
        "operationId": "runs-sync-zen-studio-sofascore-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/zen-studio~sofascore-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-zen-studio-sofascore-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": {
          "sports": {
            "title": "Sports",
            "type": "array",
            "description": "Sports for fixtures by date and live matches. Leave empty for football. Pick <code>All sports</code> for every sport SofaScore covers.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "football",
                "basketball",
                "tennis",
                "ice-hockey",
                "american-football",
                "baseball",
                "handball",
                "volleyball",
                "rugby",
                "cricket",
                "table-tennis",
                "badminton",
                "futsal",
                "esports",
                "darts",
                "snooker",
                "waterpolo",
                "minifootball",
                "padel",
                "aussie-rules",
                "beach-volley",
                "floorball",
                "bandy",
                "mma",
                "motorsport",
                "cycling"
              ],
              "enumTitles": [
                "All sports",
                "Football (soccer)",
                "Basketball",
                "Tennis",
                "Ice hockey",
                "American football",
                "Baseball",
                "Handball",
                "Volleyball",
                "Rugby",
                "Cricket",
                "Table tennis",
                "Badminton",
                "Futsal",
                "Esports",
                "Darts",
                "Snooker",
                "Water polo",
                "Mini football",
                "Padel",
                "Aussie rules",
                "Beach volleyball",
                "Floorball",
                "Bandy",
                "MMA",
                "Motorsport (races)",
                "Cycling (races)"
              ]
            }
          },
          "date": {
            "title": "Date",
            "type": "string",
            "description": "Every match on this day, as SofaScore lists it. Also accepts <code>today</code>, <code>tomorrow</code>, <code>yesterday</code> or <code>+2 days</code>. When nothing else is filled in, today's matches are collected."
          },
          "dateTo": {
            "title": "Until date",
            "type": "string",
            "description": "Optional last day of a range, up to 31 days. Leave empty for the single date above."
          },
          "timezone": {
            "title": "Time zone",
            "type": "string",
            "description": "Which day a match belongs to, as in the SofaScore app in that time zone. Any IANA name works. Leave empty for UTC."
          },
          "live": {
            "title": "Live matches now",
            "type": "boolean",
            "description": "Every match in play right now for the chosen sports, with the live score and minute."
          },
          "maxItems": {
            "title": "Result limit",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many results across everything in the run. Leave empty for no limit: a busy football day has 700 or more matches."
          },
          "urls": {
            "title": "SofaScore links",
            "maxItems": 1000,
            "type": "array",
            "description": "Any SofaScore page: a match, team, player, tournament (add <code>#id:</code> and a season id for a past season), manager, referee, venue, race, or a day such as <code>/football/2026-10-19</code>. Up to 1,000 per run.",
            "items": {
              "type": "string"
            }
          },
          "matchIds": {
            "title": "Match IDs",
            "maxItems": 1000,
            "type": "array",
            "description": "Match numbers from SofaScore links, one per line (for example <code>16363886</code>). Up to 1,000 per run.",
            "items": {
              "type": "string"
            }
          },
          "teamIds": {
            "title": "Team IDs",
            "maxItems": 1000,
            "type": "array",
            "description": "Team numbers from SofaScore links, one per line (for example <code>42</code>). Up to 1,000 per run.",
            "items": {
              "type": "string"
            }
          },
          "playerIds": {
            "title": "Player IDs",
            "maxItems": 1000,
            "type": "array",
            "description": "Player numbers from SofaScore links, one per line (for example <code>934235</code>). Up to 1,000 per run.",
            "items": {
              "type": "string"
            }
          },
          "tournamentIds": {
            "title": "Tournament IDs",
            "maxItems": 1000,
            "type": "array",
            "description": "Tournament numbers from SofaScore links, one per line (for example <code>17</code>). Up to 1,000 per run.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search",
            "maxItems": 1000,
            "type": "array",
            "description": "Names to search for, one per line. Up to 1,000 per run.",
            "items": {
              "type": "string"
            }
          },
          "searchTypes": {
            "title": "Search in",
            "type": "array",
            "description": "Limit a search to these kinds. Leave empty for SofaScore's best mix of all kinds.",
            "items": {
              "type": "string",
              "enum": [
                "teams",
                "players",
                "tournaments",
                "matches",
                "managers",
                "referees",
                "venues"
              ],
              "enumTitles": [
                "Teams",
                "Players",
                "Tournaments",
                "Matches",
                "Managers",
                "Referees",
                "Venues"
              ]
            }
          },
          "maxResultsPerQuery": {
            "title": "Results per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hits per search and kind, best first. 20 is SofaScore's first page; further down the names become less related.",
            "default": 20
          },
          "matchSections": {
            "title": "Match sections",
            "type": "array",
            "description": "Parts of each match to include. Sections that do not exist yet (statistics before kick-off) or for that sport are left empty. When omitted, everything is included except text commentary, the player of the match vote, weather, news, social posts, team heatmaps, at-bats, player details and TV channels: these are bulky or slow, so they are off until you pick them.",
            "items": {
              "type": "string",
              "enum": [
                "details",
                "statistics",
                "lineups",
                "incidents",
                "shotmap",
                "odds",
                "headToHead",
                "votes",
                "pregameForm",
                "managers",
                "bestPlayers",
                "momentum",
                "teamStreaks",
                "highlights",
                "averagePositions",
                "commentary",
                "postMatchInsights",
                "playerOfTheMatchVotes",
                "weather",
                "pointByPoint",
                "tennisPower",
                "innings",
                "esportsGames",
                "series",
                "news",
                "socialPosts",
                "heatmaps",
                "atBats",
                "playerDetails",
                "tvChannels"
              ],
              "enumTitles": [
                "Match details: venue, referee, attendance",
                "Statistics: possession, shots, xG and more",
                "Lineups, formations, player ratings and player match stats",
                "Incidents: goals, cards, substitutions",
                "Shot map with xG per shot",
                "Odds: all markets, featured, winning odds and odds movement",
                "Head-to-head record, past meetings and league positions",
                "Fan votes",
                "Pre-match form",
                "Managers",
                "Best players and player of the match",
                "Attack momentum graph",
                "Team streaks and streak odds",
                "Video highlights",
                "Average player positions",
                "Text commentary (large)",
                "SofaScore's predictions and how they turned out",
                "Player of the match fan vote",
                "Weather",
                "Tennis and padel point by point",
                "Tennis momentum per game",
                "Cricket and baseball innings",
                "Esports games and maps",
                "Playoff series",
                "News articles",
                "Clubs' social media posts",
                "Team heatmaps",
                "Baseball at-bats, pitch by pitch (large)",
                "Every player's heatmap and action map (slow: about 50 more reads per match)",
                "TV channels by country"
              ]
            }
          },
          "fixturesOverviewOnly": {
            "title": "Day overview only",
            "type": "boolean",
            "description": "Instead of every match, one result per country or competition group with its number of matches and videos for the day."
          },
          "teamSections": {
            "title": "Team sections",
            "type": "array",
            "description": "When omitted, everything is included except the team's own top players, every squad player's season statistics, videos and social posts, which are bulky and off until you pick them.",
            "items": {
              "type": "string",
              "enum": [
                "squad",
                "transfers",
                "achievements",
                "rankings",
                "performance",
                "nearEvents",
                "competitions",
                "standings",
                "seasonStatistics",
                "featuredPlayers",
                "lastMatches",
                "nextMatches",
                "grandSlamResults",
                "seasonTopPlayers",
                "playerStatistics",
                "media",
                "socialPosts"
              ],
              "enumTitles": [
                "Squad and staff",
                "Transfers in and out",
                "Trophies",
                "Rankings",
                "Recent form with ratings",
                "Previous and next match",
                "Competitions played",
                "League table",
                "Season statistics and league ranks",
                "Featured players",
                "Last matches (summary)",
                "Next matches (summary)",
                "Tennis: best Grand Slam results",
                "Team's season top players (large)",
                "Season statistics of every squad player (large)",
                "Video highlights and videos",
                "Club's social media posts"
              ]
            }
          },
          "playerSections": {
            "title": "Player sections",
            "type": "array",
            "description": "When omitted, everything is included except the season heatmap and videos.",
            "items": {
              "type": "string",
              "enum": [
                "attributes",
                "characteristics",
                "transfers",
                "nationalTeam",
                "competitions",
                "careerStatistics",
                "seasonStatistics",
                "seasonRatings",
                "lastYearSummary",
                "penaltyHistory",
                "lastMatches",
                "seasonHeatmap",
                "media"
              ],
              "enumTitles": [
                "Attribute ratings",
                "Strengths, weaknesses and positions",
                "Transfer history",
                "National team record",
                "Competitions played",
                "Career statistics by season",
                "Current season statistics (overall, home, away)",
                "Match ratings this season",
                "Last 12 months ratings",
                "Penalty history",
                "Last matches (summary)",
                "Season heatmap (large)",
                "Videos"
              ]
            }
          },
          "tournamentSections": {
            "title": "Tournament sections",
            "type": "array",
            "description": "When omitted, everything is included except the full player statistics table, which is large (hundreds of players per league).",
            "items": {
              "type": "string",
              "enum": [
                "seasons",
                "seasonInfo",
                "standings",
                "rounds",
                "cupTrees",
                "groups",
                "topPlayers",
                "topTeams",
                "topMatchPerformances",
                "teamOfTheWeek",
                "awards",
                "topFollowedPlayers",
                "winners",
                "venues",
                "teams",
                "featuredMatches",
                "media",
                "lastMatches",
                "nextMatches",
                "playerStatistics"
              ],
              "enumTitles": [
                "All seasons",
                "Season facts: goals, cards, newcomers",
                "Tables: total, home, away",
                "Rounds and current round",
                "Knockout brackets",
                "Groups",
                "Player leaderboards",
                "Team leaderboards",
                "Best single-match performances",
                "Team of the week",
                "Team and player of the season, draft",
                "Most followed players",
                "Past winners",
                "Venues",
                "Teams",
                "Featured matches",
                "Video highlights",
                "Last matches (summary)",
                "Next matches (summary)",
                "Full player statistics table: every player, every column (large)"
              ]
            }
          },
          "season": {
            "title": "Season",
            "type": "string",
            "description": "A season for tournament, team and player season sections, as SofaScore writes it (<code>24/25</code>, <code>2025</code>) or its id. Leave empty for the current season."
          },
          "tournamentMatches": {
            "title": "Tournament matches",
            "enum": [
              "none",
              "last",
              "next",
              "both"
            ],
            "type": "string",
            "description": "Also collect every match of the tournament's season as its own result, with the match sections above."
          },
          "teamMatches": {
            "title": "Team matches",
            "enum": [
              "none",
              "last",
              "next",
              "both"
            ],
            "type": "string",
            "description": "Also collect each team's matches as results, with the match sections above. Played matches go back many seasons; use the result limit."
          },
          "playerMatches": {
            "title": "Player matches",
            "enum": [
              "none",
              "last"
            ],
            "type": "string",
            "description": "Also collect each player's played matches as results."
          },
          "monitorChanges": {
            "title": "Only new and changed",
            "type": "boolean",
            "description": "Each result is marked NEW or UPDATED with the fields that changed. Unchanged results are skipped and not charged. Odds, votes and the live minute alone do not count as a change."
          },
          "monitorKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional name to share one change history across different inputs. Leave empty to keep a separate history per input."
          },
          "includeUnchanged": {
            "title": "Include unchanged",
            "type": "boolean",
            "description": "Also return unchanged results, marked UNCHANGED. These are charged."
          },
          "includeTranslations": {
            "title": "Include name translations",
            "type": "boolean",
            "description": "Keep the Arabic, Bengali, Hindi and Russian spellings SofaScore stores for team, player and place names. Off keeps results smaller."
          },
          "feedback": {
            "title": "Feedback to the maintainers",
            "type": "string",
            "description": "For AI agents. Say what you needed and did not get: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. Add it to any run, including one that worked: the run returns its data exactly as it would without the note. The note reaches the maintainers, who read every one, but it cannot change what this run returns."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}