Every NRL Betting Market in the SockOdds API
Head to head, the three-way result, line, totals, tries and try scorer markets for the NRL, with the keys to request each one.
The NRL is in SockOdds API v1 under the league key nrl, with the NRL Women's under nrlw. Both are rugby league (sport key rugby_league), alongside the Rugby League World Cup (rlwc) and the Women's World Cup (rlwcw), and all four share one set of 16 market types: head to head, the three-way result, line and totals, total tries, team totals, and player markets for try scorers, tackles and run metres.
Every NRL market type
The table comes from the API's own catalogue. A bookmaker quotes the markets it offers for each game, so a type being listed means you can ask for it, not that every bookmaker prices it every week.
Game markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Winner | winner | home, away, competitor_1, competitor_2 | No | full, half_1, half_2 |
| Result (with the draw) | result | home, draw, away | No | full, regulation, half_1, half_2 |
| Handicap | handicap | home, away, competitor_1, competitor_2 | Yes | full, half_1, half_2 |
| Total points | total_points | over, under | Yes | full, half_1, half_2 |
| Total tries | total_tries | over, under | Yes | full |
Team markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Team points over/under | team_points_over_under | over, under | Yes | full, half_1, half_2 |
| Team tries over/under | team_tries_over_under | over, under | Yes | full |
| Team first try scorer | team_tries_first | Each competitor | No | full |
| Team last try scorer | team_tries_last | Each competitor | No | full |
| Team wins by 1 to 12 | team_win_by_1_to_12_yes_no | yes, no | No | full |
Player markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Anytime try scorer | player_tries_anytime | yes | No | full |
| First try scorer | player_tries_first | Each competitor | No | full |
| Last try scorer | player_tries_last | Each competitor | No | full |
| Player tries over/under | player_tries_over_under | over, under | Yes | full |
| Player tackles over/under | player_tackles_over_under | over, under | Yes | full |
| Player run metres over/under | player_run_metres_over_under | over, under | Yes | full |
Reading rugby league markets
winneris the head to head: sideshomeandaway.resultis the three-way market with adraw, priced onregulation: the 80 minutes, where a draw is a result of its own.handicapis the line. Each outcome carries its own figure:homeat-6.5withawayat6.5, for example.total_pointsandtotal_triesare over/under markets on the game;team_points_over_underandteam_tries_over_underare the same for one team, which is the market'ssubject.
Periods are full, regulation, half_1 and half_2. full includes golden point extra time where it is played; regulation is the 80 minutes only. A full head to head and a regulation result are different bets, so check period on every market before you compare two prices.
Try scorer and player markets
player_tries_anytimeis one market per player, sideyes.player_tries_firstandplayer_tries_lastare runner markets: one outcome per player, and the outcome'ssideis the player's id.player_tries_over_undercarries a line: two or more tries is the over at 1.5.player_tackles_over_underandplayer_run_metres_over_underare over/under markets on one player.
Every player has a pl_ id that stays the same across bookmakers and games, so one player's anytime try market comes back once, with every bookmaker's price on it, best first.
Ask for the markets in code
The catalogue is one request away. This reads the rugby league market types the API defines (the same for the NRL and the World Cups):
curl -sS "https://api.sockodds.com/v1/markets?league=nrl&limit=3" \
-H "Authorization: Bearer $SOCKODDS_API_KEY"const response = await fetch("https://api.sockodds.com/v1/markets?league=nrl&limit=3", {
headers: { Authorization: `Bearer ${process.env.SOCKODDS_API_KEY}` },
});
console.log(JSON.stringify(await response.json(), null, 2));import json, os, urllib.request
request = urllib.request.Request(
"https://api.sockodds.com/v1/markets?league=nrl&limit=3",
headers={"Authorization": "Bearer " + os.environ["SOCKODDS_API_KEY"]},
)
with urllib.request.urlopen(request) as response:
print(json.dumps(json.load(response), indent=2))Response from a local copy of the API with invented test prices
{
"data": [
{
"key": "winner",
"name": "Winner",
"subject": "event",
"bet": "winner",
"stat": null,
"has_line": false,
"sides": [
"home",
"away"
],
"sports": [
"australian_football",
"rugby_league",
"rugby_union",
"basketball",
"american_football",
"baseball",
"ice_hockey",
"tennis",
"mma",
"cricket",
"esports"
],
"periods": [
"full",
"half_1",
"half_2",
"quarter_1",
"quarter_2",
"quarter_3",
"quarter_4",
"innings_1_to_5",
"half_2_ot",
"period_1",
"period_2",
"period_3",
"set_1",
"set_2",
"set_3",
"set_4",
"set_5",
"map_1",
"map_2",
"map_3",
"map_4",
"map_5"
]
},
{
"key": "result",
"name": "Result (with the draw)",
"subject": "event",
"bet": "result",
"stat": null,
"has_line": false,
"sides": [
"home",
"draw",
"away"
],
"sports": [
"american_football",
"soccer",
"rugby_league",
"rugby_union",
"ice_hockey",
"cricket",
"baseball"
],
"periods": [
"full",
"regulation",
"half_1",
"half_2",
"period_1",
"period_2",
"period_3",
"quarter_1",
"quarter_2",
"quarter_3",
"quarter_4",
"inning_1",
"innings_1_to_5"
]
},
{
"key": "handicap",
"name": "Handicap",
"subject": "event",
"bet": "handicap",
"stat": null,
"has_line": true,
"sides": [
"home",
"away"
],
"sports": [
"australian_football",
"rugby_league",
"rugby_union",
"soccer",
"basketball",
"american_football",
"baseball",
"ice_hockey",
"tennis",
"esports"
],
"periods": [
"full",
"half_1",
"half_2",
"quarter_1",
"quarter_2",
"quarter_3",
"quarter_4",
"innings_1_to_5",
"half_2_ot",
"quarter_4_ot",
"period_1",
"period_2",
"period_3"
]
}
],
"meta": {
"count": 3,
"cursor": "eyJuIjozLCJmIjoiZTAzNDBiNDM2ZTQ2MmE2OSJ9"
},
"links": {
"next": "https://api.sockodds.com/v1/markets?league=nrl&limit=3&cursor=eyJuIjozLCJmIjoiZTAzNDBiNDM2ZTQ2MmE2OSJ9"
}
}Follow links.next for the rest of the list. Read it once and cache it: catalogue rows count towards your monthly objects like any other row.
When prices appear
NRL prices are delivered in season. Out of season the league and its markets stay in the catalogue, so you can build against the keys now, and prices arrive in the same responses once bookmakers are pricing games. The NRL league page lists the bookmakers delivering it today. The Rugby League World Cup uses the same markets: see the Rugby League World Cup post.
The NRL is on the free Developer plan, which reads Sportsbet, TAB and Ladbrokes. The NRLW is on Rookie and Pro. See pricing.
Next
SockOdds provides data only. It does not offer tips or predictions on any game.