1xbet Odds Scraper avatar

1xbet Odds Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
1xbet Odds Scraper

1xbet Odds Scraper

Scrape 1xBet betting odds, sports odds, live and pre-match odds for football, tennis, basketball and more. Extract 1X2, over/under, BTTS, double chance, draw no bet, Asian handicaps and 1,000+ betting markets for odds analysis and tracking.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

MrDoe

MrDoe

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

1Xbet Odds Scraper hero

What does 1xBet Odds Scraper do?

1xBet Odds Scraper collects betting odds from 1xBet and returns them as clean, ready-to-use data — one row per match. Pick a sport (or paste a league or match URL), press Start, and download a dataset with the two teams, league, kick-off time, live score, and decimal odds already decoded into named markets: match result (1X2), double chance, over/under, both teams to score, draw no bet, and Asian/European handicaps. For an individual match URL it pulls every market on the page — often 1,000+ selections including corners, cards, goalscorers, both halves and players' stats.

Use it for odds comparison, line-movement tracking, value and arbitrage screening, model back-testing, and trading dashboards.

Why use 1xBet Odds Scraper?

  • Odds you can use immediatelyodds["1x2"].home, odds.totalGoals.over, odds.btts.yes. No decoding 1xBet's numeric market codes yourself.
  • Pre-match and live – switch between the pre-match line and the in-play feed, or take both. Live rows carry the current score.
  • Whole leagues in one run – point it at a competition and it walks every fixture.
  • Every market for a single match – paste a match URL to get the full board: 1X2, totals, handicaps, correct score, corners, cards, goalscorers, first/second half, players' stats.
  • Nothing lost – alongside the named odds, every row keeps the complete raw outcome list, so exotic markets are still in the data.
  • Clean, normalised output – odds as numbers, ISO kick-off times, deduplicated by match.

What makes this different?

Most 1xBet data floating around is the raw feed — arrays of numeric type/coefficient codes you have to decode against a dictionary. This Actor does that decoding: the common markets come out as named fields with home / draw / away / over / under / yes / no selections and the main line already picked. It also handles the geo-redirect and bot protection, and — uniquely — expands a single match URL into every sub-market the site offers.

What data can you extract?

1Xbet Odds Scraper dataset output

1Xbet Odds Scraper data fields

FieldDescription
matchId1xBet event ID
urlMatch page URL
bookmakerAlways 1xBet
sport / country / leagueCompetition
leagueId1xBet league ID
home / awayTeam (or player) names
homeLogo / awayLogoCrest image URLs (feed rows)
kickoff / startTimestampStart time (ISO 8601 and Unix)
status / isLivescheduled or live
scoreCurrent score for live matches
venue / tournamentStageWhere published
oddsDecoded main markets — see below
outcomes / marketsEvery selection, grouped by market
totalMarketsAvailable / totalMarketsHow many markets the match page offers
marketCategories1xBet's own market groupings with counts (Popular, Total, Goals, ...)
subGamesSub-market boards for the match (corners, cards, halves, players)
subGameMarketsTheir fully decoded odds — only when Deep markets is on
scrapedAtISO timestamp of collection

The odds object:

{
"1x2": { "home": 5.63, "draw": 4.925, "away": 1.575 },
"doubleChance": { "homeOrDraw": 2.56, "homeOrAway": 1.215, "drawOrAway": 1.179 },
"btts": { "yes": 1.54, "no": 2.349 },
"totalGoals": { "line": 3, "over": 1.7, "under": 2.05 },
"totalGoalsAlt": { "line": 3.25, "over": 2.035, "under": 1.909 },
"drawNoBet": { "home": 4.15, "away": 1.183 },
"asianHandicap": { "line": 0.75, "home": 2.248, "away": 1.053 },
"handicap": { "line": 1, "home": 1.87, "away": 1.9 }
}

How to use 1xBet Odds Scraper

How 1Xbet Odds Scraper works

  1. Open the Actor.
  2. Choose a Feed (pre-match / live / both) and one or more Sports. That is enough to run.
  3. Optional — for specific competitions, paste League URLs from 1xBet (e.g. .../en/line/football/88637-england-premier-league).
  4. Optional — for one match with every market, paste Match URLs (e.g. .../88637-england-premier-league/746666829-ipswich-town-liverpool). Turn on Deep markets to also pull corners, cards, goalscorers and players' stats.
  5. Set Max matches and press Start.
  6. Download the dataset as JSON, CSV, Excel, or XML, or use the API.

Input Parameters

