BetPARX Data API

BetPARX API for Pre-Match, Live Odds & Results

Access odds from BetPARX's Kambi-powered US sportsbook across 15 sports — a player-prop-heavy board with ~90 markets on a typical soccer match and full NFL, NBA, MLB, and NHL coverage, merged from its New Jersey, Pennsylvania, and Maryland books. Normalized markets with decimal odds, paginated REST endpoints, a real-time WebSocket feed with live statistics, and a 30-day results archive. One API key for all bookmakers.

What a BetPARX API Response Looks Like

GET /api/betparx/soccer/events?page=1&limit=5
{
  "total": 1243,
  "page": 1,
  "limit": 5,
  "totalPages": 249,
  "hasNextPage": true,
  "events": [
    {
      "sport": "soccer",
      "league": "La Liga",
      "country": "Spain",
      "eventId": "1028208792",
      "home": "Levante",
      "away": "Real Betis",
      "live": false,
      "startTime": "2026-08-29T15:00:00.000Z",
      "slug": "/kambi#event/1028208792",
      "markets": [
        {
          "canonicalMarket": "MATCH_RESULT",
          "rawName": "Full Time",
          "period": "FULL_TIME",
          "isActive": true,
          "marketId": "1001159858",
          "selections": [
            {
              "canonicalOutcome": "HOME",
              "rawName": "1",
              "odds": 3.4,
              "isActive": true,
              "selectionId": "4308864227",
              "moreInfo": { "participant": "Levante", "participantId": "1000000348" }
            },
            {
              "canonicalOutcome": "DRAW",
              "rawName": "X",
              "odds": 3.3,
              "isActive": true,
              "selectionId": "4308864228"
            },
            {
              "canonicalOutcome": "AWAY",
              "rawName": "2",
              "odds": 2.17,
              "isActive": true,
              "selectionId": "4308864229",
              "moreInfo": { "participant": "Real Betis", "participantId": "1000000169" }
            }
          ]
        },
        {
          "canonicalMarket": "OVER_UNDER",
          "rawName": "Total Goals",
          "period": "FULL_TIME",
          "line": 1.5,
          "isActive": true,
          "marketId": "1001159926:1.5",
          "selections": [
            {
              "canonicalOutcome": "OVER",
              "rawName": "Over",
              "odds": 1.32,
              "isActive": true,
              "selectionId": "4308864062",
              "line": 1.5
            },
            {
              "canonicalOutcome": "UNDER",
              "rawName": "Under",
              "odds": 3.3,
              "isActive": true,
              "selectionId": "4308864063",
              "line": 1.5
            }
          ]
        },
        {
          "canonicalMarket": "ANYTIME_GOALSCORER",
          "rawName": "To Score",
          "period": "FULL_TIME",
          "line": 1,
          "isActive": true,
          "marketId": "1001159886:1:Cucho Hernández",
          "selections": [
            {
              "canonicalOutcome": "YES",
              "rawName": "Yes",
              "odds": 3.1,
              "isActive": true,
              "selectionId": "4308867095",
              "line": 1,
              "moreInfo": { "participant": "Cucho Hernández", "participantId": "1007915472" }
            }
          ],
          "moreInfo": { "player": "Cucho Hernández" }
        }
      ],
      "moreInfo": {
        "brand": "parxusnj",
        "site": "https://nj.betparx.com"
      }
    }
  ]
}

Live Events — Score, Clock & Statistics

GET /api/betparx/live-events?sport=soccer&limit=1
{
  "total": 30,
  "page": 1,
  "limit": 1,
  "sport": "soccer",
  "events": [
    {
      "sport": "soccer",
      "league": "Conference League Qualification",
      "country": "Conference League Qualification",
      "eventId": "1028755953",
      "home": "SC Freiburg",
      "away": "Motherwell",
      "startTime": "2026-08-27T16:45:00.000Z",
      "slug": "/kambi#event/live/1028755953",
      "score": {
        "home": "4",
        "away": "1"
      },
      "matchClock": {
        "minute": 89,
        "second": 21,
        "period": "2nd half",
        "periodId": "SECOND_HALF",
        "running": true
      },
      "statistics": {
        "football": {
          "home": { "yellowCards": 0, "redCards": 0, "corners": 7 },
          "away": { "yellowCards": 1, "redCards": 1, "corners": 1 }
        }
      },
      "moreInfo": {
        "brand": "parxusnj",
        "site": "https://nj.betparx.com"
      },
      "markets": [ /* ... */ ]
    }
  ]
}

Match Results — Final Scores for 30 Days

GET /api/betparx/results?sport=soccer&page=1&limit=5
{
  "total": 30,
  "page": 1,
  "limit": 5,
  "totalPages": 6,
  "hasNextPage": true,
  "results": [
    {
      "sport": "soccer",
      "league": "Conference League Qualification",
      "country": "Conference League Qualification",
      "eventId": "1028756199",
      "home": "AS Monaco",
      "away": "Górnik Zabrze",
      "startTime": "2026-08-27T16:46:00.000Z",
      "slug": "/kambi#event/live/1028756199",
      "score": {
        "home": "4",
        "away": "1"
      },
      "matchClock": {
        "minute": 93,
        "second": 7,
        "period": "2nd half",
        "periodId": "SECOND_HALF",
        "running": true
      },
      "statistics": {
        "football": {
          "home": { "yellowCards": 0, "redCards": 0, "corners": 5 },
          "away": { "yellowCards": 2, "redCards": 0, "corners": 2 }
        }
      },
      "moreInfo": {
        "brand": "parxusnj",
        "site": "https://nj.betparx.com"
      }
    }
  ]
}

