Unibet UK Data API

Unibet UK API for Pre-Match, Live, Results & Racing Data

Access pre-match and live odds from Unibet's UK sportsbook across 25 sports — Soccer, Tennis, Esports, American Football, Ice Hockey, Basketball, Cricket and more — plus horse, greyhound and harness racing and a 30-day results archive. Canonical market types next to Unibet's English market names, soccer boards averaging 91 markets and peaking past 500, REST plus a real-time WebSocket feed. One API key for all bookmakers.

What a Unibet UK API Response Looks Like

GET /api/unibet-uk/soccer/events?page=1&limit=5
{
  "total": 1067,
  "page": 1,
  "limit": 5,
  "totalPages": 214,
  "hasNextPage": true,
  "events": [
    {
      "sport": "soccer",
      "country": "England",
      "league": "Premier League",
      "eventId": "4119ee89f004c2eb7beaeafa3c5ca5df",
      "home": "Aston Villa",
      "away": "Nottingham Forest",
      "live": false,
      "startTime": "2026-09-12T14:00:00.000Z",
      "slug": "/betting/odds/football/england/premier-league/aston-villa-vs-nottingham-forest/4119ee89f004c2eb7beaeafa3c5ca5df",
      "moreInfo": {
        "contestType": "Football",
        "categoryRn": "football:england:premier_league",
        "classification": "Fixture",
        "status": "PreGame",
        "propositionCount": 148,
        "marketsBuilt": 310
      },
      "markets": [
        {
          "canonicalMarket": "MATCH_RESULT",
          "rawName": "Full Time Result",
          "marketId": "4119ee89f004c2eb7beaeafa3c5ca5df:1x2:plain",
          "period": "FULL_TIME",
          "isActive": true,
          "moreInfo": { "propositionType": "1x2", "propositionKey": "1x2" },
          "selections": [
            {
              "canonicalOutcome": "HOME",
              "rawName": "Aston Villa",
              "odds": 2.2,
              "isActive": true,
              "selectionId": "4119ee89f004c2eb7beaeafa3c5ca5df:base:1x2:66h75xf6wttjh6749i8q6bk93:plain:offering",
              "metadata": { "optionType": "T1" }
            },
            {
              "canonicalOutcome": "DRAW",
              "rawName": "Draw",
              "odds": 3.4,
              "isActive": true,
              "selectionId": "4119ee89f004c2eb7beaeafa3c5ca5df:base:1x2:draw:plain:offering",
              "metadata": { "optionType": "Draw" }
            },
            {
              "canonicalOutcome": "AWAY",
              "rawName": "Nottingham Forest",
              "odds": 3.25,
              "isActive": true,
              "selectionId": "4119ee89f004c2eb7beaeafa3c5ca5df:base:1x2:76sgnd4ze7lo13d3dp98btakv:plain:offering",
              "metadata": { "optionType": "T2" }
            }
          ]
        },
        {
          "canonicalMarket": "OVER_UNDER",
          "rawName": "Total Goals",
          "marketId": "4119ee89f004c2eb7beaeafa3c5ca5df:total:2.5",
          "period": "FULL_TIME",
          "line": 2.5,
          "isActive": true,
          "moreInfo": { "propositionType": "total", "propositionKey": "total" },
          "selections": [
            {
              "canonicalOutcome": "OVER",
              "rawName": "Over",
              "odds": 1.98,
              "line": 2.5,
              "isActive": true,
              "selectionId": "4119ee89f004c2eb7beaeafa3c5ca5df:base:total:total_over:2.5:offering",
              "metadata": { "optionType": "TotalOver" }
            },
            {
              "canonicalOutcome": "UNDER",
              "rawName": "Under",
              "odds": 1.75,
              "line": 2.5,
              "isActive": true,
              "selectionId": "4119ee89f004c2eb7beaeafa3c5ca5df:base:total:total_under:2.5:offering",
              "metadata": { "optionType": "TotalUnder" }
            }
          ]
        }
      ]
    }
  ]
}

In-Play — Score, Clock, Statistics & Settlement

