AdmiralBet Data API

AdmiralBet API for Pre-Match, Live & Results Data

Access pre-match and live odds from AdmiralBet's German sportsbook across 18 sports — Soccer, Ice Hockey, Tennis, Handball, Basketball and more. An English-language feed with Sportradar market and selection IDs on every event, 158 soccer leagues across 90 countries, a 30-day results archive with a real settlement marker, REST plus a real-time WebSocket feed. One API key for all bookmakers.

What an AdmiralBet API Response Looks Like

GET /api/admiralbet-de/soccer/events?page=1&limit=5
{
  "total": 1171,
  "page": 1,
  "limit": 5,
  "totalPages": 235,
  "hasNextPage": true,
  "events": [
    {
      "sport": "soccer",
      "country": "England",
      "league": "National League South",
      "eventId": "16823472",
      "home": "Weston-super-Mare",
      "away": "AFC Totton",
      "live": false,
      "startTime": "2026-09-08T18:45:00.000Z",
      "slug": "/de/sports/sportwetten/fussball/england/national-league-south/weston-super-mare-vs-afc-totton",
      "moreInfo": {
        "urn": "asw:event:16823472",
        "type": 0,
        "state": 1,
        "marketCount": 57,
        "competitionUrn": "asw:competition:10000435",
        "source": "board",
        "countryCode": "ENG",
        "phase": "Not started",
        "betradarMatchId": 72758116
      },
      "markets": [
        {
          "canonicalMarket": "MATCH_RESULT",
          "rawName": "Final Result",
          "period": "FULL_TIME",
          "isActive": true,
          "marketId": "sr:market:1/sr:match:72758116",
          "moreInfo": { "key": "1x2", "uofId": "1", "main": true },
          "selections": [
            {
              "canonicalOutcome": "HOME",
              "rawName": "Weston-super-Mare",
              "odds": 1.7,
              "isActive": true,
              "selectionId": "sr:outcome:1/sr:market:1/sr:match:72758116"
            },
            {
              "canonicalOutcome": "DRAW",
              "rawName": "Draw",
              "odds": 3.55,
              "isActive": true,
              "selectionId": "sr:outcome:2/sr:market:1/sr:match:72758116"
            },
            {
              "canonicalOutcome": "AWAY",
              "rawName": "AFC Totton",
              "odds": 3.8,
              "isActive": true,
              "selectionId": "sr:outcome:3/sr:market:1/sr:match:72758116"
            }
          ]
        },
        {
          "canonicalMarket": "OVER_UNDER",
          "rawName": "Over/Under 1.5",
          "period": "FULL_TIME",
          "isActive": true,
          "line": 1.5,
          "marketId": "sr:market:18/sr:match:72758116?total=1.5",
          "moreInfo": { "key": "total", "uofId": "18" },
          "selections": [
            {
              "canonicalOutcome": "OVER",
              "rawName": "Over 1.5",
              "odds": 1.22,
              "line": 1.5,
              "isActive": true,
              "selectionId": "sr:outcome:12/sr:market:18/sr:match:72758116?total=1.5"
            },
            {
              "canonicalOutcome": "UNDER",
              "rawName": "Under 1.5",
              "odds": 3.45,
              "line": 1.5,
              "isActive": true,
              "selectionId": "sr:outcome:13/sr:market:18/sr:match:72758116?total=1.5"
            }
          ]
        }
      ]
    }
  ]
}

In-Play — Score, Clock, Per-Period Scores & Settlement

GET /api/admiralbet-de/live-events?sport=soccer&limit=1
{
  "total": 10,
  "page": 1,
  "limit": 1,
  "sport": "soccer",
  "events": [
    {
      "sport": "soccer",
      "country": "England",
      "league": "Championship",
      "eventId": "16788885",
      "home": "Birmingham City",
      "away": "Wolverhampton Wanderers",
      "startTime": "2026-09-06T11:00:00.000Z",
      "score": { "home": "2", "away": "2" },
      "matchClock": {
        "period": "2nd half",
        "periodId": "7",
        "minute": 63,
        "second": 23,
        "running": true
      },
      "periodScores": {
        "home": [2, 0],
        "away": [2, 0],
        "labels": ["1", "2"]
      },
      "statistics": {
        "football": {
          "home": { "yellowCards": 1, "redCards": 0, "corners": 6 },
          "away": { "yellowCards": 1, "redCards": 0, "corners": 4 }
        }
      },
      "settlement": {
        "source": "admiralbet",
        "state": "in_play",
        "final": false,
        "inPlay": true,
        "lastSeenAt": "2026-09-06T12:27:16.809Z"
      },
      "moreInfo": {
        "urn": "asw:event:16788885",
        "state": 5,
        "marketCount": 110,
        "source": "live",
        "phase": "2nd half"
      },
      "markets": [
        {
          "canonicalMarket": "MATCH_RESULT",
          "rawName": "Final Result",
          "period": "FULL_TIME",
          "isActive": true,
          "updatedAt": "2026-09-06T12:27:16.809Z",
          "selections": [
            { "canonicalOutcome": "HOME", "rawName": "Birmingham City", "odds": 4, "isActive": true },
            { "canonicalOutcome": "DRAW", "rawName": "Draw", "odds": 1.9, "isActive": true },
            { "canonicalOutcome": "AWAY", "rawName": "Wolverhampton Wanderers", "odds": 3.1, "isActive": true }
          ]
        },
        {
          "canonicalMarket": "OTHER",
          "rawName": "Which Team wins the Rest of the Match? (Score 2:2)",
          "period": "FULL_TIME",
          "isActive": true,
          "selections": [
            { "canonicalOutcome": "OTHER", "rawName": "Birmingham City", "odds": 4, "isActive": true },
            { "canonicalOutcome": "OTHER", "rawName": "Draw", "odds": 1.9, "isActive": true },
            { "canonicalOutcome": "OTHER", "rawName": "Wolverhampton Wanderers", "odds": 3.1, "isActive": true }
          ]
        }
      ]
    }
  ]
}

