{
  "openapi": "3.0.1",
  "info": {
    "title": "Sofascore Scraper - Fixtures, Live Scores, Results & Tables",
    "description": "One row per match from Sofascore: competition, round, both teams, kick-off, state and score, for any day past or upcoming. League tables, venue and referee optional. 21 sports, no API key. Filter by country, competition or match state. You pay per row.",
    "version": "0.1",
    "x-build-id": "b4YqsIbxcM19odt28"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dami_studio~sofascore-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dami_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/dami_studio~sofascore-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dami_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/dami_studio~sofascore-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dami_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": "Leave empty for football. Sofascore covers all of these, though how deep the coverage goes varies a lot by sport and by country.",
            "items": {
              "type": "string",
              "enum": [
                "football",
                "basketball",
                "tennis",
                "ice-hockey",
                "volleyball",
                "handball",
                "baseball",
                "american-football",
                "rugby",
                "cricket",
                "snooker",
                "darts",
                "table-tennis",
                "badminton",
                "futsal",
                "minifootball",
                "beach-volley",
                "aussie-rules",
                "floorball",
                "waterpolo",
                "esports"
              ],
              "enumTitles": [
                "Football",
                "Basketball",
                "Tennis",
                "Ice hockey",
                "Volleyball",
                "Handball",
                "Baseball",
                "American football",
                "Rugby",
                "Cricket",
                "Snooker",
                "Darts",
                "Table tennis",
                "Badminton",
                "Futsal",
                "Minifootball",
                "Beach volleyball",
                "Aussie rules",
                "Floorball",
                "Water polo",
                "Esports"
              ]
            }
          },
          "upcomingDays": {
            "title": "Upcoming days",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "Today's fixtures and the days after: 1 is today only, 2 adds tomorrow. Matches that have already kicked off today come back with their live score."
          },
          "lastDays": {
            "title": "Last days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "The last N full days of results, ending yesterday. 1 is yesterday only, which is what a daily schedule usually wants."
          },
          "dateFrom": {
            "title": "From date",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "A fixed range instead of the two counters above, as YYYY-MM-DD. Used only when it is filled in."
          },
          "dateTo": {
            "title": "To date",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "The last day of the range. Leave it empty to stop at today. One run covers 60 days."
          },
          "live": {
            "title": "Live now",
            "type": "boolean",
            "description": "Add everything that is being played at this second, in the sports above. One request per sport, so it is cheap to leave on alongside a date range."
          },
          "countries": {
            "title": "Countries and regions",
            "maxItems": 100,
            "type": "array",
            "description": "Narrows a date range to certain countries, written as Sofascore writes them: England, Spain, Italy, Brazil. \"Europe\", \"World\" and \"South America\" hold the international competitions. A name also matches the longer regions containing it, so \"England\" brings in England Amateur as well. Leave it empty and a date range reads the 40 busiest regions for that sport.",
            "items": {
              "type": "string"
            }
          },
          "tournaments": {
            "title": "Competitions",
            "maxItems": 50,
            "type": "array",
            "description": "Paste competition links (https://www.sofascore.com/football/tournament/england/premier-league/17) or just type a name. Naming competitions replaces the country-by-country sweep: with dates you get exactly those days, without dates you get the whole current season.",
            "items": {
              "type": "string"
            }
          },
          "matches": {
            "title": "Match links",
            "maxItems": 50,
            "type": "array",
            "description": "Individual matches, as links copied from Sofascore (https://www.sofascore.com/football/match/brentford-chelsea/Nsab#id:16363649) or as bare ids. These always come back with the venue and the referee.",
            "items": {
              "type": "string"
            }
          },
          "statuses": {
            "title": "Only these states",
            "type": "array",
            "description": "Leave empty to keep every match. Useful for pulling only what has finished on a day that is still running.",
            "items": {
              "type": "string",
              "enum": [
                "notstarted",
                "inprogress",
                "finished",
                "postponed",
                "canceled",
                "suspended"
              ],
              "enumTitles": [
                "Not started",
                "In play",
                "Finished",
                "Postponed",
                "Cancelled",
                "Suspended"
              ]
            }
          },
          "includeStandings": {
            "title": "League tables",
            "type": "boolean",
            "description": "Adds the table for every competition the run touched: position, played, won, drawn, lost, goals, difference, points. One row per team, charged the same as a match. Cups and knockout rounds have no table and are skipped."
          },
          "standingTypes": {
            "title": "Which tables",
            "type": "array",
            "description": "Only read when League tables is on. Overall is the normal one; home and away split the same season.",
            "items": {
              "type": "string",
              "enum": [
                "total",
                "home",
                "away"
              ],
              "enumTitles": [
                "Overall",
                "Home only",
                "Away only"
              ]
            }
          },
          "includeVenue": {
            "title": "Venue and referee",
            "type": "boolean",
            "description": "Adds the stadium, its city and the referee. Sofascore only publishes these on a match's own page, so this costs one extra request per match and makes a big run several times slower. Off by default for that reason. A match that will not open is still delivered, without them."
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "The most rows one run returns, matches and table rows together. Each row is one charge. A single busy football day across the default regions runs to several thousand, so this is worth setting deliberately."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Leave this alone unless you need the run to go out through a particular network. Your own proxy servers are used exactly as given."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}