### Fetch Leagues by Sport Response Source: https://pulsescore.net/docs Example response for the GET /{sport}/leagues endpoint. ```json [ { "league": "Premier League", "sport": "soccer", "live": false, "eventCount": 10 } ] ``` -------------------------------- ### Fetch League Events Response Source: https://pulsescore.net/docs Example response for the GET /{sport}/leagues/:league/events endpoint. ```json [ { "eventId": "45921003", "sport": "soccer", "league": "Premier League", "home": "Arsenal", "away": "Chelsea", "live": false, "startTime": "2026-05-21T15:00:00.000Z", "markets": [ { "canonicalMarket": "match_winner", "period": "fulltime", "selections": [ { "name": "Arsenal", "decimal": "2.30" }, { "name": "Draw", "decimal": "3.20" }, { "name": "Chelsea", "decimal": "3.10" } ] } ] } ] ``` -------------------------------- ### Fetch Live Sports List Response Source: https://pulsescore.net/docs Example response for the GET /live-events/sports endpoint showing counts of active events per sport. ```json [ { "sport": "soccer", "count": 42 }, { "sport": "tennis", "count": 18 }, { "sport": "basketball", "count": 8 } ] ``` -------------------------------- ### Fetch Single Live Event Response Source: https://pulsescore.net/docs Example response for the GET /live-events/:eventId endpoint. ```json { "eventId": "98734521", "sport": "soccer", "league": "Premier League", "home": "Liverpool", "away": "Man City", "live": true, "startTime": "2026-05-20T19:00:00.000Z", "markets": [ ... ] } ``` -------------------------------- ### Fetch Live Events Response Source: https://pulsescore.net/docs Example response for the GET /live-events endpoint containing active events with market odds. ```json [ { "eventId": "98734521", "sport": "soccer", "league": "Premier League", "home": "Liverpool", "away": "Man City", "live": true, "startTime": "2026-05-20T19:00:00.000Z", "markets": [ { "canonicalMarket": "match_winner", "period": "fulltime", "selections": [ { "name": "Liverpool", "decimal": "2.10" }, { "name": "Draw", "decimal": "3.40" }, { "name": "Man City", "decimal": "3.25" } ] }, { "canonicalMarket": "total_goals", "period": "fulltime", "line": "2.5", "selections": [ { "name": "Over 2.5", "decimal": "1.75" }, { "name": "Under 2.5", "decimal": "2.05" } ] } ] } ] ``` -------------------------------- ### Fetch Paginated Events Response Source: https://pulsescore.net/docs Example response for the GET /{sport}/events endpoint. ```json [ { "eventId": "45921003", "sport": "soccer", "league": "Premier League", "home": "Arsenal", "away": "Chelsea", "live": false, "startTime": "2026-05-21T15:00:00.000Z", "markets": [ ... ] } ] ``` -------------------------------- ### Fetch Single Event by ID Response Source: https://pulsescore.net/docs Example response for the GET /{sport}/events/:eventId endpoint. ```json { "eventId": "45921003", "sport": "soccer", "league": "Premier League", "home": "Arsenal", "away": "Chelsea", "live": false, "startTime": "2026-05-21T15:00:00.000Z", "markets": [ ... ] } ``` -------------------------------- ### GET /live-events Source: https://pulsescore.net/docs Fetch all currently live events with real-time odds and market groups. ```APIDOC ## GET /live-events ### Description Fetch all currently live events with real-time odds and market groups. ### Method GET ### Endpoint /live-events ### Parameters #### Query Parameters - **sport** (string) - Optional - Filter by sport: soccer (default), tennis, basketball, ice-hockey, volleyball, handball, table-tennis, esports (or e-sports), american-football, baseball, rugby-league, rugby-union ### Response #### Success Response (200) - **Array** (object) - List of live events ``` -------------------------------- ### GET /{sport}/leagues Source: https://pulsescore.net/docs Get all available leagues for a sport, paginated. ```APIDOC ## GET /{sport}/leagues ### Description Get all available leagues for a sport, paginated. ### Method GET ### Endpoint /{sport}/leagues ### Parameters #### Path Parameters - **sport** (string) - Required - Sport identifier #### Query Parameters - **page** (number) - Optional - Page number (default 1) - **limit** (number) - Optional - Items per page (default 50) ``` -------------------------------- ### GET /live-events/sports Source: https://pulsescore.net/docs Get a list of all sports that currently have live events. ```APIDOC ## GET /live-events/sports ### Description Get a list of all sports that currently have live events. ### Method GET ### Endpoint /live-events/sports ### Response #### Success Response (200) - **Array** (object) - List of sports with active event counts ``` -------------------------------- ### GET /{sport}/leagues/:league/events Source: https://pulsescore.net/docs Get all events for a specific league. ```APIDOC ## GET /{sport}/leagues/:league/events ### Description Get all events for a specific league. ### Method GET ### Endpoint /{sport}/leagues/:league/events ### Parameters #### Path Parameters - **sport** (string) - Required - Sport identifier - **league** (string) - Required - League name from /leagues response ``` -------------------------------- ### cURL API Requests Source: https://pulsescore.net/docs Examples of using cURL to fetch live events, leagues, and specific event details from the PulseScore REST API. ```bash # Fetch live soccer events (normalized response) curl -X GET "https://api.pulsescore.net/api/v3/bet365/live-events?sport=soccer" \ -H "X-Secret: YOUR_API_KEY" # Swap the prefix for any other bookmaker — same shape, same paths curl -X GET "https://api.pulsescore.net/api/fanduel/live-events?sport=soccer" \ -H "X-Secret: YOUR_API_KEY" # Fetch soccer leagues (pre-match) curl -X GET "https://api.pulsescore.net/api/v3/bet365/soccer/leagues" \ -H "X-Secret: YOUR_API_KEY" # Fetch events for a league curl -X GET "https://api.pulsescore.net/api/v3/bet365/soccer/leagues/Premier%20League/events" \ -H "X-Secret: YOUR_API_KEY" # Fetch tennis leagues curl -X GET "https://api.pulsescore.net/api/v3/bet365/tennis/leagues" \ -H "X-Secret: YOUR_API_KEY" # Fetch a single event by eventId curl -X GET "https://api.pulsescore.net/api/v3/bet365/soccer/events/98734521" \ -H "X-Secret: YOUR_API_KEY" ``` -------------------------------- ### GET /{sport}/events Source: https://pulsescore.net/docs Paginated list of events for a sport. ```APIDOC ## GET /{sport}/events ### Description Paginated list of events for a sport. ### Method GET ### Endpoint /{sport}/events ### Parameters #### Path Parameters - **sport** (string) - Required - Sport identifier #### Query Parameters - **page** (number) - Optional - Page number (default 1) - **limit** (number) - Optional - Items per page (default 50) ``` -------------------------------- ### GET /api/v3/{bookmaker}/{sport}/leagues Source: https://pulsescore.net/docs Fetches a list of leagues for a specific sport. ```APIDOC ## GET /api/v3/{bookmaker}/{sport}/leagues ### Description Retrieves pre-match league information for the specified sport. ### Method GET ### Endpoint https://api.pulsescore.net/api/v3/{bookmaker}/{sport}/leagues ### Parameters #### Path Parameters - **bookmaker** (string) - Required - The bookmaker identifier - **sport** (string) - Required - The sport name ### Request Example curl -X GET "https://api.pulsescore.net/api/v3/bet365/soccer/leagues" -H "X-Secret: YOUR_API_KEY" ``` -------------------------------- ### GET /live-events/:eventId Source: https://pulsescore.net/docs Fetch a single live event by its eventId. ```APIDOC ## GET /live-events/:eventId ### Description Fetch a single live event by its eventId. ### Method GET ### Endpoint /live-events/:eventId ### Parameters #### Path Parameters - **eventId** (string) - Required - Event ID from /live-events response ``` -------------------------------- ### GET /api/v3/{bookmaker}/live-events Source: https://pulsescore.net/docs Fetches live events for a specified sport and bookmaker. ```APIDOC ## GET /api/v3/{bookmaker}/live-events ### Description Retrieves a list of all live events for the specified sport and bookmaker. ### Method GET ### Endpoint https://api.pulsescore.net/api/v3/{bookmaker}/live-events ### Parameters #### Path Parameters - **bookmaker** (string) - Required - The bookmaker identifier (e.g., bet365, fanduel, bwin) #### Query Parameters - **sport** (string) - Required - The sport to stream (e.g., soccer, tennis) ### Request Example curl -X GET "https://api.pulsescore.net/api/v3/bet365/live-events?sport=soccer" -H "X-Secret: YOUR_API_KEY" ``` -------------------------------- ### GET /{sport}/events/:eventId Source: https://pulsescore.net/docs Fetch a single event by its eventId. ```APIDOC ## GET /{sport}/events/:eventId ### Description Fetch a single event by its eventId. ### Method GET ### Endpoint /{sport}/events/:eventId ### Parameters #### Path Parameters - **sport** (string) - Required - Sport identifier - **eventId** (string) - Required - Event ID ``` -------------------------------- ### GET /api/v3/{bookmaker}/{sport}/leagues/{league}/events Source: https://pulsescore.net/docs Fetches events for a specific league. ```APIDOC ## GET /api/v3/{bookmaker}/{sport}/leagues/{league}/events ### Description Retrieves events associated with a specific league. ### Method GET ### Endpoint https://api.pulsescore.net/api/v3/{bookmaker}/{sport}/leagues/{league}/events ### Parameters #### Path Parameters - **bookmaker** (string) - Required - The bookmaker identifier - **sport** (string) - Required - The sport name - **league** (string) - Required - The name of the league ### Request Example curl -X GET "https://api.pulsescore.net/api/v3/bet365/soccer/leagues/Premier%20League/events" -H "X-Secret: YOUR_API_KEY" ``` -------------------------------- ### GET /api/v3/{bookmaker}/{sport}/events/{eventId} Source: https://pulsescore.net/docs Fetches details for a single event by its ID. ```APIDOC ## GET /api/v3/{bookmaker}/{sport}/events/{eventId} ### Description Retrieves detailed information for a specific event using its unique ID. ### Method GET ### Endpoint https://api.pulsescore.net/api/v3/{bookmaker}/{sport}/events/{eventId} ### Parameters #### Path Parameters - **bookmaker** (string) - Required - The bookmaker identifier - **sport** (string) - Required - The sport name - **eventId** (string) - Required - The unique identifier for the event ### Request Example curl -X GET "https://api.pulsescore.net/api/v3/bet365/soccer/events/98734521" -H "X-Secret: YOUR_API_KEY" ``` -------------------------------- ### GET /api/v3/{bookmaker}/live-events Source: https://pulsescore.net/docs Retrieves live events and odds for a specific bookmaker. The response follows a normalized schema with markets and selections. ```APIDOC ## GET /api/v3/{bookmaker}/live-events ### Description Retrieves live events and odds for a specified bookmaker. The response is returned in a normalized JSON schema. ### Method GET ### Endpoint https://api.pulsescore.net/api/v3/{bookmaker}/live-events ### Parameters #### Path Parameters - **bookmaker** (string) - Required - The identifier for the bookmaker (e.g., bet365, fanduel, bwin). #### Query Parameters - **sport** (string) - Optional - Filter events by sport (e.g., soccer). ``` -------------------------------- ### Python API Integration Source: https://pulsescore.net/docs Demonstrates fetching live events and parsing market data using the requests library. ```python import requests API_KEY = "YOUR_API_KEY" # Swap this prefix for any bookmaker — the parser below stays the same BASE_URL = "https://api.pulsescore.net/api/v3/bet365" # BASE_URL = "https://api.pulsescore.net/api/fanduel" # BASE_URL = "https://api.pulsescore.net/api/bwin" # Fetch live events response = requests.get( f"{BASE_URL}/live-events", headers={"X-Secret": API_KEY}, params={"sport": "soccer"} ) events = response.json() for event in events: home, away = event["home"], event["away"] for market in event["markets"]: print(f"{home} vs {away} — {market['canonicalMarket']}") for sel in market["selections"]: print(f" {sel['name']}: {sel['decimal']}") ``` -------------------------------- ### Make a live events request with cURL Source: https://pulsescore.net/docs Use this command to fetch live soccer events for a specific bookmaker. Replace YOUR_API_KEY with your actual key from the dashboard. ```bash curl -X GET "https://api.pulsescore.net/api/v3/bet365/live-events?sport=soccer" \ -H "X-Secret: YOUR_API_KEY" ``` -------------------------------- ### Node.js API Integration Source: https://pulsescore.net/docs Demonstrates fetching live events and parsing market data using the native fetch API. ```javascript const API_KEY = "YOUR_API_KEY"; // Swap this prefix for any bookmaker — the parser below stays the same const BASE_URL = "https://api.pulsescore.net/api/v3/bet365"; // const BASE_URL = "https://api.pulsescore.net/api/fanduel"; // const BASE_URL = "https://api.pulsescore.net/api/bwin"; // Fetch live events const response = await fetch(`${BASE_URL}/live-events?sport=soccer`, { headers: { "X-Secret": API_KEY }, }); const events = await response.json(); for (const event of events) { console.log(`${event.home} vs ${event.away}`); for (const market of event.markets) { console.log(` ${market.canonicalMarket}:`); for (const sel of market.selections) { console.log(` ${sel.name}: ${sel.decimal}`); } } } ``` -------------------------------- ### Connect to PulseScore WebSocket API in Python Source: https://pulsescore.net/docs Uses the websockets library to establish a connection and process incoming broadcast frames. Requires an API key and selection of a supported bookmaker and sport. ```python import asyncio import json import websockets API_KEY = "YOUR_API_KEY" # All bookmakers with live WebSocket support ENDPOINTS = { "bet365": "wss://api.pulsescore.net/api/v3/bet365/ws/live", "orbitxch": "wss://api.pulsescore.net/api/orbitxch/ws/live", "ps3838": "wss://api.pulsescore.net/api/ps3838/ws/live", "polymarket": "wss://api.pulsescore.net/api/polymarket/ws/live", "unibetau": "wss://api.pulsescore.net/api/unibetau/ws/live", "fanduel": "wss://api.pulsescore.net/api/fanduel/ws/live", "bwin": "wss://api.pulsescore.net/api/bwin/ws/live", "draftkings": "wss://api.pulsescore.net/api/draftkings/ws/live", "ladbrokes": "wss://api.pulsescore.net/api/ladbrokes/ws/live", "paddypower": "wss://api.pulsescore.net/api/paddypower/ws/live", "betfred": "wss://api.pulsescore.net/api/betfred/ws/live", "betano-de": "wss://api.pulsescore.net/api/betano-de/ws/live", "betmgm-couk": "wss://api.pulsescore.net/api/betmgm-couk/ws/live", "betmgm-nl": "wss://api.pulsescore.net/api/betmgm-nl/ws/live", "stake": "wss://api.pulsescore.net/api/stake/ws/live", "betwaymw": "wss://api.pulsescore.net/api/betwaymw/ws/live", "10bet": "wss://api.pulsescore.net/api/10bet/ws/live", "sportsbet-com-au": "wss://api.pulsescore.net/api/sportsbet-com-au/ws/live", "thunderpick": "wss://api.pulsescore.net/api/thunderpick/ws/live", "betfair-sb": "wss://api.pulsescore.net/api/betfair-sb/ws/live", "skybet": "wss://api.pulsescore.net/api/skybet/ws/live", "cloudbet": "wss://api.pulsescore.net/api/cloudbet/ws/live", "betathome": "wss://api.pulsescore.net/api/betathome/ws/live", "tipsport": "wss://api.pulsescore.net/api/tipsport/ws/live", "tab": "wss://api.pulsescore.net/api/tab/ws/live", } BOOKMAKER = "ps3838" # bet365 | orbitxch | ps3838 | polymarket | unibetau | fanduel | bwin | draftkings | ladbrokes | paddypower | betfred | betano-de | betmgm-couk | betmgm-nl | stake | betwaymw | 10bet | sportsbet-com-au | thunderpick | betfair-sb | skybet | cloudbet | betathome | tipsport | tab SPORT = "soccer" URL = f"{ENDPOINTS[BOOKMAKER]}?key={API_KEY}&sport={SPORT}" async def stream(): async with websockets.connect(URL) as ws: print(f"Connected to {BOOKMAKER} ({SPORT})") async for message in ws: msg = json.loads(message) if msg.get("type") == "connected": print(f"Subscribed to {msg['bookmaker']} {msg['sport']} (plan: {msg['plan']})") print(f"Valid sports: {', '.join(msg['validSports'])}") continue # Broadcast frame for event in msg["data"]: print(f"{event['home']} vs {event['away']}") asyncio.run(stream()) ``` -------------------------------- ### Connect to PulseScore WebSocket in Node.js Source: https://pulsescore.net/docs Requires the 'ws' library. Replace 'YOUR_API_KEY' with your actual API key to authenticate. ```javascript const WebSocket = require("ws"); const API_KEY = "YOUR_API_KEY"; // All bookmakers with live WebSocket support const ENDPOINTS = { bet365: "wss://api.pulsescore.net/api/v3/bet365/ws/live", orbitxch: "wss://api.pulsescore.net/api/orbitxch/ws/live", ps3838: "wss://api.pulsescore.net/api/ps3838/ws/live", polymarket: "wss://api.pulsescore.net/api/polymarket/ws/live", unibetau: "wss://api.pulsescore.net/api/unibetau/ws/live", fanduel: "wss://api.pulsescore.net/api/fanduel/ws/live", bwin: "wss://api.pulsescore.net/api/bwin/ws/live", draftkings: "wss://api.pulsescore.net/api/draftkings/ws/live", ladbrokes: "wss://api.pulsescore.net/api/ladbrokes/ws/live", paddypower: "wss://api.pulsescore.net/api/paddypower/ws/live", betfred: "wss://api.pulsescore.net/api/betfred/ws/live", betano-de: "wss://api.pulsescore.net/api/betano-de/ws/live", betmgm-couk: "wss://api.pulsescore.net/api/betmgm-couk/ws/live", betmgm-nl: "wss://api.pulsescore.net/api/betmgm-nl/ws/live", stake: "wss://api.pulsescore.net/api/stake/ws/live", betwaymw: "wss://api.pulsescore.net/api/betwaymw/ws/live", 10bet: "wss://api.pulsescore.net/api/10bet/ws/live", sportsbet-com-au: "wss://api.pulsescore.net/api/sportsbet-com-au/ws/live", thunderpick: "wss://api.pulsescore.net/api/thunderpick/ws/live", betfair-sb: "wss://api.pulsescore.net/api/betfair-sb/ws/live", skybet: "wss://api.pulsescore.net/api/skybet/ws/live", cloudbet: "wss://api.pulsescore.net/api/cloudbet/ws/live", betathome: "wss://api.pulsescore.net/api/betathome/ws/live", tipsport: "wss://api.pulsescore.net/api/tipsport/ws/live", tab: "wss://api.pulsescore.net/api/tab/ws/live", }; const bookmaker = "ps3838"; // bet365 | orbitxch | ps3838 | polymarket | unibetau | fanduel | bwin | draftkings | ladbrokes | paddypower | betfred | betano-de | betmgm-couk | betmgm-nl | stake | betwaymw | 10bet | sportsbet-com-au | thunderpick | betfair-sb | skybet | cloudbet | betathome | tipsport | tab const sport = "soccer"; const ws = new WebSocket( `${ENDPOINTS[bookmaker]}?key=${API_KEY}&sport=${sport}` ); ws.on("open", () => { console.log(`Connected to ${bookmaker} (${sport})`); }); ws.on("message", (raw) => { const msg = JSON.parse(raw); if (msg.type === "connected") { console.log(`Subscribed to ${msg.bookmaker} ${msg.sport} (plan: ${msg.plan})`); console.log(`Valid sports: ${msg.validSports.join(", ")}`); return; } // Broadcast frame console.log(`${msg.count} live ${msg.sport} events`); for (const event of msg.data) { console.log(` ${event.home} vs ${event.away}`); } }); ws.on("close", (code, reason) => { console.log(`Disconnected: ${code} ${reason}`); }); ``` -------------------------------- ### WebSocket Connection Pattern Source: https://pulsescore.net/docs The base URL structure for establishing a WebSocket connection. Replace placeholders with your specific API key and sport identifier. ```text wss://api.pulsescore.net/api/{bookmaker}/ws/live?key=YOUR_API_KEY&sport=SPORT ``` -------------------------------- ### WebSocket Connection Source: https://pulsescore.net/docs Connect to the real-time feed for a specific bookmaker and sport. ```APIDOC ## WebSocket Connection ### Description Establishes a WebSocket connection to receive real-time in-play event data for a selected bookmaker and sport. The server pushes a data frame approximately every 1 second. ### Endpoint `wss://api.pulsescore.net/api/{bookmaker}/ws/live` ### Parameters #### Path Parameters - **bookmaker** (string) - Required - The identifier for the bookmaker (e.g., bet365, orbitxch, ps3838). #### Query Parameters - **key** (string) - Required - Your API authentication key. - **sport** (string) - Required - The sport identifier to filter the live events. ``` -------------------------------- ### WebSocket Connection Source: https://pulsescore.net/docs Connect to a live sports data stream for a specific bookmaker and sport. ```APIDOC ## WebSocket Connection ### Description Establishes a WebSocket connection to receive real-time live sports data for a selected bookmaker. ### Endpoint `wss://api.pulsescore.net/api/{bookmaker}/ws/live` ### Query Parameters - **key** (string) - Required - Your API authentication key. - **sport** (string) - Required - The sport category (e.g., "soccer"). ### Connection Example `wss://api.pulsescore.net/api/ps3838/ws/live?key=YOUR_API_KEY&sport=soccer` ### Message Format - **type** (string) - The message type (e.g., "connected"). - **bookmaker** (string) - The name of the bookmaker. - **sport** (string) - The sport being streamed. - **plan** (string) - The current subscription plan. - **validSports** (array) - List of sports supported by the current connection. - **count** (number) - Number of live events in the broadcast. - **data** (array) - List of live event objects containing home and away team names. ``` -------------------------------- ### Connection Confirmation Message Source: https://pulsescore.net/docs The JSON object received immediately upon establishing a successful WebSocket connection. ```json { "type": "connected", "bookmaker": "fanduel", "sport": "soccer", "plan": "pro", "validSports": ["soccer", "basketball", "tennis", "ice-hockey", "..."] } ``` -------------------------------- ### Live Event Data Frame Source: https://pulsescore.net/docs The structure of the data pushed by the server every second containing live event information. ```json { "sport": "soccer", "timestamp": 1747767600000, "count": 12, "data": [ { "eventId": "98734521", "sport": "soccer", "league": "Premier League", "home": "Liverpool", "away": "Man City", "score": "1-0", "live": true, "startTime": "2026-05-20T19:00:00.000Z", "markets": [ { "canonicalMarket": "match_winner", "period": "fulltime", "selections": [ { "name": "Liverpool", "decimal": "2.10" }, { "name": "Draw", "decimal": "3.40" }, { "name": "Man City", "decimal": "3.25" } ] } ] } ] } ``` -------------------------------- ### API endpoint URL patterns Source: https://pulsescore.net/docs The API uses a consistent URL structure for all supported bookmakers. Replace the bookmaker segment in the path to target different providers. ```text https://api.pulsescore.net/api/v3/bet365 # Bet365 (normalized) https://api.pulsescore.net/api/fanduel # Fanduel https://api.pulsescore.net/api/bwin # Bwin https://api.pulsescore.net/api/ps3838 # Pinnacle(PS3838) https://api.pulsescore.net/api/paddypower # Paddy Power https://api.pulsescore.net/api/{bookmaker} # …same pattern for every bookie ``` -------------------------------- ### WebSocket Live Stream Source: https://pulsescore.net/docs Connects to a bookmaker-specific WebSocket endpoint to receive real-time sports event data. ```APIDOC ## WebSocket Connection ### Description Establishes a WebSocket connection to a specific bookmaker's live data stream to receive real-time updates for a selected sport. ### Endpoint `wss://api.pulsescore.net/api/{bookmaker}/ws/live` ### Query Parameters - **key** (string) - Required - Your API authentication key. - **sport** (string) - Required - The sport to stream (e.g., "soccer"). ### Connection Flow 1. Connect to the URL with the required query parameters. 2. The server sends a "connected" message containing subscription details, the bookmaker name, the plan, and a list of valid sports. 3. Subsequent messages contain a "data" field with a list of live events (e.g., home vs away). ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.