EuroMillions Results Scraper
Pricing
from $2.88 / 1,000 item extracteds
EuroMillions Results Scraper
Extract EuroMillions draw history with dates, five winning numbers, two Lucky Stars, jackpots, and source links. Filter by date or process exact result URLs.
Pricing
from $2.88 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
10 days ago
Last modified
Categories
Share
Extract structured EuroMillions results from euro-millions.com for one draw, a date range, or the complete draw history since 2004.
Each dataset row contains the draw date, five main numbers, two Lucky Stars, the advertised jackpot, and a source link. Use scheduled runs to refresh a spreadsheet, dashboard, database, or combination-analysis workflow after a draw.
What does EuroMillions Results Scraper do?
The Actor reads public yearly history and draw-detail pages and turns them into consistent JSON records.
It supports:
- newest-first results within a date range;
- complete historical extraction from the first draw onward;
- one or more explicit result or yearly-history URLs;
- a strict item limit for small tests and integrations;
- structured Dataset exports in JSON, CSV, Excel, XML, and RSS.
The Actor uses lightweight HTTP requests rather than a browser. No login or proxy configuration is required. Cloud runs try Apify's managed datacenter proxy and use a GB residential fallback when that route is unavailable.
Who is this EuroMillions results dataset for?
This Actor is useful for:
- analysts studying historical number and Lucky Star frequencies;
- spreadsheet users refreshing a draw-history workbook;
- journalists maintaining lottery-results tables;
- developers powering dashboards and internal data products;
- data engineers loading draw records into a warehouse;
- operators scheduling a post-draw refresh and comparing new rows.
It reports source data. It does not predict winning numbers, check tickets, or provide gambling advice.
Why use this Actor?
Yearly pages use visual HTML that changes shape across integrations. This Actor normalizes each draw into stable typed fields and keeps source URLs for audit.
Compared with manually copying results, it provides:
- repeatable date filtering;
- machine-readable arrays of winning numbers;
- numeric jackpot values suitable for calculations;
- deduplication by draw date;
- direct exports and Apify API integrations;
- bounded retries for temporary source errors.
What data can I extract?
| Field | Type | Meaning |
|---|---|---|
drawDate | string | Draw date in YYYY-MM-DD format |
drawDay | string | Weekday reported for the draw |
mainNumbers | number[] | Five winning main numbers |
luckyStars | number[] | Two winning Lucky Stars |
jackpotAmount | number or null | Integer jackpot amount in the currency identified by jackpotCurrency |
jackpotCurrency | string or null | EUR or GBP, matching the source display |
jackpotDisplay | string or null | Source-formatted jackpot text |
sourceUrl | string | Public draw detail page |
scrapedAt | string | Extraction timestamp |
jackpotAmount and jackpotDisplay can be null when the source omits a jackpot.
Winning numbers are required for a row to be saved.
How to get EuroMillions results
- Open the Actor in Apify Console.
- Set From date and To date for the period you need.
- Leave Specific result or history URLs empty for automatic yearly discovery.
- Set Maximum draws high enough for the requested range.
- Click Start.
- Open the Dataset when the run finishes.
- Export the rows or connect the Dataset API to your workflow.
For a quick smoke test, use one year and maxItems: 10.
Input parameters
fromDate
Earliest draw date to include in YYYY-MM-DD format.
The default is 2004-02-13, the first EuroMillions draw.
toDate
Latest draw date to include in YYYY-MM-DD format.
When omitted, the Actor uses the current date.
startUrls
Optional list of euro-millions.com URLs. Supported forms are:
https://www.euro-millions.com/results/DD-MM-YYYYhttps://www.euro-millions.com/results-history-YYYY
Date filters apply to explicit URLs too. Other hosts and paths fail closed with a clear input error.
proxyMode
Cloud routing mode. auto tries the lower-cost datacenter route and falls back
to GB residential when needed. residential starts with the measured GB
residential route and is recommended for large complete-history exports.
Local runs use direct HTTP.
maxItems
Maximum number of draws to save, from 1 to 2,000. Results are processed newest first. The default of 2,000 covers the supported complete history at release time.
Example inputs
Latest ten results from 2025:
{"fromDate": "2025-01-01","toDate": "2025-12-31","maxItems": 10}
One exact draw:
{"startUrls": [{ "url": "https://www.euro-millions.com/results/30-12-2025" }],"fromDate": "2025-12-30","toDate": "2025-12-30","maxItems": 1}
Complete history through 2025:
{"fromDate": "2004-02-13","toDate": "2025-12-31","maxItems": 2000,"proxyMode": "residential"}
Output example
A real output row has this shape:
{"drawDate": "2025-12-30","drawDay": "Tuesday","mainNumbers": [11, 26, 29, 34, 44],"luckyStars": [1, 10],"jackpotAmount": 17000000,"jackpotCurrency": "EUR","jackpotDisplay": "€17,000,000","sourceUrl": "https://www.euro-millions.com/results/30-12-2025","scrapedAt": "2026-01-15T12:00:00.000Z"}
The primary output is always the default Apify Dataset.
How much does it cost to extract EuroMillions draw results?
Pay-per-event pricing includes a $0.005 start fee and a tiered charge for each saved draw. The BRONZE per-draw price is $0.0048; higher usage tiers receive progressively lower per-draw prices.
Approximate BRONZE examples:
| Saved draws | Example total |
|---|---|
| 1 | $0.0098 |
| 100 | $0.485 |
| 1,000 | $4.805 |
Only validated records pushed to the Dataset incur the item event. The Apify pricing panel shows the tier applicable to your account.
Schedule a refresh after each draw
EuroMillions draws normally occur during the week, so a scheduled Actor Task can keep a downstream dataset current.
A practical workflow is:
- save the date-range input as an Apify Task;
- schedule it after expected draw publication;
- retrieve the newest Dataset items;
- compare
drawDateagainst your stored records; - append unseen records to a sheet or database.
The Actor itself does not send alerts or persist a cross-run change log. Use Apify webhooks, Make, Zapier, or your application for notifications.
Export to spreadsheets and data pipelines
From the Dataset page, choose CSV or Excel for spreadsheet analysis. Arrays remain available in JSON for code-based workflows.
Typical downstream jobs include:
- number-frequency and pair-frequency tables;
- jackpot trend analysis;
- missing-combination exploration;
- scheduled warehouse ingestion;
- dashboard refreshes;
- source verification by draw date.
Never interpret historical frequencies as a guarantee of future outcomes.
Run with the Apify API
Replace YOUR_TOKEN with an Apify API token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~euromillions-results-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"fromDate":"2025-01-01","toDate":"2025-12-31","maxItems":10}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/euromillions-results-scraper').call({fromDate: '2025-01-01',toDate: '2025-12-31',maxItems: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("automation-lab/euromillions-results-scraper").call(run_input={"fromDate": "2025-01-01","toDate": "2025-12-31","maxItems": 10,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with MCP and AI assistants
Add the Actor to Claude Code through Apify MCP:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/euromillions-results-scraper"
Claude Desktop
Add this server object to your Claude Desktop MCP configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/euromillions-results-scraper"}}}
Cursor
Open Settings → Tools & MCP → Add custom MCP and use the same apify
server URL shown above.
VS Code
Add the same HTTP server URL to your workspace MCP configuration, then enable
the automation-lab/euromillions-results-scraper tool.
Example prompts:
- “Get the ten newest EuroMillions results from 2025.”
- “Extract the 30 December 2025 draw as structured JSON.”
- “Build a EuroMillions history dataset from 2004 through 2025.”
Review generated inputs before running large jobs.
Limits and source behavior
- The Actor supports public pages on
euro-millions.comonly. - Automatic history discovery requests one page per included calendar year.
- The maximum output is 2,000 draws per run.
- Results are returned newest first.
- Date values use calendar dates, not timestamps or local draw times.
- Jackpot currency follows the source display (
EURorGBP); residential geography can affect the displayed currency. - Prize-tier breakdowns, raffle codes, and ticket checking are not extracted.
- A source redesign can require a parser update.
- Cloud runs probe a datacenter proxy once, then use a GB residential fallback if needed; local runs use direct HTTP.
- Temporary non-200 responses are retried twice, then fail the run.
A no-result date range succeeds with an empty Dataset. Malformed dates and unsupported URLs fail rather than returning misleading data.
Responsible use and legality
The Actor accesses publicly visible draw-result pages. Use the output in accordance with applicable law, the source terms, and Apify's policies. Do not overload the source or represent the data as official advice.
Lottery participation can involve financial and age restrictions. This product is a data extraction tool and does not encourage wagering, predict outcomes, or guarantee accuracy beyond the cited public source. Verify critical uses against official lottery publications.
Troubleshooting
Why is my Dataset empty?
Check that fromDate is not after toDate and that the selected range contains
a draw. When using startUrls, confirm the URL's draw date is inside the same
filters.
Why did an explicit URL fail?
Only result-detail and yearly-history paths on euro-millions.com are accepted. Remove query-only pages, translated domains, and unrelated lottery URLs.
Why did the run stop with a source HTTP error?
The source may be temporarily unavailable or rate limiting requests. Wait and retry once. If the error persists, inspect the run log and source page. No proxy setting is needed or exposed by this Actor.
Why is a jackpot null?
Some source rows may omit the jackpot. The numbers and source URL remain useful, while null prevents an unsupported value from being invented.
FAQ
Does it include every EuroMillions draw since 2004?
The default range begins with the first draw and the 2,000-item limit is sized to cover the complete supported history at release. A future history above that limit must be split into date ranges.
Can I get today's result?
Yes, after euro-millions.com publishes it. Omit toDate or include today's date,
and use a small maxItems value for a quick refresh.
Can I find combinations that never appeared?
The Actor supplies the complete historical winning combinations. Calculate the set difference in a spreadsheet, notebook, or database. It does not generate all possible combinations itself.
Does it extract prize breakdowns?
No. It extracts draw date, winning numbers, Lucky Stars, and the advertised jackpot. Prize tiers and winner counts are outside the current output contract.
Can I schedule it?
Yes. Save the input as an Apify Task, add a schedule, and connect a webhook or integration to consume each run's Dataset.
Related Automation Lab Actors
This Actor is currently a standalone EuroMillions history product. For generic transformations, browse the Automation Lab Store profile.
Only Automation Lab Actors are listed here; third-party lottery Actors are not presented as related products.
Support
If a valid source page no longer parses, include the failing URL, input, and run ID in an Apify issue. Do not include API tokens or private downstream data.