Indian Super League API: Build ISL Fixtures, Standings & Match Pages

Build with the Indian Super League API: ISL fixtures, results, standings, lineups and match stats. Real endpoints and copy-paste code from GOAL API.

GOAL API

5 min read
Indian Super League API: ISL fixtures, standings and match pages for developers, from GOAL API

The Indian Super League runs through the Indian football season and pulls a big, mobile-first audience — exactly the kind of fan base that fills app stores with ISL trackers, match-centres, and fantasy tools. If you're building one, this guide shows precisely what Indian Super League (ISL) data you can pull from GOAL API, with real endpoints and copy-paste requests.

Everything here reflects what GOAL API actually holds for the ISL today — no overclaiming. For the live data spec and current match counts, the ISL coverage page is the source of truth; this post is the how-to that builds on it.

Free tier, no credit card — get a key and make your first request in a couple of minutes: goal-api.com/signup

What ISL Data Is Actually Available

Not every league carries every data type — it depends on what the upstream sources publish. For the Indian Super League (2021–2026 seasons, 16 teams in the data), here's what GOAL API holds:

Data type Available?
Fixtures & results Yes — 625 matches
League standings Yes — 14 rows
Match lineups Yes — 625 matches
Match statistics Yes — 615 matches
Goals, cards & substitutions Yes — 436 matches
Top scorers Not available for this league
Odds Not available for this league
Predictions Not available for this league

Indian Super League data in GOAL API: fixtures and results (625), standings (14 rows), lineups (625), match statistics (615), and goals, cards and substitutions (436) available; top scorers, odds and predictions not for this league

Being upfront about what isn't there matters: some competing ISL API pages advertise odds for this competition. Check the coverage page before you design a feature around any data type — it reports what is actually held today, league by league, and the numbers come straight from the database.

Quick Start: Your First ISL Request

