Skip to content
datasportsAPI

No. 05 · Digital · Fixture sport

EsportsSeries, opened map by map.

Counter-Strike, League of Legends, Dota 2, Valorant and more: series map by map, with per-player kills, deaths and assists.

05Digital
Esports11 endpoints · fixtures

Scouting report

What you get for Esports

An esports fixture is a series, best of one, three or five, and the games endpoint opens it up: map, start, duration and winner of each game, and for every player the role, the champion or hero, and kills, deaths and assists.

Each title then adds its own figures: gold and creep score in League of Legends, net worth and last hits in Dota 2, ADR, KAST and headshot kills in Counter-Strike, which also comes round by round with who won each round and how.

First request

Every esports match in play, one call.

The live board filtered to esports: each match with its score, status and clock. The same request in four forms; pick yours.

  1. 1Create a key in the dashboard. Free gives you 1,000 requests a day during the beta.
  2. 2Put it in DATASPORTSAPI_API_KEY so the SDKs and the dsa command find it.
  3. 3Call /v2/livescores?sport=esports.
curl -H "Authorization: Bearer dsa_live_…" \
  "https://api.datasportsapi.com/v2/livescores?sport=esports"

The catalog

Esports, endpoint by endpoint

Its own detail first, then the shared spine every fixture sport answers on. Each row opens the endpoint’s reference page.

All 116 endpoints

Where esports goes deeper

1 endpoint with detail specific to the sport.

The shared spine

10 endpoints that behave the same for every fixture sport.

  1. GETLive scores/v2/livescoresReturns every live fixture across all sports, or a single sport’s in-play board when ?sport= is given.All plans
  2. GETFixtures by date/v2/fixturesLists the fixtures that start on a given UTC date.All plans
  3. GETFixture/v2/fixtures/{id}Everything we hold on one fixture.All plans
  4. GETEvents/v2/fixtures/{id}/eventsThe match’s incidents in chronological order, oldest first: goals, cards, substitutions, period markers and added-time announcements.All plans
  5. GETStatistics/v2/fixtures/{id}/statisticsTeam statistics for the match, organised by period and by category.All plans
  6. GETHead to head/v2/fixtures/{id}/h2hThe two teams’ head-to-head record as tallied by the source, seen from this fixture’s home / away point of view.All plans
  7. GETStandings/v2/leagues/{id}/standingsLeague tables for a single season.All plans
  8. GETTeam/v2/teams/{id}Returns a team’s profile — sport, country, venue, colours, logo, gender, whether it is a club or a national team, kind (team / individual / pair), manager and founding date (foundedOn, pres…All plans
  9. GETLeague/v2/leagues/{id}Returns a league’s profile: its tier (where it sits in the national pyramid), gender, the reigning champion with its title count, the clubs holding the most titles, the divisions directly a…All plans
  10. GETSearch/v2/searchA single search over teams (individual competitors included), players, managers, referees, leagues, fixtures, venues, racing series and races.All plans

What comes back

Esports games, as served

One League of Legends game: a player's champion and line, the bans and each side's objectives.

GET/v2/fixtures/{id}/gamesAll plans

Sample from the docs, trimmed with …

GET /v2/fixtures/{id}/games
{ "data": [ { "number": 1, "status": "finished", "map": null, "startedAt": "2026-10-23T21:10:55.000Z", "durationSeconds": 1958, "winner": "away",
    "home": { "score": 8, "periods": {},
      "players": [ { "player": { "id": 902114, "name": "Caps", "slug": "caps", "shortName": "Caps", "image": "…" }, "role": "mid",
                     "character": { "name": "Viktor", "slug": "viktor" }, "kills": 1, "deaths": 2, "assists": 4,
                     "gold": 11177, "creepScore": 287, "level": 16,
                     "denies": null, "netWorth": null, "goldPerMinute": null, "experiencePerMinute": null,
                     "averageDamagePerRound": null, "headshotKills": null, "kastPercentage": null,
                     "killDeathDifference": null, "firstKillDifference": null, "flashAssists": null }, … ],
      "bans": [ { "name": "Lucian", "slug": "lucian" }, … ],
      "statistics": { "kills": 8, "gold": 57524, "towers": 3, "inhibitors": 0, "dragons": 3, "elderDragons": 0, "barons": 1, "heraldTaken": false,
                      "barracks": null, "firstBlood": null,
                      "dragonsByType": { "chemtech": 0, "cloud": 0, "hextech": 0, "infernal": 0, "mountain": 0, "ocean": 3 } } },
    "away": { … } }, … ],
  "meta": { "count": 3 } }

Esports is one query string away.

Swap ?sport=esports for any other fixture sport and the same code keeps working. Free key, no card.