SofaScore API endpoint
Returns a team's full squad from SofaScore by team id: each player's name, position, jersey number, date of birth, height, country and preferred foot, plus SofaScore's market value estimate and its currency when available.
/sofascore/team-playersQuery parameters:
id: required. Numeric SofaScore team id.Notable response behavior:
market_value/market_value_currency reflect SofaScore's proposed market value estimate and are omitted when unavailable.| Field | Filled in, of 29 checked | Values in the sample |
|---|---|---|
| id | 29 | |
| name | 29 | “Anthony Gordon” and 28 other values |
| short_name | 29 | “A. Gordon” and 28 other values |
| slug | 29 | |
| position | 29 | M (11), D (9), F (5) and 1 more |
| jersey_number | 29 | 1 to 31, median 14 |
| date_of_birth | 29 | 1990-04-18 to 2009-01-16 |
| height | 29 | |
| country | 29 | “England” and 12 other values |
| preferred_foot | 29 | Right (20), Left (8), Both (1) |
| market_value | 28 | 53,000 to 237,000,000, median 32,000,000 |
| market_value_currency | 28 | EUR in all 28 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Numeric SofaScore team id | 2817 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sofascore/team-players?id=2817" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"team_id": 2817,
"count": 1,
"source_url": "https://api.sofascore.com/api/v1/team/2817/players",
"fetched_at": "2026-07-08T16:45:00Z",
"players": [
{
"id": 855833,
"name": "Ferran Torres",
"short_name": "F. Torres",
"slug": "ferran-torres",
"position": "F",
"jersey_number": "7",
"date_of_birth": "2000-02-29T00:00:00+00:00",
"height": 183,
"country": "Spain",
"preferred_foot": "Right",
"market_value": 54000000,
"market_value_currency": "EUR"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/sofascore.teamPlayersResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sofascore.TeamPlayersResponse | No | ||||
| data.count | integer | No | Number of players returned. | |||
| data.fetched_at | string | No | Time the data was fetched, in UTC (RFC 3339). | |||
| data.players | array | No | The team's squad. | |||
| data.players[].country | string | No | Player's country. | |||
| data.players[].date_of_birth | string | No | Date of birth (RFC 3339). | |||
| data.players[].height | integer | No | Height in centimetres. | |||
| data.players[].id | integer | No | SofaScore player id. Use it with the player endpoints. | |||
| data.players[].jersey_number | string | No | Shirt number. | |||
| data.players[].market_value | integer | No | SofaScore's estimated market value, in units of `market_value_currency`. Omitted when unavailable. | |||
| data.players[].market_value_currency | string | No | Currency of `market_value`, for example EUR. | |||
| data.players[].name | string | No | Player's full name. | |||
| data.players[].position | string | No | Position code, for example G, D, M or F. | |||
| data.players[].preferred_foot | string | No | Preferred foot, for example "Right". | |||
| data.players[].short_name | string | No | Shortened name, for example "E. Haaland". | |||
| data.players[].slug | string | No | URL slug of the player on SofaScore. | |||
| data.source_url | string | No | SofaScore URL the data was read from. | |||
| data.team_id | integer | No | SofaScore team id the squad belongs to. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/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/sofascore/team-players?id=2817" \
-H "x-api-key: $CRAWLORA_API_KEY"