Valorant and League of Legends matches

GET https://api.api.sh/esports/v1/matches
1 credit / call sports try it in the playground →

Esports matches. Valorant (vlr.gg): upcoming and live, or results, 50 a page with teams, countries, map score, winner, event and stage, and the time until or since the match (start_time_approx in UTC); pass next_page back as page. Valorant filters: team_id (that team's matches), event_id (every match of an event), date_from/date_to (matches of the page on those days); each match has has_vods. match_id returns one match instead: event and stage, UTC start time, patch, teams, series score, best-of, the map veto, every map with its score, who picked it and its duration, streams and per-map VOD links. League of Legends (lolesports.com): schedule of every league or one (league slug from /esports/v1/leagues) with start time, state, block, best-of, teams with game wins, outcome and record; pass older_cursor or newer_cursor back as cursor.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
gamerequired valorant | lol valorant or lol. Example: valorant
status string valorant: upcoming (default) or results. lol: all (default), upcoming, live or results.
league string lol only: league slug (lck, lec, lpl, lcs, worlds, msi ...) or id.
page integer valorant: page number.
cursor string lol: older_cursor / newer_cursor from the previous answer.
team_id string valorant only: a vlr.gg team id (e.g. 2593 for FNATIC): that team's upcoming matches or results (with status), paged.
event_id string valorant only: a vlr.gg event id (e.g. 2004): every upcoming match or result of the event on one page.
date_from string valorant only: YYYY-MM-DD; keeps the matches of the page on or after this day.
date_to string valorant only: YYYY-MM-DD; keeps the matches of the page on or before this day.
match_id string valorant only: a vlr.gg match id (the number in the match URL): that match's details (maps, veto, streams, VODs, patch) instead of a list.

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/esports/v1/matches?game=valorant" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.