Skip to main content

LeagueRepublic API: Get Fixtures For Team

Written by Pedro Maia

Before you start

Who this is for: this endpoint only works for leagues on the Gold subscription that have switched the API on. To switch it on, tick Enable JSON API in your league's API Settings. If either is missing, every web address in this article returns an error instead of your data.

What is this? The JSON API lets another website, app or program read your league's fixtures, results and tables straight from LeagueRepublic. Think of it like a waiter: your website asks for something ("this team's matches, please"), and LeagueRepublic brings back the answer.

How do you ask? You visit a web address, just like opening a web page. Instead of a nice-looking page, you get back plain text in a format called JSON. Your web developer's code reads that text and turns it into whatever they design.

What does JSON look like? It is a list of labels and values, a bit like a form that has been filled in:

{ "homeTeamName": "Arthurlie", "homeScore": "2" }

The word before the colon is the field name (the label on the form). The bit after it is the value (what was written in the box). The tables later in this article explain what each field name means.

What is an ID? Every season, team and match in LeagueRepublic has its own number, called an ID. It works like a membership number: it never changes, and no two things share one. You put IDs into the web address to say which season or team you want.

How do I find my IDs? Your season ID comes from Get Seasons For League. Your team IDs come from Get Teams For Fixture Group. Both are described in the main API help article.

Who can use it? Leagues on the Gold plan that have ticked Enable JSON API in their API Settings.

Is there a limit? Yes. Each league can make up to 60 requests a minute. If you go over, you get a "Rate limit exceeded" message and need to wait a minute before trying again.

A few words you will see

Word

What it means

Road

The away team. LeagueRepublic says "road" where most people say "away".

Fixture

A match, whether it has been played yet or not.

Fixture group

A division (such as "Premier Division") or a cup round.

Result

A fixture that has a score.

null

The box is empty. The league did not enter it, or it does not apply.

true / false

Yes / no.

Get Fixtures For Team

Get Fixtures For Team gives you every match one team has in a season, in date order: league matches, cup matches and any others, played and unplayed. It is what you need to build a team page.

Without it, your developer would need to download every match in the whole league and pick out that team's matches themselves.

The web address

Replace {seasonID} with the season's ID and {teamID} with the team's ID. For example, Clydebank in the 2025-2026 season:

What you get back

A list of matches, earliest first. Here is a real example, trimmed to one match:

[

{

"fixtureID": 41048450,

"fixtureDate": "20250719 14:00",

"fixtureDateInMilliseconds": 1752930000000,

"fixtureDateStatusID": 1,

"fixtureDateStatusDesc": "Normal / Scheduled",

"fixtureGroupDesc": "West Of Scotland Charity Cup",

"fixtureGroupIdentifier": 638722492,

"fixtureTypeID": 2,

"fixtureStatus": 0,

"fixtureStatusDesc": "Normal",

"homeTeam": 504402802,

"homeTeamName": "Clydebank",

"roadTeam": 363729896,

"roadTeamName": "Auchinleck Talbot",

"homeScore": "4",

"roadScore": "1",

"homeScoreNote": null,

"roadScoreNote": null,

"additionalScore": "(HT 2-0)",

"result": true,

"noResultOutcome": false,

"fixtureNote": null,

"roundDesc": "Final",

"shortCode": "C",

"venueAndSubVenueDesc": "Holm Park"

}

]

Clydebank were at home and won 4-1 in the cup final, 2-0 up at half time.

Each match

These use exactly the same names as the match lists in the other LeagueRepublic API endpoints, such as Get Fixtures For Season, so your developer can reuse the same code.

Field name

What it means

fixtureID

The match's ID.

fixtureDate

Date and kick-off time, written like 20250719 14:00.

fixtureDateInMilliseconds

The same date and time as a single number. Developers find this easier to sort by.

fixtureDateStatusID / fixtureDateStatusDesc

Whether the date is fixed: 1 = "Normal / Scheduled", 2 = "To Be Confirmed".

fixtureGroupDesc

The division or cup the match belongs to, for example "West Of Scotland Charity Cup".

fixtureGroupIdentifier

That division's or cup's ID.

fixtureTypeID

What kind it is: 1 = division, 2 = cup, 4 = other.

fixtureStatus / fixtureStatusDesc

Whether the match is going ahead: 0 = "Normal", 2 = "Postponed".

homeTeam / roadTeam

The home and away teams' IDs.

