Leaguerepublic APIeadriaticleague2.leaguerepublic.com ↗
Fetch FIFA esports match results, scores, and round listings from eAdriaticLeague2 on LeagueRepublic. Two endpoints covering played matches and fixture group selectors.
What is the Leaguerepublic API?
The eAdriaticLeague2 LeagueRepublic API exposes 2 endpoints for accessing FIFA esports match data from the eAdriaticLeague competition. The get_round_matches endpoint returns every played match in a given round — including full-time scores, half-time scores, team names, and individual player names — while list_fixture_groups enumerates all available rounds with their selector values so you can iterate across the full season.
curl -X GET 'https://api.parse.bot/scraper/7bbd91af-f9dc-4658-8b3f-73a74f39f2fa/get_round_matches?fixture_group_id=1_210131177' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace eadriaticleague2-leaguerepublic-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: eAdriaticLeague SDK — discover rounds, then fetch match results."""
from parse_apis.eadriaticleague2_leaguerepublic_com_api import (
EAdriaticLeague, InputNotFound,
)
client = EAdriaticLeague()
# List available rounds for a known fixture group page.
selector = client.round_selectors.get(fixture_group_id="1_210131177")
print(f"Season: {selector.season.label}" if selector.season else "Season: unknown")
print(f"Available rounds: {selector.option_count}")
# Show the first few round options.
for opt in selector.options[:3]:
print(f" {opt.label} (id={opt.value}, selected={opt.selected})")
# Pick the first option and fetch its played matches.
first_option = selector.options[0] if selector.options else None
if first_option is not None:
try:
round_ = client.rounds.get(fixture_group_id=first_option.value)
except InputNotFound:
print(f"Round {first_option.value} not found")
else:
print(f"\n{round_.round_name} ({round_.match_count} played, {round_.skipped_unplayed} unplayed)")
for m in round_.matches or []:
ht = ""
if m.ht_home_goals is not None and m.ht_away_goals is not None:
ht = f" (HT {m.ht_home_goals}-{m.ht_away_goals})"
print(f" {m.home_team} ({m.home_player}) {m.home_goals}-{m.away_goals} {m.away_team} ({m.away_player}){ht}")
print("\nexercised: round_selectors.get / rounds.get")
Returns every played match listed on one round ('fixture group') page in a single response; there is no pagination (one page fetch per call). Each match row carries the date (DD/MM/YY as shown on the site) and kick-off time, home and away team names with the player name split out of the site's 'Team (Player)' label, full-time and half-time goals as integers, and the round label from the row tooltip. Fixtures not yet played (shown as 'VS' on the site) are skipped and counted in skipped_unplayed, so a round whose matches have not been played yet returns an empty matches array with a non-zero skipped_unplayed. Half-time goals are null when the site prints a full-time score without a half-time bracket. An unknown fixture_group_id yields a not-found error. Requests are paced to at most one every two seconds because the host rate-limits.
| Param | Type | Description |
|---|---|---|
| fixture_group_idrequired | string | Round identifier in the form <digits>_<digits>, as emitted in list_fixture_groups.options[*].value (e.g. 1_210131177). |
{
"type": "object",
"fields": {
"matches": "array of played matches with match_id, date (DD/MM/YY), kick_off_time (HH:MM), home_team, home_player, away_team, away_player, home_goals, away_goals, ht_home_goals, ht_away_goals (integers; HT fields null when not shown), round_label (row tooltip text)",
"round_name": "round heading shown on the page",
"match_count": "number of played matches returned",
"fixture_group_id": "the round identifier that was fetched",
"skipped_unplayed": "number of rows skipped because the match has not been played yet (shown as 'VS')"
},
"sample": {
"data": {
"matches": [
{
"date": "16/09/26",
"match_id": "45164797",
"away_team": "PSG",
"home_team": "Barcelona",
"away_goals": 1,
"home_goals": 3,
"away_player": "Leonardo",
"home_player": "Logan",
"round_label": "FC26 R4(CHAMPIONS LEAGUE)16.09.2026",
"ht_away_goals": 1,
"ht_home_goals": 1,
"kick_off_time": "12:20"
}
],
"round_name": "FC26 R4(CHAMPIONS LEAGUE)16.09.2026",
"match_count": 1,
"fixture_group_id": "1_210131177",
"skipped_unplayed": 0
},
"status": "success"
}
}About the Leaguerepublic API
Match Results by Round
The get_round_matches endpoint accepts a fixture_group_id string in the form <digits>_<digits> and returns every played match for that round in a single response. Each entry in the matches array includes match_id, date (formatted DD/MM/YY), kick_off_time (HH:MM), home_team, home_player, away_team, away_player, plus full-time and half-time scores split by home and away. The response also surfaces round_name, match_count, the echoed fixture_group_id, and skipped_unplayed — the count of fixture rows omitted because no score has been recorded yet (those rows show 'VS' on the source page).
Round Discovery
Before calling get_round_matches, use list_fixture_groups to discover valid round identifiers. It returns an options array where each entry carries a value (the fixture_group_id to pass to the match endpoint), a human-readable label, and a selected boolean indicating the currently active round. The option_count field tells you how many rounds exist, and the season object provides the season label and value currently in context. Both endpoints require a fixture_group_id as input, so list_fixture_groups is the natural starting point for any full-season data pull.
Coverage and Scope
Data covers only the eAdriaticLeague2 competition hosted on eadriaticleague2.leaguerepublic.com. Matches that have not yet been played are excluded from get_round_matches results and counted in skipped_unplayed. There is no pagination — one call per round returns the complete match list for that round.
The Leaguerepublic API is a managed, monitored endpoint for eadriaticleague2.leaguerepublic.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when eadriaticleague2.leaguerepublic.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official eadriaticleague2.leaguerepublic.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a season results tracker showing scores, players, and dates for every eAdriaticLeague2 round.
- Automate round-by-round data collection by iterating fixture_group_id values from list_fixture_groups.
- Generate player performance summaries by aggregating match results across home_player and away_player fields.
- Monitor how many unplayed matches remain in a round using the skipped_unplayed field.
- Populate a standings or head-to-head comparison tool using per-match full-time scores.
- Alert systems that notify when new results appear by comparing match_count changes across rounds.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.