PulseScore API Review 2026
A developer-to-developer review of PulseScore, an odds API that serves live and pre-match data from 65 bookmakers through REST, per-bookmaker WebSocket feeds and a delta Stream API, with a free tier.
PulseScore at a Glance
Streaming from: Pro, €79/mo (WebSocket and delta Stream API)
Green = available · amber = unverified or varies by plan · crossed out = not available. Pricing: 💲 ≈ $20/mo up to 💲💲💲💲💲 = $1,000+/mo. From our directory research.
PulseScore Coverage
From the provider's docs, checked : 56 books, 47 leagues, 3 markets, +1 other market.
US sportsbooks
Global books
UK and Ireland
Europe
Australia and New Zealand
Exchanges and prediction markets
18 more books as the provider labels them
Boxing
46 more leagues as the provider labels them
| Family | Markets |
|---|---|
| Mainlines | 2 |
| Game props | 1 |
| Other markets | 1 |
Each market counts once, however many leagues carry it. Other markets are the provider's own market labels that we have not matched to our market names yet. The extra book and league labels come straight from the provider and are not matched to our book and league names yet. These labels still count in the totals.
Live odds: yes, per the provider's docs.
What PulseScore Is
PulseScore is a sports odds API that aggregates live and pre-match data from 65 bookmakers, including Bet365, PS3838, DraftKings, FanDuel, BetMGM and Betfair. It delivers odds through REST endpoints, a WebSocket feed per bookmaker, and a Stream API that sends a full board once and then only the changes.
The focus is on speed and normalization. Each bookmaker gets its own base URL path, but the response schema stays the same across all of them. You write one parser and reuse it whether you are pulling from Bet365 or Bwin. Every plan, the free one included, unlocks every bookmaker and every sport. The plans differ only in request volume, request rate and streaming connections.
Coverage and Data Model
PulseScore lists 40+ sports across its books. Soccer, tennis, basketball, ice hockey, American football, baseball, cricket, rugby, esports, horse racing and greyhounds are the core set, and many books add darts, snooker, MMA, golf, motorsports and more. Sport lists vary by bookmaker, and the docs list them per book.
Bookmaker coverage sits at 65. The set mixes major international operators (Bet365, Paddy Power, Betfred, Bwin, Sky Bet, Betano, Winamax), US books (FanDuel, DraftKings, BetMGM, BetRivers, Hard Rock Bet, Bovada) and prediction markets (Kalshi, Polymarket).
Markets use a canonical naming scheme: canonicalMarket (for example MATCH_RESULT or OVER_UNDER), a normalized period, and canonicalOutcome on each selection. A rawName fallback carries the bookmaker's own label for anything the normalization layer has not mapped yet. The pricing page says that every plan gets full market boards, player props included, plus results and deep links through the bookmaker's own event slugs.
Odds are returned in decimal format. If your application needs American odds, you will convert on your side.
REST, WebSocket and the Stream API
REST endpoints cover live and pre-match data. Live events come from /live-events; pre-match data is organized by sport and league (/{sport}/leagues, /{sport}/events). Authentication uses an X-Secret header. Each book has its own path prefix, so a request to /api/v3/bet365/live-events returns Bet365 data only.
Rate limits count per bookmaker, not per key. On Pro (1 request a second per bookmaker), you can call Bet365, FanDuel and PS3838 once a second each, all at the same time. PulseScore told us that a Pro key can reach 30 requests a second in total that way. So the per-book URL model does not slow you down when you track many books.
The WebSocket feed (wss://api.pulsescore.net/api/{bookmaker}/ws/live) pushes a frame about every second with every live event for one bookmaker and sport.
The Stream API is the newer and better option for most apps. You open one socket and declare what you want in the URL, for example bookmakers=bet365,bwin and kinds=live. The server sends the full board for each stream once, then once a second it sends only what changed, keyed by market and selection. That keeps bandwidth at a few KB a second. Pre-match, live and racing all stream, and on Ultra you can ask for every bookmaker and every sport in one declaration. If the socket drops, you reconnect with the last sequence number and the stream resumes without a new snapshot (within 120 seconds). An official JavaScript SDK wraps REST, the WebSocket and the delta streams.
PulseScore Pricing and the Free Tier
Pricing is published in euros. Every plan includes all 65 bookmakers and every sport, and all rate limits count per bookmaker:
- Basic (free): 500 requests per month, 1 request a second per bookmaker, REST only. No card required.
- Starter, EUR 20/mo: 30,000 requests a month, 1 request a minute per bookmaker, REST only.
- Pro, EUR 79/mo: unlimited requests, 1 request a second per bookmaker, 1 WebSocket connection per bookmaker, and 1 Stream API connection for 1 sport across all bookmakers. A 7-day free trial on monthly billing.
- Max, EUR 149/mo: unlimited requests, 3 requests a second per bookmaker, 3 WebSocket connections per bookmaker, and 2 Stream API connections for 3 sports across all bookmakers.
- Ultra, EUR 249/mo: unlimited requests, 6 requests a second per bookmaker, 6 WebSocket connections per bookmaker, and 3 Stream API connections for all sports and all bookmakers.
Six-month billing costs five months, and twelve-month billing costs nine. The free tier is enough to test the response shape across every book. Streaming starts at Pro, and the Pro trial lets you try the Stream API before you pay.
Starter's 1 request a minute per bookmaker suits pre-match boards that do not move fast. For live data, Pro is the realistic starting point.
What Is Missing
PulseScore focuses on live and pre-match odds delivery. A few things that other odds APIs include are not here:
- No closing lines or historical odds archive. Results are included, but there is no endpoint for closing prices or historical line movement. If your workflow depends on historical odds for backtesting or CLV analysis, you will need a second provider.
- No full stats feed. Live events carry the current score, and 20+ bookmakers expose
/resultswith final scores, period breakdowns and match stats where the book publishes them (checked November 2026). There are no standings or schedules beyond the odds boards. - No MCP server. There is no Claude or AI-assistant integration yet.
That makes PulseScore an odds pipe, not an all-in-one data platform. The team ships new books and features often, so check the docs for what has landed since this review.
Getting an API Key
Create a free account at pulsescore.net, open the dashboard and choose Generate New Key. The same dashboard revokes keys. The Basic plan is free, and the pricing FAQ says it needs no credit card. REST calls carry the key in an X-Secret header. The WebSocket endpoints take it as a ?key= query parameter instead.
The docs say to keep the key on the server and out of client-side code. They also ask your client to send Accept-Encoding: gzip, which shrinks a board 6 to 14 times on the wire. Python's requests does that by default (checked November 2026).
A First Request in Python
This sample asks Bet365 for its next three pre-match soccer events. Bet365 has its own prefix, /api/v3/bet365, and other books use /api/{bookmaker} with the same paths and response shape. The reply is a paginated envelope: total counts the upcoming events and events holds the page. Each event has home, away, startTime and a markets list, and each market lists selections with decimal odds (from the docs, checked November 2026).
import os
import requests
resp = requests.get(
"https://api.pulsescore.net/api/v3/bet365/soccer/events",
headers={"X-Secret": os.environ["PULSESCORE_API_KEY"]},
params={"limit": 3},
timeout=30,
)
resp.raise_for_status()
data = resp.json()
print(data["total"], "upcoming events")
for event in data["events"]:
print(event["home"], "v", event["away"], event["startTime"], len(event["markets"]), "markets")
List endpoints default to 5 items a page and cap limit at 30.
Rate Limits, Docs and SDKs
The plan table above gives the per-bookmaker numbers. The docs add the failure mode. Successful responses carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and going over the limit returns a 429. Ten rejections within ten seconds on one bookmaker pause the key there for 60 seconds, with a Retry-After header. Back off on the first 429 and the pause does not start. The Stream API has its own limits and ignores the pause.
The API docs cover REST, WebSocket and delta streams with curl, Python and Node.js examples, and each bookmaker has its own Swagger page. The one official SDK is JavaScript and TypeScript: @pulsescore/sdk, MIT licensed. Python users get a reference stream client, apply.py. We found no status page or changelog; the X account posts new books and API changes. Support is pulsescore@gmail.com or the Telegram link on the site (checked November 2026).
Who PulseScore Is For
PulseScore fits live odds display and cross-book comparison. If you are building an odds-comparison site, a live alerting tool or a trading model and you need second-by-second prices from Bet365, the US majors and a long list of European books, the Stream API delivers that over one socket.
It also suits developers who want international coverage beyond the US-only providers. Horse racing, greyhounds, cricket, rugby and Australian rules are not common in the US-focused odds API market, and PulseScore covers them.
Look elsewhere if your work depends on closing lines or historical data. For other live feeds, compare options in the live sports odds API guide.
Verdict
PulseScore is a clean, fast odds pipe. One normalized schema across 65 bookmakers, rate limits that count per book, and a delta Stream API that keeps an exact copy of every board for a few KB a second solve the core problem of getting live prices into your application without scraping.
The gaps are history and stats. If those matter, pair PulseScore with a second source. If you need a live odds feed with Bet365 and a wide book list, the free tier costs nothing to test, and the Pro trial covers the stream.
Last updated: · How providers get listed
Frequently Asked Questions
/api/v3/bet365) and supports REST, WebSocket and the Stream API. Other books include PS3838, FanDuel, DraftKings, BetMGM and Paddy Power.PulseScore Alternatives
Similar providers from the directory worth shortlisting alongside PulseScore.
Want to test the live feed?
Sign up for the free tier (no card required), pull odds from all 65 bookmakers, and test the response shape before you move to a plan with streaming.
Are You the Team Behind PulseScore?
Show developers you're independently listed on SportsAPIs.dev. Copy this badge onto your site. It links straight back to this profile.