Americanas Brazil - Products, Prices, Sellers & Reviews
Pricing
from $1.50 / 1,000 product results
Americanas Brazil - Products, Prices, Sellers & Reviews
Scrape Americanas Brazil (americanas.com.br) by keyword, department or pasted link. Returns SKU, title, brand, seller (store or marketplace), price, PIX price, discount, instalments in BRL, stock, images, variants, specs and reviews. Incremental mode tracks changes.
Pricing
from $1.50 / 1,000 product results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
Americanas Brazil Marketplace Scraper: Prices, PIX, Sellers & Reviews
Americanas Brazil Marketplace Scraper turns americanas.com.br into clean, structured product data. Get one row per product with identity, seller, the full Brazilian price picture (current price, pre-discount price, discount, PIX cash price and instalment terms in BRL), stock, media, every colour and size variant, the description, the specification table and the warranty. Search by keyword and filters, or paste product, department and search links straight from the store, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.
Why This Scraper?
- Two ways to find products. Search by keyword and filters, or paste product pages, department pages and search pages straight from the store. No need to build URLs by hand.
- A complete price picture on every row, at no extra cost. Current price, pre-discount price, discount percent, PIX cash price and instalment terms all arrive with the listing.
- Store stock and marketplace sellers told apart. Every row says whether Americanas itself sold it or an independent marketplace seller did, and lists every other seller's own offer on the same product.
- Full product detail included by default. Every colour, size and model variant, the description, the specification table and the warranty term, all returned without an extra request.
- Delivery and reviews on demand. Turn on delivery estimates for a Brazilian postal code, or customer ratings and full review text, and pay only for the products that use them.
- Reliable filtering. Department and brand filters are checked against the store's own published lists before a run starts, so a typo is reported by name instead of silently returning the unfiltered catalogue.
- Built for schedules. Incremental mode returns only new and changed products on recurring runs, and a run that could not read the store fails loudly instead of returning an empty dataset.
Use Cases
- Price and PIX tracking: monitor a product list or a whole department for price, discount and PIX cash price changes over time.
- Marketplace research: compare the same product across the store's own stock and independent marketplace sellers side by side.
- Catalogue and assortment analysis: build a department-level view of brands, price bands and stock levels.
- Review and rating monitoring: track customer ratings, review volume and review text for a set of products.
- Price comparison tools: feed current price, original price and discount percent into your own comparison site or app.
Data You Get
Sample shape: values are illustrative placeholders, not from a live record.
| Field | Example |
|---|---|
productId / skuId | "5001234" / "5101234" |
name | "Sample Wireless Mouse 2.4GHz with USB Receiver" |
brand / brandId | "Sample Brand" / "9001" |
url | Product link on americanas.com.br |
department / categoryPath | "Computadores e Informática" / "Computadores e Informática > Periféricos" |
sellerId / sellerName / sellerType | "1" / seller name / "first_party" (also "marketplace") |
sellerCount / otherSellers[] | How many sellers offer this SKU, and every other one's own price and stock |
sellerReputation | Always null. The store publishes no seller rating anywhere in its data |
price / originalPrice / discountPercent | 89.9 / 129.9 / 30.8 |
onSale / currency | true / "BRL" |
pixPrice / pixDiscountPercent | 85.4 / 5.0 |
maxInterestFreeInstallments / maxInstallments | 3 / 10 |
installmentPlans[] | One row per payment method and instalment count, with the interest rate and total |
inStock / availableQuantity | true / 42 |
image / images[] / videos[] | The full media gallery |
variants[] / variantCount | Every SKU option (colour, size and so on), with its own price and stock; 2 |
description / specifications | Free text description and a flat specification name to value table |
warranty / itemCondition | "3" / "Novo" |
shippingCost / deliveryEstimate / pickupAvailable | Delivery details, when Fetch delivery details is on |
rating / reviewCount / ratingBreakdown / reviewsAvailable | 4.6 / 18 / all five star buckets / true, when Fetch customer reviews is on |
reviews[] | Author, date, rating, text, verified purchase and photos, when reviews are on. A product with no reviews returns reviews: [], reviewsAvailable: false and reviewCount: 0, not a failure |
searchMode / scrapedAt | Bookkeeping: how the row was found, and when it was read |
changeType / changedFields / firstSeenAt / lastSeenAt | Incremental mode only: NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED, what moved, and the tracking dates |
Every row also carries the alternative field names availableQty, discountPct, imageUrl, available, seller and category, which repeat availableQuantity, discountPercent, image, inStock, sellerName and categoryName, so scripts written for other Americanas scrapers keep working. They are never used for change detection.
How to Use
- Pick a mode:
search(by keyword and filters) orurl(paste store links). - Fill in your keywords or links, and switch on Department, Brand or the other filters you want.
- Turn on delivery details or customer reviews if you need them, set Max products to control run size and cost, then click Start.
- Download the dataset as JSON, CSV or Excel, or read it through the API.
Search a department by keyword:
{"mode": "search","queries": ["notebook dell"],"categories": ["computadores-e-informatica"],"maxItems": 20}
Browse a whole department, in stock only, best rated first:
{"mode": "search","categories": ["telefonia"],"sortBy": "best_rated","inStockOnly": true,"maxItems": 50}
Paste store links, with reviews turned on:
{"mode": "url","urls": ["https://www.americanas.com.br/computadores-e-informatica/notebook","https://www.americanas.com.br/busca/cafeteira"],"fetchReviews": true}
Marketplace sellers only, in a price band, with an instalment requirement:
{"mode": "search","queries": ["tenis nike"],"sellerType": "marketplace","minPrice": 100,"maxPrice": 500,"minInterestFreeInstallments": 6}
Run it from your code
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("abotapi/americanas-com-br-scraper").call(run_input={"mode": "search", "queries": ["notebook dell"], "maxItems": 20})for product in client.dataset(run["defaultDatasetId"]).iterate_items():print(product["name"], product["price"], product["sellerType"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('abotapi/americanas-com-br-scraper').call({mode: 'search', queries: ['notebook dell'], maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.
How Max products and Max result pages shape a run
Max products is the run's cap, shared across every keyword, department or link you gave it: a run over several departments returns a fair share from each rather than letting the first one spend the whole budget. Max result pages limits how many result pages are read per keyword, department or link; left at 0 (the default), a scope stops only at Max products, at the end of its results, or when a page returns nothing new. Selecting several departments is a union built one department at a time, because the store cannot combine two departments in a single request.
Dataset views
The dataset has four views: Products (overview), Delivery, seller & warranty, Reviews (one row per customer review, unwound from its product; needs Fetch customer reviews) and Changes (incremental mode). The run also saves a short summary under the key OUTPUT.
Resume and recurring updates
Resume from a previous run (resumeFromRunId) continues ONE interrupted run: paste its run or dataset ID and this run skips, and does not charge for, everything already collected there.
Incremental mode (incrementalMode) is for a schedule: run the same search or department again and again and get only what changed. The first run returns everything as NEW; later runs return NEW, UPDATED and REAPPEARED, with changedFields naming exactly what moved. UNCHANGED rows are suppressed (and not billed) unless Emit unchanged is on. EXPIRED rows are only produced once a run has fully scanned the tracked search, so a run capped by Max products, or a resumed run, can never wrongly tombstone live products. Clock-like fields (scrapedAt, priceValidUntil, and the rolling delivery estimate dates) are excluded from change detection so they never trigger a false UPDATED. The bulky reviews, installmentPlans and specificationGroups lists are never named in changedFields either; a change in them still shows up through reviewCount, rating, ratingBreakdown, maxInterestFreeInstallments, interestFreeInstallmentValue, maxInstallments and specifications, which are all tracked. Ignore fields when detecting changes (ignoreFieldsForChanges) lists extra fields (or dotted paths such as delivery.shippingCost) that must never trigger UPDATED or appear in changedFields; they are still returned in every row. State key names a monitoring campaign, or shares one across runs; left empty, a key is derived automatically from the search, filters and lookup settings, so different setups never mix state.
Send results into your apps (MCP connectors)
Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.
What gets written to the connector: a condensed, human-readable summary of each product, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.
- Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items should be created.
The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.
Input Parameters
Start here: pick your mode
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search searches the catalogue by keyword and filters. url scrapes pasted links: product pages, department pages and search result pages are all accepted. |
Search mode: keywords
| Parameter | Type | Default | Description |
|---|---|---|---|
queries | array | (empty) | Search mode only. One or more keywords, for example notebook dell, cafeteira or tenis nike. Each keyword is searched separately and Max products is shared across all of them. Leave empty to browse by Department, Brand or price alone. |
searchTerm | string | (none) | Alias for a single keyword; same as one entry in queries, and selects search mode. |
URL mode: paste store links
| Parameter | Type | Default | Description |
|---|---|---|---|
urls | array | one example per link kind (department, sub-category, product page, /s?q= search, /busca/ search) | URL mode only. Mix freely: product pages ending in /p, department pages such as /computadores-e-informatica/notebook, and search pages such as /s?q=notebook or /busca/notebook-dell. A link that already names a page starts there: the store counts its pages from 0 and shows 12 products per page, so ?page=2 starts at the store's third page (product 25), and a run that starts past the first page never produces EXPIRED rows because it did not scan the products before it. A ?sort= value on a link sets the order unless Sort by is changed; the store's own values are understood (score_desc, orders_desc, release_desc, discount_desc, price_asc, price_desc, name_asc, name_desc) as are the Sort by names, and any other value is reported in the log and ignored. Campaign pages under /categoria/ have no product list and are skipped with a message. Change since earlier versions: URL mode with this field left untouched now scrapes one example link of each kind (capped by Max products) instead of nothing. |
searchUrl | string | (none) | Alias for a single store link; same as one entry in urls, and selects url mode. Wins over searchTerm when both are set. |
Filters (apply to a keyword search AND to a pasted department or search link)
| Parameter | Type | Default | Description |
|---|---|---|---|
categories | array | (empty) | Keep only products in these store departments. Resolved against the store's own published department list and applied at the source. Selecting several returns products from any of them, walked one department at a time. |
brands | array | (empty) | Keep only products from these brands, typed as the store writes them (Lenovo, Samsung). Accents and capitals do not matter. A brand the store does not publish is reported by name and skipped; if none of your brands exist, the run stops rather than returning unfiltered results. |
sellerType | string | any | any, first_party (store's own stock) or marketplace (independent sellers). Applied to the results for marketplace, since the store publishes no filter that excludes its own stock. |
minPrice | integer | (none) | Keep only products priced at or above this amount in BRL. Applied by the store. |
maxPrice | integer | (none) | Keep only products priced at or below this amount in BRL. Applied by the store. |
minInterestFreeInstallments | integer | 0 | Keep only products payable in at least this many interest free instalments (parcelas sem juros), 0 to 24. Applied to the results. 0 means no requirement. |
inStockOnly | boolean | false | Keep only products the store will currently accept an order for. Applied to the results, because the store returns sold out listings alongside available ones. |
onlyAvailable | boolean | false | Alias of inStockOnly. |
onSaleOnly | boolean | false | Keep only products whose current price is below their advertised original price. The PIX cash discount does not count here; it is returned separately in pixPrice. |
sortBy | string | relevance | One of relevance, price_asc, price_desc, best_selling, best_rated, newest, biggest_discount, name_asc, name_desc. All nine are the store's own orderings, applied at the source. |
Output, limits and extra lookups
| Parameter | Type | Default | Description |
|---|---|---|---|
fetchDetails | boolean | false | Read the delivery estimate, shipping cost and pickup availability for each product at the postal code below. One extra request per product, billed as one Detail enrichment event per product returned. |
deliveryPostalCode | string | 01310100 | Destination for delivery enrichment. The default is central Sao Paulo; replace it with your own 8 digit Brazilian postal code (CEP) for destination-specific shipping cost and delivery time. |
fetchReviews | boolean | false | Add each product's rating, review count, per star breakdown and individual reviews. Ratings are looked up for a whole result page in one request; only a product that actually has reviews costs a request of its own, and only those products are billed a Detail enrichment event. |
maxReviewsPerProduct | integer | 20 | Cap on individual reviews returned per product. The rating, count and per star breakdown stay complete regardless. 0 returns up to 100 (the first page). Maximum 1000. |
maxItems | integer | 20 | Maximum products returned across the whole run. 0 means unlimited. |
maxPages | integer | 0 | Maximum result pages read per keyword, department or link. 0 means no limit, which is the default. |
Resume and recurring updates
| Parameter | Type | Default | Description |
|---|---|---|---|
resumeFromRunId | string | (none) | Continue ONE interrupted run. Paste that run's id or dataset id and this run skips, and does not bill for, everything already collected there. |
incrementalMode | boolean | false | Turn on for daily or recurring monitoring of the same search. The first run returns everything as NEW; later runs return only NEW, UPDATED and REAPPEARED. |
stateKey | string | (none) | Incremental mode only. Name a monitoring campaign to keep its state stable, or to deliberately share state across runs. Left empty, the key is derived from the mode, keywords, links, filters and lookup settings, so two different setups never mix state. |
emitUnchanged | boolean | false | Incremental mode only. Also return products that have not changed, marked UNCHANGED. This returns, and bills, extra rows. |
emitExpired | boolean | false | Incremental mode only. Also return products that were present before and are no longer found, marked EXPIRED. Only produced after a complete scan, so never when maxItems capped the run or resumeFromRunId was used. This returns, and bills, extra rows, and EXPIRED rows are added on top of maxItems rather than counted against it. |
ignoreFieldsForChanges | array | (none) | Incremental mode only. Field names or dotted paths left out of change detection and changedFields; still returned in every row. |
Proxy and connection
| Parameter | Type | Default | Description |
|---|---|---|---|
proxy | object | Apify Proxy, standard pool | The standard pool is the default and is sufficient for this store. A residential pool is available but is not needed here. If the chosen connection is refused for your account, the run continues on a backup connection and says so in the log. |
Send results into your apps (MCP connectors)
| Parameter | Type | Default | Description |
|---|---|---|---|
mcpConnectors | array | (none) | Optional: send a summary of each product to apps you authorized under Integrations. |
notionParentPageUrl | string | (none) | Notion connector only: page under which product pages are created. |
maxNotifyListings | integer | 50 | Cap on items written to each connector per run. |
Output Example
Sample shape: values are illustrative placeholders, not from a live record.
{"productId": "5001234","skuId": "5101234","name": "Sample Wireless Mouse 2.4GHz with USB Receiver","brand": "Sample Brand","brandId": "9001","url": "https://www.americanas.com.br/sample-wireless-mouse-24ghz-usb-receiver/p","department": "Computadores e Informática","categoryPath": "Computadores e Informática > Periféricos","sellerId": "1","sellerName": "Sample Store Official","sellerType": "first_party","sellerReputation": null,"currency": "BRL","price": 89.9,"originalPrice": 129.9,"discountPercent": 30.8,"onSale": true,"pixPrice": 85.4,"pixDiscountPercent": 5.0,"maxInterestFreeInstallments": 3,"maxInstallments": 10,"inStock": true,"availableQuantity": 42,"warranty": "3","itemCondition": "Novo","variantCount": 2,"rating": 4.6,"reviewCount": 18,"ratingBreakdown": { "1": 0, "2": 1, "3": 1, "4": 4, "5": 12 },"reviewsAvailable": true,"shippingCost": 9.9,"deliveryEstimate": "2bd","pickupAvailable": false,"searchMode": "search","scrapedAt": "2026-08-01T09:00:00Z"}
Plan Requirement
The default connection is Apify Proxy with the standard pool. A catalogue read through that pool returned products in two out of two checks; no other store page type was checked through it. An account without Apify Proxy access (a free plan) cannot use that connection, so the actor walks a connection ladder and tells you in the run log what it used:
- Apify Proxy as set in Proxy and connection (the standard pool by default, or the pool you chose). An ordinary page failure (a refused page, an empty or unreadable answer, a timeout) is retried on this same connection with a new session; it never moves the run to a different Apify pool.
- Apify residential proxy, tried only when the first connection is refused at connection time for your account. Apify free plans do not include residential proxies. This connection is billed by Apify to your account as proxy usage.
- A backup residential connection, used only if the residential connection above was seen to open for your account.
- A backup connection as the last resort. It serves an account without residential access, and it also takes over a page whose retries on the first connection all failed; it is not billed to your Apify account.
Your own proxy URLs, or running without a proxy, get no backup connections. A free-plan run was checked by simulating a refused Apify connection: the log shows the warning below, then the backup notice, and the store's products were returned; some pages may still be unavailable on the backup connection.
What you will see in the run log:
- When the residential connection is refused for your account, a boxed warning once: "The selected connection is unavailable to this run. Apify free plans do not include residential proxies. Continuing on a backup connection; some pages may still be unavailable. For residential access, upgrade at https://apify.com/pricing or supply your own proxy URLs."
- When a backup connection serves a request, once: "Served over the backup connection (the default connection was unavailable)."
- If every connection is refused for the whole account, the run ends FAILED with: "The proxy connection was refused for this account, so no page could be read. Your Apify plan does not include proxy access; a paid plan is required: https://apify.com/pricing. If you entered your own proxy URLs, check that their credentials are valid."
- If residential access was refused and the backup loaded nothing either, it ends FAILED with: "No results: residential proxies are unavailable on this run (Apify free plans do not include them), and the backup connection could not load the requested Americanas pages. Upgrade at https://apify.com/pricing or supply your own proxy URLs, then try again."
- Any other run where no page loaded ends FAILED with: "Could not load any results page (the requests failed), so nothing was collected. This is a connection problem, not an empty search. Please try again later."
A run never ends successfully with an empty dataset when the store could not be read.
FAQ
How much does it cost?
You pay per product returned, plus a Detail enrichment charge only for products that used delivery details or customer reviews, charged one unit per product as it is saved to the dataset (so an interrupted run is billed only for what it delivered). The Pricing tab shows the current rates. Use Max products to cap the cost of any run; with Emit expired on, the EXPIRED rows come on top of that cap.
Is it legal to scrape Americanas?
This actor collects only publicly available product data. You are responsible for how you use it: follow Americanas' terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Product listings and prices are generally facts, but images and descriptions may be subject to third-party rights.
Can I get only new or changed products on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated products, and unchanged ones are not billed.
Why is there no country setting?
Americanas is a Brazilian retailer serving Brazil only: every price is in Brazilian reais, and the store's own delivery quote refuses addresses outside Brazil. A country input would be a knob with exactly one working value, so there is none. Use a Brazilian postal code for the delivery lookup.
Why did my run fail instead of returning an empty dataset?
If the store refuses every request, the run stops with a clear message so "no products matched" is never confused with "nothing could be read". Check that Apify Proxy is enabled in the Proxy and connection section, then run it again in a few minutes. If only some departments or links could be read, you still get what was found.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
🔗 Want more e-commerce data?
Pair this actor with these related scrapers from the same team:
| 🔌 Casas Bahia Brazil Electronics & Home Goods Scraper Scrape products from Casas Bahia Brazil by keyword, department, or URL. Filter by brand... | 🛒 Netshoes Brazil Scrape sportswear and footwear from netshoes.com.br. Search by keyword with the store's... |
| 🛒 Drogasil Brazil Pharmacy, Health & Beauty Scraper Scrape Drogasil (drogasil.com.br) medicines, health and beauty products by keyword... | 🧩 Mercado Livre Brazil Scrape Mercado Livre Brazil's best-sellers, category and product-video feeds without... |
| 🏠 QuintoAndar Scraper Scrape QuintoAndar property listings across Brazil with 80+ fields, including rent, sale... | 🛒 Nitori Japan Furniture & Home Goods Scraper Scrape Nitori Japan (nitori-net.jp) furniture and home goods by keyword, category or... |
💬 Support
- 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
- 🛠️ Need another site, extra fields or a private build? Email contact@abotapi.com.
- ⭐ Enjoying it? A quick review on the actor page helps other users find it.