eMAG Product Scraper β Romania, Bulgaria, Hungary
Pricing
from $3.00 / 1,000 product scrapeds
eMAG Product Scraper β Romania, Bulgaria, Hungary
Scrape eMAG.ro, eMAG.bg and eMAG.hu: prices, discounts, ratings, reviews, stock, brand, seller and category. Residential proxy built in, 60 products per request, pay per result.
Pricing
from $3.00 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
Polyglot Data
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Extract product data from eMAG, the largest online marketplace in Central and Eastern Europe: emag.ro π·π΄, emag.bg π§π¬ and emag.hu ππΊ.
Get prices, discounts, ratings, reviews, stock, brand, seller and category for any search, category or product URL. The output is clean, flat JSON that you can export to Excel, CSV or Google Sheets, or pull from the API.
β Why this scraper
- Works where others fail. eMAG blocks datacenter IPs. This actor uses residential IPs from the site's own country by default, detects blocked pages and retries them with a fresh session.
- Tested on all three sites. Every field is checked against live emag.ro, emag.bg and emag.hu pages, including local labels in Romanian, Bulgarian and Hungarian.
- Fast and cheap. It uses plain HTTP requests with no browser. Fast mode reads 60 products per request.
- Pay per result. The per-result fee is charged only for products actually saved, never for failed or empty pages.
- Clean data. Prices are numbers, not strings ("1.299,99 Lei" β
1299.99), with an ISO currency code. Missing values arenull, never empty strings. - Maintained. If eMAG changes its layout, the selectors get updated. Report anything odd in the Issues tab.
π¦ What data you get
| Field | Example | Notes |
|---|---|---|
url | https://www.emag.ro/.../pd/D5XXXXXBM/ | Product page |
productId | D5XXXXXBM | eMAG product code |
title | Telefon mobil Nokia 105 (2024), Dual SIM, Black | |
brand | Nokia | Detail mode |
price | 90.75 | Current price, number |
currency | RON | RON (Romania), EUR (Bulgaria, since 2026) or HUF (Hungary) |
oldPrice | 96.80 | Previous price (lowest of the last 30 days), only when discounted |
discountPct | 6 | Computed from price and oldPrice |
rating | 4.12 | 0β5 |
reviewCount | 17 | |
inStock | true | |
seller | eMAG | eMAG or the marketplace seller. Detail mode |
imageUrl | https://s13emagst.akamaized.net/...jpg | Main image |
category | Telefoane mobile | From the breadcrumb. Detail mode |
country | ro | Site the product came from |
scrapedAt | 2026-10-09T18:30:00.000Z | UTC timestamp |
Example item
{"url": "https://www.emag.ro/telefon-mobil-nokia-105-2024-dual-sim-black/pd/D5XXXXXBM/","productId": "D5XXXXXBM","title": "Telefon mobil Nokia 105 (2024), Dual SIM, Black","brand": "Nokia","price": 90.75,"currency": "RON","oldPrice": 96.8,"discountPct": 6,"rating": 4.12,"reviewCount": 17,"inStock": true,"seller": "eMAG","imageUrl": "https://s13emagst.akamaized.net/products/example.jpg","category": "Telefoane mobile","country": "ro","scrapedAt": "2026-10-09T18:30:00.000Z"}
β οΈ Error items
If an input produces nothing, the actor saves an error item instead of failing silently. Error items are never charged.
{ "error": "NO_RESULTS", "note": "No products found for this input. Check the search term, URL and country.", "input": ["xyzabc"] }
| error | Meaning |
|---|---|
NO_RESULTS | The search or category returned no products |
NOT_FOUND | The URL does not exist on eMAG |
BLOCKED | eMAG refused the page after all retries (rare; try again later) |
π― Use cases
- Price monitoring: schedule a daily run and track price changes and discounts over time.
- Competitor analysis: see what competing sellers charge for the same products on eMAG Marketplace.
- Seller research: find which marketplace sellers dominate a category.
- Brand protection and MAP compliance: check how resellers price your brand in RO, BG and HU.
- Market research: compare assortment, ratings and prices across three countries.
- Repricing tools and BI dashboards: feed fresh prices into your own systems through the API.
β‘ Fast mode vs. detail mode
| Fast mode (default) | Detail mode (scrapeDetails: true) | |
|---|---|---|
| How it works | Reads search and category pages only | Also opens every product page |
| Speed | 60 products per request | 1 request per product |
| url, productId, title, price, currency, imageUrl | β | β |
| oldPrice, discountPct (discounted products) | β | β |
| rating, reviewCount | β | β |
| inStock | β when shown on the card | β |
| brand, seller, category | β | β |
| Platform usage, measured Oct 2026 | β $0.01 per 1,000 products | β $0.50β0.70 per 1,000 products |
Tip: use fast mode for daily price tracking and detail mode when you need the seller or brand.
π How to use
- Enter one or more search terms (for example
iphone 15) or paste eMAG URLs (search, category or product pages). - Pick the country site for your search terms and set Max items.
- Click Start, then download the results as JSON, CSV, Excel or HTML, or connect them to Google Sheets.
Input example: fast price monitoring
{"searchTerms": ["laptop gaming", "casti wireless"],"country": "ro","maxItems": 500}
Input example: full product details
{"startUrls": [{ "url": "https://www.emag.bg/mobilni-telefoni/c" }],"maxItems": 100,"scrapeDetails": true}
Input fields
| Field | Type | Default | Description |
|---|---|---|---|
searchTerms | string[] | [] | Terms to search for on the selected site. |
startUrls | request list | [] | Search, category or product URLs on emag.ro / emag.bg / emag.hu. URLs containing /pd/ are scraped as product pages. |
country | ro / bg / hu | ro | Site used for searchTerms. |
maxItems | integer | 100 | Maximum number of products to save. |
scrapeDetails | boolean | false | Open every product page to also get brand, seller, stock and category. |
proxyConfiguration | proxy object | Apify residential | eMAG blocks datacenter IPs, so residential is required. The proxy country is set to the site's country automatically. |
debug | boolean | false | Adds page diagnostics to the dataset, for troubleshooting. |
π Integrations and API
- Schedules: run it every day or every hour from the Schedules tab.
- Webhooks, Make, Zapier, n8n, Google Sheets: send results anywhere when a run finishes.
- API: start a run and get the items in one call:
curl -X POST "https://api.apify.com/v2/acts/Polyglot-Data~emag-product-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchTerms":["iphone 15"],"country":"ro","maxItems":50}'
π° Pricing
Pay per result: you pay a small fixed price for each product saved to the dataset (see the Pricing tab),
plus Apify platform usage (see the table above). There is no monthly rental, and the per-result fee is never charged for empty or failed pages.
A test run with maxItems: 20 costs a few cents.
β FAQ
Which sites are supported? emag.ro (Romania), emag.bg (Bulgaria) and emag.hu (Hungary).
Do I need my own proxies? No. The actor uses Apify residential proxy from the matching country by default.
Why is oldPrice often null?
eMAG only shows a previous price (the lowest price of the last 30 days) on discounted products.
Why are brand, seller and category empty?
eMAG does not show them on search pages. Turn on scrapeDetails to get them.
What happens when eMAG blocks a request? The actor detects the block (HTTP 403/429/511 or a captcha page), drops that session and retries with a new IP, up to 8 times.
Can I scrape a whole category?
Yes. Paste the category URL into startUrls and raise maxItems. The actor follows pagination automatically.
Something is broken or a field is missing? Open an issue in the Issues tab with the input you used. Issues are answered quickly.
βοΈ Legal
This actor collects only publicly visible product information (prices, titles, ratings). It does not collect personal data. You are responsible for making sure your use complies with the target website's terms and with applicable law.