Unibet FR Data API

Unibet FR API for Ligue 1 Pre-Match & Live Odds

Access pre-match and live odds from Unibet's French storefront across 20 sports — Soccer, Tennis, Ice Hockey, Rugby, Handball, Basketball and more. 76 soccer leagues led by Ligue 1 and Ligue 2, French names with canonical markets, REST plus a real-time WebSocket feed. One API key for all bookmakers.

What a Unibet FR API Response Looks Like

GET /api/unibet-fr/soccer/events?page=1&limit=5
{
  "total": 673,
  "page": 1,
  "limit": 5,
  "totalPages": 135,
  "hasNextPage": true,
  "events": [
    {
      "sport": "soccer",
      "country": "France",
      "league": "Ligue 2 BKT",
      "eventId": "3375273",
      "home": "Boulogne",
      "away": "Dijon",
      "live": false,
      "startTime": "2026-09-05T18:45:00.000Z",
      "slug": "/paris-football/france/ligue-2-bkt/3375273/boulogne-vs-dijon",
      "moreInfo": {
        "source": "board",
        "boardSize": 150,
        "marketsHeld": 150
      },
      "markets": [
        {
          "canonicalMarket": "MATCH_RESULT",
          "rawName": "1 N 2",
          "period": "FULL_TIME",
          "isActive": true,
          "marketId": "191689586",
          "selections": [
            {
              "canonicalOutcome": "HOME",
              "rawName": "Boulogne",
              "odds": 2.55,
              "rawOdds": "2,55",
              "isActive": true,
              "selectionId": "711081998"
            },
            {
              "canonicalOutcome": "DRAW",
              "rawName": "N",
              "odds": 2.95,
              "rawOdds": "2,95",
              "isActive": true,
              "selectionId": "711081999"
            },
            {
              "canonicalOutcome": "AWAY",
              "rawName": "Dijon",
              "odds": 2.6,
              "rawOdds": "2,60",
              "isActive": true,
              "selectionId": "711082000"
            }
          ]
        }
      ]
    }
  ]
}

Why Use PulseScore for Unibet FR Data

20-Sport French Board

Pre-match and live odds from Unibet France across Soccer, Tennis, Ice Hockey, Basketball, Rugby Union, Rugby League, Handball, Baseball, Badminton, American Football, Snooker, MMA, Boxing, Golf, Cycling, Motorsports, Formula 1, Volleyball, Australian Rules and Table Tennis — every one of them with a pre-match board and a live WebSocket stream, with no in-play-only sport left without a route.

Ligue 1 to D1 — 76 Soccer Leagues

Ligue 1 McDonalds and Ligue 2 BKT priced for the French market, plus Ligue des Champions, Ligue Europa, Ligue Conférence, Coupe du Monde qualifiers and first divisions across 50+ countries — from LaLiga and the Premier League down to D1 Estonie and D1 Malte.

French Names, Canonical Markets

Leagues, teams and market names arrive exactly as Unibet publishes them in French (1 N 2, Face à Face, Score Exact, Ligue des Champions). Every market also carries a language-independent canonicalMarket and every selection a canonicalOutcome, so you can match lines across bookmakers without parsing French.

Deep Soccer Boards

Fully fetched soccer fixtures average 237 markets and peak past 440 — correct score, both halves, exact goals, European and Asian handicaps, team totals and more. Every event tells you how complete it is: moreInfo.source is board for a full board, coupon for a headline-market-only fixture, with boardSize showing what Unibet has open.

Live WebSocket Streaming

Real-time push of all in-play events for the chosen sport, broadcast every ~1 second across all 20 sports, with the running score and match clock — plus set-by-set period scores and statistics on the set-based sports. PRO, MAX, and ULTRA plans only — connect once, receive every update.

Results With a Settlement Flag

Every event that goes in-play is written to a 30-day results archive with the last score and match clock. Unlike most books, Unibet FR entries carry an explicit settlement block — state, final, inPlay and lastSeenAt — so you can tell a finished match from one still on the board without guessing from the clock. Filterable by sport, league, country and team.

Frequently Asked Questions