The Indian Super League uses league ID cmr77dvry008arx06q35z3h2m (find any competition's ID with GET /leagues?search=). That one ID is the key to every ISL call. Here's the fastest path to data:

Shell
curl "https://api.goal-api.com/v1/leagues/cmr77dvry008arx06q35z3h2m/fixtures" \
  -H "Authorization: Bearer YOUR_API_KEY"

Authentication & the league ID

Send your API key in an Authorization: Bearer header — grab it from the dashboard after signing up. Full auth details and every endpoint are in the GOAL API documentation. Cache the league ID; it's stable, so there's no need to look it up on each request.

JavaScript
// JavaScript
const ISL = 'cmr77dvry008arx06q35z3h2m';
const res = await fetch(
  `https://api.goal-api.com/v1/leagues/${ISL}/fixtures`,
  { headers: { Authorization: `Bearer ${process.env.GOAL_API_KEY}` } }
);
const { data } = await res.json();

ISL Fixtures & Results

Fixtures and results are the backbone of any ISL app — the full schedule plus finished-match scores. With 625 matches across the covered seasons, you have both the current campaign and the history to work with.

Shell
# All ISL fixtures (league ID cmr77dvry008arx06q35z3h2m)
curl "https://api.goal-api.com/v1/leagues/cmr77dvry008arx06q35z3h2m/fixtures" \
  -H "Authorization: Bearer YOUR_API_KEY"

Results come 50 per page: follow pagination.hasMore and pass ?offset= for the next page. Each fixture carries the two teams, kickoff time in UTC, status, and — for finished matches — the score. Because the ISL audience is overwhelmingly in India, convert kickoffUtc to IST (UTC+5:30) on the client so kickoff times read correctly for your users.

The ISL Table (League Standings)

The standings endpoint returns the ISL table already ordered — position, played, won/drawn/lost, goals for and against, and points (goal difference is goals for minus against). One ISL-specific thing worth getting right in your UI: the team that finishes top of the league stage wins the League Winners Shield, while the ISL Cup is decided by the end-of-season playoffs. They're two different trophies — label them accordingly.

Shell
curl "https://api.goal-api.com/v1/leagues/cmr77dvry008arx06q35z3h2m/standings" \
  -H "Authorization: Bearer YOUR_API_KEY"

The generic pattern — find the competition, pull the table, render it — is covered step by step in the fixtures & standings page tutorial; here you already know the ID is cmr77dvry008arx06q35z3h2m.

Lineups & Match Statistics

Lineups are available for all 625 matches, and match statistics for 615 — enough to build a proper match-centre. Pull the starting XI, formation, and bench for a fixture, plus stats like possession and shots.

Shell
# Lineups for a specific fixture
curl "https://api.goal-api.com/v1/fixtures/{fixtureId}/lineups" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Match statistics
curl "https://api.goal-api.com/v1/fixtures/{fixtureId}/statistics" \
  -H "Authorization: Bearer YOUR_API_KEY"

Rendering a formation pitch and a stats panel is exactly what the build a match page tutorial walks through — the ISL data slots straight into it.

Goals, Cards & Substitutions

Event data — goals, cards, and substitutions — is held for 436 matches, which powers a match timeline or an event feed.

Shell
# Goals
curl "https://api.goal-api.com/v1/fixtures/{fixtureId}/events" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Cards and substitutions
curl "https://api.goal-api.com/v1/fixtures/{fixtureId}/cards" \
  -H "Authorization: Bearer YOUR_API_KEY"
curl "https://api.goal-api.com/v1/fixtures/{fixtureId}/substitutions" \
  -H "Authorization: Bearer YOUR_API_KEY"

Event coverage (436) is lower than fixture coverage (625), so build your timeline to degrade gracefully: when a match has no events, fall back to the final score and stats rather than showing an empty feed.

Handling the League Stage vs Playoffs

The ISL season has two phases: a round-robin league stage, then playoffs among the top teams leading to the final. Practically, for your app:

  • League stage → render the standings table from the /standings call.
  • Playoffs → there's no single table for the knockout; build the bracket from the fixtures and their results.

Don't hard-code team counts or fixture totals as permanent constants — they shift between editions. Read them from the data each season. Other competitions follow the same league-stage-plus-knockout shape; browse the all leagues coverage to reuse the same code elsewhere.

What This League Does NOT Include

Worth stating plainly so you don't build a feature on data that isn't there for the ISL:

  • Top scorers — not available for the ISL specifically (available for many other leagues; check the coverage page per competition).
  • Odds — not available for this competition.
  • Predictions — not available for this competition.

If your product needs those, you can compute your own top-scorer list from event data where present, design around a competition that carries them, or contact the team to ask about coverage. The coverage page tells you, per league, before you write any code.

Endpoints You'll Use

Endpoint Returns
/v1/leagues/cmr77dvry008arx06q35z3h2m/fixtures All ISL fixtures & results
/v1/leagues/cmr77dvry008arx06q35z3h2m/standings ISL table (league stage)
/v1/fixtures/{id}/lineups Starting XI, formation, bench
/v1/fixtures/{id}/statistics Possession, shots, match stats
/v1/fixtures/{id}/events Goals (scorer, assist, minute)
/v1/fixtures/{id}/cards Yellow and red cards
/v1/fixtures/{id}/substitutions Substitutions

Auth on every request: Authorization: Bearer YOUR_API_KEY. Full reference in the GOAL API documentation.

What to Build Next

An ISL match-centre app — fixtures, live-updating scores, lineups, and a stats panel. Given the ISL's mobile-first audience, a React Native live score app is a natural fit for iOS and Android from one codebase.

A standings & form widget — an embeddable ISL table, refreshed after each matchday.

A playoff bracket — render the knockout from fixtures and results as the season reaches its climax.

Size your plan for match nights — ISL fixtures cluster on weekends and evenings. The pricing per match guide shows how to size for those spikes without overpaying. For another single-competition build, the UEFA Nations League API guide follows the same pattern.

Start building free → | No credit card | ISL data on the free tier

Keep reading

Indian Super League API: Build ISL Fixtures, Standings & Match Pages (Developer Guide) | GOAL API