NewOfficial JavaScript SDK

Real-Time Sportsbook API

The Pulse Behind Every Score

Live in-play betting odds refreshed every ~1 second, plus pre-match odds, from 60+ bookmakers across 40+ sports. One key gets you every bookmaker we cover, with no per-bookie setup.

Status

Bookmaker Availability

Changelog

Recently Added Bookmakers

New sources ship almost every week — here's what landed lately

  1. Betano(CZ)NewDocs →

    Betano's Czech book — the full Betano catalogue on the same event, market and selection IDs as Betano (DE): top flights at 590–724 markets before kick-off with goalscorers, cards, corners and shots, push-fed in-play boards and a 30-day results archive

    29 sports · results · live · ws

  2. Betpoint(IT)Docs →

    Betpoint's Italian book — ADM event and bet-type codes with Betradar match IDs, Asian handicaps and quarter-line totals, top flights at 100–129 markets weeks ahead, in-play goalscorer markets and horse and harness racing

    16 sports · racing · live · ws

  3. 77 new sport feeds on 32 bookmakersCoverage updateRead →

    Formula 1 on BetMGM, Borgata and Bwin; darts and snooker on Betfred, BetMGM and Cloudbet; ice hockey on Betfred, Kalshi and Polymarket; and the first netball feed, from Ladbrokes (AU)

    formula 1 · darts · snooker · badminton · ice hockey · golf · netball

  4. Eurobet(IT)Docs →

    Eurobet's Italian book — ADM event and bet-type codes with the Betradar match ID on every fixture, weekend boards of up to 274 markets with anytime, first and last goalscorer, and horse and harness racing cards

    20 sports · racing · live · ws

  5. Eplay24(IT)Docs →

    Eplay24's Italian book — an Italian board keyed on Betradar match IDs, Champions League matchdays of up to 872 markets with goalscorer, shots and fouls props, and the day's horse racing cards

    19 sports · racing · results · live · ws

  6. SisalDocs →

    Sisal's Italian book — an Italian board with Betradar match IDs, matchday soccer boards of up to 436 markets, and horse racing plus Italian, French and Swedish trotting with win and place prices

    19 sports · racing · results · live · ws

  7. Soon
    Your bookmaker could be next

    Tell us which sportsbook you need and we'll queue it up.

    Request a bookmaker

Simple, Transparent Pricing

Choose the plan that fits your needs

Billed monthly: you pay for one month at checkout, then every month until you cancel.

BASIC

Free

STARTER

€20/mo

Live Data

Real-Time Odds at a Glance

Live betting odds from soccer and tennis - scraped from top bookmakers and updated every second.

Example data - real odds stream live via WebSocket

Soccer · Premier League

LivePremier League

Liverpool vs Man City

Liverpool1
Man City1

1

2.10

X

3.40

2

3.25

Tennis · ATP Finals

LiveATP Finals

Djokovic vs Alcaraz

Djokovic406
Alcaraz304

1

1.80

2

1.95

Developer API

See What You Get

One normalized JSON schema across every bookmaker - the same flat markets[] with canonicalMarket, canonicalOutcome and odds, the same paginated envelope, and a slug to deep-link into the book. Swap /betfair-sb for /v3/bet365, /fanduel, /ps3838, or any other bookmaker - your parser stays the same.

GET /api/betfair-sb/live-events?sport=soccer&page=1&limit=30
{
  "total": 41,
  "page": 1,
  "limit": 30,
  "totalPages": 2,
  "hasNextPage": true,
  "hasPrevPage": false,
  "sport": "soccer",
  "events": [
    {
      "eventId": "35974468",
      "sport": "soccer",
      "league": "English Premier League",
      "home": "Ipswich",
      "away": "Liverpool",
      "startTime": "2026-09-04T19:00:00.000Z",
      "score": { "home": "0", "away": "1" },
      "matchClock": { "minute": 27, "second": 14, "period": "INPLAY_FIRST_HALF" },
      "slug": "/betting/football/english-premier-league/ipswich-v-liverpool/e-35974468",
      "markets": [
        {
          "canonicalMarket": "MATCH_RESULT",
          "rawName": "Match Odds",
          "period": "FULL_TIME",
          "marketId": "924.534695661",
          "isActive": true,
          "selections": [
            { "canonicalOutcome": "HOME", "rawName": "Ipswich", "odds": 15, "isActive": true, "selectionId": "48324" },
            { "canonicalOutcome": "DRAW", "rawName": "The Draw", "odds": 5.5, "isActive": true, "selectionId": "58805" },
            { "canonicalOutcome": "AWAY", "rawName": "Liverpool", "odds": 1.2, "isActive": true, "selectionId": "56323" }
          ]
        },
        {
          "canonicalMarket": "OVER_UNDER",
          "rawName": "Over/Under 2.5 Goals",
          "period": "FULL_TIME",
          "line": 2.5,
          "marketId": "924.534695702",
          "isActive": true,
          "selections": [
            { "canonicalOutcome": "OVER", "rawName": "Over 2.5 Goals", "odds": 1.5714, "line": 2.5, "isActive": true, "selectionId": "47973" },
            { "canonicalOutcome": "UNDER", "rawName": "Under 2.5 Goals", "odds": 2.375, "line": 2.5, "isActive": true, "selectionId": "47972" }
          ]
        }
      ]
    }
  ]
}