homeTeamName / roadTeamName

The home and away teams' names.

homeScore / roadScore

The score. Written as text, so it can also hold a letter such as "P" for postponed. Empty if not played.

homeScoreNote / roadScoreNote

A note next to a score. Usually empty.

additionalScore

Extra score detail, such as "(HT 2-0)" or "(Pens 4-5)".

result

true if the match has a result.

noResultOutcome

true if the match was recorded as having no result.

fixtureNote

A note about the match, if the league shows one.

roundDesc

The cup round, for example "Round 2" or "Final".

shortCode

A one-letter code for the type of match: L = league, C = cup, O = other.

venueAndSubVenueDesc

Where it is played, for example "Holm Park".

Is the team home or away?

Compare the team's ID with homeTeam and roadTeam. If it matches homeTeam, the team was at home. If it matches roadTeam, they were away.

Good to know

  • Played and unplayed matches are both included. Unplayed ones have "result": false and empty scores.

  • An empty list is not an error. If the team exists but has no matches that season, you get [], which means "nothing found". This also happens if the team belongs to a different league from the season.

If something goes wrong

Message

What it means

Supplied seasonID or teamID is not numeric

One of the IDs has letters or symbols in it. They should be numbers only.

Season does not exist for supplied season ID

There is no season with that ID. Check you copied it correctly.

Team does not exist for supplied team ID

There is no team with that ID. Check you copied it correctly.

League is not authorised to access webservices

The league is not on the Gold plan.

JSON api is disabled for league

Enable JSON API is not ticked in your API Settings.

Rate limit exceeded

More than 60 requests in a minute. Wait a minute, then try again.

Build it with an AI assistant

You do not need to be a developer to try this endpoint. AI assistants such as ChatGPT or Claude can build a simple web page from your league's data if you tell them what you want. Below is a ready-made request (called a prompt) you can copy and paste.

How to use the prompt

  1. Copy the prompt from the grey box.

  2. Fill in your IDs. Replace [MY SEASON ID] and [MY TEAM ID] with your own numbers. See "How do I find my IDs?" at the start of this article.

  3. Add a real example. Open the web address from the prompt in your browser, select everything on the page, and paste it under the prompt where it says to. The AI then sees your actual data, which makes it far more likely to get things right first time.

  4. Say how you want it to look. Describe your colours and style, or attach a screenshot of your website or a design you like (ChatGPT and Claude both accept pictures). A picture usually works best. If you don't say anything, the AI will pick a plain design.

  5. Paste it all into the AI and send it.

  6. Check the result against your league website. If something looks wrong, tell the AI what is wrong in plain words, for example "the scores are the wrong way round". It will fix it.

If the page the AI makes shows no data, tell the AI exactly what you see. It may need to suggest a different way of loading the data.

Prompt: a team page

I run a sports league on LeagueRepublic. Build me a single web page (one HTML file I can open in my browser) that shows one team's matches for the season, using the LeagueRepublic JSON API.

Get the data from this web address:

The data is a list of matches. My team's ID is [MY TEAM ID]. The page should:

1. Use my team's name as the title. It is in "homeTeamName" when "homeTeam" equals my team's ID, and in "roadTeamName" when "roadTeam" equals my team's ID.

2. Split the matches into two sections: "Results" (where "result" is true), newest first, and "Upcoming" (where "result" is false), soonest first.

3. For each match, show the date ("fixtureDate"), the competition ("fixtureGroupDesc", plus "roundDesc" for cup rounds), the opponent, whether it is home or away, and the score. If "homeTeam" equals my team's ID, my team is at home. If "roadTeam" equals it, my team is away. "Road" means away.

4. For results, show W, D or L from my team's point of view, in green, grey or red. If a match finished level and "additionalScore" shows a penalty shoot-out, such as "(Pens 4-2)", show P instead of D and display the shoot-out score next to it.

5. If "additionalScore" has something in it, such as "(HT 2-0)", show it in small text under the score.

6. Show empty values (null) as blank. Never show the word "null".

7. Do not fetch the data more than once a minute. The API allows 60 requests a minute.

Keep the design clean and easy to read on a phone. Explain in simple steps how to open and use the file. Ask me if anything is unclear.

Design: [DESCRIBE THE LOOK YOU WANT, OR ATTACH A SCREENSHOT]

Here is an example of what the web address returns:

[PASTE THE EXAMPLE HERE]

Did this answer your question?