GET /api/unibet-uk/live-events?sport=soccer&limit=1
{
  "total": 16,
  "page": 1,
  "limit": 1,
  "sport": "soccer",
  "events": [
    {
      "sport": "soccer",
      "country": "Japan",
      "league": "J League Cup",
      "eventId": "b12add3812f87edbb056d694185d91d8",
      "home": "Kochi United",
      "away": "V Varen Nagasaki",
      "startTime": "2026-09-09T10:03:05.982Z",
      "score": { "home": "0", "away": "0" },
      "matchClock": {
        "minute": 20,
        "second": 2,
        "period": "SecondHalf",
        "periodId": "PART_2",
        "running": true
      },
      "statistics": {
        "football": {
          "home": { "yellowCards": 0, "redCards": 0, "corners": 0 },
          "away": { "yellowCards": 0, "redCards": 0, "corners": 0 }
        }
      },
      "settlement": {
        "source": "unibetuklive",
        "state": "in_play",
        "final": false,
        "inPlay": true,
        "lastSeenAt": "2026-09-09T11:32:06.497Z"
      },
      "moreInfo": {
        "contestType": "Football",
        "categoryRn": "football:japan:j_league_cup",
        "classification": "Fixture",
        "status": "InPlay",
        "propositionCount": 22,
        "marketsBuilt": 21
      },
      "markets": [
        {
          "canonicalMarket": "MATCH_RESULT",
          "rawName": "Full Time Result",
          "period": "FULL_TIME",
          "isActive": true,
          "selections": [
            { "canonicalOutcome": "HOME", "rawName": "Kochi United", "odds": 10, "isActive": true },
            { "canonicalOutcome": "DRAW", "rawName": "Draw", "odds": 1.75, "isActive": true },
            { "canonicalOutcome": "AWAY", "rawName": "V Varen Nagasaki", "odds": 2.4, "isActive": true }
          ]
        },
        {
          "canonicalMarket": "OVER_UNDER",
          "rawName": "Total Goals",
          "period": "FULL_TIME",
          "line": 0.5,
          "isActive": true,
          "selections": [
            { "canonicalOutcome": "OVER", "rawName": "Over", "odds": 1.8, "line": 0.5, "isActive": true },
            { "canonicalOutcome": "UNDER", "rawName": "Under", "odds": 1.9, "line": 0.5, "isActive": true }
          ]
        }
      ]
    }
  ]
}

Racing — Runners, Prices & Each-Way Terms

GET /api/unibet-uk/horse-racing/races?page=1&limit=1
{
  "total": 431,
  "page": 1,
  "limit": 1,
  "races": [
    {
      "id": "202609091200.T.GBR.redcar.1",
      "meetingId": "202609091200.T.GBR.redcar",
      "name": "Redcar R1 - Racing TV Free Trial Starts Tomorrow EBF Novice Stakes (GBB Race)",
      "country": "GBR",
      "region": "UK",
      "startDate": "2026-09-09T12:21:00Z",
      "EW": "EW: 1/5 odds 3 places",
      "active": "true",
      "isInPlay": "false",
      "settled": false,
      "slug": "/racing#/event/202609091200.T.GBR.redcar.1",
      "horses": [
        {
          "id": "202609091200.T.GBR.redcar.1.benbecula",
          "number": "1",
          "name": "Benbecula",
          "jockey": "K Stott",
          "trainer": "K A Ryan",
          "active": true,
          "EW": { "status": "active", "fractional": "", "decimal": "3" },
          "markets": [{ "rawName": "FixedWin", "decimal": 3 }]
        },
        {
          "id": "202609091200.T.GBR.redcar.1.blue_pete",
          "number": "2",
          "name": "Blue Pete",
          "jockey": "P J Mcdonald",
          "trainer": "M Appleby",
          "active": true,
          "EW": { "status": "active", "fractional": "", "decimal": "5" },
          "markets": [{ "rawName": "FixedWin", "decimal": 5 }]
        },
        {
          "id": "202609091200.T.GBR.redcar.1.deputy_vice",
          "number": "3",
          "name": "Deputy Vice",
          "jockey": "Kaiya Fraser",
          "trainer": "R Menzies",
          "active": false,
          "EW": { "status": "unknown", "fractional": "", "decimal": "" },
          "markets": []
        }
      ]
    }
  ]
}

Why Use PulseScore for Unibet UK Data