Why Use PulseScore for AdmiralBet Data

18 Sports, One German Board

Pre-match and live odds from AdmiralBet's German sportsbook across Soccer, Ice Hockey, Tennis, Handball, Basketball, American Football, Baseball, Rugby Union, Rugby League, Volleyball and Australian Rules, with outright boards for Cricket, Golf, Formula 1, Motorsports, Cycling, Darts and Snooker. Every one of the 18 is subscribable on the WebSocket.

English Feed, German Book

The site is German, but the feed is not: leagues, market names and countries all come through in English — Bundesliga, Final Result, Both Teams to score, Halftime/Fulltime, Czechia, Korea, Republic of. Line AdmiralBet up against the UK and US books with no translation step, and use canonicalMarket and canonicalOutcome to match markets across bookmakers.

Sportradar IDs on Every Event

Market and selection IDs are Sportradar URNs (sr:market:18/sr:match:72758116?total=1.5), the numeric Sportradar match ID sits on moreInfo.betradarMatchId, and each market carries the Betradar UOF market type id. If you already key another feed on Sportradar IDs, AdmiralBet joins on them directly — no name matching.

158 Soccer Leagues Across 90 Countries

Over 1,100 soccer fixtures averaging 49 markets and peaking at 145 — Bundesliga, 2. Bundesliga and 3. Liga, the Premier League and Championship, LaLiga, Serie A, Ligue 1, Eredivisie, the Champions, Europa and Conference Leagues, Brasileiro Série A–C, Libertadores, MLS and the J-League, down to the Icelandic Besta deild and the English National League South.

Live WebSocket Streaming

Real-time push of every in-play event for the chosen sport, broadcast every ~1 second across all 18 sports. The in-play board is deeper than the pre-match one — it adds the rest-of-match and next-goal markets that only exist once a game is running — and carries the running score, per-period scores, and a match clock that counts up on soccer and handball and, where the book publishes one, down on basketball and ice hockey. Cards and corners ride along on soccer, set scores and the serving side on tennis. PRO, MAX, and ULTRA plans only.

30-Day Results With a Real Final Marker

Every event that goes in-play is written to a 30-day archive with the last score, match clock and per-period scores. Unlike the mirror-style feeds on several other books, entries carry a settlement block whose final: true and finalAt timestamp tell you a match is over — no inferring it from the clock. Rows arrive newest first, so the finished matches sit behind the ones still running. Filterable by sport, league, country and team.

Frequently Asked Questions

What data does the AdmiralBet API provide?

PulseScore provides pre-match and live odds from AdmiralBet's German sportsbook (admiralbet.de) across 18 sports, plus a 30-day results archive. Each event includes normalized market data with canonical market types and selections carrying decimal odds, alongside the Sportradar market and selection IDs the book prices on.

Which sports are covered?

Eighteen: Soccer, Ice Hockey, Tennis, Handball, Basketball, American Football, Baseball, Rugby Union, Rugby League, Volleyball, Australian Rules, Cricket, Cycling, Darts, Formula 1, Golf, Motorsports and Snooker. Each exposes /leagues, /leagues/:league/events, /events and /events/:eventId, and all 18 are subscribable on the WebSocket. Seven of them — cricket, cycling, darts, Formula 1, golf, motorsports and snooker — are outright-only at the moment because none of those competitions is in season; fixtures appear as the seasons start.

Is the feed in German?