Why Use PulseScore for BetPARX Data

15 Sports With Full Market Coverage

Pre-match odds from BetPARX's Kambi-powered US sportsbook across 15 sports — Soccer, American Football, Basketball, Baseball, Tennis, Table Tennis, Ice Hockey, Handball, Rugby Union, Rugby League, MMA, Boxing, Snooker, Cricket, and Darts — with paginated league and event endpoints and the complete market list for every fixture.

Player Props on Every Fixture

A US board where player props dominate: a soccer match averages ~90 markets and the biggest run past 700, with to-score, shots on target, to-score-or-assist, team totals, and corners alongside the core 1X2, totals, and Asian handicap lines — plus ~110 markets on a typical MLB game and full NFL, NBA, and NHL depth. Odds are decimal, league names are the plain competition names, and every league carries a country field.

Live Scores, Clock & Statistics

Live events carry the current score with a per-period breakdown (Q1: 19-25 | Q2: 19-25 for basketball, P1: 1-0 | P2: 1-1 for hockey), a match clock with minute, second, a running flag, a human-readable period ('1st half', '2nd Quarter', 'Penalty Shootout') and its periodId code (FIRST_HALF, QUARTER2, PS), and — where the board publishes them — a statistics block: yellow and red cards plus corners for soccer, per-set scores and the current server for tennis and table tennis.

Live WebSocket Streaming

Real-time push of every in-play event for the chosen sport, broadcast roughly every second with live scores, the match clock, and statistics. PRO, MAX, and ULTRA plans only — connect once and receive each update as it happens.

30-Day Match Results Feed

Every event that leaves the in-play board keeps its last published score and match clock for 30 days across every sport BetPARX streams live, with a statistics block on soccer, tennis, and table tennis — filter by sport, league, or team name to settle bets, grade models, or backfill your own database.

Three State Boards, One Feed

BetPARX runs separate New Jersey, Pennsylvania, and Maryland books; the feed merges them and stamps every event with moreInfo.brand and moreInfo.site (parxusnj → nj.betparx.com, parxuspa, parxusmd) so you always know which board an event and its odds came from. Markets use canonical naming (MATCH_RESULT, OVER_UNDER, ANYTIME_GOALSCORER) plus Kambi's raw labels and BetPARX's own market and selection IDs — write your integration once and reuse it across every bookmaker.

Frequently Asked Questions

What data does the BetPARX API provide?

PulseScore provides pre-match odds, live in-play odds, and match results from BetPARX (betparx.com), Parx Casino's Kambi-powered US sportsbook, read from its New Jersey, Pennsylvania, and Maryland boards across 15 sports. Each event includes normalized market data with canonical market types, selections, and decimal odds, plus the raw market and outcome names as BetPARX displays them.

What sports are covered?

The 15 sports BetPARX publishes pre-match markets for: Soccer, American Football, Basketball, Baseball, Tennis, Table Tennis, Ice Hockey, Handball, Rugby Union, Rugby League, MMA, Boxing, Snooker, Cricket, and Darts. Every sport exposes /leagues, /leagues/:league/events, /events (paginated), and /events/:eventId. Golf is live-only: in-play golf appears in the live-events endpoints and the results feed, but has no pre-match endpoints and cannot be subscribed to over WebSocket.

How are leagues and outcomes named?

Everything is in English. League names are the plain competition names BetPARX shows — 'La Liga', 'EFL Cup', 'US Open Qualifiers', 'NFL' — and leagues, events, live events, and results all carry a country field with the board's grouping: a country such as Spain or England, or a tour such as Grand Slam, ATP, or PDC European Tour. Market rawName values are Kambi's own labels such as 'Full Time', 'Total Goals', and 'Both Teams To Score'; 1X2 outcomes are named 1 / X / 2 with the team in moreInfo.participant, totals repeat the line on the market and each selection, and player props carry the player in the market's moreInfo.player. Odds are decimal. Every document also carries moreInfo.brand and moreInfo.site telling you which state board it came from (parxusnj, parxuspa, or parxusmd). The canonical fields — canonicalMarket, canonicalOutcome, and period — are identical across every bookmaker on PulseScore.

Does it include match results?

Yes. /api/betparx/results returns events that left BetPARX's in-play board with the last score and match clock the board published, most recent first. Filter by sport, league, or team (exact name, case-insensitive), look up a single result with /results/events/:eventId, or discover covered sports with /results/sports. Results are retained for 30 days and cover every sport BetPARX streams live; soccer, tennis, and table tennis also carry a statistics block.

How are the markets structured?

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

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.

Does the BetPARX API support live in-play data?

Yes. Live in-play events are available via REST (/api/betparx/live-events, /live-events/sports, /live-events/events/:eventId) and via WebSocket at wss://api.pulsescore.net/api/betparx/ws/live. The WebSocket pushes every in-play event for the subscribed sport roughly every second, including the live score with a per-period breakdown, a match clock with a human-readable period such as '2nd half' or '3rd Quarter' plus its periodId code (SECOND_HALF, QUARTER3), and statistics — cards and corners for soccer, per-set scores and the current server for tennis and table tennis. PRO, MAX, and ULTRA plans only.

Start Using the BetPARX API Today

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