Discover/BetMGM API
live

BetMGM APImd.betmgm.com

Live and pre-match eBasketball odds from BetMGM Maryland: moneyline, spread, game totals, and team totals in American odds via two clean endpoints.

Endpoint health
monitored
get_board
get_event
Checks pendingself-healing
Endpoints
2
Verified account required
Updated
2h ago

What is the BetMGM API?

This API exposes BetMGM Maryland's eBasketball (GG League H2H) odds board through 2 endpoints, returning moneyline, spread, game total, and team total markets for every listed event. The get_board endpoint delivers the full board in one call sorted by start time, while get_event adds alternative spread and game-total lines for a single fixture identified by its compound event_id.

This call costs2 credits / call— charged only on success
Try it

No input parameters required.

api.parse.bot/scraper/78b897c0-e8e1-4762-81b8-62f66e0d1fe9/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/78b897c0-e8e1-4762-81b8-62f66e0d1fe9/get_board' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace md-betmgm-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: BetMGM Maryland eBasketball odds — board scan and event detail."""
from parse_apis.md_betmgm_com_api import BetMGM, EventNotFound

client = BetMGM()

# Fetch the full eBasketball board in one call.
board = client.boards.get()
print(f"Board: {board.book} {board.region} — {board.total_events} events ({board.board_status})")

# Scan the first few events on the board.
for ev in (board.events or [])[:5]:
    line = f"  {ev.home_name} vs {ev.away_name}  ({ev.stage}, {ev.market_status})"
    if ev.moneyline_home is not None:
        line += f"  ML {ev.moneyline_home}/{ev.moneyline_away}"
    print(line)

# Drill into the first event's full detail (alt spreads / alt totals).
first = (board.events or [None])[0] if board.events else None
if first is not None:
    detail = first.details()
    print(f"\nDetail: {detail.home_name} vs {detail.away_name}")
    print(f"  Spread: {detail.spread_home_line} ({detail.spread_home_price})")
    print(f"  Total:  {detail.total_line}  O {detail.over_price} / U {detail.under_price}")
    print(f"  Alt spreads: {len(detail.alt_spreads)}, Alt totals: {len(detail.alt_totals)}")

# Point lookup by a known event id from the board.
if first is not None:
    try:
        event = client.events.get(event_id=first.event_id)
        print(f"\nLooked up {event.event_id}: {event.competition}")
    except EventNotFound:
        print(f"Event {first.event_id} no longer listed")

print("\nexercised: boards.get / EventSummary.details / events.get")
All endpoints · 2 totalmissing one? ·

Returns the full BetMGM Maryland eBasketball board (live and pre-match, open and suspended) in one call, sorted by start time. One row per game with the main moneyline, spread, game total and, when offered, both team totals; every price is a signed American odds integer and a market the board does not show is null (never invented). market_status is 'open' when at least one main market is priced, 'suspended' when every main market is suspended, 'no_markets' when the game is listed without markets, and 'closed' when betting is closed. board_status is 'OK' when games are listed and 'EMPTY_BOARD' when the site lists none (events is then an empty array). Internally walks the feed in pages until the site's own total is reached, so the row count equals total_events. Times are given in UTC and converted to America/New_York.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "book": "always 'BetMGM'",
    "sport": "always 'eBasketball'",
    "events": "array of game rows; each row carries event_id/fixture_id (same compound id, e.g. 5:1188675), start_time_utc, start_time_local (America/New_York), timezone, stage (Live|PreMatch), competition, home_name/away_name exactly as BetMGM shows them (player tag in parentheses), moneyline_home/away, spread_home_line/price and spread_away_line/price, total_line/over_price/under_price, team_total_home_line/over_price/under_price, team_total_away_line/over_price/under_price (all prices signed American integers or null), market_status, deep_link",
    "region": "always 'MD'",
    "scraped_at": "ISO-8601 UTC timestamp of this fetch",
    "board_status": "'OK' when events are present, 'EMPTY_BOARD' when the site lists no eBasketball games",
    "total_events": "integer count of eBasketball games the site reports; equals len(events)"
  },
  "sample": {
    "data": {
      "book": "BetMGM",
      "sport": "eBasketball",
      "events": [
        {
          "stage": "Live",
          "event_id": "5:1188666",
          "timezone": "America/New_York",
          "away_name": "Orlando Magic (UNDERRATED)",
          "deep_link": "https://www.md.betmgm.com/en/sports/events/5:1188666",
          "home_name": "Denver Nuggets (CALAMITY)",
          "fixture_id": "5:1188666",
          "over_price": null,
          "total_line": 117.5,
          "competition": "eBasketball H2H GG League",
          "under_price": -118,
          "market_status": "open",
          "moneyline_away": -250,
          "moneyline_home": 180,
          "start_time_utc": "2026-09-07T00:19:00Z",
          "spread_away_line": -4.5,
          "spread_home_line": 4.5,
          "start_time_local": "2026-09-06T20:19:00-04:00",
          "spread_away_price": -125,
          "spread_home_price": -110,
          "team_total_away_line": 60.5,
          "team_total_home_line": 55.5,
          "team_total_away_over_price": -125,
          "team_total_home_over_price": -125,
          "team_total_away_under_price": -110,
          "team_total_home_under_price": -110
        }
      ],
      "region": "MD",
      "scraped_at": "2026-09-07T00:26:06.913048+00:00",
      "board_status": "OK",
      "total_events": 20
    },
    "status": "success"
  }
}

