实时赛事监控
Use SofaScore endpoints to turn 实时赛事监控 into repeatable API requests with documented inputs and JSON responses.
以规范化 JSON 采集 SofaScore 的实时体育赛事、球队、球员、积分榜、阵容、赔率、事件、统计数据和历史交锋记录。
提取公开的 SofaScore 实时赛事、球队、球员、积分榜、赛事统计、阵容、赔率、事件和历史交锋数据,转换为结构化 JSON。
Endpoint families
6
Documented params
310
Examples
109
Live catalog snapshot
Active endpoints
109
Methods
GET
Required params
267
Schema refs
109
{
"platform": "SofaScore",
"endpoint": "sofascore-search",
"method": "GET",
"path": "/sofascore/search",
"auth": "apiKey"
}Use cases
提取公开的 SofaScore 实时赛事、球队、球员、积分榜、赛事统计、阵容、赔率、事件和历史交锋数据,转换为结构化 JSON。
Use SofaScore endpoints to turn 实时赛事监控 into repeatable API requests with documented inputs and JSON responses.
Use SofaScore endpoints to turn 球队和球员数据增强 into repeatable API requests with documented inputs and JSON responses.
Use SofaScore endpoints to turn 体育数据分析 into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live SofaScore endpoint catalog — 109 endpoints, 310 documented request parameters, and 109 published response schemas — the same catalog Docs and Playground run against.
109 documented SofaScore endpoints, grouped into 109 request families — Categories, Category Tournaments and Draft, plus 106 more.
310 request parameters are documented across those SofaScore endpoints, 267 of them required — the full input contract is public before you write any integration code.
109 of the 109 SofaScore endpoints ship a recorded example response, and 109 carry a documented response schema — you can code against the real JSON before the first request.
SofaScore endpoints document their error responses (400, 404, 429 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
109 hosted MCP tools back the SofaScore endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
/sofascore/categories
/sofascore/category-tournaments
/sofascore/draft
/sofascore/draft-picks
/sofascore/esports-game
/sofascore/event
Featured endpoints
/sofascore/searchSearches SofaScore for teams, players, and competitions matching a free-text query. An empty `results` list is a valid response when nothing matches.
Response notes
- An empty `results` array is a valid response when nothing matches the query (not an error). - Each result carries a `type` (e.g. `team`, `player`, `uniqueTournament`); player results also carry `team_id`/`team_name` for their current club. - A missing `q` value returns an invalid-parameter error before upstream IO.
MCP tool sofascore_search
/sofascore/live-eventsReturns currently live events for a sport. The `sport` enum accepts `american-football`, `aussie-rules`, `badminton`, `bandy`, `baseball`, `basketball`, `beach-volley`, `cricket`, `darts`, `esports`, `floorball`, `football`, `futsal`, `handball`, `ice-hockey`, `mma`, `minifootball`, `padel`, `rugby`, `snooker`, `table-tennis`, `tennis`, `volleyball`, and `waterpolo`; the sports endpoint lists them. An empty `events` list is a valid response when nothing is live right now.
Response notes
- An empty `events` array is a valid response when nothing is live right now (not an error). - Invalid `sport` values return an invalid-parameter error before upstream IO.
MCP tool sofascore_live_events
/sofascore/eventReturns one SofaScore match by event id: home and away teams and scores, status, start time, tournament, attendance and winner code, plus venue and referee when SofaScore has them. An unknown or malformed id surfaces as an upstream error.
Response notes
- `venue` and `referee` are omitted when SofaScore has no data for them (e.g. neutral/unconfirmed venues). - An unknown or malformed id surfaces as an upstream error (SofaScore returns 404 for a missing event).
MCP tool sofascore_event
/sofascore/event-statisticsReturns one match's statistics (possession, shots, passes, and more, grouped and split by period). Returns 404 when SofaScore has no tracked statistics for the match.
Response notes
- Successful responses are cached for 10 minutes by default. - A genuine not-found response is cached for 30 minutes by default. Repeating the same request during that window returns the cached `404`; upstream blocks and other failures are not cached by this policy. - Statistics can appear later for an upcoming or live match. A cached absence can delay their visibility by up to 30 minutes, so avoid immediate retries and recheck after that interval when new coverage is expected. - `404` responses consume the plan’s request-rate allowance but do not consume credits. - Returns `404` when SofaScore has no tracked statistics for the match (common for lower-tier/friendly fixtures). - `periods` groups statistics by period (e.g. `ALL`, `1ST`, `2ND`); each period has named `groups` (e.g. "Match overview", "Shots") of home/away `items`.
MCP tool sofascore_event_statistics
/sofascore/event-lineupsReturns one match's starting XI and substitutes per side, with formation. Returns 404 when SofaScore has no lineups for the match. A missing-lineup result may be reused for up to two minutes before checking again.
Response notes
- Returns `404` when SofaScore has no lineups for the match (not yet announced or not tracked). - A missing-lineup result may be reused for up to two minutes. Newly announced lineups can become visible after that window; upstream failures remain retryable. - An upstream `200` with `confirmed=false` and explicit empty player arrays on both sides also returns `404`. Predicted lineups with players remain valid; malformed or confirmed-empty payloads return `503`. - `confirmed` indicates whether the lineup is the official confirmed lineup rather than a predicted one. - `home`/`away` each carry a `formation` (e.g. `4-3-3`) and a `players` list; `substitute` marks bench players.
MCP tool sofascore_event_lineups
/sofascore/event-incidentsReturns one match's goal, card, substitution, and period timeline from SofaScore. An empty `incidents` list is a valid response before kickoff.
Response notes
- Successful responses are cached for 30 seconds, so repeated calls for the same event id within that window return the cached result rather than re-fetching from SofaScore. Errors are never cached. - An empty `incidents` array is a valid response before kickoff (not an error). - `type` is one of `period`, `goal`, `card`, `substitution`, `injuryTime`, or another SofaScore incident type; fields not relevant to a given type are omitted. - Card incidents carry `card_color` (`yellow` or `red`); substitutions carry `player_in`/`player_out`.
MCP tool sofascore_event_incidents
Related APIs
Media & Streaming
Follow German football from the Bundesliga down to the lowest Kreisklasse. Discover competitions in all 22 federations, then read matchdays, standings, scorers, clubs, teams, and players from the DFB's own amateur-football portal.
Media & Streaming
Browse Sportskeeda's sports and entertainment coverage, community wikis, quizzes, and fan games with the catalog's current slugs and filter limits.
Media & Streaming
Research streaming catalogs, title availability, providers, offers, seasons, episodes, and release changes from JustWatch with normalized JSON.
How to scrape SofaScore
SofaScore 并未为第三方开发者提供文档化的 API,因此各类集成读取的都是其公开的 JSON 接口。Crawlora 的 15 个 SofaScore 端点封装了这一接口:每次调用都是通过 x-api-key 请求头认证的 GET 请求,球队、球员和赛事的 ID 均来自搜索端点。
向 SofaScore 搜索端点发送自由文本查询(q=barcelona),即可返回匹配的球队、球员和赛事,包含各自的数字 ID 和所属运动项目。
赛事、统计、阵容、事件、赔率和历史交锋端点接受 event id;球队、球队赛程、球队球员和球员端点接受各自的 id;积分榜和轮次赛程端点还接受 season。
每个 SofaScore 端点都是带有 x-api-key 请求头的 GET 请求——不涉及 SofaScore 登录、Cookie 或会话令牌。
按足球、篮球或网球获取实时赛事,再用赛事 ID 请求详情。赛事统计的成功响应默认缓存 10 分钟,真实的未找到结果缓存 30 分钟,因此立即重试不会更早看到刚出现的数据。
客户端库
为你的语言安装 SofaScore 专用客户端。每个包都覆盖本页的 SofaScore 端点,并使用你的 API 密钥调用 Crawlora 托管 API。
npm install @crawlora-org/sofascorenpmpip install crawlora-sofascorePyPIgo get github.com/Crawlora-org/crawlora-sofascorepkg.go.devgem install crawlora-sofascoreRubyGemsnet.crawlora:crawlora-sofascoreMaven Centralcomposer require crawlora/sofascorePackagistcargo add crawlora-sofascorecrates.ioFAQ
SofaScore 没有为第三方提供文档化的 API 或开发者计划,因此不存在可申请的 SofaScore API 密钥。其应用背后是一个无需凭证的公开 JSON 接口,各类集成读取的正是这个接口。Crawlora 与 SofaScore 没有关联——它将这一公开接口规范化为稳定、有文档说明的端点,你使用自己的 Crawlora 密钥通过 x-api-key 请求头进行认证。免费套餐每月包含 2000 额度,无需信用卡,按成功调用计费。
使用搜索端点。它接受自由文本参数 q,返回匹配的球队、球员和赛事,包含各自的数字 id、slug、运动项目和国家——这些 ID 正是其他所有 SofaScore 端点所需要的。当没有匹配结果时,返回空结果列表也是有效响应。
每个响应都携带其采集来源的 source_url 字段,因此对应关系在响应本身中就能看到——例如球员端点会显示 https://api.sofascore.com/api/v1/player/<id>,搜索端点会显示 https://api.sofascore.com/api/v1/search/all?q=<query>。响应中还带有 fetched_at 时间戳,方便你判断数据的新鲜程度。
可以。实时赛事端点返回足球、篮球或网球正在进行的比赛;没有比赛时空列表也是有效响应。统计成功响应默认缓存 10 分钟,真实 404 缓存 30 分钟;404 会计入套餐请求速率额度,但不消耗 credits。阵容不可用时也返回 404,包括上游明确返回未确认且两队球员数组为空的情况;包含球员的预测阵容仍然有效。
采集公开可访问的体育数据通常与访问私有账号有所区别,但这并非无条件成立。请仅采集公开数据,遵守 SofaScore 的条款和速率限制,并在转发或再分发前核实相关权限——体育赛程和赔率数据可能带有单独的授权要求。这不构成法律建议,商业使用前请核查你所在地区的法律。