ParameterTypeRequiredDefaultDescription
modeStringNolineline (pre-match), live (in-play), or both.
sportsArrayNo["Football"]Sport names or 1xBet sport IDs. ["all"] for every sport.
leagueUrlsArrayNo1xBet league page URLs to target specific competitions.
matchUrlsArrayNo1xBet match page URLs — returns every market for each match.
maxMatchesIntegerNo5Maximum matches per run. Raise it for a full export (the input form prefills 50).
includeOutcomesBooleanNotrueKeep the flat outcomes list next to the odds object.
deepMarketsBooleanNofalseFor match URLs, also fetch the corners / cards / goalscorers / players' stats sub-boards.
useCacheBooleanNofalseReuse match records from an earlier run.
proxyConfigurationObjectNoResidential, NG1xBet is geo-restricted. Use Residential proxy in a country where it operates (Nigeria, Kenya, Cameroon, Ghana...). Not the UK, US, or most of the EU.

Output Data

{
"matchId": 746666829,
"url": "https://1xbet.com/en/line/football/88637-england-premier-league/746666829-ipswich-town-liverpool",
"bookmaker": "1xBet",
"sport": "Football",
"country": "England",
"league": "Premier League",
"home": "Ipswich Town",
"away": "Liverpool",
"kickoff": "2026-09-04T19:00:00.000Z",
"status": "scheduled",
"venue": "Portman Road (Ipswich)",
"totalMarkets": 1263,
"marketCategories": [
{ "name": "Popular", "count": 312 },
{ "name": "Goals", "count": 235 }
],
"odds": {
"1x2": { "home": 5.63, "draw": 4.925, "away": 1.575 },
"totalGoals": { "line": 3, "over": 1.7, "under": 2.05 },
"btts": { "yes": 1.54, "no": 2.349 }
},
"markets": [
{
"group": "Match Result (1X2)",
"groupId": 1,
"outcomes": [
{ "type": 1, "selection": "home", "line": null, "odds": 5.63 },
{ "type": 2, "selection": "draw", "line": null, "odds": 4.925 },
{ "type": 3, "selection": "away", "line": null, "odds": 1.575 }
]
}
],
"subGames": [
{ "id": 746666830, "name": "1st half", "marketCount": 264 },
{ "id": 746696979, "name": "Corners", "marketCount": 159 }
],
"scrapedAt": "2026-09-01T11:20:00.000Z"
}

Usage Examples

Today's football lines

  • mode: line, sports: ["Football"], maxMatches: 200

Live in-play odds for several sports

  • mode: live, sports: ["Football", "Tennis", "Basketball"]

A whole competition

  • leagueUrls: a 1xBet "line/football/<id>-<league>" URL

One match, every market

  • matchUrls: a 1xBet match URL, deepMarkets: true

Tips for Best Results

  • Keep the proxy on a 1xBet country. If a run returns nothing, try a different country (Nigeria and Kenya are reliable).
  • For line-movement tracking, schedule the Actor every few minutes and diff the odds between runs.
  • deepMarkets multiplies the request count — use it with a short matchUrls list, not with a whole sport.
  • Odds are decimal; convert to fractional or American downstream if you need to.

Known Limitations

  • 1xBet is geo-restricted and behind Cloudflare — a residential proxy in an eligible country is required. It is not accessible from the UK, the US, or much of the EU.
  • The main match feed returns roughly the top 40 fixtures per sport or league; use league URLs to go wider.
  • Odds move constantly; a row is a snapshot at collection time.
  • Exotic markets keep their numeric 1xBet group ID ("Market 8427") rather than a name, but every outcome and its odds are still included.
  • Live markets can be suspended around goals and other events, in which case some odds are briefly missing.

Integrations

Connect results to Google Sheets, Make, Zapier, Slack, or your own systems via the Apify API and webhooks. Schedule runs to keep an odds history.

Export Formats

JSON, CSV, Excel, and XML from the Dataset tab or the Apify API.

Frequently Asked Questions

Which markets are decoded into the odds object? Match result (1X2), double chance, both teams to score, total goals (main and alternative line), draw no bet, Asian handicap, and European handicap. Everything else is in markets / outcomes with its numeric codes.

Can I get corners, cards and goalscorer odds? Yes — paste the match URL and turn on Deep markets. Those boards come back in subGameMarkets.

Does it work for live betting? Yes. Set mode to live (or both). Live rows include the current score.

Why did my run return zero matches? The proxy IP is probably in a country where 1xBet is blocked. Switch the proxy country.

How fresh is the data? Every run reads the live feed. Schedule it for an odds history.

How are duplicates handled? Matches are deduplicated by 1xBet event ID within a run.

Support

Found a problem or need an extra market decoded? Open an issue on the Actor's Issues tab in the Apify Console.

You are responsible for how you use this Actor and the data it collects, including compliance with 1xBet's Terms of Use and the gambling and data-protection laws that apply to you. This Actor collects publicly displayed betting odds for analysis; it does not place bets or access any account. Gambling is age-restricted and regulated, and 1xBet is not licensed in every country — check your local rules before using odds data commercially. If you or someone you know has a gambling problem, seek support from a service such as BeGambleAware.

Preview

1Xbet Odds Scraper input options