Norsk Tipping APInorsk-tipping.no ↗
Fetch prematch football 1X2 decimal odds from Norsk Tipping's Oddsen sportsbook. Browse tournaments and retrieve match odds via 2 structured endpoints.
What is the Norsk Tipping API?
The Norsk Tipping Oddsen API exposes prematch football betting odds through 2 endpoints, returning three-way (1X2) decimal odds alongside match metadata including home team, away team, kickoff time, and tournament name. The get_football_matches endpoint defaults to FIFA World Cup 2026 fixtures when no tournament_id is provided, while list_tournaments enumerates all available competition groups with their associated event counts.
curl -X GET 'https://api.parse.bot/scraper/87082f99-8f94-45ae-88e4-fff8a25af1d5/get_football_matches?limit=50&tournament_id=77254.1' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace norsk-tipping-no-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Norsk Tipping Oddsen — football match odds across leagues."""
from parse_apis.Norsk_Tipping_Oddsen_API import NorskTipping, NotFoundError
client = NorskTipping()
# List available football leagues with upcoming matches.
for tournament in client.tournaments.list(limit=5):
print(f"{tournament.country} - {tournament.league}: {tournament.num_events} events (id={tournament.navigation_id})")
# Drill into a specific league to get matches with 1X2 odds.
tourney = client.tournaments.list(limit=1).first()
if tourney:
match = tourney.matches(limit=1).first()
if match:
print(f"\n{match.home_team} vs {match.away_team} — {match.kickoff}")
print(f" Home: {match.odds_home} Draw: {match.odds_draw} Away: {match.odds_away}")
print(f" Tournament: {match.tournament}")
# Construct a tournament by navigation_id and fetch its matches.
wc = client.tournament(navigation_id="77254.1")
for m in wc.matches(limit=5):
print(f"{m.home_team} vs {m.away_team} | H={m.odds_home} D={m.odds_draw} A={m.odds_away}")
# Handle errors gracefully when a tournament doesn't exist.
try:
bad = client.tournament(navigation_id="99999.1")
for m in bad.matches(limit=1):
print(m.home_team)
except NotFoundError as exc:
print(f"Tournament not found: {exc}")
print("exercised: tournaments.list / tournament.matches / NotFoundError")
Retrieve upcoming prematch football matches with three-way match result (1X2/HUB) decimal odds. Accepts either a country-level navigation_id (expands into child leagues) or a league-level navigation_id (fetches directly). Each match includes home team, away team, kickoff time, tournament name, and decimal odds for home win, draw, and away win. Results are ordered by kickoff time.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of matches to return. |
| tournament_id | string | Navigation node ID of a specific country or league (from list_tournaments endpoint's navigation_id field). Accepts both country-level IDs (e.g. 66760.1 for Norge) which expand into child leagues, and league-level IDs (e.g. 66761.1 for Eliteserien). When omitted, defaults to FIFA World Cup 2026 matches (navigation_id 77254.1). |
{
"type": "object",
"fields": {
"total": "integer",
"matches": "array of match objects with home_team, away_team, kickoff, tournament, odds_home, odds_draw, odds_away, event_id, market_id",
"tournament_name": "string"
},
"sample": {
"data": {
"total": 11,
"matches": [
{
"kickoff": "2026-07-01T22:00:00.000+02:00",
"event_id": "8479923.1",
"away_team": "Senegal",
"home_team": "Belgia",
"market_id": "71539617.1",
"odds_away": 3.65,
"odds_draw": 3.25,
"odds_home": 2.05,
"tournament": "Internasjonal - Fotball-VM"
},
{
"kickoff": "2026-07-02T02:00:00.000+02:00",
"event_id": "8473388.1",
"away_team": "Bosnia-Hercegovina",
"home_team": "USA",
"market_id": "71517267.1",
"odds_away": 8.5,
"odds_draw": 4.6,
"odds_home": 1.37,
"tournament": "Internasjonal - Fotball-VM"
}
],
"tournament_name": "Main - World Cup"
},
"status": "success"
}
}About the Norsk Tipping API
Endpoints and Data Coverage
The API contains two endpoints. list_tournaments returns an array of football tournament categories — organized by country or region — each carrying a navigation_id, country label, num_events, and num_markets. These navigation IDs are the key input for filtering matches downstream.
get_football_matches retrieves upcoming prematch matches for a given tournament group. Each match object in the matches array includes home_team, away_team, kickoff (datetime), tournament, event_id, market_id, and three decimal odds fields: odds_home, odds_draw, and odds_away. The response also surfaces a total count and a tournament_name string. Without a tournament_id, the endpoint returns FIFA World Cup 2026 fixtures by default.
Filtering and Pagination
Pass the navigation_id from list_tournaments as the tournament_id parameter to get_football_matches to scope results to a specific competition. The optional limit integer caps the number of match objects returned, which is useful when you only need the next few fixtures. There is no offset or cursor parameter — results begin from the earliest upcoming kickoff.
Odds Format and Scope
All odds are decimal format, consistent with Norwegian sportsbook conventions. Coverage is limited to football (soccer) and to markets that Norsk Tipping currently has priced for upcoming matches. Only the match result (1X2/HUB) market is exposed; other market types such as Asian handicap or over/under totals are not included in the current response shape.
The Norsk Tipping API is a managed, monitored endpoint for norsk-tipping.no — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when norsk-tipping.no changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official norsk-tipping.no API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display live-updating FIFA World Cup 2026 fixture odds on a sports dashboard using the default
get_football_matchesresponse. - Compare Norsk Tipping's 1X2 decimal odds against other sportsbooks for value-betting analysis.
- Build a tournament browser that maps
list_tournamentscountry entries to selectable filters for end users. - Alert system that monitors odds movement across multiple tournaments by polling
get_football_matcheswith differenttournament_idvalues. - Research tool that aggregates
num_eventsandnum_marketsper country fromlist_tournamentsto track coverage depth over time. - Feed upcoming match kickoff times and team names into a fixture calendar application for Norwegian football fans.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Norsk Tipping provide an official public developer API?+
What does `list_tournaments` return and how do I use it with `get_football_matches`?+
list_tournaments returns an array of tournament objects, each with a country label, a navigation_id, num_events, and num_markets. Take the navigation_id from any entry and pass it as the tournament_id parameter to get_football_matches to retrieve matches scoped to that competition group.Are betting markets beyond the 1X2 match result covered — for example, over/under goals or both-teams-to-score?+
odds_home, odds_draw, and odds_away decimal values per match. You can fork this API on Parse and revise it to add endpoints targeting additional market types.Does the API cover in-play (live) odds or only prematch?+
get_football_matches are upcoming fixtures that have not yet kicked off. The API does not expose in-play or live odds. You can fork it on Parse and revise to add a live-odds endpoint if that data becomes accessible.