No. The site is German and event slugs are German paths, but everything the feed publishes is in English: league names (Bundesliga, 2. Bundesliga, Championship, National League South), market names (Final Result, Both Teams to score, Over/Under 1.5, Anytime goalscorer) and country names in full ISO English form (Germany, England, Czechia, Korea, Republic of). No translation step is needed to line it up with the UK and US books.

Are Sportradar IDs included?

Yes. Market IDs are written as Sportradar URNs (sr:market:18/sr:match:72758116?total=1.5) and selection IDs the same way, with the numeric Sportradar match ID repeated on moreInfo.betradarMatchId. Each market's moreInfo also carries the Betradar UOF market type id (uofId) and a lowercase market key. A small tail of in-play and player-prop selections uses the book's own atr:, atech: and ls: URNs instead.

How deep are the market boards?

Soccer fixtures average 49 markets and peak at 145 — the three-way line, double chance, draw no bet, European handicap, totals and team totals, both teams to score, correct score, half-time/full-time, both halves separately, odd/even, combination markets and the goalscorer card. Ice hockey averages 27, baseball 18, handball 13, American football 12 (up to 69), basketball 12 (up to 44), rugby union 20 and tennis 3. Note that moreInfo.marketCount reports the book's own full board — around 102 on soccer — rather than the number of markets in the document.

Where are the outright markets?

Outright and futures boards are stored with the fixtures of their sport and are flagged explicitly: away is an empty string, home carries the competition title (Bundesliga 26/27, US Masters 2027, Italian Grand Prix 2026 / Race), moreInfo.outright is true and moreInfo.type is 2 instead of 0. Because an outright carries its competition's season start date and /events sorts by start time, the outrights come first — page in, or filter on a non-empty away, to reach the fixture board.

How are the markets structured?

All markets use a canonical format: each market has a type (e.g., MATCH_RESULT, OVER_UNDER, EUROPEAN_HANDICAP), period (FULL_TIME, FIRST_HALF, SECOND_HALF), and selections with decimal odds as plain numbers. The same structure is shared across all sports and all bookmakers on PulseScore — write your integration once.

Does AdmiralBet support live in-play data?

Yes. Live in-play events are available via REST (/live-events, /live-events/sports, /live-events/events/:eventId) and via WebSocket at wss://api.pulsescore.net/api/admiralbet-de/ws/live. The in-play board is a different, deeper board than the pre-match one — it adds the rest-of-match, next-goal and score-conditional markets that only exist once a game is running. Live documents carry the running score, per-period scores with labels, and a match clock whose shape follows the sport — only period, periodId and running are always there. Soccer and handball count up with minute and second while a period is under way; basketball and ice hockey can also count down with minutesLeftInPeriod and secondsLeftInMinute, though only when the book publishes a clock for that match; tennis, volleyball, baseball and rugby league carry the period alone. Statistics are football (yellow cards, red cards, corners) on soccer and sets on tennis and volleyball, with homeServe on tennis. Soccer dominates the in-play slate, with handball, ice hockey, basketball and tennis alongside it.

Is there a WebSocket feed for live events?

Yes. PRO, MAX, and ULTRA plans get access to wss://api.pulsescore.net/api/admiralbet-de/ws/live, which pushes every in-play event for the subscribed sport every ~1 second. Pass key and sport as query parameters, with sport in kebab-case (ice-hockey, formula-1) — the WebSocket rejects the underscore form with close code 4004. All 18 sports are subscribable; a sport with nothing in play simply pushes count: 0. PRO supports 1 concurrent connection, MAX supports 3, ULTRA supports 6.

Does the API include match results?

Yes. Every event that goes in-play is stored for 30 days with the last score, match clock and per-period scores the board published. Entries carry a settlement block, and unlike the mirror-style feeds on several other books this one has a real finished marker: settlement.final is true with a finalAt timestamp, and matchClock.period reads Ended. Note the ordering — results come back most recent first, and the most recent are the matches still running, so the finished ones sit further in; page in and filter on settlement.final when you want completed matches only. Filter by sport, league, country and team at /api/admiralbet-de/results, and discover the exact filter values at /results/sports, /results/countries and /results/leagues.

Can I access AdmiralBet alongside other bookmakers with the same key?

Yes. A single API key gives you access to every bookmaker included in your plan — AdmiralBet, Betano, Bwin, Bet-at-home, Tipsport, Bet365, Pinnacle, Betfair, and more. No need for separate keys or accounts.

Is there a free tier?

Yes. The BASIC plan is free and includes 500 API requests per month. Upgrade to PRO, MAX, or ULTRA for unlimited requests.

How do I authenticate with the API?

Sign up for a free account, generate an API key from your dashboard, and pass it via the X-Secret header. The same key works for every bookmaker API.

Start Using the AdmiralBet API Today

Free tier available. No credit card required. Get your API key in 30 seconds.