# BetMGM Odds API | Real-Time Lines & Player Props (`zen-studio/betmgm-odds`) Actor

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.

- **URL**: https://apify.com/zen-studio/betmgm-odds.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Automation, Integrations, Developer tools
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 odds requests

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 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.

<table>
<tr>
<td colspan="4" style="padding:10px 14px;background:#4C945E;border:none;border-radius:4px 4px 0 0">
<span style="color:#FAFAF9;font-size:14px;font-weight:700;letter-spacing:0.5px">Zen Studio Sports Betting</span>
<span style="color:#E8F5E9;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Real-time odds across every major sportsbook</span>
</td>
</tr>
<tr>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;border-right:none;border-top:none;vertical-align:top;width:25%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-l6JP3yaLczAdUaiSf-yDHq17ycGp-bet365-icon_lc6m4t.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/bet365-real-time-odds" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">Bet365 Odds</a><br>
<span style="color:#78716C;font-size:12px">Global odds, live scores</span>
</td>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:25%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-W8rOXiLSj8wrgF96k-PQehXxTEV5-draftkings-real-time-api-logo.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/draftkings-odds" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">DraftKings Odds</a><br>
<span style="color:#78716C;font-size:12px">Lines, props, SGP</span>
</td>
<td style="padding:12px 16px;border:1px solid #E7E5E4;background:#E8F5E9;border-right:none;border-top:none;vertical-align:top;width:25%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-TjShOnNguT17e9hfQ-ntCswWAqze-betmgm-real-time-api-logo-padded.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/betmgm-odds" style="color:#4C945E;text-decoration:none;font-weight:700;font-size:14px">BetMGM Odds</a><br>
<span style="color:#4C945E;font-size:12px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:25%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-4AmgQeem8dEgMEiRF-VGffbe665M-prizepicks-scraper-logo.jpeg" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/prizepicks-player-props" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">PrizePicks Props</a><br>
<span style="color:#78716C;font-size:12px">Projections and lines</span>
</td>
</tr>
</table>

#### 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](https://mcp.apify.com/) — 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)

| Endpoint | Description |
|----------|-------------|
| `GET /health` | Health check |
| `GET /sports` | List all 22 sports with slugs and IDs |

#### Odds Data (4 endpoints, $0.003 each)

| Endpoint | Description |
|----------|-------------|
| `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

```bash
curl "https://zen-studio--betmgm-odds.apify.actor/leagues?sport=basketball&token=YOUR_APIFY_TOKEN"
````

```json
{
    "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

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

#### 3. Full market depth for one event

```bash
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:

