BetMGM Odds API | Real-Time Lines & Player Props avatar

BetMGM Odds API | Real-Time Lines & Player Props

Pricing

from $2.99 / 1,000 odds requests

Go to Apify Store
BetMGM Odds API | Real-Time Lines & Player Props

BetMGM Odds API | Real-Time Lines & Player Props

Extract real-time BetMGM sportsbook odds for 22 sports across 18 US states. Get moneylines, spreads, totals, player props, and futures in decimal, American, and fractional formats. Always-on HTTP endpoints plus batch CSV/JSON export. NBA, NFL, MLB, NHL, EPL, and 500+ leagues. No login required.

Pricing

from $2.99 / 1,000 odds requests

Rating

0.0

(0)

Developer

Zen Studio

Zen Studio

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

5 days ago

Last modified

Share

BetMGM Odds API | Real-Time Sportsbook Lines, Spreads & Player Props

Real-time BetMGM odds for 22 sports across 18 US states. Moneylines, spreads, totals, player props, and futures in decimal, American, and fractional formats. No login required.

Always-on HTTP endpoints for live integration, plus batch export to CSV/JSON.

Zen Studio Sports Betting   •  Real-time odds across every major sportsbook
 Bet365 Odds
Global odds, live scores
 DraftKings Odds
Lines, props, SGP
 BetMGM Odds
➤ You are here
 PrizePicks Props
Projections and lines

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start building with this data.

BetMGM Odds API (zen-studio/betmgm-odds) on Apify. Real-time sportsbook odds for 22 sports, 18 US states. Base: https://zen-studio--betmgm-odds.apify.actor Auth: ?token=APIFY_TOKEN (get at https://console.apify.com/account/integrations). Endpoints: GET /health (free, health check), GET /sports (free, 22 sports with slugs), GET /leagues?sport=basketball&state=nj ($0.003, discover leagues with fixture counts), GET /leagues/{leagueId}?market=game_lines&state=nj ($0.003, all events with odds), GET /events/{eventId}?market=all&state=nj ($0.003, single event full market depth 100-500 markets), GET /live?sport=basketball&state=nj ($0.003, live events with scoreboards). Response: {"success": true, "count": N, "events": [{"eventId", "sport", "sportSlug", "league", "leagueId", "homeTeam", "awayTeam", "startDate", "stage", "isLive", "isOpenForBetting", "markets": [{"name", "category", "isMain", "line", "selections": [{"name", "odds", "americanOdds", "fractionalOdds", "line"}]}]}]}. Market filters: game_lines (moneyline/spread/totals), player_props, all. States: nj pa co mi az va tn ia in wv dc wy ks ky mo la ny il ms. Batch mode: run with {"sport": "basketball", "market": "game_lines", "maxResults": 500, "state": "nj"} for CSV/JSON export. Also available as MCP server: add zen-studio/betmgm-odds at mcp.apify.com. OpenAPI spec: /openapi.json?token=TOKEN

Also available as an MCP server — add zen-studio/betmgm-odds for natural language access.

Key Features

  • 22 sports, 500+ leagues — NBA, NFL, MLB, NHL, EPL, La Liga, World Cup, and every league BetMGM offers
  • 18 US states — NJ, PA, CO, MI, AZ, VA, TN, and 11 more. Compare odds across state lines.
  • 3 odds formats — decimal, American, and fractional included in every response
  • Full market depth — moneylines, spreads, totals, 200+ player props, alt lines, futures

What You Can Do

Discovery (2 endpoints, free)

EndpointDescription
GET /healthHealth check
GET /sportsList all 22 sports with slugs and IDs

Odds Data (4 endpoints, $0.003 each)

EndpointDescription
GET /leagues?sport={slug}&state={st}All leagues for a sport with event counts
GET /leagues/{id}?market={filter}&state={st}All events in a league with odds
GET /events/{id}?market={filter}&state={st}Single event, full market depth (100-500 markets)
GET /live?sport={slug}&state={st}Live events with scoreboards

Market filters: game_lines (default, moneyline/spread/totals), player_props, all

State codes: nj (default), pa, co, mi, az, va, tn, ia, in, wv, dc, wy, ks, ky, mo, la, ny, il, ms

Quick Start

1. Discover leagues

$curl "https://zen-studio--betmgm-odds.apify.actor/leagues?sport=basketball&token=YOUR_APIFY_TOKEN"
{
"success": true,
"count": 30,
"sport": "basketball",
"leagues": [
{ "id": "df55f1a848c3", "name": "NBA", "fixtureCount": 14 },
{ "id": "c529334fe0d5", "name": "EuroLeague - Men", "fixtureCount": 11 },
{ "id": "77a9c39a3530", "name": "B.League", "fixtureCount": 12 }
]
}

2. Get odds for a league

$curl "https://zen-studio--betmgm-odds.apify.actor/leagues/df55f1a848c3?market=game_lines&token=YOUR_APIFY_TOKEN"

3. Full market depth for one event

$curl "https://zen-studio--betmgm-odds.apify.actor/events/9c76cfcb2706?market=all&token=YOUR_APIFY_TOKEN"

Returns 100-500 markets including all player props, alt lines, and specials.

Response Format

Every endpoint returns a consistent envelope:

{
"success": true,
"count": 9,
"events": [
{
"eventId": "9c76cfcb2706",
"name": "New York Knicks at Memphis Grizzlies",
"sport": "Basketball",
"sportSlug": "basketball",
"league": "NBA",
"leagueId": "df55f1a848c3",
"region": "USA",
"state": "NJ",
"homeTeam": "New York Knicks",
"awayTeam": "Memphis Grizzlies",
"startDate": "2026-04-02T00:10:00Z",
"cutOffDate": "2026-04-02T00:10:00Z",
"stage": "PreMatch",
"isLive": false,
"isOpenForBetting": true,
"isPlannedInPlay": false,
"totalMarketsCount": 265,
"markets": [
{
"name": "Moneyline",
"category": "game_lines",
"isMain": true,
"line": null,
"selections": [
{
"name": "Knicks",
"odds": 1.08,
"americanOdds": -1200,
"fractionalOdds": "1/12",
"line": null,
"visibility": "Visible"
},
{
"name": "Grizzlies",
"odds": 8.25,
"americanOdds": 725,
"fractionalOdds": "7/1",
"line": null,
"visibility": "Visible"
}
]
},
{
"name": "Spread",
"category": "game_lines",
"isMain": false,
"line": null,
"selections": [
{
"name": "New York Knicks -14.5",
"odds": 1.91,
"americanOdds": -110,
"fractionalOdds": "10/11",
"line": -14.5
},
{
"name": "Memphis Grizzlies +14.5",
"odds": 1.91,
"americanOdds": -110,
"fractionalOdds": "10/11",
"line": 14.5
}
]
},
{
"name": "Totals",
"category": "game_lines",
"isMain": false,
"line": 227.5,
"selections": [
{
"name": "Over 227.5",
"odds": 1.87,
"americanOdds": -115,
"fractionalOdds": "20/23",
"line": null,
"totalsPrefix": "Over"
},
{
"name": "Under 227.5",
"odds": 1.95,
"americanOdds": -105,
"fractionalOdds": "20/21",
"line": null,
"totalsPrefix": "Under"
}
]
}
],
"scrapedAt": "2026-04-01T13:26:35Z"
}
]
}

Error Responses

{
"success": false,
"error": "Unknown sport: curling. Use /sports to see available options."
}
CodeMeaning
400Invalid parameter (bad sport, unknown ID, invalid market)
404Event not found or no longer available
500Internal error (retry)

Live Events with Scoreboards

The /live endpoint returns all in-progress events with real-time scores:

{
"eventId": "abc123def456",
"homeTeam": "Qingdao Eagles",
"awayTeam": "Tianjin",
"isLive": true,
"scoreboard": {
"period": "Q3",
"homeScore": 63,
"awayScore": 61
},
"markets": [
{
"name": "Moneyline",
"category": "game_lines",
"selections": [...]
}
]
}

Events without inline odds (tennis, table tennis) are still included with scoreboards. Call /events/{id} for full market depth.

Batch Mode

Run the actor with input to export all odds to a dataset (CSV/JSON). One row per selection.

{
"sport": "basketball",
"market": "game_lines",
"maxResults": 500,
"state": "nj"
}

Batch Output

sportleagueeventmarketselectionoddsamericanOddsline
BasketballNBAKnicks at GrizzliesMoneylineKnicks1.08-1200
BasketballNBAKnicks at GrizzliesSpreadKnicks -14.51.91-110-14.5
BasketballNBAKnicks at GrizzliesTotalsOver 227.51.87-115227.5

Use batch for scheduled polling (every 5/15/60 minutes), daily dumps, or one-off research.

Pricing

$3 per 1,000 requests (pay per event). Discovery endpoints (/health, /sports) are free.

What you getRequestsCost
NBA game lines (9 games)1$0.003
Full NBA day (game lines + props)10$0.03
All basketball leagues1$0.003
All sports batch (game lines)~10$0.03
Hourly NBA poll for 24h24$0.07

Batch mode charges per league processed (not per row).

FAQ

What's Standby mode? Always-on HTTP server. No queue, no cold start. Apify keeps it warm and routes requests directly.

How fresh is the data? Real-time. Each request fetches live data. Odds update as lines move.

Can I compare odds across states? Yes. Pass different state parameters to compare NJ vs PA vs CO odds for the same events.

Which sports are supported? 22 sports: Basketball, American Football, Baseball, Hockey, Soccer, Tennis, MMA, Golf, Boxing, Cricket, Darts, Formula 1, Handball, Lacrosse, Motorsport, NASCAR, Rugby League, Rugby Union, Snooker, Table Tennis, Volleyball, Cycling.

What's the difference between game_lines and player_props? Game lines are moneyline, spread, and totals. Player props are per-player stats (points, rebounds, assists, strikeouts). A single NBA game has ~25 game lines and ~240 player props.

Why do some live events show 0 markets? Some sports (tennis, table tennis) don't include inline odds in the live feed. The scoreboard and metadata are still present. Call /events/{id} for full odds.

What do the IDs look like? IDs are opaque 12-character hex strings (e.g. df55f1a848c3). They are stable across requests. Discover them via /sports and /leagues.

Is there a rate limit? No hard rate limit. Avoid rapid-fire requests from the same session.

Can I use this for arbitrage? Yes. Run BetMGM alongside DraftKings and Bet365 actors to compare odds across books.

Support

  • Bugs: Issues tab
  • Features: Issues tab

Extracts publicly available odds data. Users must comply with applicable terms and data protection regulations.


Real-time BetMGM sportsbook odds for 22 sports, 18 US states. Standby HTTP endpoints + batch CSV/JSON export.