Flashscore API endpoint
Returns a team's squad grouped by position (goalkeepers, defenders, and so on, plus the coach) with each person's jersey number, age, country (or club, for national teams), injury or absence note and season statistics. The default scope totals all competitions; the scopes list in every response names the per-competition scopes accepted by the scope parameter. Sports without a squad page return not found.
/flashscore/team-squadQuery parameters:
id (required): eight-character Flashscore team id (see /api/v1/flashscore/team).slug (optional): the team slug from its URL. It is not needed to find the squad; when supplied it must match the id or the request is rejected.scope (optional): the statistics scope. Defaults to overall-all (totals across competitions). Every response lists the team's accepted scopes in scopes (for example league-SY30SsKF for a league); pass one of those keys to see that competition's statistics. The set differs per team and season, so it is returned with the data rather than fixed in this page. An unknown key returns an invalid-parameter error that names the valid ones.Notable response behavior: groups hold the squad by position (Goalkeepers, Defenders, Midfielders, Forwards, then Coach; basketball and similar sports use one Players group). Each person has jersey_number, name, player_id, slug, path, age, country (or club for national-team squads, where the site shows the player's club instead of a flag), absence (the injury or absence note, including the expected return date when shown) and stats. columns describes the stat keys of the group, which depend on the sport: football gives matches_played, minutes_played, goals_scored, assists, yellow_cards and red_cards; hockey goalkeepers give save percentage, goals against average and shutouts. Stat values are numbers; cells the site leaves blank or shows as - are omitted. Sports whose team page has no squad tab return not found.
| Field | Filled in, of 5 checked | Values in the sample |
|---|---|---|
| key | 5 | |
| name | 5 | “Total” and 4 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Eight-character Flashscore team id | Wtn9Stg0 | |
| slug | string | No | Optional team slug; must match the id when supplied | manchester-city | |
| scope | string | No | overall-all | Squad statistics scope key from the scopes list of a previous response (for example overall-all or league-SY30SsKF); defaults to overall-all | overall-all |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/flashscore/team-squad?id=Wtn9Stg0" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"source_url": "https://www.flashscore.com/team/manchester-city/Wtn9Stg0/squad/",
"team": {
"id": "Wtn9Stg0",
"name": "Manchester City",
"slug": "manchester-city",
"sport": "football"
},
"scope": {
"key": "overall-all",
"name": "Total"
},
"scopes": [
{
"key": "league-SY30SsKF",
"name": "Premier League"
},
{
"key": "overall-all",
"name": "Total"
}
],
"groups": [
{
"name": "Goalkeepers",
"columns": [
{
"key": "matches_played",
"label": "Matches Played"
},
{
"key": "minutes_played",
"label": "Minutes Played"
}
],
"players": [
{
"jersey_number": "1",
"name": "Donnarumma Gianluigi",
"player_id": "WScbdXmL",
"slug": "donnarumma-gianluigi",
"path": "/player/donnarumma-gianluigi/WScbdXmL/",
"country": "Italy",
"age": 27,
"stats": {
"matches_played": 7,
"minutes_played": 630
}
}
]
}
]
}
}Request schema
No body schema
Response schema
Inline response schema
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | flashscore.TeamSquadResponse | No | ||||
| data.groups | array | No | ||||
| data.groups[].columns | array | No | ||||
| data.groups[].columns[].key | string | No | ||||
| data.groups[].columns[].label | string | No | ||||
| data.groups[].name | string | No | ||||
| data.groups[].players | array | No | ||||
| data.groups[].players[].absence | string | No | ||||
| data.groups[].players[].age | integer | No | ||||
| data.groups[].players[].club | string | No | ||||
| data.groups[].players[].country | string | No | ||||
| data.groups[].players[].jersey_number | string | No | ||||
| data.groups[].players[].name | string | No | ||||
| data.groups[].players[].path | string | No | ||||
| data.groups[].players[].player_id | string | No | ||||
| data.groups[].players[].slug | string | No | ||||
| data.groups[].players[].stats | object | No | ||||
| data.scope | flashscore.SquadScope | No | ||||
| data.scope.key | string | No | ||||
| data.scope.name | string | No | ||||
| data.scopes | array | No | ||||
| data.scopes[].key | string | No | ||||
| data.scopes[].name | string | No | ||||
| data.source_url | string | No | ||||
| data.team | flashscore.TeamProfile | No | TeamProfile record, 11 fields: country, country_id, full_name, id, logo_url, name, path, slug, sport, sport_id, url. Described under Flashscore team profile API. | |||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/flashscore/team-squad?id=Wtn9Stg0" \
-H "x-api-key: $CRAWLORA_API_KEY"