What data does the Unibet FR API provide?

PulseScore provides pre-match and live odds from Unibet France (unibet.fr) across 20 sports — Soccer, Tennis, Ice Hockey, Basketball, Rugby Union, Rugby League, Handball, Baseball, Badminton, American Football, Snooker, MMA, Boxing, Golf, Cycling, Motorsports, Formula 1, Volleyball, Australian Rules and Table Tennis. Each event includes normalized market data with canonical market types, selections, and decimal odds, plus a 30-day results archive.

Is Unibet FR the same feed as Unibet AU?

No. They are separate books on separate licences with separate boards, and PulseScore carries them as two independent APIs. Unibet FR is the ARJEL-licensed French storefront with a French-language board led by Ligue 1 and Ligue 2; Unibet AU is the Australian book with racing-first coverage. Both are available under the same API key, but do not treat one as a regional mirror of the other.

Which sports are covered?

All 20 sports Unibet FR publishes: Soccer, Tennis, Ice Hockey, Basketball, Rugby Union, Rugby League, Handball, Baseball, Badminton, American Football, Snooker, MMA, Boxing, Golf, Cycling, Motorsports, Formula 1, Volleyball, Australian Rules and Table Tennis. Each sport exposes /leagues, /leagues/:league/events, /events (paginated), and /events/:eventId, and all 20 are subscribable on the WebSocket.

Are the league and market names in French?

Yes — they are passed through exactly as Unibet publishes them, so you get 'Ligue 1 McDonalds', 'Ligue des Champions', '1 N 2', 'Face à Face', 'Score Exact' and countries like 'Allemagne' and 'Etats-Unis'. Alongside those raw names, every market carries a canonicalMarket value (MATCH_RESULT, OVER_UNDER, …) and every selection a canonicalOutcome (HOME, DRAW, AWAY), which are identical across every bookmaker on PulseScore. Integrate against the canonical fields and the language never matters.

Why do some events only have one market?

Read moreInfo.source. A fixture marked board has had its full market board fetched, and marketsHeld equals boardSize. A fixture marked coupon was discovered on a competition coupon and carries exactly one headline market, while boardSize still reports how many markets Unibet has open for it — so you may see boardSize 350 with marketsHeld 1. Boards are deep-fetched a bounded number per cycle, so a new fixture fills out from coupon to board over the following cycles.

How are outrights and futures returned?

They live in the same collections as match fixtures rather than a separate endpoint. Outright events are flagged moreInfo.outright: true and carry empty home and away strings — their identity is in the league name plus the final segment of slug. Filter on moreInfo.outright if you only want head-to-head fixtures. Cycling, Formula 1, golf and motorsports are largely outright boards; soccer, tennis, basketball, ice hockey and rugby mix a few futures into an otherwise head-to-head board.

Why do odds appear twice on each selection?

Each selection carries odds as a number (2.55) and rawOdds as the string Unibet prints on the site, which uses the French decimal comma ('2,55'). Always read odds; rawOdds is there for display parity with the French site and will not parse as a float.

How are the markets structured?

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

Does Unibet FR 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-fr/ws/live. The WebSocket pushes every in-play event for the subscribed sport every ~1 second, across all 20 sports. Live documents add the running score and a match clock; the set-based sports (tennis, badminton, snooker, table tennis) also carry per-period scores with their labels and a statistics block, while soccer and baseball instead get minute and second on the match clock.

Is there a WebSocket feed for live events?

Yes. PRO, MAX, and ULTRA plans get access to wss://api.pulsescore.net/api/unibet-fr/ws/live, which pushes every in-play event for the subscribed sport every ~1 second. Pass key and sport as query parameters. 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 and match clock the board published — plus per-period scores and statistics on the set-based sports. Entries also carry a settlement block (state, final, inPlay, lastSeenAt), so you can distinguish a finished match from one still running. Filter by sport, league, country and team at /api/unibet-fr/results, and discover valid filter values at /results/sports, /results/countries and /results/leagues.

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

Yes. A single API key gives you access to every bookmaker included in your plan — Unibet FR, Betclic, 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 Unibet FR API Today

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