Players
Latest transfers
GET/v2/transfersAll plans
The latest football transfers across every league, 50 a page — the same Transfer objects as a team’s list. Sort by date (the newest move first), by fee (the biggest first) or by the player’s popularity; narrow to the moves into or out of one league’s clubs, to one position, to one nationality and to an age range.
Football only (the source keeps this feed for football). latest lists moves by the day they take effect, so a loan that ends today sits beside a signing announced today. A release or a free agent’s move goes to "No team": to is null and toName says so. Refreshed every 30 minutes.
Parameters
sort
latest (default) | fee | popular
league
a league id: only moves into or out of its clubs
position
goalkeeper | defender | midfielder | forward
nationality
a two-letter country code as Country.code gives it, any case (EN England, SX Scotland, WA Wales, NX Northern Ireland)
minAge
only players at least this old, whole years 15–45
maxAge
only players at most this old, whole years 15–45, not below minAge
page
page 0–50 (default 0)
Response
- data
Transfer[]- meta
- sort, league, position, nationality, minAge, maxAge, page, count, hasNextPage
- errors
- 400 bad_request — sort or position not one of the values above, nationality not a country code, an age outside 15–45 or minAge above maxAge, page outside 0–50404 not_found — a league id we never issued
Every /v2 call can also answer the common errors.
$ curl -H "Authorization: Bearer sk_live_…" \ "https://api.sportsapi.app/v2/transfers"
Example
{ "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 } }