Breaking-Bet APIbreaking-bet.com ↗
Access real-time surebet opportunities across 60+ bookmakers and 15+ sports. Filter by profit %, sport, and market type via 3 structured endpoints.
What is the Breaking-Bet API?
The Breaking-Bet API exposes real-time sports arbitrage (surebet) data across 60+ bookmakers and 15+ sports through 3 endpoints. get_surebets returns current arb opportunities with profit percentage, ROI, event details, and per-bookmaker odds. Supporting endpoints get_bookmakers and get_stats let you resolve IDs into human-readable names and query live counts of available arbs, middles, and valuebets by market type and profit threshold.
curl -X GET 'https://api.parse.bot/scraper/3f3570e2-d2bd-4749-97da-5e0ecab8ac39/get_surebets?sort=value&market=prematch&sport_ids=1%2C6&max_profit=50&min_profit=5' \ -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 breaking-bet-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.breaking_bet_arbitrage_api import BreakingBet, Surebet, Reference, Snapshot, SurebetSort, Market
client = BreakingBet()
# Get reference data to resolve IDs
ref = client.references.get()
print(ref.bookmakers["39"], ref.sports["1"])
# Get current opportunity counts
snap = client.snapshots.get()
print(snap.counters["arbs.prematch"], snap.counters["arbs.live"])
# List high-profit prematch surebets
for surebet in client.surebets.list(market=Market.PREMATCH, sort=SurebetSort.VALUE, min_profit=5.0):
print(surebet.profit_percent, surebet.roi, surebet.sport_id, surebet.is_live)
for odd in surebet.odds:
print(odd.bookmaker_id, odd.value, odd.sport, odd.initiator)
Get current arbitrage (surebet) opportunities sorted by profit percentage or other criteria. Each arb includes profit percentage, ROI, event details, and odds from different bookmakers. In guest/free mode team names and leagues are masked but profit data and bookmaker information are fully available. Filtering by sport, profit range, and market type is supported. Returns a single page of results with total_filtered indicating the full count of matching arbs server-side.
| Param | Type | Description |
|---|---|---|
| sort | string | Sort order for results. |
| market | string | Market type to query. |
| sport_ids | string | Comma-separated list of sport IDs to filter by (e.g. 1,6,5). Use get_bookmakers to see all sport IDs. When omitted, all sports are included. |
| max_profit | number | Maximum profit percentage filter. |
| min_profit | number | Minimum profit percentage filter (e.g. 5 for 5% minimum). |
{
"type": "object",
"fields": {
"masked": "boolean indicating if team names are masked in guest mode",
"surebets": "array of arbitrage opportunity objects with profit_percent, roi, event details, and odds from bookmakers",
"timestamp": "integer Unix timestamp of the response",
"total_filtered": "integer total count of matching arbs"
},
"sample": {
"data": {
"masked": true,
"surebets": [
{
"id": "7960816661288792393:876:17,5;22259:12.5::7960816029131036372;22260:12.5::7960816029131036372;",
"roi": 231645.69,
"odds": [
{
"prev": 0,
"index": "",
"sport": "Tennis",
"start": "2026-06-11 08:30",
"value": 0,
"team_1": "xxxxx xxxxxxxxxx",
"team_2": "xxxxxx xxxxxxx xxxx",
"updated": "2026-06-10 21:52:08",
"initiator": false,
"original_id": "196038289",
"bookmaker_id": 39,
"sub_event_id": "7960816029131036372"
}
],
"start": "2026-06-11 08:00",
"league": "xxxxxxxx",
"team_1": "xxxxxxxxxx, xxxxx",
"team_2": "xxxxxxx xxxx, xxxxxx",
"created": "2026-06-10 22:24:48",
"is_live": false,
"event_id": "7960816661288792393",
"sport_id": 6,
"profit_percent": 370.21
}
],
"timestamp": 1781130365,
"total_filtered": 74945
},
"status": "success"
}
}About the Breaking-Bet API
Arbitrage Opportunities
get_surebets is the core endpoint. It returns an array of surebet objects, each containing profit_percent, roi, event details, and odds from multiple bookmakers. Results can be filtered by min_profit and max_profit to target a specific return range, by sport_ids (comma-separated) to restrict to particular sports, and by market to separate prematch from live opportunities. A sort parameter controls result ordering. The masked boolean in the response indicates whether team names and league info are obscured — in guest/free mode, event identifiers are hidden but profit data, bookmaker IDs, and odds values remain visible.
Reference Data
get_bookmakers returns three lookup maps: bookmaker ID to name, sport ID to name, and odds type ID to an object containing title_short, title_full, and a lay flag. Use this endpoint to translate the numeric IDs that appear in surebet responses into readable labels, and to discover valid sport_ids values for filtering. This endpoint takes no inputs and is suitable for caching on the client side.
Statistics
get_stats returns a counters object whose keys follow the pattern type.market or type.market_threshold — for example, arbs.prematch, arbs.prematch_5 (arbs with 5%+ profit), and middles.live_10 (middles with 10%+ profit in live markets). These counts cover arbs, middles, and valuebets. Use this endpoint to monitor how many opportunities are available across the platform without fetching the full surebet list.
The Breaking-Bet API is a managed, monitored endpoint for breaking-bet.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when breaking-bet.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 breaking-bet.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 surebet scanner that alerts when
profit_percentexceeds a user-defined threshold across selected bookmakers. - Filter prematch vs. live arbitrage markets separately using the
marketparameter inget_surebets. - Track the volume of available opportunities over time using
get_statscounter keys likearbs.prematch_5. - Display a live dashboard resolving bookmaker and sport IDs to names via
get_bookmakers. - Restrict arb feeds to specific sports (e.g. football, tennis) using
sport_idsfiltering inget_surebets. - Monitor middle betting opportunities by reading
middles.*keys from theget_statscounters object. - Evaluate valuebet counts across markets using the
valuebets.*counter keys fromget_stats.
| 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 Breaking-Bet have an official developer API?+
What data is visible when the `masked` field is true in `get_surebets`?+
masked is true (guest/free mode), team names and league identifiers are hidden. Profit percentage, ROI, bookmaker IDs, and odds values are still returned for every surebet object in the response.Does the API expose historical surebet data or past arbitrage results?+
get_surebets reflects the live state at request time, and get_stats gives current counts. Historical arb records are not available through these endpoints. You can fork the API on Parse and revise it to add a historical data endpoint if that capability becomes accessible.Can I retrieve individual bookmaker odds lines outside of an arb context?+
get_surebets, not as standalone odds feeds per bookmaker or event. You can fork the API on Parse and revise it to add a standalone odds endpoint.How do I know which sport IDs to pass to `get_surebets`?+
get_bookmakers first. It returns a sports object mapping sport ID strings to human-readable names. Pass one or more of those IDs as a comma-separated string to the sport_ids parameter in get_surebets.