Winamax Data API

Winamax API for Ligue 1 Pre-Match & Live Odds

Access pre-match and live odds from France's largest sportsbook across 16 sports — Soccer, Tennis, Ice Hockey, Basketball, Rugby, Handball and more. 63 soccer leagues led by Ligue 1 and Ligue 2, Sportradar IDs on every event, French names with canonical markets, REST plus a real-time WebSocket feed. One API key for all bookmakers.

What a Winamax API Response Looks Like

GET /api/winamax/soccer/events?page=1&limit=5
{
  "total": 659,
  "page": 1,
  "limit": 5,
  "totalPages": 132,
  "hasNextPage": true,
  "events": [
    {
      "sport": "soccer",
      "country": "France",
      "league": "Ligue 1 McDonald's®",
      "eventId": "72036146",
      "home": "Angers",
      "away": "Rennes",
      "live": false,
      "startTime": "2026-09-06T15:15:00.000Z",
      "slug": "/paris-sportifs/match/72036146",
      "moreInfo": {
        "site": "/paris-sportifs/match/72036146",
        "tournamentId": 4,
        "srTournamentId": "sr:tournament:34",
        "round": "J3"
      },
      "markets": [
        {
          "canonicalMarket": "MATCH_RESULT",
          "rawName": "Résultat",
          "period": "FULL_TIME",
          "isActive": true,
          "marketId": "1|type=prematch",
          "selections": [
            {
              "canonicalOutcome": "HOME",
              "rawName": "Angers",
              "odds": 3.7,
              "isActive": true,
              "selectionId": "2136847437"
            },
            {
              "canonicalOutcome": "DRAW",
              "rawName": "Match nul",
              "odds": 3.85,
              "isActive": true,
              "selectionId": "2136847438"
            },
            {
              "canonicalOutcome": "AWAY",
              "rawName": "Rennes",
              "odds": 1.84,
              "isActive": true,
              "selectionId": "2136847439"
            }
          ]
        },
        {
          "canonicalMarket": "OVER_UNDER",
          "rawName": "Nombre de buts",
          "period": "FULL_TIME",
          "line": 2.5,
          "isActive": true,
          "marketId": "18|total=2.5",
          "selections": [
            {
              "canonicalOutcome": "OVER",
              "rawName": "Plus de 2,5",
              "odds": 1.52,
              "line": 2.5,
              "isActive": true,
              "selectionId": "2136851080"
            },
            {
              "canonicalOutcome": "UNDER",
              "rawName": "Moins de 2,5",
              "odds": 2.05,
              "line": 2.5,
              "isActive": true,
              "selectionId": "2136851081"
            }
          ]
        }
      ]
    }
  ]
}

Why Use PulseScore for Winamax Data

16-Sport French Board

Pre-match and live odds from France's largest sportsbook across Soccer, Tennis, Ice Hockey, Basketball, Baseball, Handball, Rugby Union, Rugby League, American Football, Badminton, Table Tennis, MMA, Boxing, Snooker, Volleyball and Australian Rules — 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 Toplyga — 63 Soccer Leagues

Ligue 1 McDonald's and Ligue 2 BKT priced for the French market, plus Ligue des Champions, Ligue Europa, Ligue Conférence, Ligue des Nations, LaLiga, Bundesliga, Serie B, the Championship, MLS, Copa Libertadores and first divisions across some 60 countries — down to Meistriliiga, Toplyga and the Cymru Premier League.

Sportradar IDs on Every Event

Each fixture carries moreInfo.srTournamentId — a Sportradar tournament ID such as sr:tournament:34 for Ligue 1 — next to Winamax's own tournamentId, and market IDs are written in Sportradar form (18|total=2.5, 188|hcp=-1.5). If you already key other feeds on Sportradar IDs, Winamax lines up with them without a name-matching step.

French Names, Canonical Markets

Leagues, teams and market names arrive exactly as Winamax publishes them in French (Résultat, Nombre de buts, Double chance, Score exact, Buteur). Every market also carries a language-independent canonicalMarket and every selection a canonicalOutcome, so you can match lines across bookmakers without parsing French.

Live WebSocket Streaming

Real-time push of all in-play events for the chosen sport, broadcast every ~1 second across all 16 sports, with the running score, match clock and — unlike most books — per-period scores on every sport: goals per half, points per set, runs per inning, points per frame. 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, match clock and per-period scores. 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 Winamax API provide?

PulseScore provides pre-match and live odds from Winamax (winamax.fr), France's largest online sportsbook, across 16 sports — Soccer, Tennis, Ice Hockey, Basketball, Baseball, Handball, Rugby Union, Rugby League, American Football, Badminton, Table Tennis, MMA, Boxing, Snooker, Volleyball and Australian Rules. Each event includes normalized market data with canonical market types, selections and decimal odds, a Sportradar tournament ID, and a 30-day results archive.

Which sports are covered?

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

Are the league and market names in French?

Yes — they are passed through exactly as Winamax publishes them, so you get 'Ligue 1 McDonald's®', 'Ligue des Champions', 'Résultat', 'Nombre de buts', 'Score exact' and countries like 'Allemagne' and 'États-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.

What are the Sportradar IDs for?

Every event carries moreInfo.srTournamentId, a Sportradar tournament ID (sr:tournament:34 is Ligue 1, sr:tournament:2591 the US Open), next to Winamax's own numeric tournamentId. Market IDs use the Sportradar form too — a market type ID plus a specifier, such as 18|total=2.5 for a goals line or 188|hcp=-1.5 for a set handicap. If you key other feeds on Sportradar IDs, Winamax joins to them directly without matching on names.

How deep are the market boards?

Soccer fixtures average 114 markets and peak past 300 — the three-way line, both halves, exact score, exact goals, handicaps, team totals, first and last goalscorer, and a goalscorer card on roughly half the fixtures. American football runs around 96 markets, basketball around 81, tennis around 42; MMA, boxing and Australian rules are headline-market boards. Player-prop markets carry the player's name under moreInfo.player.

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 Winamax 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/winamax/ws/live. The WebSocket pushes every in-play event for the subscribed sport every ~1 second, across all 16 sports. Live documents add the running score, a match clock with minute and second on soccer and handball, and per-period scores with their labels on every sport — goals per half, points per set, runs per inning, points per frame.

Is there a WebSocket feed for live events?

Yes. PRO, MAX, and ULTRA plans get access to wss://api.pulsescore.net/api/winamax/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, match clock and per-period scores the board published. 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/winamax/results, and discover valid filter values at /results/sports, /results/countries and /results/leagues.

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

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

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