Stake APIstake.com ↗
Access live, upcoming, and detailed betting odds from Stake.com across soccer, basketball, tennis, esports, and more via 3 structured endpoints.
What is the Stake API?
The Stake.com API exposes sports betting odds across 3 endpoints, covering popular fixtures by sport, live and upcoming lines organized by tournament, and full market breakdowns for individual matches. The get_fixture_odds endpoint alone returns odds across market groups including 1x2, over/under, handicap, corners, cards, and player props, alongside fixture status, start time, and competitor details.
curl -X GET 'https://api.parse.bot/scraper/463ff1be-bbf1-46bf-af6a-f73efe0771c8/get_sport_odds?group=winner&limit=10&sport=soccer' \ -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 stake-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.
from parse_apis.stake.com_sports_odds_api import Stake, Sport, MarketGroup, FixtureType, FixtureMarketGroup
stake = Stake()
# Get popular soccer fixtures with winner odds
sport_odds = stake.sportoddses.get(sport=Sport.SOCCER, group=MarketGroup.WINNER)
print(sport_odds.sport, sport_odds.total_fixtures)
for fixture in sport_odds.fixtures:
print(fixture.name, fixture.slug, fixture.status)
print(fixture.tournament.tournament_name)
for market in fixture.markets:
for outcome in market.outcomes:
print(outcome.name, outcome.odds, outcome.active)
# Get live fixtures
live = stake.liveoddses.get(sport=Sport.BASKETBALL, type=FixtureType.LIVE, group=MarketGroup.WINNER)
print(live.sport, live.type, live.total_fixtures)
for fixture in live.fixtures:
print(fixture.name, fixture.start_time)
if fixture.score:
print(fixture.score.home, fixture.score.away, fixture.score.match_status)
# Drill into a specific fixture for detailed market odds
detail = stake.fixture("46081991-mexico-south-africa").details(group=FixtureMarketGroup.MAIN)
print(detail.name, detail.total_markets, detail.status)
for grp in detail.available_groups:
print(grp.name, grp.translation)
for market in detail.markets:
print(market.market_name, market.template_name)
for outcome in market.outcomes:
print(outcome.name, outcome.odds, outcome.active)
Get popular fixtures with odds for a specific sport. Returns the top tournament's fixtures with winner market odds, plus a list of all tournaments and categories for the sport. Each fixture includes competitors, start time, status, and market outcomes with decimal odds. The limit parameter caps the number of fixtures returned.
| Param | Type | Description |
|---|---|---|
| group | string | Market group to include. |
| limit | integer | Maximum number of fixtures to return. |
| sport | string | Sport slug. |
{
"type": "object",
"fields": {
"sport": "sport display name",
"fixtures": "array of fixture objects with odds, competitors, tournament info, and scores",
"sport_id": "unique sport identifier",
"categories": "array of categories with nested tournaments",
"total_fixtures": "number of fixtures returned",
"top_tournaments": "array of top tournament summaries with fixture counts"
},
"sample": {
"data": {
"sport": "Soccer",
"fixtures": [
{
"name": "Mexico - South Africa",
"slug": "46081991-mexico-south-africa",
"score": {
"match_status": "Not started"
},
"status": "active",
"markets": [
{
"group": "winner",
"status": "active",
"outcomes": [
{
"name": "Mexico",
"odds": 1.42,
"active": true
}
],
"market_id": "44439334-fd09-40b5-8b06-a6817a304894",
"specifiers": null,
"market_name": "1x2",
"template_name": "1x2"
}
],
"fixture_id": "94e3515e-649f-4542-a752-b3b8445388e5",
"start_time": "Thu, 11 Jun 2026 19:00:00 GMT",
"tournament": {
"category": "International",
"category_slug": "international",
"tournament_id": "24556add-af26-4844-b338-07fc47991731",
"tournament_name": "World Cup",
"tournament_slug": "world-cup"
},
"competitors": [
{
"name": "Mexico",
"abbreviation": "MEX",
"country_code": "MX"
}
],
"market_count": 112
}
],
"sport_id": "5b4b60b9-ed95-41e7-97e3-f33aa172cf12",
"categories": [
{
"id": "737379d9-a808-42fd-8303-50864b021649",
"name": "International",
"slug": "international",
"tournaments": [
{
"id": "24556add-af26-4844-b338-07fc47991731",
"name": "World Cup",
"slug": "world-cup",
"fixture_count": 72
}
],
"fixture_count": 74
}
],
"total_fixtures": 10,
"top_tournaments": [
{
"id": "24556add-af26-4844-b338-07fc47991731",
"name": "World Cup",
"slug": "world-cup",
"category": "International",
"fixture_count": 72
}
]
},
"status": "success"
}
}About the Stake API
Endpoint Overview
The API provides three endpoints. get_sport_odds returns top-tournament fixtures for a given sport slug — soccer, basketball, tennis, mma, counter-strike, dota-2, and others — along with a nested category and tournament hierarchy and a top_tournaments array with per-tournament fixture counts. The optional group parameter filters returned odds to winner, totals, or handicap markets. get_live_odds expands on this with a type parameter that switches between live, popular, and upcoming fixtures, and supports fixture_limit and tournament_limit to control response size. Live fixtures include real-time scores in the response.
Fixture-Level Detail
get_fixture_odds requires a fixture slug in the format <fixture-id>-<team-a>-<team-b>, which comes from the fixture listings returned by the other two endpoints. The response contains a markets array with all available market groups and their outcomes with current odds, plus teams with home/away qualifiers, status (active, live, or ended), start_time, tournament nesting up to sport level, and a total_markets count. The optional group parameter targets specific market categories — goals, corners, cards, half, player, combos, specials, and others — so callers can narrow the payload to what they need.
Coverage and Data Shape
Sport coverage spans traditional sports (soccer, cricket, baseball, ice hockey, horse racing) and esports (Counter-Strike, Dota 2). Every fixture object across all three endpoints includes competitors, tournament metadata, and odds. The categories field in get_sport_odds provides a full hierarchical map of all available categories and nested tournaments for the sport, useful for building sport-navigation interfaces or iterating across all available competitions.
The Stake API is a managed, monitored endpoint for stake.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when stake.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 stake.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?+
- Monitor live in-play odds movements across soccer and basketball fixtures using
get_live_oddswith type=live - Build an odds comparison feed by pulling winner market odds for multiple sports via
get_sport_odds - Track line movements for esports markets (Counter-Strike, Dota 2) before and during matches
- Aggregate tournament-level fixture counts from
top_tournamentsto identify high-volume betting events - Pull full handicap and over/under markets for a specific match using
get_fixture_oddswith group=handicap or group=totals - Enumerate all categories and nested tournaments for a sport to build a structured betting navigation tree
- Detect fixture status changes (active → live → ended) by polling
get_fixture_oddsfor a known fixture slug
| 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 Stake.com have an official developer API?+
What does `get_live_odds` return differently from `get_sport_odds`?+
get_live_odds accepts a type parameter (live, popular, upcoming) and returns fixtures grouped by tournament with real-time scores for live matches. It also supports fixture_limit and tournament_limit to cap response size per tournament. get_sport_odds focuses on the top tournament for a sport and additionally returns a full categories hierarchy with nested tournaments, which get_live_odds does not include.Does the API return historical odds or settled match results?+
get_fixture_odds returns a status field that can be ended, but the API is oriented toward current odds rather than historical lines or settlement outcomes. You can fork this API on Parse and revise it to add an endpoint targeting historical fixture data.How do I get the `fixture` slug needed for `get_fixture_odds`?+
fixtures array of both get_sport_odds and get_live_odds. It follows the pattern <fixture-id>-<team-a>-<team-b>. Pass that value directly as the fixture parameter to get_fixture_odds.Does the API cover player prop markets?+
get_fixture_odds, setting group=player returns player-specific outcomes where the source provides them. Coverage of player props varies by sport and fixture; not all matches expose this market group. If a sport or market type you need is missing, you can fork this API on Parse and revise it to target additional market groups.