Description
Returns all teams, 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/teams- 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 | 14143 | 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/teams?limit=2" \ -H "X-API-Key: YOUR_API_KEY"
Try it
Example response
{
"code": 0,
"data": [
{
"coach_id": null,
"competition_id": null,
"country": null,
"country_id": null,
"country_logo": null,
"country_zh": null,
"disband_time": null,
"foreign_players": null,
"foundation_time": null,
"founded": null,
"gender": null,
"id": 5411,
"limit": null,
"logo": "http://43.99.60.51:8080/logos/bd36e327173040173825c20c8a1cc39d7d3d6c3d23b134ebc905d6af9860a8b1.png",
"logo_hash": "c2cccf6b310944638dab9d9745c3cf11.png",
"logo_url": "http://43.99.60.51:8080/logos/bd36e327173040173825c20c8a1cc39d7d3d6c3d23b134ebc905d6af9860a8b1.png",
"market_value": null,
"market_value_currency": null,
"max_id": null,
"max_time": null,
"min_id": null,
"min_time": null,
"name_zh": "纳积兰",
"name_zht": null,
"national": null,
"national_players": null,
"query": null,
"short_name_zh": "纳积兰",
"short_name_zht": null,
"source": "S3",
"source_id": "17989",
"time": null,
"total_players": null,
"type": null,
"uid": 5411,
"updated_at": 1794226827607,
"venue": null,
"venue_id": null,
"virtual": null,
"website": null,
"name": "Najran SC"
},
{
"coach_id": null,
"competition_id": null,
"country": null,
"country_id": null,
"country_logo": null,
"country_zh": null,
"disband_time": null,
"foreign_players": null,
"foundation_time": null,
"founded": null,
"gender": null,
"id": 5412,
"limit": null,
"logo": "http://43.99.60.51:8080/logos/186745e4e2b3eb10d82477be917071cf474e6468c46cbd279bff13e79414616e.png",
"logo_hash": "cf55a82aa9160a67834c4eeda6f1e804.png",
"logo_url": "http://43.99.60.51:8080/logos/186745e4e2b3eb10d82477be917071cf474e6468c46cbd279bff13e79414616e.png",
"market_value": null,
"market_value_currency": null,
"max_id": null,
"max_time": null,
"min_id": null,
"min_time": null,
"name_zh": "祖布巴",
"name_zht": null,
"national": null,
"national_players": null,
"query": null,
"short_name_zh": "祖布巴",
"short_name_zht": null,
"source": "S3",
"source_id": "18389",
"time": null,
"total_players": null,
"type": null,
"uid": 5412,
"updated_at": 1794148998316,
"venue": null,
"venue_id": null,
"virtual": null,
"website": null,
"name": "Jubbah"
}
],
"message": "success",
"success": true
}Response fields 42
coach_idnullnullableCoach id
competition_idnullnullableCompetition id
countrynullnullableCountry / region
country_idnullnullableCountry / region id
country_logonullnullableNational team logo (present for national teams)
country_zhnullnullableCountry / region Chinese name
disband_timenullnullableYear dissolved (returned when there is data)
foreign_playersnullnullableNumber of foreign players; -1 means no data for this field
foundation_timenullnullableFounding date
foundednullnullableYear founded
gendernullnullableGender
idintegerRecord id; paging cursor (the id parameter returns records >= this value). In match endpoints it is the platform match id (gmid)
Example: 5411limitnullnullableMaximum number of rows in this response
logostringLogo (image address on this platform; empty when there is none)
logo_hashstringSHA-256 of the logo file
Example: "c2cccf6b310944638dab9d9745c3cf11.png"logo_urlstringLogo (image address on this platform; empty when there is none)
market_valuenullnullableMarket value
market_value_currencynullnullableMarket value unit
max_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: "Najran SC"name_zhstringChinese name
Example: "纳积兰"name_zhtnullnullableTraditional Chinese name
nationalnullnullableNational team: 1 yes, 0 no
national_playersnullnullableNumber of national team players; -1 means no data for this field
querynullnullableQuery info (paging cursor, totals)
short_name_ennullnullableEnglish short name
short_name_zhstringChinese short name
Example: "纳积兰"short_name_zhtnullnullableCantonese short name
sourcestringSource code (S1, S2…)
Example: "S3"source_idstringId within the source
Example: "17989"timenullnullableTime / minute
total_playersnullnullableTotal number of players; -1 means no data for this field
typenullnullableType
uidintegerUnique cursor id of the record
Example: 5411updated_atintegerLast update time (UTC, ISO 8601; incremental sync with the time parameter goes by it)
Example: 1794226827607venuenullnullableVenue
venue_idnullnullableVenue id
virtualnullnullablePlaceholder team: 1 yes, 0 no
websitenullnullableTeam website
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 |