25 Sports Plus Racing, One UK Board

Pre-match and live odds from Unibet's UK sportsbook across Soccer, Tennis, Table Tennis, Esports, American Football, Ice Hockey, Basketball, Handball, Baseball, Cricket, Rugby Union, Rugby League, MMA, Boxing, Darts, Snooker, Australian Rules, Volleyball, Badminton, Field Hockey and Water Polo, with outright boards for Golf, Formula 1, Motorsports and Cycling — every one of the 25 subscribable on the WebSocket — and horse, greyhound and harness racing cards next to them.

Canonical Markets Next to Unibet's English Names

Every market carries a canonicalMarket — 41 distinct types on soccer alone — and every selection a canonicalOutcome, so you match markets across bookmakers without parsing a name. rawName keeps Unibet's own display name (Full Time Result, Asian Handicap, Total Goals), marketId and selectionId keep Kindred's identifiers, and odds are decimal numbers only — no fractional or American string to parse.

Soccer Boards Averaging 91 Markets, Peaking Past 500

Around 1,080 soccer fixtures across 122 leagues and 79 countries — Premier League, Championship, League One and Two, LaLiga, Serie A, Bundesliga, Ligue 1, Eredivisie, the Champions, Europa and Conference Leagues and national cups — with the top leagues running 140 to 230 markets per fixture: handicaps, totals and team totals for the match and both halves, correct score, corners, cards, goalscorers, a player-props card and Result-and-Total combinations. Baseball averages 48, ice hockey 43 and American football up to 176.

Horse, Greyhound and Harness Racing

Upcoming races in off-time order from fourteen horse racing countries — British and Irish cards alongside Japan, Hong Kong, Australia, the USA, South Africa and Argentina — plus British, Irish and Australian greyhounds and Australian, New Zealand, US, French and German harness meetings. Each race carries the runners with jockey, trainer, a decimal price and each-way terms, and SP-only races are flagged.

Live WebSocket Streaming

Real-time push of every in-play event for the chosen sport, broadcast every ~1 second across all 25 sports. Live documents carry the in-play board, the running score and a match clock with Unibet's descriptive period names and machine periodId, cards and corners on soccer, set scores on tennis, and a settlement block that flips to final the moment a match ends. Tennis, soccer and esports dominate the in-play slate. PRO, MAX, and ULTRA plans only.

Results With a Settlement Marker

Every match that goes in-play is mirrored into a 30-day archive and updated in place, and the settlement block tells you where it stands — in_play, final with a finalAt timestamp and reason, or unresolved when an event dropped off the live board. Filter by sport, league, country and team, and discover the exact filter values through /results/sports, /results/countries and /results/leagues.

Frequently Asked Questions

What data does the Unibet UK API provide?

PulseScore provides pre-match and live odds from Unibet's UK sportsbook (unibet.co.uk) across 25 sports, plus horse, greyhound and harness racing cards and a 30-day results archive. Each event includes normalized market data with canonical market types and selections carrying decimal odds, alongside Unibet's English market names and its own market and selection IDs.

Which sports are covered?

Twenty-five: Soccer, Tennis, Table Tennis, Esports, American Football, Ice Hockey, Basketball, Handball, Baseball, Cricket, Rugby Union, Rugby League, MMA, Boxing, Darts, Snooker, Australian Rules, Volleyball, Badminton, Field Hockey, Water Polo, Golf, Formula 1, Motorsports and Cycling. Each exposes /leagues, /leagues/:league/events, /events and /events/:eventId, and all 25 are subscribable on the WebSocket. Golf, Formula 1, motorsports and cycling are outright-only at the moment; fixtures appear as their calendars start. Horse racing, greyhounds and harness racing sit alongside under /horse-racing/races, /greyhounds/races and /harness/races.

How deep are the market boards?

Soccer fixtures average 91 markets and peak at 504, and the top leagues run far deeper than the average - LaLiga and the Championship around 230 per fixture, Serie A 175, Ligue 1 170, Bundesliga 155, Premier League 140 - with the three-way line, double chance, draw no bet, Asian and 3-way handicaps, totals and team totals for the match and both halves, both teams to score, correct score, half-time/full-time, winning margin, corners and cards totals, goalscorer cards, a player-props card and Result-and-Total combinations. Baseball averages 48 markets, ice hockey 43, American football 28 (up to 176), cricket 21, tennis 15 and basketball 14. moreInfo.propositionCount counts market types while marketsBuilt counts the lines in the document.

