OddsJam APIoddsjam.com ↗
Access MLB moneyline odds, futures markets, team rosters, and schedules across multiple sportsbooks via the OddsJam API. Paginated, state-filtered endpoints.
What is the OddsJam API?
This API exposes 8 endpoints covering OddsJam MLB data: live and upcoming game odds, per-sportsbook moneyline breakdowns, full season schedules, team rosters with injury data, and futures markets. The get_mlb_screen_market endpoint returns a grid of odds across every available sportsbook for every current game in a single call, while get_mlb_game_moneyline_detail gives per-book prices with timestamps for a specific game ID.
curl -X GET 'https://api.parse.bot/scraper/d90bd944-53f7-4f8a-9c37-681f9c687dc6/get_mlb_games_odds?page=1&state=NY' \ -H 'X-API-Key: $PARSE_API_KEY'
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 oddsjam-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.
"""
OddsJam MLB API - Usage Example
Get your API key from: https://parse.bot/settings
"""
from parse_apis.oddsjam_mlb_api import OddsJam, MarketName, NotFoundError
oddsjam = OddsJam()
# List upcoming/live MLB games with best moneyline odds
for game in oddsjam.games.list(state="NY", limit=5):
print(game.home_team, "vs", game.away_team, game.status, game.is_live)
# Drill into a single game's odds by market using the MarketName enum
game = oddsjam.games.list(state="NY", limit=1).first()
if game:
for odd in game.odds.by_market(market_name=MarketName.MONEYLINE, limit=3):
print(odd.name, odd.price, odd.home_or_away, odd.market_name)
# Get team details — roster, stats, injuries
try:
detail = oddsjam.teamdetails.get(team_slug="new-york-yankees")
print(detail.team_name, detail.team_abbreviation)
for player in detail.players[:3]:
print(player.player_name, player.position, player.age)
except NotFoundError as exc:
print(f"Team not found: {exc}")
# Browse the schedule for venue and starter info
for scheduled in oddsjam.scheduledgames.list(limit=3):
print(scheduled.description, scheduled.venue_name, scheduled.home_starter)
# Cross-book odds screen
screen = oddsjam.oddsscreens.get(state="NY", market_name=MarketName.MONEYLINE)
print(screen.books[:5])
# Futures markets (World Series winner, division winners, etc.)
for market in oddsjam.futuresmarkets.list(state="NY", limit=3):
print(market.name, market.future_type, market.start_date)
print("exercised: games.list / game.odds.by_market / teamdetails.get / scheduledgames.list / oddsscreens.get / futuresmarkets.list")
Fetch upcoming and live MLB games with best moneyline odds, team names, and start times. Each event includes best odds across sportsbooks for moneyline, spread, and total markets. Paginates via integer page counter. Results include both live in-progress games and upcoming scheduled games.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| state | string | Two-letter US state code for regional odds availability (e.g. 'NY', 'UT', 'NJ'). |
{
"type": "object",
"fields": {
"events": "array of game objects with team names, start times, best odds, scores, and game status",
"leagues": "array of available league filter strings"
},
"sample": {
"data": {
"events": [
{
"id": "80389-36174-2026-06-10-12",
"sport": "baseball",
"league": "MLB",
"status": "live",
"is_live": true,
"away_team": "Washington Nationals",
"best_odds": {
"moneyline": {
"best_price_away": 100,
"best_price_home": 100,
"best_sports_book_away": "Rebet",
"best_sports_book_home": "Fliff"
}
},
"home_team": "San Francisco Giants",
"start_date": "2026-06-10T15:45:00-04:00",
"away_team_nickname": "WAS",
"home_team_nickname": "SF"
}
],
"leagues": [
"All",
"College Baseball",
"CPBL"
]
},
"status": "success"
}
}About the OddsJam API
Game Odds and Moneyline Data
get_mlb_games_odds returns paginated arrays of game objects that include team names, start times, best available moneyline odds, current scores, and game status. Each object carries an id field used as game_id in downstream endpoints. get_mlb_game_moneyline_detail and get_game_odds_by_market both accept that game_id and return per-sportsbook odds arrays with price, sportsbook, team_name, and bet_details. The root_info object on the detail endpoint also includes home_team, away_team, game_start_date, and market_name.
Odds Comparison and Futures
get_mlb_screen_market is built for side-by-side comparison: its response contains a books array of sportsbook name strings and a games object keyed by game_id, with nested odds per sportsbook. get_mlb_futures_odds works in two modes — called without future_id it returns a list of available futures markets (each with an id); called with a future_id it returns detailed odds objects for that specific market. Both game-odds and futures endpoints accept an optional state parameter (two-letter US state code) to filter to regionally available sportsbooks.
Schedule and Team Data
get_mlb_schedule returns paginated schedule objects covering matchup names, venues, starting pitchers, and broadcast info. The optional team parameter filters results to a single team or returns all when set to 'All'. get_mlb_teams returns all MLB teams organized by league and division with id, team_name, conference, division, and logo fields. get_mlb_team_odds takes a team_slug (e.g. 'new-york-yankees') and returns a detailed object including players, injuries, team_stats, and the team's upcoming schedule.
The OddsJam API is a managed, monitored endpoint for oddsjam.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when oddsjam.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 oddsjam.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?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a moneyline odds comparison table by calling
get_mlb_screen_marketand rendering thebooks×gamesgrid - Identify the best-price sportsbook for a specific game using
get_mlb_game_moneyline_detailand sorting byprice - Display a full team page with roster, injuries, and stats pulled from
get_mlb_team_oddsusing the team slug - Populate a futures betting dashboard by listing available markets via
get_mlb_futures_oddsthen drilling into individual market odds withfuture_id - Filter odds to state-legal sportsbooks by passing a
statecode to any odds endpoint - Show starting pitchers and venue details for upcoming games using
get_mlb_schedulewith optional team filtering - Seed a team picker UI with all divisions and conferences from
get_mlb_teams
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does OddsJam have an official developer API?+
How does the `state` parameter affect the odds returned?+
'NY', 'UT') to endpoints like get_mlb_games_odds, get_mlb_game_moneyline_detail, or get_mlb_screen_market restricts the sportsbooks in the response to those legally available in that state. Omitting the parameter returns all available books without regional filtering.What data does `get_mlb_team_odds` return beyond odds?+
get_mlb_team_odds returns a data object that includes players (roster), injuries, team_stats, and the team's upcoming schedule, in addition to core team identifiers. It does not return individual game odds; use get_mlb_game_moneyline_detail with a specific game_id for per-game sportsbook prices.Does the API cover run line or totals (over/under) markets?+
get_game_odds_by_market documents only 'moneyline' as a supported market_name. You can fork this API on Parse and revise it to add endpoints targeting run line or totals markets.Are historical game odds available through this API?+
get_mlb_games_odds returns events with current status and best odds, and get_mlb_schedule covers the forward-looking schedule. You can fork this API on Parse and revise it to add a historical odds endpoint if that data is accessible on OddsJam.