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
query
latest (default) | fee | popular
league
query
a league id: only moves into or out of its clubs
position
query
goalkeeper | defender | midfielder | forward
nationality
query
a two-letter country code as Country.code gives it, any case (EN England, SX Scotland, WA Wales, NX Northern Ireland)
minAge
query
only players at least this old, whole years 15–45
maxAge
query
only players at most this old, whole years 15–45, not below minAge
page
query
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.

Try it →
$ 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 } }