Magazine Luiza (Magalu) Product, Price & Seller Scraper
Scrape Magalu products: price, Pix price, instalments, seller, stock, rating and reviews. Search by keyword or paste product URLs. No login, no API key.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
searchTerms,startUrls,maxItems(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.0028 per product = $2.8 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Product returned | One product returned in the dataset. Rows dropped by your filters, diagnostics and the labelled sample row are not charged. | $0.0028 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-20, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
searchTerms | What to search for on magazineluiza.com.br, one per line. Magalu's search is Portuguese-first, so "geladeira" returns far more than "refrigerator". Accents are optional. | array |
startUrls | Optional. Paste search pages (https://www.magazineluiza.com.br/busca/geladeira/), single product pages (.../p/{id}/{cat}/{sub}/) or subcategory lists (the ones with /s/ in the path). Department pages ending in /l/{code}/ are not supported. Magalu's own data feed errors on those. Works alongside the search terms above. | array |
maxItems | Hard cap on rows across every term and URL in this run. You are charged per product returned, so this is also your spend cap. Magalu stops paginating a single search at 1,000 products. | integer |
sortBy | The order Magalu returns the listing in. Relevance is their default. Sorting does not change what you are charged. | string |
fetchFullDetail | Off, every row comes from the listing: title, id, prices, instalments, seller, rating, review count, stock, one image. On, the actor also opens each product page for the description, every photo, the manufacturer's model code, weight, box dimensions and the colour/size variations. That is one extra request per product, so a run takes noticeably longer. The price per product is the same either way. | boolean |
minPrice | Optional. Products under this price are dropped and you are not charged for them. Magalu's own price filter is unreliable, asking it for R$1,000-3,000 came back with R$10 items, so the range is applied here instead, which means the run still reads past them to fill your row count. | integer |
maxPrice | Optional. Same idea, the other way round. Also applied here rather than at Magalu's end. | integer |
includeSponsored | Magalu mixes paid placements into its results. They are real products and are kept by default, flagged with "sponsored": true so you can filter them later. Turn this off to drop them before they are charged for. | boolean |
What you get
A structured dataset — each result includes fields like:
titlebrandpricecashPriceinstallmentCountinstallmentAmountsellerNameavailableratingreviewCountcategorysubcategoryproductIdurlimageExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
Magazine Luiza Scraper: Magalu products with card price, Pix price and seller
Search magazineluiza.com.br by keyword, paste a search page, a subcategory list or a single product, and get one row per product. Each row carries the card price, the list price and the discount, the Pix price, the best interest-free instalment plan, the seller and whether Magalu itself is selling, stock, star rating, review count and the category tree.
Magalu's search is Portuguese-first. "geladeira" returns far more than "refrigerator", and a term it has nothing for comes back as an uncharged row rather than a page of unrelated stock.
| Input | Search terms, or Magazine Luiza URLs |
| Output | One row per product |
| Ceiling | 5,000 products per run, 1,000 per search term |
| Account needed | None, and no API key |
| Price | $2.80 per 1,000 products, flat on every plan |
🏬 What Magazine Luiza Scraper does
Search terms run as searches. URLs are read as given, and three kinds work: a search page (/busca/geladeira/), a single product (.../p/<id>/<cat>/<sub>/) and a subcategory list, which is the one with /s/ in the path. You can mix terms and URLs in one run.
Department pages ending /l/<code>/ do not work. Magalu's own data feed errors on them. Open the department, pick a subcategory, and paste that address instead.
The price range is applied here, not at Magalu's end. Their filter takes the parameter and then ignores it: asked for R$1,000 to R$3,000 on "geladeira" it answered, at HTTP 200, with products priced R$10 to R$33. So the run reads past the ones that do not fit and drops them, uncharged, which means a narrow range takes longer but gives you what you asked for.
Turn fetchFullDetail on and each product page is opened as well, for the description, every photo, the model reference, weight, box dimensions and the colour and size variations. That is one extra request per product, so the run takes noticeably longer. The price per product does not change.
📥 What you give it
{
"searchTerms": ["geladeira", "notebook gamer"],
"sortBy": "best_selling",
"minPrice": 1000,
"includeSponsored": false,
"maxItems": 200
}
| Field | Default | What it is |
|---|---|---|
searchTerms | none, box starts at geladeira | One per line. Accents are optional. |
startUrls | none | Search pages, product pages, or subcategory lists with /s/ in the path. |
maxItems | 50 | Rows across every term and URL, up to 5,000. This is also your spend cap. |
sortBy | relevance | relevance, price_asc, price_desc, best_selling, best_rated or newest. Sorting does not change what you pay. |
fetchFullDetail | off | Opens each product page for the long fields listed above. |
minPrice, maxPrice | none | In reais. Applied on the rows here, so anything outside is dropped and never charged. |
includeSponsored | on | Magalu mixes paid placements in. They are real products, flagged sponsored: true. Turn this off to drop them before they are charged for. |
proxyConfiguration | none | Optional. Leave it alone unless the run needs to go out through a network of your own. |
📤 What you get back
A real row from a recent run:
{
"productId": "238058800",
"sku": "238058800",
"title": "Geladeira/Refrigerador LG Frost Free Smart Inverse",
"brand": "LG",
"url": "https://www.magazineluiza.com.br/geladeira-refrigerador-lg-frost-free-smart-inverse-prata-451l-inox-look-gc-b569nllm-apzfsbs/p/238058800/ed/rinv/",
"price": 3999,
"listPrice": 5999,
"discountPercent": 33.3,
"cashPrice": 3759.06,
"cashPaymentMethod": "no Pix",
"installmentCount": 10,
"installmentAmount": 399.9,
"installmentTotal": 3999,
"installmentTerms": "sem juros",
"currency": "BRL",
"sellerId": "magazineluiza",
"sellerName": "magazineluiza",
"soldByMagalu": true,
"available": true,
"rating": 4.78,
"reviewCount": 1084,
"categoryId": "ED",
"category": "Eletrodomésticos",
"subcategoryId": "RINV",
"subcategory": "Geladeira / Refrigerador Inverse",
"image": "https://a-static.mlcdn.com.br/1000x1000/geladeira-refrigerador-lg-frost-free-smart-inverse.../238058800/6b1eedbe2290c13c42605031b36fe1c0.jpg",
"sponsored": true,
"searchQuery": "geladeira",
"position": 1,
"page": 1,
"scrapedAt": "2026-09-20T02:35:18.441Z"
}
| Field | What it is |
|---|---|
price, listPrice, discountPercent | The price on the card, the crossed-out one, and the gap as a percentage. |
cashPrice, cashPaymentMethod | The one-off payment price and how Magalu labels it, usually no Pix. |
installmentCount to installmentTerms | The best plan on the card, with Magalu's own words for the terms, such as sem juros for interest-free. |
soldByMagalu | true when Magalu is the seller, false when it is a marketplace seller. |
sponsored | true on a paid placement. Real products, just placed. |
searchQuery, position, page | Which term found it and where it sat, so you can join back to your own list. |
With fetchFullDetail on, the row also carries description, images, imageCount, modelReference, weightKg, dimensionsMeters, productType, variations and commentCount.
🧾 Reading the output
| Row | How to spot it | Charged |
|---|---|---|
| A product | _sample and _diagnostic both absent | yes |
| The sample row | _sample: true | no |
| A diagnostic | _diagnostic: true and an errorCode | no |
Run it with no terms and no URLs and you get the one sample row. Every diagnostic carries a hint next to its code.
| Code | What it means |
|---|---|
NO_MATCH_FOR_TERM | Magalu had nothing for that term and filled the page with unrelated stock. Try the Portuguese word. |
NO_RESULTS | Magalu returned nothing at all for that term. |
NO_MATCHES | It returned products, but none got past your price range or your sponsored setting. |
BAD_URL | Not a Magazine Luiza address this can read. |
CATEGORY_URL_UNSUPPORTED | A /l/ department page. Use a subcategory list with /s/ in it. |
PRODUCT_FAILED | That product address is retired. Magalu does that when a listing is merged or delisted. |
SEARCH_FAILED | The listing would not come back this time. Usually temporary. |
BOOTSTRAP_FAILED | The site did not answer at all, so the run stopped early and charged nothing. |
One bad term never stops the others, and a diagnostic row never fails the run. Any other code means something unexpected, and is worth sending in.
▶️ How to run it
1. Open Magazine Luiza Scraper and click Try for free. 2. Type Portuguese search terms into Search terms, one per line, or paste addresses into Magazine Luiza URLs. 3. Pick a Sort by if the default order does not suit you. 4. Set Maximum products, then click Start. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
💰 How much does it cost?
$2.80 per 1,000 products. Flat on every Apify plan, no volume tiers.
You pay per product row delivered. Diagnostic rows, products dropped by your price range or your sponsored setting, a term Magalu has nothing for, a retired product page, and the sample row are all free. Opening the full detail page costs nothing extra.
💡 What people use it for
- Tracking the card price against the Pix price on a set of products, on a schedule.
- Watching a subcategory's best sellers week by week to see what moves.
- Pulling a price range across brands for a category, with Minimum price set.
- Checking which products Magalu sells itself and which come from marketplace sellers.
- Building a product feed with descriptions, photos and variations, with full detail on.
🚧 What it does not do
- No reviews. You get the star rating and the review count, not the review texts.
- No department pages. The
/l/addresses cannot be read. Use a subcategory. - 1,000 products per search term. Magalu stops paginating there, so split a big category by
subcategory or by sort order.
- Prices are a snapshot, and Magalu moves them often.
scrapedAtis on every row. - Sponsored placements are mixed in unless you turn them off, and they are real listings rather
than duplicates.
- The price filter costs time, not money. Because it is applied on the rows here, a narrow range
still reads past everything outside it.
- Brazil only, and everything comes back in Portuguese and in reais.
🧭 Which Brazil scraper do you need?
| If you want | Use |
|---|---|
| Magalu products, prices, sellers and stock | This one |
| Brazilian classified ads | OLX Brazil Scraper |
| Property listings on VivaReal and Zap Imóveis | VivaReal and Zap Imóveis Scraper |
| Mercado Libre deals and best sellers | Mercado Libre Scraper |
❓ Questions people ask
Do I need a Magalu account? No. No login and no API key.
Why should I search in Portuguese? Because Magalu's catalogue is in Portuguese. "refrigerator" finds a fraction of what "geladeira" finds, and an English term with no match returns an uncharged NO_MATCH_FOR_TERM row instead of junk.
What is the Pix price? The price for paying in one go by Pix, Brazil's instant transfer. It is usually a few percent under the card price, and it lands in cashPrice.
How do I get more than 1,000 rows for one category? Split it. Use several subcategory URLs, or run the same term with different Sort by values.
Can I drop the ads? Yes. Turn Include sponsored placements off and they are dropped before anything is charged.
Is scraping Magazine Luiza legal? These are public product pages. Magalu's terms govern what you may do with the content, so read them against your plan. Apify's write-up on scraping and the law is a starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the run ID and the terms or URLs you used. The errorCode on the diagnostic row usually names the problem on its own.