You need to ship an NRL standings and schedule widget this week. By the end of this guide you’ll query the NRL API from Zyla API Hub using JavaScript fetch, render the current ladder for a season, pull fixtures for a given round, and drill into a specific match’s details—ready to drop into your app or dashboard.
What you get with the NRL API on Zyla API Hub
The NRL API provides structured rugby league data you can consume directly from your frontend or backend:
- Ladder: current standings for the season you choose (supports current year and back to 2002).
- Fixture: game schedule and scores for the round you choose (current season and back to 2002).
- Match details: in-depth info for a match ID from the Fixture endpoint, including scores and lineups.
It’s listed on the Zyla API Hub marketplace, which aggregates more than 10,000 public APIs under a single account, one API key, and a subscription model. You can browse the NRL API listing here: NRL API.
Getting started on Zyla API Hub
Setup takes minutes:
- Open the NRL API page on Zyla API Hub.
- Click Subscribe. Plans use subscription + quota (not pay-per-call). The first API on a new account typically includes a 7-day trial or 50 requests. There is no Free Plan. Check the API page for current access options and pricing.
- Copy your API key.
All calls use an Authorization header:
- Authorization: Bearer YOUR_API_KEY
If you don’t have an account yet, you can create one here: Register.
Endpoint overview
Base pattern for all requests in this guide: https://zylalabs.com/api/... with Authorization: Bearer YOUR_API_KEY. Below are the endpoints available for the NRL API along with the exact URLs and parameters you can use.
Ladder (GET)
Returns the current ladder stats for the season you choose. You can use the current year or any season back to 2002.
- Method: GET
- URL: https://zylalabs.com/api/4554/nrl-api/5601/ladder
- Required query parameter:
- season (number): example value 2025
Official curl example (copy-paste ready):
curl -s -X GET "https://zylalabs.com/api/4554/nrl-api/5601/ladder?season=2025" \
-H "Authorization: Bearer YOUR_API_KEY"
Official sample JSON response:
{"status":"success","data":[{"season":"2024","ladder":{"position":"1","team":"Melbourne","played":"24","wins":"19","losses":"5","draws":"-","bye":"3","for":"692","against":"449","ladder_points":"44"}},{"season":"2024","ladder":{"position":"2","team":"Penrith","played":"24","wins":"17","losses":"7","draws":"-","bye":"3","for":"580","against":"394","ladder_points":"40"}},{"season":"2024","ladder":{"position":"3","team":"Sydney","played":"24","wins":"16","losses":"8","draws":"-","bye":"3","for":"738","against":"463","ladder_points":"38"}},{"season":"2024","ladder":{"position":"4","team":"Cronulla","played":"24","wins":"16","losses":"8","draws":"-","bye":"3","for":"653","against":"431","ladder_points":"38"}},{"season":"2024","ladder":{"position":"5","team":"North Qld","played":"24","wins":"15","losses":"9","draws":"-","bye":"3","for":"657","against":"568","ladder_points":"36"}},{"season":"2024","ladder":{"position":"6","team":"Canterbury","played":"24","wins":"14","losses":"10","draws":"-","bye":"3","for":"529","against":"433","ladder_points":"34"}},{"season":"2024","ladder":{"position":"7","team":"Manly","played":"24","wins":"13","losses":"10","draws":"1","bye":"3","for":"634","against":"521","ladder_points":"33"}},{"season":"2024","ladder":{"position":"8","team":"Newcastle","played":"24","wins":"12","losses":"12","draws":"-","bye":"3","for":"470","against":"510","ladder_points":"30"}},{"season":"2024","ladder":{"position":"9","team":"Canberra","played":"24","wins":"12","losses":"12","draws":"-","bye":"3","for":"474","against":"601","ladder_points":"30"}},{"season":"2024","ladder":{"position":"10","team":"Dolphins","played":"24","wins":"11","losses":"13","draws":"-","bye":"3","for":"577","against":"578","ladder_points":"28"}},{"season":"2024","ladder":{"position":"11","team":"St Geo Illa","played":"24","wins":"11","losses":"13","draws":"-","bye":"3","for":"508","against":"634","ladder_points":"28"}},{"season":"2024","ladder":{"position":"12","team":"Brisbane","played":"24","wins":"10","losses":"14","draws":"-","bye":"3","for":"537","against":"607","ladder_points":"26"}},{"season":"2024","ladder":{"position":"13","team":"Warriors","played":"24","wins":"9","losses":"14","draws":"1","bye":"3","for":"512","against":"574","ladder_points":"25"}},{"season":"2024","ladder":{"position":"14","team":"Gold Coast","played":"24","wins":"8","losses":"16","draws":"-","bye":"3","for":"488","against":"656","ladder_points":"22"}},{"season":"2024","ladder":{"position":"15","team…
How to read it quickly:
- status: string indicating success.
- data: array of ladder entries. Each entry has:
- season: the season label.
- ladder: an object with fields like position, team, played, wins, losses, draws, bye, for, against, ladder_points.
Fixture (GET)
Returns the fixture for a given round in a given season. Use it to display schedules, scores from previous rounds, or info about future rounds.
- Method: GET
- URL: https://zylalabs.com/api/4554/nrl-api/5602/fixture
- Required query parameters:
- season (number): example value 2024
- round (number): example value 1
curl example:
The response includes the season, round label, and an array of fixtures with match_id, date, time, team names, scores/points, referee, venue, and crowd. Use match_id values to request match details.
Match Details (GET)
Given a match_id from the Fixture endpoint, retrieve details such as scoresheet and lineups.
- Method: GET
- URL: https://zylalabs.com/api/4554/nrl-api/5603/match-details
- Required query parameter:
- match_id (number): example value 62004
curl example:
The response includes match status, date, kick-off time, referee, venue, crowd, home_team, away_team, and a match_details object (with nested match_score, scoresheet, and lineups data).
JavaScript fetch: end-to-end ladder rendering
The following JavaScript code calls the Ladder endpoint, extracts a few common fields, and logs a minimal standings array you can render in your app. It uses the same endpoint and parameters as the official curl above.
// Label: JavaScript example (Ladder)
async function fetchNrlLadder() {
const url = "https://zylalabs.com/api/4554/nrl-api/5601/ladder?season=2025";
const res = await fetch(url, {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY"
}
});
if (!res.ok) {
const text = await res.text();
throw new Error("NRL API request failed: " + res.status + " - " + text);
}
const json = await res.json();
// Expect shape: { status: "success", data: [ { season: "...", ladder: {...} }, ... ] }
const rows = (json.data || []).map(entry => {
const l = entry.ladder || {};
return {
season: entry.season,
position: l.position,
team: l.team,
played: l.played,
wins: l.wins,
losses: l.losses,
draws: l.draws,
for: l.for,
against: l.against,
points: l.ladder_points
};
});
console.table(rows.slice(0, 8)); // quick sanity check of top 8
}
fetchNrlLadder().catch(console.error);
Notes:
- Keep your API key in server-side code or an environment variable. If you must call from a browser, proxy the request through your backend.
- Cache ladder responses per season to reduce calls; the ladder changes after rounds complete rather than minute-by-minute.
Practical integration patterns
1) Weekly standings widget
Call the Ladder endpoint once after each round. Persist the response so your frontend instantly renders the latest table. Display fields: position, team, played, wins, losses, for, against, ladder_points.
2) Round-by-round schedule page
Use the Fixture endpoint for the selected season and round. Render the date, time, home_team, away_team, venue, and crowd. Where available, show home_score or away_points for completed matches. Link each row to a match details page using match_id.
3) Match center
On the match details page, fetch match-details with the match_id from the fixture. Display match_status, kick_off, referee, and venue. Show the match_score fields (home_score, away_score, halftime splits) and lineups.
4) Minimal caching strategy
- Ladder: cache by season; refresh on a schedule aligned to round completion.
- Fixture: cache by season+round; refresh if you detect changes to scores as matches complete.
- Match details: cache by match_id with short-lived TTL while a game is in progress, then store as final when completed.
Copy-paste cURL examples
You can quickly verify your setup with these exact requests (they require the Authorization header and your key). These URLs are from the NRL API listing on Zyla API Hub.
Ladder
Fixture (season + round)
Match details (by match_id)
Calling the NRL API from AI agents via MCP
Every API on Zyla API Hub can be called from AI agents through the MCP endpoint: https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY. This works with MCP-compatible clients like Claude Code, Cursor, and Windsurf. Your agent can request the same NRL API URLs shown above; the MCP layer forwards requests using your Zyla API Hub credentials.
For more on MCP usage, see: MCP.
Gotchas and reliability tips
- Authentication: Always send Authorization: Bearer YOUR_API_KEY.
- Parameters: Only pass the documented params for each endpoint (season, round, match_id). Do not send bodies on these GET requests.
- Error handling: Treat non-2xx responses as errors and log the body for diagnostics.
- Data freshness: Ladder updates as the season progresses; fixtures provide both past scores and future scheduling. Match details include granular fields once matches are completed.
- Quotas: Zyla uses subscription + quota. The first API on a new account typically includes a 7-day trial or 50 requests. Monitor your usage and check the API page for current access options.
Where to explore and next steps
Browse the NRL API listing on Zyla: NRL API. Zyla centralizes more than 10,000 public APIs, so you can add additional sports data later without creating new accounts or juggling multiple keys.
FAQ
Q: What auth header does the NRL API require?
A: Use Authorization: Bearer YOUR_API_KEY on every request to the Zyla API Hub URLs.
Q: Which parameters are required for each endpoint?
A: Ladder requires season. Fixture requires season and round. Match details requires match_id. Only pass those documented query parameters.
Q: Can I fetch historical seasons?
A: Yes. The Ladder and Fixture endpoints support seasons back to 2002, in addition to the current year.
Q: Is there a free plan?
A: There is no Free Plan. The first API on a new Zyla account typically includes a 7-day trial or 50 requests. Check the API page for current access options and pricing.
Q: Can I call the API from an AI agent?
A: Yes. Use the MCP endpoint at https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY. Your agent can then call the same NRL API URLs.
Ready to ship? Create your account, subscribe to the NRL API, and get your key here: Register. Then plug the curl and JavaScript snippets above into your app and deploy your NRL ladder, fixtures, and match center this week.