MLS Odds API
Our MLS odds API delivers Major League Soccer odds, player props, status and results for every match from 25 bookmakers, 21 of them Australian. leagueID=MLS. Free tier available.
Whether you're building a betting app, an odds comparison tool or a pricing model, the MLS odds API gives you structured data in the SportsGameOdds v2 shape so you can move fast.
Covering more than MLS? The Soccer returns Brasileiro Série A, Bundesliga, Premier League, FIFA World Cup, Ligue 1, Iceland 1. deild, Besta deild, Serie A, La Liga, Scottish Premiership, Slovak 2. Liga, Slovak Super Liga, Champions League, Conference League, Champions League Qualifiers, Conference League Qualifiers, Europa League Qualifiers, Europa League and MLS from a single sport-level request.
MLS Odds API Features
Every endpoint is filterable, so you pull exactly the markets you need. Coverage spans 31 teams and 96 events currently carried, with 26 market families.
Available MLS betting markets include:
- Head to head / moneylines (2-way and 3-way markets)
- Lines, spreads and handicaps
- Totals (over/under)
- Alternative lines
- Player props and game props
- Period-specific markets (
1h,2h,bothhalves,reg)
All market data is pre-match, refreshed every ~2 minutes; see pricing for what each plan can see.
MLS Player Props API
Access 10 MLS player proposition markets through the same endpoint — Points / score, First to score, Last to score, Goals + assists, Shots on goal, Assists — for every player the books price. See the player prop odds API for the market list across every sport.
Filter by playerID, stat type or bookmaker to return only the props you need.
MLS Odds API with Results
SockOdds delivers MLS odds and event data together in one response — no need to stitch data from multiple sources. Each response includes:
- Upcoming MLS events with status flags
- Home and away team data with ids
- Players with production ids where present
- Full odds coverage: lines, totals, head to head, props and alternative lines
- Results and
scoringSupportedflags where the source grades
Line movement tracking is yours to build: every bookmaker entry carries lastUpdatedAt, and finished events are retained.
Quick start: your first MLS odds API call
Getting MLS odds takes a single HTTP request:
https://api.sockodds.com/v2/events?apiKey=YOUR_API_KEY&oddsAvailable=true&leagueID=MLS&limit=10This returns all available markets — lines, totals, head to head and props — for upcoming MLS events.
To narrow to a specific market, use the oddID parameter, with PLAYER_ID standing for every player:
https://api.sockodds.com/v2/events?apiKey=YOUR_API_KEY&oddsAvailable=true&leagueID=MLS&oddID=points-PLAYER_ID-game-ou-over&includeOpposingOdds=trueOddIDs follow the format {statID}-{statEntityID}-{periodID}-{betTypeID}-{sideID}, where the entity is a player for props and home, away or all for team and game markets.
Tips to keep responses fast:
- Add
bookmakerID=mintbet,betfocusto limit to the bookmakers you care about - Use
includeOpposingOdds=trueso you only need to specify one side of a market - Keep your
oddIDlist tight — only request markets you're actively using
What a MLS response looks like
Every event returns an odds object keyed by oddID. Here's a real market from the feed with the bookmaker list cut to two books:
{
"eventID": "mls_2026-08-15_atlanta_united_vs_new_york_red_bulls",
"leagueID": "MLS",
"odds": {
"points-all-game-eo-odd": {
"oddID": "points-all-game-eo-odd",
"opposingOddID": "points-all-game-eo-even",
"marketName": "Total Goals Odd/Even",
"statID": "points",
"statEntityID": "all",
"periodID": "game",
"betTypeID": "eo",
"sideID": "odd",
"fairOdds": null,
"bookOdds": "-110",
"byBookmaker": {
"tab": {
"odds": "-111",
"available": true
},
"neds": {
"odds": "-110",
"available": true
}
}
}
}
}Two things worth noting. Odds values are strings, not numbers, so -108 arrives as "-108" — that keeps the leading + intact on underdog prices — and every book also carries decimal, because Australian books quote decimal. bookOdds is the consensus with the vig left in; fairOdds is the de-vigged price on Base and above, null where it cannot be computed.
MLS Odds API Technical Specifications
API Architecture
- REST API — Simple HTTP endpoints with JSON responses, identical to the SportsGameOdds v2 paths
- Polling, not push — the feed refreshes every ~2 minutes;
/v2/stream/eventsis reserved and answers 501 rather than pretending - Rate limits — per-key, per-minute meters that bind under concurrency; plans sized to your usage
- Authentication — secure API key access via the
x-api-keyheader orapiKeyquery parameter
Data Update Speed
- Odds updates — every ~2 minutes across every bookmaker lane
- Event status —
statusflags andinfo.staletell you exactly how current a price is
Developer Resources
- Interactive documentation — live examples, copy-paste snippets and an AI (vibe coding) context
- SDKs & libraries — the SportsGameOdds SDKs for TypeScript, Python, Ruby, Go and Java work unchanged with the base URL pointed here
- Postman collection — pre-built requests ready to run
- Support — email support on every plan, priority on paid plans
MLS betting market coverage in the SockOdds API, by category
| Market category | Example markets | Markets | Availability | Typical bookmakers |
|---|---|---|---|---|
| Full game lines | Points / score O/U, Points / score line, Points / score 1X2, Points / score | 19 oddIDs | Pre-match | BetFocus, MintBet, Dabble, Picklebet, BetRight, betr (sportsbook) |
| Period markets | Points / score O/U, Points / score 1X2, Points / score line, Points / score, Both teams to score yes/no, First to score yes/no, Win to nil yes/no | 81 oddIDs | Pre-match | Neds, BetRight, PointsBet, BetFocus, MintBet, Unibet |
| Score & margin specials | First to score, Half-time / full-time, Correct score, Winning margin, Last to score yes/no | 118 oddIDs | Pre-match | BetFocus, MintBet, Sportsbet, Neds, SwiftBet, Ladbrokes |
| Team & game specials | Points / score, Wins either half yes/no, Wins both halves yes/no, Both teams to score yes/no, Win to nil yes/no, Goal in both halves yes/no, Team scores in both halves yes/no | 51 oddIDs | Pre-match | TAB, BetFocus, MintBet, BetRight, SwiftBet, BetDeluxe |
| Cards, corners & shots | Corners O/U, Corners 1X2, Shots on goal O/U, Corners, Cards O/U, Corners line, Cards 1X2 | 38 oddIDs | Pre-match | BetFocus, MintBet, Unibet, TABtouch, Neds, BetRight |
| Player props | Points / score O/U, First to score yes/no, Points / score yes/no, Last to score yes/no, Goals + assists yes/no, Shots on goal O/U, Assists yes/no | 10 oddIDs | Pre-match | MintBet, BetFocus, Sportsbet, TAB, Neds, PointsBet |
See every MLS market with its exact oddID in the markets browser.
Use Cases
- Arbitrage & +EV tools — compare MLS odds across every Australian bookmaker to uncover arbitrage opportunities and positive expected value angles.
- Odds comparison platforms — display MLS odds from every book side by side for comprehensive line shopping.
- Pricing models & trading — use MLS market data as inputs for proprietary pricing algorithms and betting strategies.
- Sports analytics & research — examine MLS line movements and betting-market patterns, and build predictive models on retained events.
- Betting automation — build systems that monitor MLS lines across bookmakers and trigger actions when your target odds appear.
- Sportsbook & fantasy apps — power your MLS product with reliable odds, status and bet-slip deeplinks.
MLS Odds API Documentation
Our interactive documentation covers everything you need to integrate MLS odds into your project:
- Full endpoint reference with parameters and response schemas
- Live request and response examples
- Code snippets in Python, JavaScript, Ruby, Go and Java
- Authentication setup and API key management
- Rate limiting and the
noticefield - Error handling and troubleshooting
For more on querying /v2/events with MLS-specific examples, see the API documentation.
Frequently asked questions
What MLS betting markets does the API cover?
317 distinct markets right now: Points / score, First to score, Half-time / full-time, Wins either half, Wins both halves, Both teams to score, Correct score, Win to nil and more — pre-match, across 25 bookmakers.
Does the API cover props, status and results in one feed?
Yes, from the same request. A single /v2/events call returns the game lines, the props, the event status and the results the source has, so there is no separate results API to reconcile. Each market carries scoringSupported and the event carries status.finalized.
How often is MLS odds data updated?
Every ~2 minutes across every bookmaker lane. Each bookmaker entry carries lastUpdatedAt.
Can I get historical MLS odds data?
Finished events are retained, so your archive starts when you start pulling. Opening and closing lines are not snapshotted yet.
Is there a free trial?
Yes — a free Lite key covers AFL and NRL; Base unlocks every league including MLS. Get a key →
Which bookmakers are included?
25 bookmakers price MLS, 21 of them Australian: MintBet, BetFocus, Neds, BetRight, Sportsbet, SwiftBet, Ladbrokes, TAB and more.
Are live MLS odds available?
Event status is live; prices are pre-match first and refresh every ~2 minutes.
How are markets identified in the API?
Every market uses a structured oddID in the format {statID}-{statEntityID}-{periodID}-{betTypeID}-{sideID} — for example points-PLAYER_ID-game-ou-over. The same pattern lets you construct, filter and parse markets programmatically.
Can I compare bookmaker odds?
Yes — every market returns prices from every supporting bookmaker under one oddID, so lining up the best available price across MintBet, BetFocus, Neds, BetRight and the rest is straightforward.
Start building today
Free plan available. Set up in 5 minutes. Scale when you're ready.