Skip to content
datasportsAPI

PlayersLatest transfers

Documentation

/

Type to filter the docs by title or path.

PlayersEndpoint 53 of 116

Latest transfers

GET

/v2/transfers

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

  • sortqueryOptional

    latest \| fee \| popular; latest when omitted

  • leaguequeryOptional

    league id; keeps only moves into or out of that league’s clubs

  • positionqueryOptional

    goalkeeper \| defender \| midfielder \| forward

  • nationalityqueryOptional

    two-letter country code in the form Country.code uses, case-insensitive (England EN, Scotland SX, Wales WA, Northern Ireland NX)

  • minAgequeryOptional

    minimum player age in whole years, 15–45

  • maxAgequeryOptional

    maximum player age in whole years, 15–45; must not be lower than minAge

  • pagequeryOptional

    page 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.

data
Transfer[]
meta
sort, league, position, nationality, minAge, maxAge, page, count, hasNextPage
ObjectsTransfer
Example response
{ "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

  • 400bad_request

    sort 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

  • 404not_found

    DataSportsAPI has never assigned this league id

Any key can also meet401unauthorized429rate_limited429quota_exceeded500internal_errorEvery error code