PlayersEndpoint 53 of 116
Latest transfers
https://api.datasportsapi.com/
- Plan
- All plans
- Auth
Bearer dsa_live_…- Parameters
- 0 required · 7 optional
- Returns
Transfer[]
A feed of the newest football transfers from all leagues, 50 per page, built from the same Transfer objects as team transfer lists.
Order it by date (newest move first), by fee (largest first) or by player popularity, Filters narrow it to one league (moves to or from its clubs), a position, a nationality and an age range.
Worth knowing
Covers football alone, the only sport for which the source maintains this feed. latest orders moves by the date they take effect, which means a loan expiring today is listed next to a signing announced today. Releases and moves into free agency end at "No team" — to stays null and toName holds that label. The feed updates every 30 minutes.
01Parameters
sortqueryOptionallatest \| fee \| popular; latest when omitted
leaguequeryOptionalleague id; keeps only moves into or out of that league’s clubs
positionqueryOptionalgoalkeeper \| defender \| midfielder \| forward
nationalityqueryOptionaltwo-letter country code in the form Country.code uses, case-insensitive (England EN, Scotland SX, Wales WA, Northern Ireland NX)
minAgequeryOptionalminimum player age in whole years, 15–45
maxAgequeryOptionalmaximum player age in whole years, 15–45; must not be lower than minAge
pagequeryOptionalpage number from 0 to 50 (defaults to 0)
02Request
The same call from the command line and each SDK. The SDK lines assume a client created with your key; left out, it is read from DATASPORTSAPI_API_KEY. Installing a client: SDKs & CLI.
curl -H "Authorization: Bearer dsa_live_…" \
"https://api.datasportsapi.com/v2/transfers"03Response
The top-level keys of the JSON body. Each object links to its full shape in the data reference.
dataTransfer[]meta- sort, league, position, nationality, minAge, maxAge, page, count, hasNextPage
{ "data": [ { "player": { "id": 5120, "name": "Enzo Fernández", "slug": "enzo-fernandez", "shortName": "E. Fernández", "image": "…" },
"type": "transfer", "date": "2026-09-01",
"from": { "id": 3790, "name": "Chelsea", … }, "fromName": "Chelsea",
"to": { "id": 3802, "name": "Manchester City", … }, "toName": "Manchester City",
"fee": { "amount": 145000000, "currency": "EUR" }, "freeTransfer": false, "draft": null }, … ],
"meta": { "sort": "fee", "league": null, "position": null, "nationality": null, "minAge": null, "maxAge": null, "page": 0, "count": 50, "hasNextPage": true } }04Errors
- 400
bad_requestsort or position takes a value not listed above, nationality is not a country code, an age falls outside 15–45 or minAge exceeds maxAge, or page is outside 0–50
- 404
not_foundDataSportsAPI has never assigned this league id
unauthorized429rate_limited429quota_exceeded500internal_errorEvery error code