Tipico API: Track a 5.5% Bundesliga Book From Open to Close

Tipico API featured image
How To Guides November 9, 2026

We found no public Tipico odds API: developer.tipico.com showed us a country block page and no documentation. Tipico’s US sportsbook stopped taking bets in June 2024 after LeoVegas bought the US business (Covers, 24 June 2024). The Tipico you can read today is the German book, and the clean way to read it is an aggregator. OddsPapi carries it as the slug tipico (catalogue name “Tipico DE”).

We measured it on the Bundesliga on 3 November 2026. Tipico priced 64 to 65 market IDs on each of the nine fixtures of 6 to 8 November, at a 5.25% to 5.56% margin on the Full Time Result. On the nine fixtures of 30 October to 1 November, it opened and closed at the same 5.51% median margin and moved its home price a median 29 times before kick-off. Pinnacle opened those nine at 6.16%, closed them at 2.60% and moved 88 times.

Which Provider Is Best for Tipico Odds?

For a developer who wants Tipico prices without a sales call, start with OddsPapi: the free plan reads live and historical tipico odds next to Pinnacle and 300+ other bookmakers. Tipico itself offers no public API, so every route to its prices runs through an aggregator or a scraper.

We read each provider’s public pricing and bookmaker pages on 3 November 2026. Plans change, so check the linked page before you sign up.

OddsPapi SportsGameOdds odds-api.io OpticOdds
Tipico listed Yes, tipico (Tipico DE) Yes, tipico Yes, tipico-de Yes
Cheapest plan with Tipico Free, 250 requests a month Not stated; the free Amateur plan’s 9 books do not include it Solo, £49 a month (2 bookmakers of your choice) No public price; trial on request
Free plan Yes, all sports and bookmakers Amateur: 9 bookmakers, 2,500 objects a month New free keys paused Not offered publicly
Tipico markets 64 to 65 market IDs per Bundesliga fixture (measured) Not stated “9 sports, 18 markets” on its Tipico page Not stated
Historical odds On the free plan From the Pro plan, $299 a month Not stated on its Tipico page Stated as available; plan not stated

A market count on a provider page and a market count on a live board measure different things, so test the provider on a fixture you care about. For the full price comparison across providers, see the 2026 odds API pricing comparison, and for the head-to-heads, the SportsGameOdds alternative and the OpticOdds alternative.

Pull Tipico Next to Pinnacle and Betano

One /odds call with three slugs returns Tipico, the sharp reference and a second German book on the same fixture ID. Sign up at oddspapi.io for a free key; it goes in the apiKey query parameter.

import time
import requests
from datetime import datetime, timedelta, timezone

API_KEY = "YOUR_API_KEY"
BASE = "https://api.oddspapi.io/v4"

def get(endpoint, **params):
    """GET with the key as a query parameter; wait and retry on a 429."""
    while True:
        r = requests.get(f"{BASE}/{endpoint}", params={"apiKey": API_KEY, **params})
        if r.status_code != 429:
            return r
        time.sleep(2.0)

def margin(prices):
    return (sum(1 / p for p in prices) - 1) * 100

# Next Bundesliga fixtures (tournamentId 35)
now = datetime.now(timezone.utc)
fixtures = get("fixtures", tournamentId=35,
               **{"from": now.strftime("%Y-%m-%dT%H:%M:%SZ"),
                  "to": (now + timedelta(days=7)).strftime("%Y-%m-%d")}).json()
fixture = sorted(fixtures, key=lambda f: f["startTime"])[0]

# Tipico, Pinnacle and Betano Germany on one fixture, one call
time.sleep(1.0)
board = get("odds", fixtureId=fixture["fixtureId"],
            bookmakers="tipico,pinnacle,betano.de").json()["bookmakerOdds"]

print(f"{fixture['participant1Name']} v {fixture['participant2Name']}  {fixture['startTime'][:16]}\n")
for slug, book in board.items():
    outcomes = book["markets"]["101"]["outcomes"]      # 101 = Full Time Result
    prices = [outcomes[o]["players"]["0"]["price"] for o in ("101", "102", "103")]
    print(f"{slug:<10} {prices[0]:>5} {prices[1]:>5} {prices[2]:>5}   margin {margin(prices):.2f}%   "
          f"{len(book['markets'])} market IDs")

Output on 3 November 2026 (kick-off 6 November):

Hamburger SV v Borussia Monchengladbach  2026-11-06T19:30

betano.de   2.47  3.65   2.7   margin 4.92%   171 market IDs
pinnacle    2.49  3.68   2.8   margin 3.05%   89 market IDs
tipico      2.35   3.7   2.8   margin 5.29%   64 market IDs

