{
  "openapi": "3.0.1",
  "info": {
    "title": "Sportradar Match Stats Scraper — Lineups, Timeline, Players",
    "description": "Match statistics from Sportradar at $2 per 1,000 matches plus $1 per 1,000 data layers: lineups, timeline, team and player stats, head-to-head and form for any Sportradar match id · the same ids Betano and other bookmakers publish · no browser.",
    "version": "0.1",
    "x-build-id": "XghezgqPPW28GtQ1O"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/blackfalcondata~sportradar-stats-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-blackfalcondata-sportradar-stats-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/blackfalcondata~sportradar-stats-scraper/runs": {
      "post": {
        "operationId": "runs-sync-blackfalcondata-sportradar-stats-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/blackfalcondata~sportradar-stats-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-blackfalcondata-sportradar-stats-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": {
          "matchIds": {
            "title": "⚽ Match IDs",
            "type": "array",
            "description": "Sportradar match ids, one per line. A full match link works too and is the easier way in: paste the stats link a bookmaker publishes next to a fixture (for example https://s5.sir.sportradar.com/betano/en/match/72221220) or a statshub.sportradar.com match URL, and the id is read from it. The same id is what Betano and other books carry as betRadarId.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "startUrls": {
            "title": "🔗 Match page URLs",
            "type": "array",
            "description": "Sportradar statshub match page URLs, or the statsUrl values other scrapers publish (for example https://s5.sir.sportradar.com/betano/en/match/72221220). They are read the same way as match ids and can be combined with them.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "layers": {
            "title": "📚 Data layers",
            "type": "array",
            "description": "Which blocks of data to attach to each match. The header (teams, competition, kickoff, status, score, venue, referee and managers) is always included and is what the match fee covers, along with the headline team statistics once the match is under way — a fixture that has not kicked off has none to publish. Every layer you add here is fetched separately and charged separately, and only when it comes back with data.",
            "items": {
              "type": "string",
              "enum": [
                "teamStats",
                "playerStats",
                "lineups",
                "timeline",
                "situations",
                "h2h",
                "form",
                "tables",
                "funfacts"
              ],
              "enumTitles": [
                "Team statistics with first/second half splits",
                "Player statistics (minutes, goals, assists, saves, cards)",
                "Lineups (formation, XI, bench, manager, substitutions, player profiles)",
                "Timeline (every recorded incident with pitch coordinates)",
                "Match situations (per-minute pressure and phase coordinates)",
                "Head to head (previous meetings and the record between the teams)",
                "Form (each team's last 10 matches with results)",
                "League tables (the rows around this match, plus the season table)",
                "Fun facts (pre-written notes about the fixture)"
              ]
            },
            "default": [
              "teamStats"
            ]
          },
          "client": {
            "title": "🏷️ Widget edition",
            "enum": [
              "betano",
              "common"
            ],
            "type": "string",
            "description": "Which edition of the stats widget to read. Both serve the same match data; leave this on Betano unless a match answers only on the generic edition.",
            "default": "betano"
          },
          "maxResults": {
            "title": "💯 Max matches",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many matches (0 = every id you supplied). Ids are processed in the order you list them.",
            "default": 100
          },
          "compact": {
            "title": "📦 Compact output",
            "type": "boolean",
            "description": "Header fields only: match, teams, competition, kickoff, status, score and venue. Drops the nested data layers from each row, for AI-agent and dashboard workflows. Layers you asked for are still fetched and still charged, so switch this off if you want them in the output.",
            "default": false
          },
          "excludeEmptyFields": {
            "title": "🧹 Exclude empty fields from output",
            "type": "boolean",
            "description": "Drop null, empty-string and empty-array fields from each record before push. Smaller payloads for AI agents and dashboards.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}