Melbet Odds Scraper
Pricing
from $2.40 / 1,000 results
Melbet Odds Scraper
Scrape MelBet 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. Export clean data for odds comparison, analysis and tracking.
Pricing
from $2.40 / 1,000 results
Rating
0.0
(0)
Developer
MrDoe
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share

What does MelBet Odds Scraper do?
MelBet Odds Scraper collects betting odds from MelBet 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 MelBet Odds Scraper?
- Odds you can use immediately –
odds["1x2"].home,odds.totalGoals.over,odds.btts.yes. No decoding MelBet'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 MelBet 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?


| Field | Description |
|---|---|
matchId | MelBet event ID |
url | Match page URL |
bookmaker | Always MelBet |
sport / country / league | Competition |
leagueId | MelBet league ID |
home / away | Team (or player) names |
homeLogo / awayLogo | Crest image URLs (feed rows) |
kickoff / startTimestamp | Start time (ISO 8601 and Unix) |
status / isLive | scheduled or live |
score | Current score for live matches |
venue / tournamentStage | Where published |
odds | Decoded main markets — see below |
outcomes / markets | Every selection, grouped by market |
totalMarketsAvailable / totalMarkets | How many markets the match page offers |
marketCategories | MelBet's own market groupings with counts (Popular, Total, Goals, ...) |
subGames | Sub-market boards for the match (corners, cards, halves, players) |
subGameMarkets | Their fully decoded odds — only when Deep markets is on |
scrapedAt | ISO 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 MelBet Odds Scraper

- Open the Actor.
- Choose a Feed (pre-match / live / both) and one or more Sports. That is enough to run.
- Optional — for specific competitions, paste League URLs from MelBet (e.g.
.../en/line/football/105759-england-championship). - Optional — for one match with every market, paste Match URLs (e.g.
.../105759-england-championship/748230818-west-ham-united-wolverhampton-wanderers). Turn on Deep markets to also pull corners, cards, goalscorers and players' stats. - Set Max matches and press Start.
- Download the dataset as JSON, CSV, Excel, or XML, or use the API.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mode | String | No | line | line (pre-match), live (in-play), or both. |
sports | Array | No | ["Football"] | Sport names or MelBet sport IDs. ["all"] for every sport. |
leagueUrls | Array | No | – | MelBet league page URLs to target specific competitions. |
matchUrls | Array | No | – | MelBet match page URLs — returns every market for each match. |
maxMatches | Integer | No | 5 | Maximum matches per run. Raise it for a full export (the input form prefills 50). |
includeOutcomes | Boolean | No | true | Keep the flat outcomes list next to the odds object. |
deepMarkets | Boolean | No | false | For match URLs, also fetch the corners / cards / goalscorers / players' stats sub-boards. |
useCache | Boolean | No | false | Reuse match records from an earlier run. |
proxyConfiguration | Object | No | Residential, NG | MelBet is geo-restricted. Use Residential proxy in a country where it operates (Senegal, Nigeria, DR Congo, Cameroon...). Not the UK, US, or most of the EU. |
Output Data
{"matchId": 748230818,"url": "https://melbet.com/en/line/football/105759-england-championship/748230818-west-ham-united-wolverhampton-wanderers","bookmaker": "MelBet","sport": "Football","country": "England","league": "Championship","home": "West Ham United","away": "Wolverhampton Wanderers","kickoff": "2026-09-01T18:45:00.000Z","status": "scheduled","venue": "London Stadium (London)","totalMarkets": 1185,"marketCategories": [{ "name": "Popular", "count": 298 },{ "name": "Goals", "count": 221 }],"odds": {"1x2": { "home": 2.07, "draw": 3.58, "away": 3.28 },"totalGoals": { "line": 2.5, "over": 1.61, "under": 2.27 },"btts": { "yes": 1.5, "no": 2.415 }},"markets": [{"group": "Match Result (1X2)","groupId": 1,"outcomes": [{ "type": 1, "selection": "home", "line": null, "odds": 2.07 },{ "type": 2, "selection": "draw", "line": null, "odds": 3.58 },{ "type": 3, "selection": "away", "line": null, "odds": 3.28 }]}],"subGames": [{ "id": 748230819, "name": "1st half", "marketCount": 253 },{ "id": 748230824, "name": "Corners", "marketCount": 147 }],"scrapedAt": "2026-09-01T17: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 MelBet "line/football/<id>-<league>" URL
One match, every market
matchUrls: a MelBet match URL,deepMarkets: true
Tips for Best Results
- Keep the proxy on a MelBet country. If a run returns nothing, try a different country (Senegal and Nigeria are reliable).
- For line-movement tracking, schedule the Actor every few minutes and diff the
oddsbetween runs. deepMarketsmultiplies the request count — use it with a shortmatchUrlslist, not with a whole sport.- Odds are decimal; convert to fractional or American downstream if you need to.
Known Limitations
- MelBet 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.
- Automatic league discovery and the "all sports" catalogue depend on the regional mirror the proxy country routes to; when a mirror does not expose them, use explicit League URLs or the sport list instead.
- Odds move constantly; a row is a snapshot at collection time.
- Exotic markets keep their numeric MelBet 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 MelBet 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 MelBet 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.
Legal / Responsible Use
You are responsible for how you use this Actor and the data it collects, including compliance with MelBet'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 MelBet 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