Tipico’s margin barely moved across the round. On the nine Bundesliga fixtures of 6 to 8 November it ran 5.25% to 5.56%, and it ranked 58th to 78th of the 208 to 261 books with a complete Full Time Result. The board median sat at 6.14% to 6.94%, so Tipico priced tighter than most of the board and wider than Pinnacle, which ran 3.00% to 4.12% on the eight of the nine it priced at that time. For a ranking of every German book on the Bundesliga, see the Bundesliga odds API post.

What Tipico Prices

Tipico’s 64 to 65 market IDs per Bundesliga fixture fall into 40 families. Name them with the /markets catalogue rather than a hardcoded list:

# Name every Tipico market with the /markets catalogue
from collections import Counter

time.sleep(1.0)
catalogue = get("markets", sportId=10).json()
names = {str(m["marketId"]): m["marketName"] for m in catalogue}

families = Counter(names.get(mid, mid) for mid in board["tipico"]["markets"])
print(f"tipico: {len(board['tipico']['markets'])} market IDs in {len(families)} families\n")
for family, ids in families.most_common(8):
    print(f"{ids:>2} IDs  {family}")

# Output (Hamburger SV v Monchengladbach, 3 Nov 2026):
# tipico: 64 market IDs in 40 families
#
#  7 IDs  Over Under Full Time
#  5 IDs  European Handicap
#  3 IDs  Over Under Team 1
#  3 IDs  Over Under Second Half
#  3 IDs  Over Under Team 2
#  3 IDs  European Handicap First Half
#  3 IDs  Over Under First Half
#  3 IDs  Over Under Team 1 First Half

The rest is one ID per family: Both Teams To Score (full time and each half), Double Chance, Draw No Bet, Half Time / Full Time, Correct Score, team exact scores, win to nil, first goal, and two player markets, Anytime Goal Scorer and Player Goals. On this board Tipico priced European (three-way) handicaps and no Asian handicap. If you need Asian lines, read them from the sharp books on the same fixture.

Tipico is deep on soccer and thin elsewhere in our sample. On 3 November 2026 it priced 2 of 4 college basketball fixtures and a KBO baseball fixture, with 9 to 11 market IDs each. In our EuroLeague census in September 2026, Tipico shipped the basketball regular-time result (113) without its draw leg and skipped the overtime-inclusive Winner (111), so count the legs before you compute a margin (see the EuroLeague post).

Find the Slugs That Quote Tipico’s Prices

Before you treat Tipico as an independent opinion in a consensus, check whether other slugs quote the same numbers:

# Which other slugs quote Tipico's exact Full Time Result? Pull the whole board.
time.sleep(1.0)
full = get("odds", fixtureId=fixture["fixtureId"]).json()["bookmakerOdds"]
full = {s: b for s, b in full.items() if not s.startswith("pinnacle+") and s != "demo"}  # drop test feeds

def result_prices(book):
    m = book.get("markets", {}).get("101")
    if not m:
        return None
    p = [m["outcomes"].get(o, {}).get("players", {}).get("0", {}) for o in ("101", "102", "103")]
    if any(x.get("active") is False or not x.get("price") for x in p):
        return None
    return tuple(x["price"] for x in p)

tipico = result_prices(full["tipico"])
twins = [s for s, b in full.items() if s != "tipico" and result_prices(b) == tipico]
print(f"{len(full)} books on the board; tipico {tipico}")
print("same three prices:", ", ".join(twins) or "none")

# Output (3 Nov 2026):
# 269 books on the board; tipico (2.35, 3.7, 2.8)
# same three prices: bet3000, wettarena

The match is not stable. On the other eight Bundesliga fixtures of 6 to 8 November, measured the same day, no slug quoted Tipico’s exact three prices. On two of three 2. Bundesliga fixtures we checked, sportwetten.de did, and on one of them so did the bwin group (bwin, bwin.de, bwin.dk, partypoker, sportingbet). Run the check per fixture and dedupe on the price tuple, because cloneOf does not flag any of these.

Tipico History: Closing Margin and Price Moves

Historical odds are on the free plan. /historical-odds takes up to three slugs per call, so one call per played fixture returns Tipico, Pinnacle and Betano Germany side by side:

# Opening and closing margin, and pre-match price moves on a played fixture
time.sleep(1.0)
fixture_id = "id1000003572513274"   # Bayern Munich v Borussia Dortmund, 31 Oct 2026
kickoff = "2026-10-31T17:30:00"
hist = get("historical-odds", fixtureId=fixture_id,
           bookmakers="tipico,pinnacle,betano.de").json()   # up to 3 slugs per call
