Unibet APIunibet.fr ↗
Access live and upcoming sports betting data from Unibet France: events, competitions, full market odds, boosted offers, and odds format conversion across all sports.
What is the Unibet API?
The Unibet France API exposes 9 endpoints covering sports listings, competitions, live and upcoming events, full market odds, and boosted offers from unibet.fr. Use get_event_odds to retrieve every available bet offer and market for a specific event, or get_live_events to pull all in-play fixtures across all sports at once. Response fields include numeric event IDs, competition paths, outcome odds in Kambi integer format, and pre-pack bet builder selections.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/c238b958-159d-4a14-b159-2df33664869d/get_sports' \ -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 unibet-fr-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.
"""Walkthrough: Unibet France Sportsbook — browse sports, events, and odds."""
from parse_apis.unibet_france_sportsbook_api import Unibet, TargetFormat, EventNotFound
client = Unibet()
# List available sports and their event counts.
for sport in client.sports.list(limit=5):
print(sport.name, sport.term_key, sport.event_count)
# Browse football events via the constructible Sport accessor.
football = client.sport(term_key="football")
event = football.events.list(limit=1).first()
if event:
print(event.name, event.start, event.state)
# Drill into full odds for this event.
try:
odds_detail = event.odds()
for offer in odds_detail.bet_offers[:3]:
print(offer.criterion.english_label, offer.bet_offer_type.english_name)
for outcome in offer.outcomes[:2]:
print(" ", outcome.label, outcome.odds)
except EventNotFound as exc:
print(f"Event gone: {exc}")
# Search events by keyword.
for match in client.events.search(query="Paris", limit=3):
print(match.name, match.sport, match.group)
# List competitions for a sport, then get events for one.
comp = football.competitions.list(limit=1).first()
if comp:
print(comp.name, comp.path, comp.event_count)
for ce in comp.events.list(limit=2):
print(ce.name, ce.start)
# Convert Kambi odds integer to readable formats.
converted = client.oddsformats.convert(odds="2500", target_format=TargetFormat.AMERICAN)
print(converted.decimal, converted.american, converted.fractional)
print("exercised: sports.list / events.search / event.odds / competitions.list / competition.events.list / oddsformats.convert")
Retrieve the full catalogue of sports available on Unibet France. Each sport carries its term_key (usable as a sport_slug in other endpoints), current event count, and bet-offer count. The list is unordered and returned in a single page.
No input parameters required.
{
"type": "object",
"fields": {
"sports": "array of sport objects with id, name, english_name, term_key, event_count, bo_count"
},
"sample": {
"data": {
"sports": [
{
"id": 1000093190,
"name": "Football",
"bo_count": 64419,
"term_key": "football",
"event_count": 1530,
"english_name": "Football"
},
{
"id": 1000093193,
"name": "Tennis",
"bo_count": 1995,
"term_key": "tennis",
"event_count": 341,
"english_name": "Tennis"
}
]
},
"status": "success"
}
}About the Unibet API
Sports, Competitions, and Events
Start with get_sports to retrieve the full catalog of available sports. Each sport object includes an id, name, english_name, term_key, event_count, and bo_count. The term_key field (e.g. football, tennis, basketball) feeds directly into get_sport_events and get_competitions. get_competitions returns leagues and tournaments with id, name, english_name, path, and event_count; the path field (e.g. football/france/ligue_1) is the required input for get_competition_events, which narrows results to a single league or tournament.
Live Events and Full Market Odds
get_live_events returns all currently in-play fixtures across every sport simultaneously — no sport filter is needed. Each event object includes id, name, start, sport, group, path, state, and main_odds. To get every available market for a single fixture, call get_event_odds with the numeric event_id. The response contains an events array with metadata, a betOffers array detailing every market type with its criterion, outcomes, and odds, plus a prePacks array for bet builder selections.
Search and Boosted Odds
search_events accepts a query string and matches against event names and competition group names across all sports — useful for finding fixtures by team or tournament name (e.g. Paris, Roland Garros). get_boosted_odds returns all currently active odds boosts as an array of boosted event objects; when no boosts are live, the endpoint returns an empty array rather than an error.
Odds Format Conversion
get_odds_format is a local conversion utility. It accepts a Kambi odds integer (where the value divided by 1000 equals decimal odds — e.g. 3850 yields 3.85) and returns decimal, american, and fractional representations. Both american and fractional are always included in the response regardless of whether target_format is specified. This is useful when normalizing odds from betOffers or main_odds fields into a format suited to your application.
The Unibet API is a managed, monitored endpoint for unibet.fr — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when unibet.fr 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 unibet.fr 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 all in-play fixtures and their live odds using
get_live_eventsfor a real-time betting dashboard. - Track odds movement for a specific Ligue 1 match by repeatedly calling
get_event_oddswith the sameevent_id. - Enumerate all competitions in a sport via
get_competitionsto build a hierarchical league browser. - Search for fixtures by team name using
search_eventsto quickly locate events without knowing the competition path. - Convert Kambi odds integers from
main_oddsorbetOffersto American or fractional format usingget_odds_format. - Poll
get_boosted_oddson a schedule to alert users when enhanced odds promotions become active. - Compare market coverage across events in a specific league by combining
get_competition_eventswithget_event_oddscalls.
| 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 Unibet France have an official developer API?+
What does `get_event_odds` return beyond the primary market?+
get_event_odds returns a betOffers array containing every available market for the event — not just the main 1X2 or moneyline. Each bet offer includes a criterion describing the market type (e.g. both teams to score, Asian handicap), an outcomes array with each selection, and the associated Kambi odds integers. It also returns a prePacks array for bet builder pre-built combinations, plus the event metadata in the events array.Does the API cover historical odds or past results?+
Are odds from `get_boosted_odds` distinguished from standard odds in `get_event_odds`?+
get_boosted_odds is a dedicated endpoint returning only the current active boosts as a separate event array. Standard get_event_odds calls return the full market odds for a given event without a specific flag distinguishing boosted outcomes from regular ones. If you need to cross-reference, you would match event IDs between the two endpoints.Does the API support filtering events by date range or kick-off time?+
get_sport_events and get_competition_events return all upcoming events for the given sport or competition without a date filter input. Each event object includes a start field you can use to filter client-side. You can fork the API on Parse and revise it to add date-range parameters to those endpoints.