Description
Returns the FIFA men's national team rankings; query past rankings with the pub_time publication time
The data rarely changes; suggested frequency: once a day
PS: get changed publication times from the 'data updates' endpoint
The data rarely changes; suggested frequency: once a day
PS: get changed publication times from the 'data updates' endpoint
Access
- Request
GET https://api.sports.csap.ai/api/v1/rank/fifa/men- 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 1
| Parameter | Type | required | Example | Description |
|---|---|---|---|---|
| pub_time | string | optional | Publication time, the latest edition by default (timestamp) |
Example request
curl "https://api.sports.csap.ai/api/v1/rank/fifa/men" \ -H "X-API-Key: YOUR_API_KEY"
Try it
Example response
{
"code": 0,
"data": [
{
"confederation": "UEFA",
"country": null,
"items": null,
"name_zh": "西班牙",
"points": 1875.37,
"position_changed": null,
"prev_rank": 2,
"previous_points": null,
"pub_time": null,
"pub_times": null,
"rank": 1,
"rank_type": "fifa_national",
"ranking": null,
"region_id": null,
"snapshot": "2025-09-18",
"source": "SX176390",
"team_id": null,
"updated_at": 1793873160926,
"name": "Spain"
},
{
"confederation": "UEFA",
"country": null,
"items": null,
"name_zh": "法国",
"points": 1870.92,
"position_changed": null,
"prev_rank": 3,
"previous_points": null,
"pub_time": null,
"pub_times": null,
"rank": 2,
"rank_type": "fifa_national",
"ranking": null,
"region_id": null,
"snapshot": "2025-09-18",
"source": "SX176390",
"team_id": null,
"updated_at": 1793873160928,
"name": "France"
}
],
"message": "success",
"success": true
}Response fields 19
confederationstringConfederation
Example: "UEFA"countrynullnullableCountry / region
itemsnullnullableRanking list
name_enstringEnglish name
Example: "Spain"name_zhstringnullableChinese name
Example: "西班牙"pointsnumberPoints
Example: 1875.37position_changednullnullableRank change
prev_rankintegerPrevious rank
Example: 2previous_pointsnullnullablePrevious points
pub_timenullnullablePublication time of the ranking being queried
pub_timesnullnullableList of ranking publication times · example: [1582128000]
rankintegerRank
Example: 1rank_typestringRanking type
Example: "fifa_national"rankingnullnullableRank
region_idnullnullableRegion id: 1 UEFA, 2 CONMEBOL, 3 CONCACAF, 4 CAF, 5 AFC, 6 OFC
snapshotstringWhether this is the snapshot pushed on connect
Example: "2025-09-18"sourcestringSource code (S1, S2…)
Example: "SX176390"team_idnullnullableTeam id
updated_atintegerLast update time (UTC, ISO 8601; incremental sync with the time parameter goes by it)
Example: 1793873160926Errors
| HTTP | message | When |
|---|---|---|
| 401 | missing API key / unauthorized | No X-API-Key, or the key is invalid or disabled |
| 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 |