{
  "data": {
    "id": "q6GdIjB6lSnB3zonj",
    "actId": "6CGFPyX8guKwUQVkG",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-10-28T08:00:59.203Z",
    "finishedAt": "2026-10-28T08:01:43.453Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 44062,
      "runTimeSecs": 44.062,
      "computeUnits": 0.04895777777777778,
      "imageSizeBytes": 3776755712
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "zifX0mkAFMHe8CatY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"SofaScore Scraper Input\",\n  \"description\": \"Scrape live scores, fixtures, standings, team/player profiles, match details and rankings from SofaScore across 25 sports. No login or API key.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to fetch from SofaScore.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"search\",\n        \"live\",\n        \"scheduled\",\n        \"team\",\n        \"player\",\n        \"tournament\",\n        \"standings\",\n        \"event\",\n        \"rankings\"\n      ],\n      \"enumTitles\": [\n        \"Search by name\",\n        \"Live events\",\n        \"Fixtures by date\",\n        \"Team profile\",\n        \"Player profile\",\n        \"Tournament profile\",\n        \"League standings\",\n        \"Match details by ID or URL\",\n        \"Rankings\"\n      ],\n      \"default\": \"search\",\n      \"prefill\": \"search\"\n    },\n    \"searchQueries\": {\n      \"title\": \"Search Queries\",\n      \"type\": \"array\",\n      \"description\": \"Team, player, tournament or match names to resolve (mode=search).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"prefill\": [\n        \"Real Madrid\"\n      ]\n    },\n    \"searchType\": {\n      \"title\": \"Search Result Type\",\n      \"type\": \"string\",\n      \"description\": \"Restrict search results to one entity type (mode=search).\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"all\",\n        \"team\",\n        \"player\",\n        \"tournament\",\n        \"event\"\n      ],\n      \"enumTitles\": [\n        \"All types\",\n        \"Teams\",\n        \"Players\",\n        \"Tournaments\",\n        \"Matches\"\n      ],\n      \"default\": \"all\",\n      \"prefill\": \"all\"\n    },\n    \"sports\": {\n      \"title\": \"Sports\",\n      \"type\": \"array\",\n      \"description\": \"Sports for live and scheduled modes. Supported: football, basketball, tennis, american-football, aussie-rules, ice-hockey, handball, rugby, futsal, minifootball, floorball, volleyball, badminton, table-tennis, padel, snooker, baseball, cricket, esports, darts, mma, cycling, motorsport, waterpolo, bandy.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [\n        \"football\"\n      ],\n      \"prefill\": [\n        \"football\"\n      ]\n    },\n    \"date\": {\n      \"title\": \"Date\",\n      \"type\": \"string\",\n      \"description\": \"Start date for fixtures (mode=scheduled), format YYYY-MM-DD. Defaults to today UTC.\",\n      \"editor\": \"datepicker\"\n    },\n    \"daysAhead\": {\n      \"title\": \"Days Ahead\",\n      \"type\": \"integer\",\n      \"description\": \"Number of extra days after Date to include (mode=scheduled).\",\n      \"minimum\": 0,\n      \"maximum\": 31,\n      \"default\": 0,\n      \"prefill\": 0\n    },\n    \"teamIds\": {\n      \"title\": \"Team IDs or URLs\",\n      \"type\": \"array\",\n      \"description\": \"SofaScore team IDs or team page URLs (mode=team).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"playerIds\": {\n      \"title\": \"Player IDs or URLs\",\n      \"type\": \"array\",\n      \"description\": \"SofaScore player IDs or player page URLs (mode=player).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"tournamentIds\": {\n      \"title\": \"Tournament IDs or URLs\",\n      \"type\": \"array\",\n      \"description\": \"SofaScore unique-tournament IDs or tournament page URLs (modes tournament, standings).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"eventIds\": {\n      \"title\": \"Match IDs or URLs\",\n      \"type\": \"array\",\n      \"description\": \"SofaScore match IDs or match page URLs (mode=event).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"seasonId\": {\n      \"title\": \"Season ID\",\n      \"type\": \"integer\",\n      \"description\": \"Optional season ID for standings or tournament mode. If omitted, the latest season with a table is used.\",\n      \"minimum\": 1\n    },\n    \"tableType\": {\n      \"title\": \"Table Type\",\n      \"type\": \"string\",\n      \"description\": \"Standings table to fetch (modes standings, tournament).\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"total\",\n        \"home\",\n        \"away\"\n      ],\n      \"enumTitles\": [\n        \"Overall\",\n        \"Home\",\n        \"Away\"\n      ],\n      \"default\": \"total\",\n      \"prefill\": \"total\"\n    },\n    \"rankingType\": {\n      \"title\": \"Ranking Type\",\n      \"type\": \"string\",\n      \"description\": \"Ranking table to fetch (mode=rankings).\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"uefa-countries\",\n        \"fifa\",\n        \"rugby-union\",\n        \"rugby-league\",\n        \"atp\",\n        \"wta\",\n        \"atp-live\",\n        \"wta-live\",\n        \"uefa-clubs\",\n        \"ufc-flyweight\",\n        \"ufc-bantamweight\",\n        \"ufc-featherweight\",\n        \"ufc-lightweight\",\n        \"ufc-welterweight\",\n        \"ufc-middleweight\",\n        \"ufc-light-heavyweight\",\n        \"ufc-heavyweight\",\n        \"ufc-womens-strawweight\",\n        \"ufc-womens-flyweight\",\n        \"ufc-womens-bantamweight\",\n        \"ufc-womens-featherweight\",\n        \"utr-men\",\n        \"utr-women\",\n        \"fip-men\",\n        \"fip-women\",\n        \"fnc-bantamweight\",\n        \"fnc-featherweight\",\n        \"fnc-lightweight\",\n        \"fnc-welterweight\",\n        \"fnc-middleweight\",\n        \"fnc-light-heavyweight\"\n      ],\n      \"enumTitles\": [\n        \"UEFA Countries\",\n        \"FIFA Rankings\",\n        \"Rugby Union Rankings\",\n        \"Rugby League Rankings\",\n        \"ATP Rankings\",\n        \"WTA Rankings\",\n        \"ATP Rankings Live\",\n        \"WTA Rankings Live\",\n        \"UEFA Clubs\",\n        \"UFC Flyweight\",\n        \"UFC Bantamweight\",\n        \"UFC Featherweight\",\n        \"UFC Lightweight\",\n        \"UFC Welterweight\",\n        \"UFC Middleweight\",\n        \"UFC Light Heavyweight\",\n        \"UFC Heavyweight\",\n        \"UFC Women's Strawweight\",\n        \"UFC Women's Flyweight\",\n        \"UFC Women's Bantamweight\",\n        \"UFC Women's Featherweight\",\n        \"UTR Men\",\n        \"UTR Women\",\n        \"FIP Ranking Men\",\n        \"FIP Ranking Women\",\n        \"FNC Bantamweight\",\n        \"FNC Featherweight\",\n        \"FNC Lightweight\",\n        \"FNC Welterweight\",\n        \"FNC Middleweight\",\n        \"FNC Light Heavyweight\"\n      ],\n      \"default\": \"fifa\",\n      \"prefill\": \"fifa\"\n    },\n    \"includeStatistics\": {\n      \"title\": \"Include Statistics\",\n      \"type\": \"boolean\",\n      \"description\": \"Add team and player statistics to match records.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"includeLineups\": {\n      \"title\": \"Include Lineups\",\n      \"type\": \"boolean\",\n      \"description\": \"Add lineups, formations and player ratings to match records.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"includeIncidents\": {\n      \"title\": \"Include Incidents\",\n      \"type\": \"boolean\",\n      \"description\": \"Add goals, cards and substitutions to match records.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"includeOdds\": {\n      \"title\": \"Include Odds\",\n      \"type\": \"boolean\",\n      \"description\": \"Add pre-match odds markets to match records.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeVotes\": {\n      \"title\": \"Include Votes\",\n      \"type\": \"boolean\",\n      \"description\": \"Add crowd prediction polls to match records.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeH2h\": {\n      \"title\": \"Include Head-to-Head\",\n      \"type\": \"boolean\",\n      \"description\": \"Add head-to-head win/draw tallies to match records.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeAdvanced\": {\n      \"title\": \"Include Advanced Match Data\",\n      \"type\": \"boolean\",\n      \"description\": \"Add shotmap, momentum, average positions, best players, win probability, managers, streaks and pre-game form.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeComments\": {\n      \"title\": \"Include Commentary\",\n      \"type\": \"boolean\",\n      \"description\": \"Add the text commentary feed to match records. This is a large payload.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeSquad\": {\n      \"title\": \"Include Squad\",\n      \"type\": \"boolean\",\n      \"description\": \"Add the full squad to team records (mode=team).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includePlayerStats\": {\n      \"title\": \"Include Player Statistics\",\n      \"type\": \"boolean\",\n      \"description\": \"Add per-competition season statistics to player records (mode=player).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeStandings\": {\n      \"title\": \"Include Standings\",\n      \"type\": \"boolean\",\n      \"description\": \"Add the league table to tournament records (mode=tournament).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeEvents\": {\n      \"title\": \"Include Team Events\",\n      \"type\": \"boolean\",\n      \"description\": \"Add recent and upcoming events to team records (mode=team).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"maxItems\": {\n      \"title\": \"Max Items\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of records to return. 0 means no user limit (hard cap 10,000).\",\n      \"minimum\": 0,\n      \"maximum\": 10000,\n      \"default\": 50,\n      \"prefill\": 3\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# SofaScore Live Scores, Standings & Match Data\n\nScrape **SofaScore** live scores, fixtures, league tables, team and player profiles, match statistics, lineups, odds and rankings across 25 sports. Search by name, paste SofaScore URLs, or pull every live and scheduled match. No login, API key or proxy setup.\n\n## What this actor does\n\n- **Nine ways in:** search by name, live events, fixtures by date, team profile, player profile, tournament profile, standings, match detail by ID/URL, and rankings.\n- **25 sports:** football, basketball, tennis, ice hockey, cricket, MMA, esports, volleyball, handball, rugby, and more.\n- **Match depth on demand:** statistics, lineups with ratings, incidents, odds, crowd votes, head-to-head, shotmap, momentum, average positions, best players, win probability, managers, streaks and commentary.\n- **Team and player data:** squad lists, manager, venue, market value, contract, nationality and per-competition season statistics.\n- **Leagues and rankings:** overall, home and away tables, group tables, FIFA, UEFA, ATP, WTA, UTR, FIP, rugby, UFC and FNC rankings.\n- **Empty fields are omitted** — a field SofaScore does not publish for a record is left out, never filled with `null` or a placeholder.\n\n## Output per record\n\nEvery row has a `recordType`, a `sofascoreUrl` where one exists, and `scrapedAt`.\n\n### `recordType: \"event\"`\n\n- `eventId`, `slug`, `sport`, `startTime`, `startTimestamp`, `status`, `statusCode`, `statusDescription`, `winnerCode`\n- `homeTeam` / `awayTeam` — id, name, slug, shortName, nameCode, logoUrl, teamColors, countryCode, manager\n- `homeScore` / `awayScore`, `currentPeriod`, `matchTime`\n- `tournamentName`, `tournamentId`, `uniqueTournamentId`, `uniqueTournamentName`, `categoryName`, `country`, `countryCode`\n- `seasonName`, `seasonId`, `seasonYear`, `round`, `roundName`\n- `venue`, `city`, `venueCapacity`, `venueCoordinates`, `referee`, `refereeCountry`, `attendance`\n- `hasStatistics`, `hasXg`, `hasHighlights`\n- Optional: `statistics`, `lineups`, `incidents`, `odds`, `votes`, `h2h`, `advanced` (shotmap, momentum, average positions, best players, win probability, managers, team streaks, pre-game form), `comments`\n\n### `recordType: \"team\"`\n\n- `teamId`, `name`, `slug`, `shortName`, `fullName`, `nameCode`, `sport`\n- `country`, `countryCode`, `category`, `tournamentId`, `tournamentName`, `uniqueTournamentId`\n- `manager`, `managerCountry`, `venue`, `venueCapacity`, `venueCity`, `foundationDate`\n- `teamColors`, `userCount`, `national`, `gender`, `class`, `primaryTournament`, `pregameForm`\n- Optional: `squad`, `events`\n\n### `recordType: \"player\"`\n\n- `playerId`, `name`, `slug`, `shortName`, `position`, `positionsDetailed`, `jerseyNumber`, `height`, `preferredFoot`\n- `dateOfBirth`, `country`, `countryCode`, `teamId`, `teamName`\n- `marketValue`, `marketValueCurrency`, `contractUntil`, `userCount`, `sofascoreId`, `gender`\n- Optional: `statistics` (per competition and season)\n\n### `recordType: \"standingsRow\"`\n\n- `teamId`, `teamName`, `teamSlug`, `teamLogoUrl`, `teamCountryCode`\n- `position`, `wins`, `draws`, `losses`, `points`, `gamesPlayed`, `goalsFor`, `goalsAgainst`, `goalDifference`\n- `tournamentName`, `tournamentId`, `seasonName`, `seasonId`, `groupName`, `tableType`, `promotion`, `avgRating`\n\n### `recordType: \"tournament\"`\n\n- `tournamentId`, `name`, `slug`, `sport`, `category`, `country`, `countryCode`, `userCount`\n- `seasons`, `standings` (when requested), `currentRound` (when standings are requested)\n\n### `recordType: \"searchResult\"`\n\n- `type`, `id`, `name`, `slug`, `sport`, `sportSlug`, `country`, `countryCode`\n- `score`, `teamColors`, `imageUrl`, `teamId`, `playerId`, `tournamentId`, `eventId`\n- Event fields when the result is a match; position, shirt number and market value when it is a player.\n\n### `recordType: \"rankingRow\"`\n\n- `rankingTypeId`, `rankingTypeName`, `position`, `previousPosition`, `bestPosition`\n- `id`, `name`, `teamId`, `teamName`, `teamSlug`, `country`, `countryCode`\n- `points`, `previousPoints`, `year`, `tournamentsPlayed`, `playingTeams`, `totalTeams`, `updatedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `search` | `search`, `live`, `scheduled`, `team`, `player`, `tournament`, `standings`, `event`, `rankings` |\n| `searchQueries` | array | – | Names to resolve (mode=search) |\n| `searchType` | string | `all` | `all`, `team`, `player`, `tournament`, `event` |\n| `sports` | array | `[\"football\"]` | Sports for live/scheduled modes |\n| `date` | string | – | Start date for fixtures, `YYYY-MM-DD`; defaults to today UTC (mode=scheduled) |\n| `daysAhead` | integer | `0` | Extra days after `date` (0–31) |\n| `teamIds` | array | – | Team IDs or URLs (mode=team) |\n| `playerIds` | array | – | Player IDs or URLs (mode=player) |\n| `tournamentIds` | array | – | Tournament IDs or URLs (modes tournament, standings) |\n| `eventIds` | array | – | Match IDs or URLs (mode=event) |\n| `seasonId` | integer | – | Optional season for standings/tournament |\n| `tableType` | string | `total` | `total`, `home`, `away` |\n| `rankingType` | string | `fifa` | FIFA, UEFA, ATP, WTA, UTR, FIP, rugby, UFC or FNC table. SofaScore publishes at most 500 rows per table. |\n| `includeStatistics` | boolean | `true` | Match statistics |\n| `includeLineups` | boolean | `true` | Lineups and player ratings |\n| `includeIncidents` | boolean | `true` | Goals, cards and substitutions |\n| `includeOdds` | boolean | `false` | Pre-match odds markets |\n| `includeVotes` | boolean | `false` | Crowd prediction polls |\n| `includeH2h` | boolean | `false` | Head-to-head tallies |\n| `includeAdvanced` | boolean | `false` | Shotmap, momentum, positions, best players, win probability, managers, streaks, pre-game form |\n| `includeComments` | boolean | `false` | Text commentary (large payload) |\n| `includeSquad` | boolean | `false` | Full squad on team records |\n| `includePlayerStats` | boolean | `false` | Per-competition season stats on player records |\n| `includeStandings` | boolean | `false` | League table on tournament records |\n| `includeEvents` | boolean | `false` | Recent/upcoming events on team records |\n| `maxItems` | integer | `50` | Record cap; `0` means no user limit (hard cap 10,000) |\n\n### Example: live football and basketball\n\n```json\n{\n  \"mode\": \"live\",\n  \"sports\": [\"football\", \"basketball\"],\n  \"maxItems\": 30\n}\n```\n\n### Example: a day of fixtures\n\n```json\n{\n  \"mode\": \"scheduled\",\n  \"sports\": [\"football\", \"tennis\"],\n  \"date\": \"2026-10-28\",\n  \"daysAhead\": 1,\n  \"maxItems\": 100\n}\n```\n\n### Example: a match with all detail\n\n```json\n{\n  \"mode\": \"event\",\n  \"eventIds\": [\"13981670\"],\n  \"includeStatistics\": true,\n  \"includeLineups\": true,\n  \"includeIncidents\": true,\n  \"includeOdds\": true,\n  \"includeH2h\": true,\n  \"includeAdvanced\": true\n}\n```\n\n### Example: Premier League table\n\n```json\n{\n  \"mode\": \"standings\",\n  \"tournamentIds\": [\"17\"],\n  \"seasonId\": 76986,\n  \"tableType\": \"total\",\n  \"maxItems\": 30\n}\n```\n\n### Example: FIFA rankings\n\n```json\n{\n  \"mode\": \"rankings\",\n  \"rankingType\": \"fifa\",\n  \"maxItems\": 200\n}\n```\n\n## Use cases\n\n- **Live scoreboards** — poll live matches and push score/status updates to a dashboard or alerting pipeline.\n- **Fixture calendars** — build daily or multi-day schedules across several sports.\n- **Betting research** — combine odds, votes, head-to-head and match statistics in one row per game.\n- **Team and player scouting** — pull squads, market values, contracts and season statistics.\n- **League monitoring** — track overall, home and away tables over time.\n- **Ranking trackers** — follow FIFA, UEFA, ATP, WTA, UTR, FIP, rugby and UFC standings.\n\n## FAQ\n\n### Do I need a SofaScore account, API key or proxy?\n\nNo. The actor handles access automatically and needs no login, API key or proxy setup.\n\n### Which sports are supported?\n\nFootball, basketball, tennis, American football, Australian rules, ice hockey, handball, rugby, futsal, minifootball, floorball, volleyball, badminton, table tennis, padel, snooker, baseball, cricket, esports, darts, MMA, cycling, motorsport, water polo and bandy. Live coverage varies by time of day.\n\n### Why does `live` return no rows?\n\nThere may simply be no match in progress for the selected sports. Use `scheduled` with today's date or `search` to confirm a team exists.\n\n### How do I find a team, player or tournament ID?\n\nRun `mode=search` with the name and use the `id` from the result, or paste the SofaScore page URL directly into `teamIds`, `playerIds`, `tournamentIds` or `eventIds`.\n\n### Why do ranking tables stop at 500 rows?\n\nSofaScore publishes at most 500 rows per ranking table, so `maxItems` above 500 cannot add more. A row's `position` is its place in that table.\n\n### Why are some fields missing?\n\nSofaScore does not publish every field for every match, competition or sport. Missing fields are omitted; they are not replaced with nulls or placeholders.\n\n### Are scores live?\n\n`live` returns the current score and status at the moment the actor runs. It polls SofaScore; it is not a push/streaming feed.\n\n### Can I get historical fixtures?\n\nYes. Use `scheduled` with a past `date` and `daysAhead: 0`.\n\n### Why do season IDs change?\n\nSofaScore creates a new season ID each year. The actor resolves the latest season automatically for standings and tournaments; pass `seasonId` only when you need a specific historical season.\n\n### Is this affiliated with SofaScore?\n\nNo. This is an independent third-party actor that reads publicly available SofaScore data. It is not affiliated with, endorsed by or sponsored by SofaScore.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "sofascore-live-scores-standings-and-team-search",
      "title": "SofaScore Live Scores, Standings & Match Data",
      "description": "Get SofaScore live scores, fixtures, standings, team/player profiles, lineups, stats, odds and rankings across 25 sports. Search by name or paste URLs. No login or API key.",
      "version": "1.1",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# SofaScore Live Scores, Standings & Match Data\n\nScrape **SofaScore** live scores, fixtures, league tables, team and player profiles, match statistics, lineups, odds and rankings across 25 sports. Search by name, paste SofaScore URLs, or pull every live and scheduled match. No login, API key or proxy setup.\n\n## What this actor does\n\n- **Nine ways in:** search by name, live events, fixtures by date, team profile, player profile, tournament profile, standings, match detail by ID/URL, and rankings.\n- **25 sports:** football, basketball, tennis, ice hockey, cricket, MMA, esports, volleyball, handball, rugby, and more.\n- **Match depth on demand:** statistics, lineups with ratings, incidents, odds, crowd votes, head-to-head, shotmap, momentum, average positions, best players, win probability, managers, streaks and commentary.\n- **Team and player data:** squad lists, manager, venue, market value, contract, nationality and per-competition season statistics.\n- **Leagues and rankings:** overall, home and away tables, group tables, FIFA, UEFA, ATP, WTA, UTR, FIP, rugby, UFC and FNC rankings.\n- **Empty fields are omitted** — a field SofaScore does not publish for a record is left out, never filled with `null` or a placeholder.\n\n## Output per record\n\nEvery row has a `recordType`, a `sofascoreUrl` where one exists, and `scrapedAt`.\n\n### `recordType: \"event\"`\n\n- `eventId`, `slug`, `sport`, `startTime`, `startTimestamp`, `status`, `statusCode`, `statusDescription`, `winnerCode`\n- `homeTeam` / `awayTeam` — id, name, slug, shortName, nameCode, logoUrl, teamColors, countryCode, manager\n- `homeScore` / `awayScore`, `currentPeriod`, `matchTime`\n- `tournamentName`, `tournamentId`, `uniqueTournamentId`, `uniqueTournamentName`, `categoryName`, `country`, `countryCode`\n- `seasonName`, `seasonId`, `seasonYear`, `round`, `roundName`\n- `venue`, `city`, `venueCapacity`, `venueCoordinates`, `referee`, `refereeCountry`, `attendance`\n- `hasStatistics`, `hasXg`, `hasHighlights`\n- Optional: `statistics`, `lineups`, `incidents`, `odds`, `votes`, `h2h`, `advanced` (shotmap, momentum, average positions, best players, win probability, managers, team streaks, pre-game form), `comments`\n\n### `recordType: \"team\"`\n\n- `teamId`, `name`, `slug`, `shortName`, `fullName`, `nameCode`, `sport`\n- `country`, `countryCode`, `category`, `tournamentId`, `tournamentName`, `uniqueTournamentId`\n- `manager`, `managerCountry`, `venue`, `venueCapacity`, `venueCity`, `foundationDate`\n- `teamColors`, `userCount`, `national`, `gender`, `class`, `primaryTournament`, `pregameForm`\n- Optional: `squad`, `events`\n\n### `recordType: \"player\"`\n\n- `playerId`, `name`, `slug`, `shortName`, `position`, `positionsDetailed`, `jerseyNumber`, `height`, `preferredFoot`\n- `dateOfBirth`, `country`, `countryCode`, `teamId`, `teamName`\n- `marketValue`, `marketValueCurrency`, `contractUntil`, `userCount`, `sofascoreId`, `gender`\n- Optional: `statistics` (per competition and season)\n\n### `recordType: \"standingsRow\"`\n\n- `teamId`, `teamName`, `teamSlug`, `teamLogoUrl`, `teamCountryCode`\n- `position`, `wins`, `draws`, `losses`, `points`, `gamesPlayed`, `goalsFor`, `goalsAgainst`, `goalDifference`\n- `tournamentName`, `tournamentId`, `seasonName`, `seasonId`, `groupName`, `tableType`, `promotion`, `avgRating`\n\n### `recordType: \"tournament\"`\n\n- `tournamentId`, `name`, `slug`, `sport`, `category`, `country`, `countryCode`, `userCount`\n- `seasons`, `standings` (when requested), `currentRound` (when standings are requested)\n\n### `recordType: \"searchResult\"`\n\n- `type`, `id`, `name`, `slug`, `sport`, `sportSlug`, `country`, `countryCode`\n- `score`, `teamColors`, `imageUrl`, `teamId`, `playerId`, `tournamentId`, `eventId`\n- Event fields when the result is a match; position, shirt number and market value when it is a player.\n\n### `recordType: \"rankingRow\"`\n\n- `rankingTypeId`, `rankingTypeName`, `position`, `previousPosition`, `bestPosition`\n- `id`, `name`, `teamId`, `teamName`, `teamSlug`, `country`, `countryCode`\n- `points`, `previousPoints`, `year`, `tournamentsPlayed`, `playingTeams`, `totalTeams`, `updatedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `search` | `search`, `live`, `scheduled`, `team`, `player`, `tournament`, `standings`, `event`, `rankings` |\n| `searchQueries` | array | – | Names to resolve (mode=search) |\n| `searchType` | string | `all` | `all`, `team`, `player`, `tournament`, `event` |\n| `sports` | array | `[\"football\"]` | Sports for live/scheduled modes |\n| `date` | string | – | Start date for fixtures, `YYYY-MM-DD`; defaults to today UTC (mode=scheduled) |\n| `daysAhead` | integer | `0` | Extra days after `date` (0–31) |\n| `teamIds` | array | – | Team IDs or URLs (mode=team) |\n| `playerIds` | array | – | Player IDs or URLs (mode=player) |\n| `tournamentIds` | array | – | Tournament IDs or URLs (modes tournament, standings) |\n| `eventIds` | array | – | Match IDs or URLs (mode=event) |\n| `seasonId` | integer | – | Optional season for standings/tournament |\n| `tableType` | string | `total` | `total`, `home`, `away` |\n| `rankingType` | string | `fifa` | FIFA, UEFA, ATP, WTA, UTR, FIP, rugby, UFC or FNC table. SofaScore publishes at most 500 rows per table. |\n| `includeStatistics` | boolean | `true` | Match statistics |\n| `includeLineups` | boolean | `true` | Lineups and player ratings |\n| `includeIncidents` | boolean | `true` | Goals, cards and substitutions |\n| `includeOdds` | boolean | `false` | Pre-match odds markets |\n| `includeVotes` | boolean | `false` | Crowd prediction polls |\n| `includeH2h` | boolean | `false` | Head-to-head tallies |\n| `includeAdvanced` | boolean | `false` | Shotmap, momentum, positions, best players, win probability, managers, streaks, pre-game form |\n| `includeComments` | boolean | `false` | Text commentary (large payload) |\n| `includeSquad` | boolean | `false` | Full squad on team records |\n| `includePlayerStats` | boolean | `false` | Per-competition season stats on player records |\n| `includeStandings` | boolean | `false` | League table on tournament records |\n| `includeEvents` | boolean | `false` | Recent/upcoming events on team records |\n| `maxItems` | integer | `50` | Record cap; `0` means no user limit (hard cap 10,000) |\n\n### Example: live football and basketball\n\n```json\n{\n  \"mode\": \"live\",\n  \"sports\": [\"football\", \"basketball\"],\n  \"maxItems\": 30\n}\n```\n\n### Example: a day of fixtures\n\n```json\n{\n  \"mode\": \"scheduled\",\n  \"sports\": [\"football\", \"tennis\"],\n  \"date\": \"2026-10-28\",\n  \"daysAhead\": 1,\n  \"maxItems\": 100\n}\n```\n\n### Example: a match with all detail\n\n```json\n{\n  \"mode\": \"event\",\n  \"eventIds\": [\"13981670\"],\n  \"includeStatistics\": true,\n  \"includeLineups\": true,\n  \"includeIncidents\": true,\n  \"includeOdds\": true,\n  \"includeH2h\": true,\n  \"includeAdvanced\": true\n}\n```\n\n### Example: Premier League table\n\n```json\n{\n  \"mode\": \"standings\",\n  \"tournamentIds\": [\"17\"],\n  \"seasonId\": 76986,\n  \"tableType\": \"total\",\n  \"maxItems\": 30\n}\n```\n\n### Example: FIFA rankings\n\n```json\n{\n  \"mode\": \"rankings\",\n  \"rankingType\": \"fifa\",\n  \"maxItems\": 200\n}\n```\n\n## Use cases\n\n- **Live scoreboards** — poll live matches and push score/status updates to a dashboard or alerting pipeline.\n- **Fixture calendars** — build daily or multi-day schedules across several sports.\n- **Betting research** — combine odds, votes, head-to-head and match statistics in one row per game.\n- **Team and player scouting** — pull squads, market values, contracts and season statistics.\n- **League monitoring** — track overall, home and away tables over time.\n- **Ranking trackers** — follow FIFA, UEFA, ATP, WTA, UTR, FIP, rugby and UFC standings.\n\n## FAQ\n\n### Do I need a SofaScore account, API key or proxy?\n\nNo. The actor handles access automatically and needs no login, API key or proxy setup.\n\n### Which sports are supported?\n\nFootball, basketball, tennis, American football, Australian rules, ice hockey, handball, rugby, futsal, minifootball, floorball, volleyball, badminton, table tennis, padel, snooker, baseball, cricket, esports, darts, MMA, cycling, motorsport, water polo and bandy. Live coverage varies by time of day.\n\n### Why does `live` return no rows?\n\nThere may simply be no match in progress for the selected sports. Use `scheduled` with today's date or `search` to confirm a team exists.\n\n### How do I find a team, player or tournament ID?\n\nRun `mode=search` with the name and use the `id` from the result, or paste the SofaScore page URL directly into `teamIds`, `playerIds`, `tournamentIds` or `eventIds`.\n\n### Why do ranking tables stop at 500 rows?\n\nSofaScore publishes at most 500 rows per ranking table, so `maxItems` above 500 cannot add more. A row's `position` is its place in that table.\n\n### Why are some fields missing?\n\nSofaScore does not publish every field for every match, competition or sport. Missing fields are omitted; they are not replaced with nulls or placeholders.\n\n### Are scores live?\n\n`live` returns the current score and status at the moment the actor runs. It polls SofaScore; it is not a push/streaming feed.\n\n### Can I get historical fixtures?\n\nYes. Use `scheduled` with a past `date` and `daysAhead: 0`.\n\n### Why do season IDs change?\n\nSofaScore creates a new season ID each year. The actor resolves the latest season automatically for standings and tournaments; pass `seasonId` only when you need a specific historical season.\n\n### Is this affiliated with SofaScore?\n\nNo. This is an independent third-party actor that reads publicly available SofaScore data. It is not affiliated with, endorsed by or sponsored by SofaScore.\n",
      "input": {
        "title": "SofaScore Scraper Input",
        "description": "Scrape live scores, fixtures, standings, team/player profiles, match details and rankings from SofaScore across 25 sports. No login or API key.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to fetch from SofaScore.",
            "editor": "select",
            "enum": [
              "search",
              "live",
              "scheduled",
              "team",
              "player",
              "tournament",
              "standings",
              "event",
              "rankings"
            ],
            "enumTitles": [
              "Search by name",
              "Live events",
              "Fixtures by date",
              "Team profile",
              "Player profile",
              "Tournament profile",
              "League standings",
              "Match details by ID or URL",
              "Rankings"
            ],
            "default": "search",
            "prefill": "search"
          },
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "Team, player, tournament or match names to resolve (mode=search).",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "prefill": [
              "Real Madrid"
            ]
          },
          "searchType": {
            "title": "Search Result Type",
            "type": "string",
            "description": "Restrict search results to one entity type (mode=search).",
            "editor": "select",
            "enum": [
              "all",
              "team",
              "player",
              "tournament",
              "event"
            ],
            "enumTitles": [
              "All types",
              "Teams",
              "Players",
              "Tournaments",
              "Matches"
            ],
            "default": "all",
            "prefill": "all"
          },
          "sports": {
            "title": "Sports",
            "type": "array",
            "description": "Sports for live and scheduled modes. Supported: football, basketball, tennis, american-football, aussie-rules, ice-hockey, handball, rugby, futsal, minifootball, floorball, volleyball, badminton, table-tennis, padel, snooker, baseball, cricket, esports, darts, mma, cycling, motorsport, waterpolo, bandy.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [
              "football"
            ],
            "prefill": [
              "football"
            ]
          },
          "date": {
            "title": "Date",
            "type": "string",
            "description": "Start date for fixtures (mode=scheduled), format YYYY-MM-DD. Defaults to today UTC.",
            "editor": "datepicker"
          },
          "daysAhead": {
            "title": "Days Ahead",
            "type": "integer",
            "description": "Number of extra days after Date to include (mode=scheduled).",
            "minimum": 0,
            "maximum": 31,
            "default": 0,
            "prefill": 0
          },
          "teamIds": {
            "title": "Team IDs or URLs",
            "type": "array",
            "description": "SofaScore team IDs or team page URLs (mode=team).",
            "editor": "stringList",
            "items": {
              "type": "string"
            }
          },
          "playerIds": {
            "title": "Player IDs or URLs",
            "type": "array",
            "description": "SofaScore player IDs or player page URLs (mode=player).",
            "editor": "stringList",
            "items": {
              "type": "string"
            }
          },
          "tournamentIds": {
            "title": "Tournament IDs or URLs",
            "type": "array",
            "description": "SofaScore unique-tournament IDs or tournament page URLs (modes tournament, standings).",
            "editor": "stringList",
            "items": {
              "type": "string"
            }
          },
          "eventIds": {
            "title": "Match IDs or URLs",
            "type": "array",
            "description": "SofaScore match IDs or match page URLs (mode=event).",
            "editor": "stringList",
            "items": {
              "type": "string"
            }
          },
          "seasonId": {
            "title": "Season ID",
            "type": "integer",
            "description": "Optional season ID for standings or tournament mode. If omitted, the latest season with a table is used.",
            "minimum": 1
          },
          "tableType": {
            "title": "Table Type",
            "type": "string",
            "description": "Standings table to fetch (modes standings, tournament).",
            "editor": "select",
            "enum": [
              "total",
              "home",
              "away"
            ],
            "enumTitles": [
              "Overall",
              "Home",
              "Away"
            ],
            "default": "total",
            "prefill": "total"
          },
          "rankingType": {
            "title": "Ranking Type",
            "type": "string",
            "description": "Ranking table to fetch (mode=rankings).",
            "editor": "select",
            "enum": [
              "uefa-countries",
              "fifa",
              "rugby-union",
              "rugby-league",
              "atp",
              "wta",
              "atp-live",
              "wta-live",
              "uefa-clubs",
              "ufc-flyweight",
              "ufc-bantamweight",
              "ufc-featherweight",
              "ufc-lightweight",
              "ufc-welterweight",
              "ufc-middleweight",
              "ufc-light-heavyweight",
              "ufc-heavyweight",
              "ufc-womens-strawweight",
              "ufc-womens-flyweight",
              "ufc-womens-bantamweight",
              "ufc-womens-featherweight",
              "utr-men",
              "utr-women",
              "fip-men",
              "fip-women",
              "fnc-bantamweight",
              "fnc-featherweight",
              "fnc-lightweight",
              "fnc-welterweight",
              "fnc-middleweight",
              "fnc-light-heavyweight"
            ],
            "enumTitles": [
              "UEFA Countries",
              "FIFA Rankings",
              "Rugby Union Rankings",
              "Rugby League Rankings",
              "ATP Rankings",
              "WTA Rankings",
              "ATP Rankings Live",
              "WTA Rankings Live",
              "UEFA Clubs",
              "UFC Flyweight",
              "UFC Bantamweight",
              "UFC Featherweight",
              "UFC Lightweight",
              "UFC Welterweight",
              "UFC Middleweight",
              "UFC Light Heavyweight",
              "UFC Heavyweight",
              "UFC Women's Strawweight",
              "UFC Women's Flyweight",
              "UFC Women's Bantamweight",
              "UFC Women's Featherweight",
              "UTR Men",
              "UTR Women",
              "FIP Ranking Men",
              "FIP Ranking Women",
              "FNC Bantamweight",
              "FNC Featherweight",
              "FNC Lightweight",
              "FNC Welterweight",
              "FNC Middleweight",
              "FNC Light Heavyweight"
            ],
            "default": "fifa",
            "prefill": "fifa"
          },
          "includeStatistics": {
            "title": "Include Statistics",
            "type": "boolean",
            "description": "Add team and player statistics to match records.",
            "default": true,
            "prefill": false
          },
          "includeLineups": {
            "title": "Include Lineups",
            "type": "boolean",
            "description": "Add lineups, formations and player ratings to match records.",
            "default": true,
            "prefill": false
          },
          "includeIncidents": {
            "title": "Include Incidents",
            "type": "boolean",
            "description": "Add goals, cards and substitutions to match records.",
            "default": true,
            "prefill": false
          },
          "includeOdds": {
            "title": "Include Odds",
            "type": "boolean",
            "description": "Add pre-match odds markets to match records.",
            "default": false,
            "prefill": false
          },
          "includeVotes": {
            "title": "Include Votes",
            "type": "boolean",
            "description": "Add crowd prediction polls to match records.",
            "default": false,
            "prefill": false
          },
          "includeH2h": {
            "title": "Include Head-to-Head",
            "type": "boolean",
            "description": "Add head-to-head win/draw tallies to match records.",
            "default": false,
            "prefill": false
          },
          "includeAdvanced": {
            "title": "Include Advanced Match Data",
            "type": "boolean",
            "description": "Add shotmap, momentum, average positions, best players, win probability, managers, streaks and pre-game form.",
            "default": false,
            "prefill": false
          },
          "includeComments": {
            "title": "Include Commentary",
            "type": "boolean",
            "description": "Add the text commentary feed to match records. This is a large payload.",
            "default": false,
            "prefill": false
          },
          "includeSquad": {
            "title": "Include Squad",
            "type": "boolean",
            "description": "Add the full squad to team records (mode=team).",
            "default": false,
            "prefill": false
          },
          "includePlayerStats": {
            "title": "Include Player Statistics",
            "type": "boolean",
            "description": "Add per-competition season statistics to player records (mode=player).",
            "default": false,
            "prefill": false
          },
          "includeStandings": {
            "title": "Include Standings",
            "type": "boolean",
            "description": "Add the league table to tournament records (mode=tournament).",
            "default": false,
            "prefill": false
          },
          "includeEvents": {
            "title": "Include Team Events",
            "type": "boolean",
            "description": "Add recent and upcoming events to team records (mode=team).",
            "default": false,
            "prefill": false
          },
          "maxItems": {
            "title": "Max Items",
            "type": "integer",
            "description": "Maximum number of records to return. 0 means no user limit (hard cap 10,000).",
            "minimum": 0,
            "maximum": 10000,
            "default": 50,
            "prefill": 3
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "SofaScore Live Scores, Standings & Match Data Output",
        "description": "Live scores, fixtures, standings, team and player profiles, match details and ranking rows from SofaScore.",
        "properties": {
          "results": {
            "type": "string",
            "title": "SofaScore Results",
            "description": "Dataset containing all scraped SofaScore records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Results",
              "transformation": {
                "fields": [
                  "recordType",
                  "name",
                  "eventId",
                  "homeTeam",
                  "awayTeam",
                  "homeScore",
                  "awayScore",
                  "status",
                  "startTime",
                  "sport",
                  "tournamentName",
                  "teamId",
                  "playerId",
                  "position",
                  "points",
                  "rankingTypeName"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.1.1",
    "imageDigest": "5d81a106c5373f18f57f0fdf2246394672ebbde4e826ea3ba31bad3490bf01ca",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.04895777777777778
    }
  }
}