NBL fixtures and teams
Retrieve game IDs, team names and scheduled tip-offs with the basketball and NBL filters.
Our NBL odds API provides fixtures, teams and tip-off times alongside bookmaker prices for head-to-head, line betting, totals and player props. Keep each game's bookmaker prices and periods connected with one event ID.
/v1/events/nbl-example-001/odds/snapshot
{
"event_id": "nbl-example-001",
"as_of_ts_ms": 1793498400000,
"ttl_seconds": 120,
"items": [
{
"bookmaker": "sportsbet",
"market_key": "moneyline",
"selection_name": "Tasmania JackJumpers",
"odds": 1.75,
"fair_odds": 1.78
},
{
"bookmaker": "sportsbet",
"market_key": "moneyline",
"selection_name": "Sydney Kings",
"odds": 2.25,
"fair_odds": 2.29
}
]
}
Retrieve game IDs, team names and scheduled tip-offs with the basketball and NBL filters.
Compare head-to-head, line and total points prices for full games, halves and quarters.
Request player points, rebounds, assists and made-threes lines alongside game odds.
Give users a fixture picker with full-game, half, quarter and player-market views. Compare Sportsbet, TAB and Ladbrokes prices for the exact same bet.
X-API-Keysportsbet, tab, ladbrokes/v1/events/{event_id}/odds/snapshot?bookmakers=sportsbet,tab,ladbrokes
Create an NBL odds screen with a game picker and separate views for full-game lines, halves, quarters and player props. Use https://api.odds-api.net/v1.
Discover games at /events?sport=basketball&league=NBL¬_started_only=true&limit=50. Show both teams and the scheduled tip-off. Convert Unix start_time to a configurable display time zone rather than assuming every Australian and New Zealand venue uses the same zone.
For a selected event_id, fetch /events/{event_id}/odds/snapshot?bookmakers=sportsbet,tab,ladbrokes&price_fields=odds&include_unavailable=true. Follow next_cursor on event and odds responses.
Group game prices into Head-to-head, Line and Total points. Add Points, Rebounds, Assists and Threes filters for player props. Use a column per bookmaker and match rows by market_key, period label, line, side and player_name. Use period_str when present, otherwise the returned period label; a numeric period alone can refer to a half or a quarter. Keep each quarter and half separate from the full-game market.
Display decimal odds, highlight tied best offered prices and show a dash for missing or suspended quotes. Include bookmaker_as_of_ts_ms to show quote age. Player prop thresholds are betting markets, not recorded player statistics.
Keep ODDS_API_KEY on the server and authenticate with X-API-Key. Follow https://odds-api.net/docs/nbl for period filtering, historical selection prices and stream updates.const apiKey = process.env.ODDS_API_KEY;
const baseUrl = "https://api.odds-api.net/v1";
const headers = { "X-API-Key": apiKey };
if (!apiKey) throw new Error("Set ODDS_API_KEY before running this file.");
async function getJson(path) {
const response = await fetch(`${baseUrl}${path}`, { headers });
if (!response.ok) throw new Error(await response.text());
return response.json();
}
const events = await getJson("/events?sport=basketball&league=NBL¬_started_only=true&limit=50");
const bookmakerKeys = ["sportsbet", "tab", "ladbrokes"];
const event = events.items.find(({ bookmakers }) =>
bookmakerKeys.some((key) => Array.isArray(bookmakers)
? bookmakers.includes(key)
: Object.hasOwn(bookmakers ?? {}, key))
);
if (!event) throw new Error("No upcoming NBL game with Sportsbet, TAB or Ladbrokes odds found.");
const snapshot = await getJson(
`/events/${encodeURIComponent(event.event_id)}/odds/snapshot?bookmakers=sportsbet,tab,ladbrokes`
);
console.log(JSON.stringify(snapshot, null, 2));
import os
import requests
base_url = "https://api.odds-api.net/v1"
headers = {"X-API-Key": os.environ["ODDS_API_KEY"]}
events_response = requests.get(
f"{base_url}/events",
headers=headers,
params={"limit": 50, "sport": "basketball", "league": "NBL", "not_started_only": True},
timeout=20,
)
events_response.raise_for_status()
events = events_response.json()["items"]
event = next(
(item for item in events if any(
key in item.get("bookmakers", [])
for key in ["sportsbet", "tab", "ladbrokes"]
)),
None,
)
if event is None:
raise RuntimeError("No upcoming NBL game with Sportsbet, TAB or Ladbrokes odds found.")
response = requests.get(
f"{base_url}/events/{event['event_id']}/odds/snapshot",
headers=headers,
params={"bookmakers": "sportsbet,tab,ladbrokes"},
timeout=20,
)
response.raise_for_status()
print(response.json())
export ODDS_API_KEY="your_api_key"
# Find an upcoming NBL game listing sportsbet,tab,ladbrokes.
curl -sS \
-H "X-API-Key: $ODDS_API_KEY" \
"https://api.odds-api.net/v1/events?sport=basketball&league=NBL¬_started_only=true&limit=50"
# Use that game's event_id below.
export EVENT_ID="replace_with_event_id"
curl -sS \
-H "X-API-Key: $ODDS_API_KEY" \
"https://api.odds-api.net/v1/events/$EVENT_ID/odds/snapshot?bookmakers=sportsbet,tab,ladbrokes"
Discover a game once, then use its event ID for the game record, result endpoint, complete odds snapshot and price stream.
List NBL games with teams, scheduled tip-offs and canonical event IDs.
GET /v1/events?sport=basketball&league=NBL
Retrieve the source game record using the same event ID as the odds feed.
GET /v1/events/{event_id}
Read the result endpoint and handle its pending or available status.
GET /v1/events/{event_id}/results
Load bookmaker quotes for game lines, periods, team totals and player markets.
GET /v1/events/{event_id}/odds/snapshot
Update your odds view from SSE or WebSocket deltas after loading the snapshot.
GET /v1/events/{event_id}/odds/stream
The same event ID joins the fixture and game markets; period, line, player and side identify the bet.
Compare full-game prices, half and quarter markets, team totals and NBL player props using normalized market keys.
| NBL market | API bet_type | What it covers |
|---|---|---|
| Head-to-head | moneyline |
Two-way game-winner prices for the home and away teams. |
| Line betting | handicap |
Point-start lines, including alternate thresholds and period-specific prices. |
| Game totals | total |
Over and under prices for combined points, with game, half and quarter periods. |
| Team totals | team total |
Over and under prices for one team's points. |
| Player scoring | player pointsplayer threes |
Player points and made-three-pointer lines, matched by player and threshold. |
| Rebounds and assists | player reboundsplayer assists |
Player rebound and assist thresholds with an over or under side. |
| Three-way result | moneyline 3w |
Three-way result prices include a draw selection. Keep them separate from two-way head-to-head prices. |
Tools for events, odds, line movement, streams, and paid-plan positive EV or arbitrage feeds.
Agent-ready instructions.
TypeScript, Python, Postman and example builds.
Sports and racing odds coverage for agent workflows.
Lightweight streaming updates for dashboards and alerts.
Bidirectional streams for richer pre-match products.
Choose an NBL game, load its complete odds snapshot and keep the exact game period and selection attached to every price.
Filter events with sport=basketball and league=NBL, then retain each event ID and tip-off time.
Request the game's odds, follow pagination and keep bookmaker keys on every row.
Separate full-game, half and quarter lines; match player props by player, line, side and period.
Start the game's stream from the snapshot resume token and apply deltas by odds-row ID.
Choose request and streaming allowances for your NBL product.
Enterprise grade
Custom projects, scoped with your team.
NBL league filters, game periods, player markets and price history.
NBL here is the National Basketball League in Australia and New Zealand. Request sport=basketball and league=NBL to select the competition.
NBL coverage includes head-to-head, line betting, game totals, team totals and player props. Use each row's period label to keep full-game, half and quarter prices separate.
Player points, rebounds, assists and threes are bookmaker prop markets. They describe betting selections and thresholds; they are not a player box-score or play-by-play feed.
Use the same event ID, market key, period, line, side and player name. A first-quarter line and a full-game line are separate bets, even when the team and threshold match.
With history access, query retained prices for an event and selection using a bounded time window. For current odds, load the game snapshot and follow its SSE or WebSocket stream. The NBL docs include requests for both.
Load the fixture list, connect bookmaker markets and build your NBL odds view.