time.sleep(4.6)

for slug, book in hist["bookmakers"].items():
    outcomes = book["markets"]["101"]["outcomes"]
    legs = {o: [s for s in outcomes[o]["players"]["0"] if s["createdAt"] < kickoff and s["active"]]
            for o in ("101", "102", "103")}
    start = max(snaps[0]["createdAt"] for snaps in legs.values())   # first moment all 3 legs are live
    opening = [[s for s in snaps if s["createdAt"] <= start][-1]["price"] for snaps in legs.values()]
    closing = [snaps[-1]["price"] for snaps in legs.values()]
    home = legs["101"]
    moves = sum(1 for a, b in zip(home, home[1:]) if a["price"] != b["price"])
    print(f"{slug:<10} open {margin(opening):.2f}%   close {margin(closing):.2f}%   home price moved {moves} times")

# Output:
# betano.de  open 4.91%   close 5.09%   home price moved 84 times
# pinnacle   open 7.64%   close 3.69%   home price moved 165 times
# tipico     open 5.64%   close 5.55%   home price moved 51 times

We ran the same loop on all nine fixtures of the 30 October to 1 November round. The opening price is the first moment all three legs carry an active price; the closing price is the last active snapshot before kick-off:

Book Opening 1X2 margin, median (range) Closing 1X2 margin, median (range) Pre-match moves on the home price, median (range)
pinnacle 6.16% (3.22% to 7.64%) 2.60% (2.45% to 3.69%) 88 (60 to 165)
betano.de 5.03% (4.89% to 5.48%) 5.02% (4.75% to 5.24%) 42 (29 to 84)
tipico 5.51% (5.40% to 5.64%) 5.51% (5.34% to 5.63%) 29 (18 to 51)

Tipico’s first prices on these fixtures appeared about two weeks before kick-off, and its margin did not change between the first price and the last: 5.51% median at both ends. Pinnacle opened wider than Tipico on eight of the nine and closed less than half as wide, and it moved its home price three times as often. Tipico’s feed was live while we measured: on each of the nine fixtures of 6 to 8 November, its newest price change was 2 to 125 minutes behind the newest change on the board.

A book that holds one margin and moves less often can sit behind the sharp line after news. Compare Tipico’s price to Pinnacle’s latest move on the same fixture, and measure how often the gap closes before you build a strategy on it. For the method, see the historical odds API guide.

Scraping Tipico Against One API Call

Scrape tipico.de OddsPapi
Access Your own parser and proxies; breaks when the site changes One API key
Other books Tipico only Pinnacle, the other German books and 300+ in total
IDs Tipico’s own event names Shared fixture, market and outcome IDs across every book
History Only what you stored yourself Timestamped snapshots on the free plan
Push updates Poll the site WebSocket feed on the B2B plan

Frequently Asked Questions

Which provider is best for Tipico odds?

OddsPapi, if you want to start without a sales call. Its free plan reads live and historical Tipico odds as the slug tipico, next to Pinnacle and 300+ other bookmakers. SportsGameOdds and OpticOdds list Tipico without a public price for it, and odds-api.io lists it from its £49 Solo plan (all checked 3 November 2026).

Does Tipico have a public API?

We found no public Tipico developer documentation or self-serve key. Developers read Tipico prices through an aggregator, which returns them as JSON under shared fixture and market IDs next to other bookmakers.

Is the tipico slug the German or the US book?

The German book. The catalogue names the tipico slug “Tipico DE”. Tipico’s US sportsbook stopped taking bets in June 2024 after LeoVegas bought the US business.

Which markets does Tipico price on the Bundesliga?

On 3 November 2026 Tipico priced 64 to 65 market IDs on each Bundesliga fixture of 6 to 8 November, in 40 families: the Full Time Result, totals, European handicaps, both teams to score, double chance, correct score, half markets, Anytime Goal Scorer and Player Goals.

How does the Tipico margin compare with Pinnacle?

On nine Bundesliga fixtures played 30 October to 1 November 2026, Tipico opened and closed the Full Time Result at a 5.51% median margin. Pinnacle opened at 6.16% and closed at 2.60%, and Betano Germany closed at 5.02%.

Is Tipico historical odds data free?

On OddsPapi, yes. The /historical-odds endpoint is on the free plan and returns timestamped Tipico snapshots for up to three bookmakers per call.

Get Started

Read Tipico next to Pinnacle, Betano Germany and 300+ bookmakers under one set of IDs, with free history back to the opening price. The Tipico bookmaker page shows its live coverage.

Get Your Free API Key