Description
Returns all players, with incremental updates by timestamp.
1. First full sync: page through everything with the id parameter.
2. Afterwards: fetch what changed with the time parameter (suggested frequency: once a minute).
1. First full sync: page through everything with the id parameter.
2. Afterwards: fetch what changed with the time parameter (suggested frequency: once a minute).
Access
- Request
GET https://api.sports.csap.ai/api/v1/players- Auth
- Header X-API-Key: <your key> (Authorization: Bearer <key> also works; ?key= is still accepted but discouraged, because the key ends up in URLs and logs)
- External keys
- Available (scoped)External keys can call it, but only data inside the open scope is returned.
- Rate limits
- 3000 per minute · 200000 per day · Set per key (rate_per_min and quota_daily returned by /api/v1/account are authoritative; the numbers above are a trial key's). Beyond them the answer is 429. In addition, heavy requests such as whole-table snapshots and statistics lists without a match id are processed 2 at a time for the whole platform; a request that cannot get a slot receives 429 with Retry-After. Responses do not carry X-RateLimit-* headers for now. See the general guide
Request parameters 3
| Parameter | Type | required | Example | Description |
|---|---|---|---|---|
| id | integer | optional | 6917 | Records with id greater than or equal to this value, ordered by id |
| time | integer | optional | Records updated at or after this time (timestamp), ordered by update time | |
| limit | integer | optional | 2 | Maximum number of rows, default 1000, maximum 1000 |
Example request
curl "https://api.sports.csap.ai/api/v1/players?limit=2" \ -H "X-API-Key: YOUR_API_KEY"
Try it
Example response
{
"code": 0,
"data": [
{
"ability": null,
"age": null,
"birthday": "1999-02-25T00:00:00Z",
"characteristics": null,
"coach_id": null,
"contract_until": "2030-06-30T00:00:00Z",
"country_id": null,
"country_ids": null,
"deathday": null,
"height": 196,
"id": 1,
"limit": null,
"logo": null,
"logo_url": null,
"market_value": 45000000,
"market_value_currency": null,
"market_value_eur": 45000000,
"max_id": null,
"max_time": null,
"min_id": null,
"min_time": null,
"name_zh": "詹路易吉·多纳鲁马",
"name_zht": null,
"national_logo": null,
"nationality": "Italy",
"position": "Goalkeeper",
"positions": null,
"preferred_foot": "right",
"query": null,
"retire_time": null,
"short_name_zh": null,
"short_name_zht": null,
"source": "S6",
"source_id": "315858",
"suffix": null,
"team": "Manchester City",
"team_zh": null,
"time": null,
"type": null,
"uid": 1,
"updated_at": 1794153803316,
"weight": null,
"name": "Gianluigi Donnarumma"
},
{
"ability": null,
"age": null,
"birthday": "1992-05-20T00:00:00Z",
"characteristics": null,
"coach_id": null,
"contract_until": "2028-06-30T00:00:00Z",
"country_id": null,
"country_ids": null,
"deathday": null,
"height": 189,
"id": 2,
"limit": null,
"logo": null,
"logo_url": null,
"market_value": 5000000,
"market_value_currency": null,
"market_value_eur": 5000000,
"max_id": null,
"max_time": null,
"min_id": null,
"min_time": null,
"name_zh": null,
"name_zht": null,
"national_logo": null,
"nationality": "Argentina, Italy",
"position": "Goalkeeper",
"positions": null,
"preferred_foot": "right",
"query": null,
"retire_time": null,
"short_name_zh": null,
"short_name_zht": null,
"source": "S6",
"source_id": "229604",
"suffix": null,
"team": "Manchester City",
"team_zh": null,
"time": null,
"type": null,
"uid": 2,
"updated_at": 1794153803321,
"weight": null,
"name": "Gerónimo Rulli"
}
],
"message": "success",
"success": true
}Response fields 44
abilitynullnullableAbility rating (the field is absent when there is no data)
agenullnullableAge
birthdaystringDate of birth
Example: "1999-02-25T00:00:00Z"characteristicsnullnullableSkills (the field is absent when there is no data): · 1 - first touch · 2 - penalty taking · 3 - free kicks · 4 - long shots · 5 - finishing · 6 - passing · 7 - playmaking · 8 - dribbling · 9 - interceptions · 10 - sliding tackles · 11 - consistency · 12 - take-ons · 13 - long passing · 14 - ball control · 15 - aerial duels · 16 - ground duels · 17 - error prone · 18 - discipline · 19 - penalty saving · 20 - reflexes · 21 - joining the attack as a goalkeeper · 22 - claiming high balls · 23 - handling · 24 - shooting from distance · 25 - positioning · 26 - high pressing · 27 - saving long shots · 28 - crossing · 29 - offside awareness · 30 - saving close-range shots · 31 - concentration · 32 - defensive contribution · 33 - key passes · 34 - heading · 35 - set pieces · 36 - through balls · 37 - counter-attacks · 38 - one-touch passing · 39 - lofted balls · 40 - drawing fouls · 41 - cutting inside · 42 - punches · 43 - clearances · · example: [[[11, 1]], [[7, 1]]]
coach_idnullnullableCoach id
contract_untilstringContract end date
Example: "2030-06-30T00:00:00Z"country_idnullnullableCountry / region id
country_idsnullnullableCountry ids for multiple nationalities · example: [1, 34]
deathdaynullnullableDate of death (returned when there is data)
heightintegerHeight (cm)
Example: 196idintegerRecord id; paging cursor (the id parameter returns records >= this value). In match endpoints it is the platform match id (gmid)
Example: 1limitnullnullableMaximum number of rows in this response
logonullnullableLogo (image address on this platform; empty when there is none)
logo_urlnullnullableLogo (image address on this platform; empty when there is none)
market_valueintegerMarket value
Example: 45000000market_value_currencynullnullableMarket value unit
market_value_eurintegerMarket value (EUR)
Example: 45000000max_idnullnullableLargest id on this page
max_timenullnullableLatest update time on this page (Unix seconds)
min_idnullnullableSmallest id on this page
min_timenullnullableEarliest update time on this page (Unix seconds)
name_enstringEnglish name
Example: "Gianluigi Donnarumma"name_zhstringnullableChinese name
Example: "詹路易吉·多纳鲁马"name_zhtnullnullableTraditional Chinese name
national_logonullnullablePlayer logo (national team; use it when the team is known to be a national team)
nationalitystringNationality
Example: "Italy"positionstringPosition
Example: "Goalkeeper"positionsnullnullableDetailed positions (the field is absent when there is no data): · 'LW' - left winger · 'RW' - right winger · 'ST' - striker · 'SS' - second striker · 'AM' - attacking midfielder · 'ML' - left midfielder · 'MC' - central midfielder · 'MR' - right midfielder · 'DM' - defensive midfielder · 'DL' - left back · 'DC' - centre back · 'DR' - right back · 'GK' - goalkeeper · · example: ["RW", ["ST"]]
preferred_footstringPreferred foot
Example: "right"querynullnullableQuery info (paging cursor, totals)
retire_timenullnullableRetirement date (returned when there is data)
short_name_ennullnullableEnglish short name
short_name_zhnullnullableChinese short name
short_name_zhtnullnullableCantonese short name
sourcestringSource code (S1, S2…)
Example: "S6"source_idstringId within the source
Example: "315858"suffixnullnullablePlayer's youth (U-series) level
teamstringTeam name
Example: "Manchester City"team_zhnullnullableTeam Chinese name
timenullnullableTime / minute
typenullnullableType
uidintegerUnique cursor id of the record
Example: 1updated_atintegerLast update time (UTC, ISO 8601; incremental sync with the time parameter goes by it)
Example: 1794153803316weightnullnullableWeight
Errors
| HTTP | message | When |
|---|---|---|
| 401 | missing API key / unauthorized | No X-API-Key, or the key is invalid or disabled |
| 400 | bad param … | Malformed parameter (e.g. id is neither a number nor u<uid>) |
| 301 | match merged into <gmid> | Queried by an old match id that has been merged into a new gmid: Location points to the new address and the body carries moved_to |
| 404 | not found | The match / team / competition does not exist, or is outside what this key can see (external keys see only matches inside the open coverage) |
| 429 | rate limit exceeded / daily quota exceeded | The key's per-minute rate or daily quota is exceeded |
| 429 | server busy, retry later | The server's concurrency slots are full (only 2 heavy requests at a time); retry after Retry-After seconds |
| 500 | query error | The query failed on the server; you may retry |