```json
{
    "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

```json
{
    "success": false,
    "error": "Unknown sport: curling. Use /sports to see available options."
}
```

| Code | Meaning |
|------|---------|
| 400 | Invalid parameter (bad sport, unknown ID, invalid market) |
| 404 | Event not found or no longer available |
| 500 | Internal error (retry) |

#### Live Events with Scoreboards

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

```json
{
    "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.

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

#### Batch Output

| sport | league | event | market | selection | odds | americanOdds | line |
|-------|--------|-------|--------|-----------|------|-------------|------|
| Basketball | NBA | Knicks at Grizzlies | Moneyline | Knicks | 1.08 | -1200 | |
| Basketball | NBA | Knicks at Grizzlies | Spread | Knicks -14.5 | 1.91 | -110 | -14.5 |
| Basketball | NBA | Knicks at Grizzlies | Totals | Over 227.5 | 1.87 | -115 | 227.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 get | Requests | Cost |
|-------------|----------|------|
| NBA game lines (9 games) | 1 | $0.003 |
| Full NBA day (game lines + props) | 10 | $0.03 |
| All basketball leagues | 1 | $0.003 |
| All sports batch (game lines) | ~10 | $0.03 |
| Hourly NBA poll for 24h | 24 | $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

### Legal Compliance

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.*

# Actor input Schema

## `sport` (type: `string`):

Pick a sport or fetch all at once. <b>All Sports</b> iterates the 10 most popular sports in order. The full list of 22 sports with all leagues is available via the <code>/sports</code> and <code>/leagues</code> standby endpoints.

## `market` (type: `string`):

Which betting markets to include in each event.<br><br><b>Game Lines</b> — moneyline, spread, totals. Fastest option.<br><b>Player Props</b> — per-player points, rebounds, assists, strikeouts, etc. Slower for sports with many events.<br><b>All Markets</b> — game lines + player props + specials. Same speed as Player Props.

## `maxResults` (type: `integer`):

Maximum number of odds rows to export. Each selection is one row (e.g. "Over 220.5" is one row). Set to <code>0</code> for unlimited.<br><br>With <b>Game Lines</b>, a single sport produces ~100–500 rows. With <b>Player Props</b> or <b>All</b>, a single sport can produce thousands.

## `state` (type: `string`):

BetMGM runs separate sportsbook instances per US state. Odds and available events can differ between states due to regulation. Most users should leave this on New Jersey — it has the broadest coverage.

## Actor input object example

```json
{
  "sport": "basketball",
  "market": "game_lines",
  "maxResults": 50,
  "state": "nj"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "sport": "basketball",
    "market": "game_lines",
    "maxResults": 50,
    "state": "nj"
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/betmgm-odds").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "sport": "basketball",
    "market": "game_lines",
    "maxResults": 50,
    "state": "nj",
}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/betmgm-odds").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "sport": "basketball",
  "market": "game_lines",
  "maxResults": 50,
  "state": "nj"
}' |
apify call zen-studio/betmgm-odds --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=zen-studio/betmgm-odds",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "BetMGM Odds API | Real-Time Lines & Player Props",
        "description": "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.",
        "version": "0.0",
        "x-build-id": "ojuF3ZhmmcFnK5qKx"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zen-studio~betmgm-odds/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zen-studio-betmgm-odds",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/zen-studio~betmgm-odds/runs": {
            "post": {
                "operationId": "runs-sync-zen-studio-betmgm-odds",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/zen-studio~betmgm-odds/run-sync": {
            "post": {
                "operationId": "run-sync-zen-studio-betmgm-odds",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "sport": {
                        "title": "Sport",
                        "enum": [
                            "ALL",
                            "basketball",
                            "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"
                        ],
                        "type": "string",
                        "description": "Pick a sport or fetch all at once. <b>All Sports</b> iterates the 10 most popular sports in order. The full list of 22 sports with all leagues is available via the <code>/sports</code> and <code>/leagues</code> standby endpoints.",
                        "default": "basketball"
                    },
                    "market": {
                        "title": "Market Type",
                        "enum": [
                            "game_lines",
                            "player_props",
                            "all"
                        ],
                        "type": "string",
                        "description": "Which betting markets to include in each event.<br><br><b>Game Lines</b> — moneyline, spread, totals. Fastest option.<br><b>Player Props</b> — per-player points, rebounds, assists, strikeouts, etc. Slower for sports with many events.<br><b>All Markets</b> — game lines + player props + specials. Same speed as Player Props.",
                        "default": "game_lines"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of odds rows to export. Each selection is one row (e.g. \"Over 220.5\" is one row). Set to <code>0</code> for unlimited.<br><br>With <b>Game Lines</b>, a single sport produces ~100–500 rows. With <b>Player Props</b> or <b>All</b>, a single sport can produce thousands.",
                        "default": 500
                    },
                    "state": {
                        "title": "US State",
                        "enum": [
                            "nj",
                            "pa",
                            "co",
                            "mi",
                            "az",
                            "va",
                            "tn",
                            "ia",
                            "in",
                            "wv",
                            "dc",
                            "wy",
                            "ks",
                            "ky",
                            "mo",
                            "la",
                            "ny",
                            "il",
                            "ms"
                        ],
                        "type": "string",
                        "description": "BetMGM runs separate sportsbook instances per US state. Odds and available events can differ between states due to regulation. Most users should leave this on New Jersey — it has the broadest coverage.",
                        "default": "nj"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
