· 13 min read
eMAG Scraper: 18 Data Fields, Up to 1,000 Free Results/Month (2026)
Each product record returned by this scraper carries 18 output fields, including current prices, original prices, ratings, stock status, and marketplace seller details. The scraper targets the public storefronts of eMAG in Romania, Bulgaria, Hungary, and Poland. A thousand results cost $5.00 on the free-plan tier, which gives you a straightforward way to monitor pricing and inventory across Central and Eastern Europe. This Actor is optimized for retail analysts and e-commerce managers who need structured market data, but it is not suitable for those who require historical buyer reviews or personal contact info, which the storefronts do not publish.
Try it: open eMAG Scraper on Apify, sign in on the free plan and run the prefilled example.
Can you try eMAG Scraper before paying?
Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of eMAG Scraper a month, before run-start charges and platform usage.
The example request further down caps maxItems at 20, so a first run returns at most 20 results and costs at most $0.10 in result charges. That is enough to see the real shape of the data before deciding anything.
eMAG Scraper was last updated on 2026-09-10. It is one of 1,729 Actors CrawlerBros publishes on Apify, which together have 762,160 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.
What does it cost to run eMAG Scraper?
Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.005 | $5.00 |
| BRONZE | $0.00433 | $4.33 |
| SILVER | $0.00367 | $3.67 |
| GOLD | $0.003 | $3.00 |
| PLATINUM | $0.003 | $3.00 |
| DIAMOND | $0.003 | $3.00 |
The maxItems parameter has the largest effect on your run costs because billing charges are applied directly per result written to your dataset. Restricting this limit during search queries and category browsing prevents unnecessary data consumption. To check if the scraper fits your data model before spending, run it with the example input containing a maxItems limit of 20 to keep result charges low.
How do you run eMAG Scraper from the API?
The schema marks 1 of its 9 controls as required: mode. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for eMAG Scraper, so the request works once your token is in place.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~emag-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"searchProducts","query":"laptop","categoryUrl":"/laptopuri/c","market":"ro","sortBy":"relevance","maxItems":20}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "searchProducts",
"query": "laptop",
"categoryUrl": "/laptopuri/c",
"market": "ro",
"sortBy": "relevance",
"maxItems": 20
}
run = client.actor("crawlerbros~emag-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"mode": "searchProducts",
"query": "laptop",
"categoryUrl": "/laptopuri/c",
"market": "ro",
"sortBy": "relevance",
"maxItems": 20
}
const run = await client.actor('crawlerbros~emag-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.
Which eMAG Scraper inputs matter, and which can you skip?
The mode control determines the scraper behaviour, letting you choose between search queries, category browsing, and product details. Most users should start with searchProducts and configure the query parameter to target specific keywords, while leaving the sorting and price filters at their defaults. When you need deeper seller details and specifications, switch the mode to getProductDetails and provide a specific product URL.
mode(string): What to scrape. Default:"searchProducts".query(string): Keyword(s) to search for (mode=searchProducts). Default:"laptop".categoryUrl(string): eMAG category URL path, e.g. /laptopuri/c or https://www.emag.ro/laptopuri/c (mode=browseCategory). Default:"/laptopuri/c".productUrl(string): Full eMAG product URL ending in /pd/XXXXXX/ (mode=getProductDetails).market(string): Which eMAG market to scrape. Default:"ro".sortBy(string): Sort search/category results. Only applies to searchProducts and browseCategory modes. Default:"relevance".minPrice(number): Filter products with price at or above this value (in local currency).maxPrice(number): Filter products with price at or below this value (in local currency).maxItems(integer): Maximum number of products to return. Default:30.
Fixed-choice controls: mode accepts searchProducts (Search products by keyword), browseCategory (Browse a category URL), getProductDetails (Get details for a specific product URL); market accepts ro (Romania (emag.ro) - RON), bg (Bulgaria (emag.bg) - BGN), hu (Hungary (emag.hu) - HUF), pl (Poland (emag.pl) - PLN); sortBy accepts relevance, price_asc (Price: low to high), price_desc (Price: high to low), rating.
What does eMAG Scraper return?
The returned records are excellent for price matching, tracking promotional discounts, and mapping the seller landscape on eMAG storefronts. They do not contain buyer email addresses, transaction histories, or historical review text, as these are not extracted by this storefront scraper. This makes the dataset ideal for high-level competitive analysis rather than customer sentiment tracking.
productId- eMAG product identifiername- product titlebrand- manufacturer (mode=getProductDetails)description- product description, trimmed to 3,000 characters (mode=getProductDetails)price- current price in the market's currencyoriginalPrice- pre-discount price, when one is showndiscountPercent- computed discount off the original pricecurrency-RON,BGN,HUF, orPLNrating- average star ratingreviewCount- number of customer reviewsinStock- availabilityseller- marketplace seller name (mode=getProductDetails)category- eMAG categoryspecifications- technical spec name/value pairs (mode=getProductDetails)imageUrl- main product imageurl- product page on eMAGmarket- the storefront the record came fromscrapedAt
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open eMAG Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Select your target region using the market control, choosing from ro, bg, hu, or pl to set the localized search domain.
- Set the mode control to searchProducts and enter a query like laptop to verify the scraper returns listings with base fields.
- Inspect the returned dataset items to verify that fields like price, currency, and rating populate correctly.
- Change the mode to browseCategory and input a relative path like /laptopuri/c in categoryUrl to test category parsing.
- Apply minPrice and maxPrice filters in local currency to narrow the collection and control your result count.
- Restrict the maximum output size by setting maxItems to 20 during your initial configuration testing.
- Switch the mode to getProductDetails and provide a specific productUrl ending in the /pd/ format to retrieve advanced fields.
- Verify the detailed JSON payload includes the seller name, brand, description, and specifications before scheduling your tasks.
How do you apply it? Three worked playbooks
These are eMAG Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Price monitoring
Outcome: Track competitor pricing and discount depth across eMAG markets
Configure: Set mode to searchProducts, query to your target brand, market to ro, and maxItems to 100.
Working method: Run the Actor daily on a set schedule, saving the results to a historical dataset. Compare the price and discountPercent fields across successive runs to map promotional cycles and identify when competitor pricing changes.
Deliverable: A structured CSV export containing product ids, current prices, original prices, calculated discount percentages, and timestamps.
Stop condition: The scrapedAt timestamp updates but the price fields for all items remain identical to the previous run.
Use case 2: Cross-border pricing
Outcome: Compare the same product in RON, BGN, HUF and PLN
Configure: Set mode to searchProducts, query to a specific model identifier, and maxItems to 10.
Working method: Run four parallel runs of the scraper, setting the market parameter to ro, bg, hu, and pl respectively. Match the returned items by their model names or specifications, then convert the prices to a single base currency for comparison.
Deliverable: A localized pricing matrix showing the same product model side-by-side in RON, BGN, HUF, and PLN.
Stop condition: The query fails to return the target item on more than two of the regional storefronts.
Use case 3: Marketplace sellers
Outcome: Benchmark your listings against rival offers in your category
Configure: Set mode to browseCategory, categoryUrl to your specific category path, and maxItems to 150.
Working method: Retrieve the full list of active products in your category and inspect the seller field on each record. Aggregate the records to calculate the average price, rating, and review count for your competitor sellers versus your own.
Deliverable: An analytical spreadsheet grouping listings by seller, displaying their average price points, stock availability, and ratings.
Stop condition: The seller field returns as null or empty across all collected product records.
What breaks, and how do you design around it?
To bypass the 300-item hard limit on the maxItems control, partition your collection into multiple runs using focused category paths or tighter price filters. If your category search returns too many results, split the task by applying the minPrice and maxPrice inputs to scrape eMAG in smaller, distinct pricing bands. When scraping multiple markets, run separate tasks for each storefront language to keep your search queries relevant.
When should you not use eMAG Scraper?
Do not use this scraper if you need to extract buyer contact details, customer review text, or seller transaction histories, as these public storefront pages do not expose that data. If your target market is in a different region, you should use specialized regional tools. For example, if you are targeting the Russian market, use Yandex Market Scraper or Yandex Market Pro Scraper instead. For targeting the Netherlands, Belgium, or Germany, choose Coolblue Scraper. If you need e-commerce data from India, use Flipkart Scraper, and for Vietnam, use Tiki Product Scraper. Projects requiring direct database integrations or private seller APIs should look for official merchant portals rather than web scraping.
What should you check before trusting the output?
- Verify that the currency field matches the expected code for the chosen market, such as BGN for Bulgaria or HUF for Hungary.
- Confirm that the brand and seller fields are present and populated when running the scraper in getProductDetails mode.
- Check that the discountPercent field is computed correctly and is not null whenever an originalPrice is present in the record.
- Set up an automated filter to flag records where the price field is missing or contains a zero value.
- Monitor the specifications field on detail records to ensure the nested technical key-value pairs are fully populated.
None of this proves a record is correct. It gives a scheduled eMAG Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
What is the cost of running this scraper?
Each result written to your dataset costs $0.005, which is $5.00 per 1,000 results on the free-plan tier. Paid Apify plans offer lower per-result pricing. Keep in mind that a small run-start fee is charged every time a run starts, and Apify also bills for the platform usage each run consumes.
Can I test the eMAG scraper without paying?
Yes. Apify's free plan includes $5.00 of monthly usage with no credit card required, which covers up to 1,000 results of this Actor. You can run the example input with maxItems set to 20, returning at most 20 results and costing at most $0.10 in result charges.
Which eMAG markets can I scrape?
The scraper supports four markets. You can select Romania (ro) using RON, Bulgaria (bg) using BGN, Hungary (hu) using HUF, or Poland (pl) using PLN. Prices and currencies automatically adapt to the market you choose.
Why do some fields only appear in getProductDetails mode?
Listing pages on eMAG only show search-level fields like names, prices, and ratings. To extract product specifications, full descriptions, brand names, and marketplace seller information, you must run the scraper in getProductDetails mode using a specific product URL.
How does the scraper compute the discount percentage?
When eMAG displays a crossed-out pre-discount price, the Actor calculates the discountPercent field automatically from the originalPrice and the current price. If there is no pre-discount price displayed on the page, the discount field is omitted.
Where to go next
When you are ready to run it, open eMAG Scraper on Apify; the free plan covers up to 1,000 results a month.
Start with the eMAG Scraper Actor page for the current input schema, pricing tier, and run history.
Other Actors we maintain for related data:
- Flipkart Scraper: Scrape Flipkart, India's leading e-commerce platform.
- Ozon Scraper - Products, Categories & Search: Scrape Ozon.ru, Russia's largest e-commerce marketplace.
- Coolblue Scraper: Scrape Coolblue with the leading consumer electronics retailer in the Netherlands, Belgium and Germany.
- Tiki Product Scraper: Scrape Tiki.vn - Vietnam's leading e-commerce marketplace.
- Yandex Market Scraper: Scrape product listings, prices, seller offers, and reviews from Yandex Market, Russia's largest e-commerce platform.
- Falabella Scraper: Scrape Falabella.com (Chile) products by keyword search, category browse, or exact product ID/URL.
- Etsy Scraper: Scrape product listings from Etsy search results, categories, shops, and product pages.
- Yandex Market Pro Scraper: Scrape Yandex Market - Russia's largest e-commerce and price-comparison platform.
Related guides:
- Ozon Scraper - Products, Categories & Search: 3 Practical Use Cases
- M.Video Scraper: 39 Data Fields, Up to 1,000 Free Results/Month (2026)
- EBAY | Single Item | Store | Store Categories: $5.00 per 1,000 Results
- Takealot Scraper: 16 Data Fields, Up to 1,000 Free Results/Month
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-09.
Actor last updated by its maintainers on 2026-09-10.
Run outcome figures cover the 30 day public window ending 2026-10-09.
Featured actors
eMAG Scraper
Scrape eMAG, the leading e-commerce marketplace in Romania, Bulgaria, Hungary and Poland. Search products, browse categories, or fetch individual product details including prices, ratings, specifications and seller info.
Run on Apify ↗