Get your free API key and start pulling live odds in under 2 minutes.

Prefer JavaScript or TypeScript? npm install @pulsescore/sdk — the official SDK →

Same fields on every bookmaker

canonicalMarketcanonicalOutcomeperiod
MATCH_RESULT, OVER_UNDER, ASIAN_HANDICAP, HOME / AWAY / OVER - the same enums on every bookmaker. rawName keeps the book's own label, like Betfair's "Match Odds" and "The Draw".
oddsline
Decimal price on every selection, plus the handicap or total it applies to. Racing cards quote fractional and decimal side by side.
slug
The event's path on the bookmaker's own site. Prefix the book's domain - betfair.com here - and you have a deep link straight into the market.
scorematchClockperiodScores
Live state on in-play events, when the bookmaker provides it: the scoreboard, the clock or set state, and per-period scores. Some books publish odds only, so treat these fields as optional.

Features

Built for Speed and Precision

Everything you need to integrate live sportsbook odds into your product - low latency, high accuracy, and a developer-first betting odds API.

Explore the sportsbook API →

Real-Time Data

Live in-play odds over WebSocket from 50+ bookmakers, one frame every second, plus full pre-match boards from all 63. Scores, match clock and period breakdowns ride along with the markets.

40+ Sports Covered

Soccer, Tennis, Basketball, Ice Hockey, Baseball, American Football, Cricket, Rugby, MMA, Esports, Horse Racing, Greyhounds, Darts, Snooker, Golf, Formula 1 and more - plus politics and prediction markets on Polymarket and Kalshi.

Results & Deep Links

Final scores, period breakdowns and match stats from 20+ bookmakers via /results. Every event carries the bookmaker's own slug where the book exposes one - link users straight to the market.

Developer API

REST + WebSocket contract for every bookmaker: the same paths, the same canonical markets, one API key. Swagger per bookmaker, copy-paste snippets in cURL, Python and Node.js, and an official JavaScript/TypeScript SDK on npm.

JavaScript SDK →

FAQ

Sportsbook API Questions, Answered

What is PulseScore?

PulseScore is a real-time sportsbook odds API. One API key returns live in-play and pre-match betting odds from 60+ bookmakers, including Bet365, PS3838, Betfair, DraftKings, FanDuel, BetMGM and Polymarket, across 40+ sports, in one normalized JSON schema over REST, WebSocket and delta streams.

Which bookmakers does PulseScore cover?

63 bookmakers today: UK and European books such as Bet365, Paddy Power, Sky Bet, Betfred, Unibet, Winamax, Betclic and Sisal; US books such as DraftKings, FanDuel, BetMGM, BetRivers and Hard Rock Bet; Australian books such as TAB, Sportsbet and Ladbrokes; the Betfair exchange and sportsbook; PS3838; and the Polymarket and Kalshi prediction markets. New bookmakers ship almost every week, and the sport availability page shows which ones are live right now.

Is there a free plan?

Yes. The BASIC plan is free with no credit card: 500 requests a month at 1 req/sec per bookmaker, with every bookmaker included. PRO adds unlimited requests, live WebSocket connections and the Stream API, and comes with a 7-day free trial on monthly billing.

How fast are live odds updated?

About once per second. The live WebSocket pushes a full frame of every in-play event for the chosen sport every second, and the Stream API sends per-second deltas that typically arrive 1-2 seconds after the bookmaker's own change. It is a fast polling-grade feed, not a sub-second one.

Do I need a separate integration for each bookmaker?

No. Every bookmaker uses the same endpoint paths and the same response shape; only the /api/{bookmaker} prefix changes. Markets carry normalized fields (canonicalMarket, period, canonicalOutcome and decimal odds) next to the bookmaker's own labels, so one parser works for all of them.

Should I use REST, the WebSocket or the Stream API?

Use REST for pre-match boards and periodic polling; it is available on every plan. Use the live WebSocket to receive one bookmaker and sport at a time as a full frame every second (50+ bookmakers, PRO, MAX and ULTRA). Use the Stream API to follow many bookmakers and sports on one socket, receiving each board once and then only what changed (PRO, MAX and ULTRA).

Does PulseScore provide results and race cards?

Yes. 20+ bookmakers expose a /results endpoint with final scores, period breakdowns and match stats where the book publishes them. Horse racing and greyhound cards with runners, jockeys and each-way terms come from Bet365, Paddy Power, Sky Bet, TAB, Sportsbet and other racing books.

What can I build with PulseScore?

Odds comparison sites and widgets, trading and value models, arbitrage and line-movement alerts, analytics dashboards, and tools that compare prediction-market prices with sportsbook odds. Every event also carries the bookmaker's own slug where the book exposes one, so you can deep-link users straight to the market.

More in the guides: What is a sportsbook API? · REST vs WebSocket vs delta streams · Odds math for developers

Ready to Get the Edge?

Start pulling real-time odds data in minutes. No credit card required.