How are markets and selections identified?

rawName is Unibet's English display name (Full Time Result, Asian Handicap, Total Goals) and every market also carries a canonicalMarket - 41 distinct types on soccer alone - with canonicalOutcome (HOME / DRAW / AWAY / OVER / UNDER / YES / NO) on every selection, so you never parse a name. eventId is Kindred's 32-character hex key, marketId is eventId:propositionKey:line (…:total:2.5) and selectionId adds the participant. Odds are decimal numbers only - there is no fractional or American string. Lined markets carry a numeric line on the market and on each selection.

What does the country field contain?

An English name title-cased from the site path - Germany, Czech Republic, but also Usa and Uefa Club - with International and International Clubs for cross-border competitions. On the tour sports it is the tour or tournament rather than a nation: Challenger, Itf Women and Wta 125 on tennis, Esoccer or Esportcounterstrike on esports, Tt Cup on table tennis, Dp Tour or The Majors on golf. Seven sports - American football, boxing, darts, field hockey, MMA, snooker and water polo - carry no country at all. Tennis leagues are the tournament city (Cassis, Genoa) and badminton and table tennis leagues are the draw (Men Singles), with the tournament in country.

Where are the outright markets?

Outright and futures boards are stored with the fixtures of their sport and flagged explicitly: both home and away are empty strings, moreInfo.classification is Outright and moreInfo.outright is true, and the board is one or a few OTHER markets whose rawName carries the competition (UEFA EURO 2028 - Winner, NBL 2026/27 - Regular Season - Top 4). startTime is the tournament date, which can be years ahead or, on a stale board, in the past, so an outright can sit at either end of /events. Filter on a non-empty away for fixtures only.

What do the racing endpoints return?

Upcoming horse, greyhound and harness races in off-time order with the book's compound id (202609091200.T.GBR.redcar.1), the meeting, an ISO-3 country and a region code, the start time, each-way terms, active and settled flags and the runners - number, name, jockey and trainer with a decimal price under EW and a FixedWin market on horse and harness races, and trap and name in a greyhounds array on greyhound races. Prices are decimal only; EW.fractional is always empty, and SP-only runners carry an unknown status and no price. Horse racing spans fourteen countries from British and Irish cards to Japan, Hong Kong, Australia and the USA; greyhounds are British, Irish and Australian; harness runs in Australia, New Zealand, the USA, France and Germany. Racing is prematch-only and not on the WebSocket.

Does Unibet UK 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/unibet-uk/ws/live. Live documents carry the in-play board, a settlement block, and - on the sports that publish them - the running score, a match clock with Unibet's descriptive period names and a machine periodId (SecondHalf / PART_2, ThirdSet / SET_3, SixthInningTop), elapsed minute and second on soccer and tennis, cards and corners in statistics.football on soccer and set scores in statistics.sets on tennis. Esports, cricket, darts, snooker and table tennis run with the market board only and no score. Tennis, soccer and esports dominate the in-play slate.

Is there a WebSocket feed for live events?

Yes. PRO, MAX, and ULTRA plans get access to wss://api.pulsescore.net/api/unibet-uk/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, table-tennis) - the WebSocket rejects the underscore form with close code 4004. All 25 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 match Unibet UK takes in-play is mirrored into a 30-day archive from its first sighting and updated in place, and the settlement block is the finished marker: state in_play while it runs, then state final with final: true, a finalAt timestamp and a reason (status when the book marks it Concluded, period when the clock reaches Ended), or state unresolved with delisted: true when an event dropped off the live board without a final. Results filter by sport, league, country and team, and /results/sports, /results/countries and /results/leagues expose the exact filter values. Result documents carry no markets; score is present on the sports that publish one in play.

Can I access Unibet UK alongside other bookmakers with the same key?

Yes. A single API key gives you access to every bookmaker included in your plan - Unibet UK, Unibet FR, Sky Bet, Betway, NetBet, Betfair, Bet365, PS3838, 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 Unibet UK API Today

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