About the BetMGM API

Board Endpoint

get_board returns the complete BetMGM Maryland eBasketball board in a single response with no required inputs. Each row in the events array carries a compound event_id (e.g. 5:1188675), start_time_utc, start_time_local in the America/New_York timezone, and the main market prices — moneyline, spread, game total, and team totals where offered. Every price is a signed American odds integer. The top-level board_status field is 'OK' when games are present or 'EMPTY_BOARD' when BetMGM lists none. total_events gives the integer count of games the site is currently reporting.

Event Endpoint

get_event takes a single required parameter, event_id, in the <source>:<number> form returned by get_board. It returns all the same fields as a board row — home_name, away_name, stage ('Live' or 'PreMatch'), deep_link to the BetMGM Maryland event page — plus two arrays: alt_spreads and alt_totals. Each entry in those arrays carries a line, over_price/under_price or equivalent side prices, and a status. These arrays are empty when only the main line is listed, which is the common case on this board.

Coverage and Freshness

Both endpoints reflect what BetMGM Maryland's eBasketball section currently shows, including suspended markets. The scraped_at field in get_board is an ISO-8601 UTC timestamp indicating when the data was fetched. book is always 'BetMGM', region is always 'MD', and sport is always 'eBasketball'. These fixed fields make it straightforward to combine output with data from other sportsbooks for cross-book comparison.

Reliability & maintenance

The BetMGM API is a managed, monitored endpoint for md.betmgm.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when md.betmgm.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official md.betmgm.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor live eBasketball moneyline and spread movements on BetMGM Maryland in real time using scraped_at timestamps
  • Build a line-shopping tool comparing BetMGM Maryland game totals against other books using the over_price/under_price fields
  • Alert bettors when a game's stage flips from 'PreMatch' to 'Live' using repeated get_board polling
  • Track which BetMGM Maryland eBasketball games have alternative spread or total lines available via alt_spreads and alt_totals in get_event
  • Populate a dashboard with upcoming GG League H2H matchups, team names, and start times sourced from start_time_utc
  • Detect suspended markets by filtering events where market status is not active, using the board_status and per-market status fields
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does BetMGM have an official public developer API for odds data?+
BetMGM does not publish a public developer API for its odds. Access to real-time BetMGM odds data for third-party developers is not officially offered through a documented endpoint.
What does `get_board` return when BetMGM Maryland has no eBasketball games scheduled?+
board_status is set to 'EMPTY_BOARD' and total_events is 0. The events array is empty. This can happen during off-hours or between GG League H2H sessions.
Are alternative spread and total lines always included in `get_event`?+
alt_spreads and alt_totals are present in every get_event response but are empty arrays when BetMGM only offers the main line for that fixture, which is the typical case on this board. You only get populated alt-line arrays on games where BetMGM Maryland has actually listed them.
Does this API cover other BetMGM states beyond Maryland, or other sports?+
Not currently. The API covers only BetMGM Maryland (region: 'MD') and only the eBasketball (GG League H2H) market. You can fork it on Parse and revise it to add endpoints targeting other BetMGM state domains or sport categories.
Are player props or same-game parlays available through this API?+
Not currently. The API exposes moneyline, spread, game total, team totals, and any alt lines for those markets. Player props and parlay data are not included. You can fork it on Parse and revise it to add those market types as separate endpoints.
Page content last updated . Spec covers 2 endpoints from md.betmgm.com.
Related APIs in SportsSee all →
melbet.ng API
Access live sports betting odds from Melbet Nigeria across multiple sports and tournaments to compare available markets and make informed betting decisions. Browse available sports, explore tournaments within each sport, and retrieve detailed event odds data in real-time.
unibet.com API
Access live betting odds, browse sports categories and upcoming matches, and search for specific events across multiple leagues in real-time. Get detailed event information including current odds for thousands of sports matchups to inform your betting decisions.
interwetten.com API
Access real-time basketball betting odds, matches, and market information from Interwetten across all major leagues including NBA, NCAA, and Euroleague. Browse available leagues, view upcoming matches, and get detailed betting details for 35+ basketball competitions worldwide.
hardrock.bet API
Access live Puerto Rico Superior Nacional (BSN) basketball betting lines from Hard Rock Bet, including current matchups, spreads, moneylines, and totals to inform your wagering decisions. Track upcoming games and real-time odds to find the best betting opportunities across BSN competitions.
melbet.com API
Place bets with confidence by accessing live and pre-match odds, match information, and league data across multiple sports from Melbet. Stay updated with real-time betting opportunities and comprehensive sports coverage to make informed wagering decisions.
oddsjam.com API
Access real-time and upcoming MLB game odds across multiple sportsbooks, along with detailed moneyline information, schedules, and futures betting data. Compare odds by market, view team-specific odds, and stay updated on all available betting options for MLB games.
superbet.ro API
Access sports betting data from Superbet.ro, including the full sports and competition hierarchy, pre-match and live event listings, detailed odds, boosted prices, popular accumulator suggestions, and Bet Builder markets.
betano.com API
Access sports data from the Betano platform across multiple regional sites. Retrieve available regions, browse sports categories, and view event details including schedules, participating teams or players, and betting markets for upcoming and live matches.