# Amazon Brazil Scraper — Anti-Block: Products & Prices (`viralanalyzer/amazon-brazil-intelligence`) Actor

Extract Amazon Brazil data: products, prices, reviews, BSR rankings, seller info.

- **URL**: https://apify.com/viralanalyzer/amazon-brazil-intelligence.md
- **Developed by:** [viralanalyzer](https://apify.com/viralanalyzer) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 55 total users, 6 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $5.00 / 1,000 product scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🛒 Amazon Brazil Intelligence — Products, Prices, Reviews & AI Analysis

> 🔗 [View on Apify Store](https://apify.com/viralanalyzer/amazon-brazil-intelligence) | 🇺🇸 English | [🇧🇷 Português](#português)

Scrape **Amazon.com.br products** with prices, ratings, reviews, seller data, and optional AI-powered market analysis. Search by keyword or provide direct product URLs. Extract detailed product information including Prime status, discounts, brand, categories, technical specifications, best seller rank, and customer reviews with sentiment analysis.

### ✨ Features

- **Product search** — Search any keyword on Amazon.com.br with pagination
- **Direct URL scraping** — Scrape specific product pages by ASIN or URL
- **Price intelligence** — Current price, original price, discount percentage, Prime status
- **Review extraction** — Customer reviews with ratings, dates, verified purchase badge, helpful votes
- **Product details** — Brand, categories, features, technical specifications, best seller rank
- **AI market analysis** — Optional Gemini-powered competitive analysis with pricing insights
- **Sorting & filtering** — Sort by relevance, price, rating, or newest; filter by price range, Prime and category breadcrumb
- **CAPTCHA handling** — Detects Amazon CAPTCHA pages and rotates sessions
- **Residential proxy** — Built-in proxy support with Brazil country targeting
- **Review sentiment** — Automatic sentiment classification (positive/mixed/negative) from review ratings

### 📥 Input

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `searchQuery` | string | Yes\* | — | Product search term (e.g. "iPhone 15", "fone bluetooth") |
| `productUrls` | string\[] | Yes\* | `[]` | Direct Amazon.com.br product URLs to scrape |
| `category` | string | No | `""` | Keeps only products whose **category breadcrumb** contains this text (case- and accent-insensitive substring). Empty = keep all. See [Category filter](#category-filter) |
| `maxProducts` | integer | No | 50 | Maximum number of products **scraped** (1-500). It is applied *before* the category filter, so with a `category` set you will usually receive fewer than this |
| `includeReviews` | boolean | No | false | Scrape customer reviews for each product |
| `maxReviewsPerProduct` | integer | No | 10 | Maximum reviews per product (1-100) |
| `sortBy` | string | No | `"relevance"` | Sort: `relevance`, `price-asc`, `price-desc`, `rating`, `newest` |
| `minPrice` | number | No | 0 | Minimum price filter (R$) |
| `maxPrice` | number | No | 0 | Maximum price filter (R$, 0 = no limit) |
| `primeOnly` | boolean | No | false | Only return Prime-eligible products |
| `includeAiAnalysis` | boolean | No | false | AI-powered market analysis (requires GEMINI\_API\_KEY) |
| `proxyConfiguration` | object | No | Residential BR | Proxy settings for Amazon scraping |

\*Either `searchQuery` or `productUrls` is required.

<a name="category-filter"></a>

#### Category filter

Amazon BR is searched by keyword, not by category node, so `category` is applied **after** scraping, against the `categories` breadcrumb read from each product page:

- **Match rule** — a product is kept when **any** breadcrumb entry contains your text as a substring, ignoring case and accents. `eletronicos` matches `Eletrônicos`; `fone` matches `Fones de Ouvido`.
- **No breadcrumb, no match** — if a product detail page could not be read (block, CAPTCHA, timeout), the product has no breadcrumb and is discarded: we do not claim a category we could not verify.
- **You are not billed for discarded products** — filtering runs before the dataset is written and before any charge, so only the products you receive are counted.
- **Nothing matched?** The run ends `SUCCEEDED` with a single diagnostic item explaining how many products were scraped and dropped, and **no charge is made**. Broaden the term or leave `category` empty.

#### Input Example

```json
{
  "searchQuery": "fone bluetooth",
  "maxProducts": 50,
  "includeReviews": true,
  "maxReviewsPerProduct": 10,
  "sortBy": "relevance",
  "primeOnly": false
}
```

### 📤 Output

| Field | Type | Description |
|---|---|---|
| `id` | string | Internal unique ID |
| `asin` | string | Amazon Standard Identification Number |
| `title` | string | Product title |
| `url` | string | Product page URL |
| `price` | number | Current price in BRL |
| `originalPrice` | number | Original price before discount |
| `discount` | number | Discount percentage (0-100) |
| `currency` | string | Always `"BRL"` |
| `rating` | number | Average customer rating (0-5) |
| `reviewCount` | number | Total number of reviews |
| `mainImage` | string | Main product image URL |
| `images` | string\[] | All product image URLs (up to 8) |
| `isPrime` | boolean | Whether the product has Prime delivery |
| `seller` | string | Seller name |
| `brand` | string | Product brand |
| `categories` | string\[] | Product category breadcrumb |
| `features` | string\[] | Product feature bullet points (up to 10) |
| `description` | string | Product description (up to 1000 chars) |
| `techDetails` | object | Technical specifications key-value pairs |
| `availability` | string | Stock availability status |
| `isAvailable` | boolean | Whether the product is in stock |
| `delivery` | string | Delivery estimate text |
| `bestSellerRank` | number | Best seller rank in category |
| `isSponsored` | boolean | Whether the listing is sponsored |
| `coupon` | string | Available coupon text |
| `reviews` | object\[] | Customer reviews (if `includeReviews` is true) |
| `reviewSentiment` | string | Overall review sentiment: `positive`, `mixed`, or `negative` |
| `scrapedAt` | string | ISO 8601 scrape timestamp |

#### Output Example

```json
{
  "id": "amz_1709225400_abc123",
  "asin": "B0BTYCRJSS",
  "title": "soundcore P20i da Anker, Fone de Ouvido Bluetooth 5.3",
  "url": "https://www.amazon.com.br/dp/B0BTYCRJSS",
  "price": 166.19,
  "originalPrice": 219.99,
  "discount": 24,
  "currency": "BRL",
  "rating": 4.5,
  "reviewCount": 12847,
  "mainImage": "https://m.media-amazon.com/images/I/61example.jpg",
  "images": ["https://m.media-amazon.com/images/I/61example.jpg"],
  "isPrime": true,
  "seller": "Anker Official",
  "brand": "Anker",
  "categories": ["Eletrônicos", "Fones de Ouvido"],
  "features": ["Bluetooth 5.3 para conexão estável", "30 horas de reprodução"],
  "description": "Fone de ouvido sem fio com drivers de 10mm...",
  "techDetails": {"Peso": "52g", "Conectividade": "Bluetooth 5.3"},
  "availability": "Em estoque",
  "isAvailable": true,
  "delivery": "Entrega em 3-5 dias úteis",
  "bestSellerRank": 15,
  "isSponsored": false,
  "coupon": null,
  "reviewSentiment": "positive",
  "scrapedAt": "2026-03-06T12:00:00.000Z"
}
```

### 📋 Use Cases

- **E-commerce Intelligence** — Monitor competitor pricing on Amazon Brazil
- **Product Research** — Find bestsellers and trending products in the Brazilian market
- **Price Monitoring** — Track price changes over time with scheduled runs
- **Review Analysis** — Understand customer sentiment for any product category
- **Market Entry** — Research the Brazilian Amazon marketplace before launching products
- **Dropshipping Research** — Find high-demand, well-reviewed products
- **Brand Monitoring** — Track your brand's products, reviews, and competitive positioning
- **Competitive Analysis** — AI-powered market intelligence with pricing trends and recommendations

### ✅ Capabilities & Limits

Stated up front, so you do not pay a run to find out.

**Built here:** review collection stops at 5 review pages per ASIN - about 50 reviews - even though the schema accepts `maxReviewsPerProduct` up to 100. Pages are requested with `?sortBy=recent`, so the sample is the newest reviews, not the "most helpful" ones Amazon shows by default.

| Input / feature | Supported | Notes |
|---|---|---|
| Search term | ✅ | `searchQuery` (e.g. `notebook gamer`) |
| Direct product URLs | ✅ | `productUrls` as an alternative to searching |
| Marketplace scope | ⚠️ | **Amazon.com.br only** — for other marketplaces use `amazon-multi-country` or `amazon-us-intelligence` |
| Customer reviews | ✅ | `includeReviews` with `maxReviewsPerProduct` — slower, more data |
| Price and Prime filters | ✅ | `minPrice`, `maxPrice`, `primeOnly`, `sortBy` |
| Category filter | ⚠️ | `category` matches the product breadcrumb **after** scraping (Amazon BR is searched by keyword, not by category node) — products whose detail page could not be read are discarded and not charged |
| AI pricing / sentiment analysis | ⚠️ | `includeAiAnalysis` requires **your own** `GEMINI_API_KEY` |
| Sales volume / units sold | ❌ | Amazon does not publish it |
| Buy Box and stock | ⚠️ | captured at run time; both change through the day |
| Proxy | ⚠️ | recommended — Amazon blocks datacenter IPs aggressively |

### ❓ FAQ

**Q: Do I need an Amazon account?**
A: No. The actor scrapes publicly available product data from Amazon.com.br without any authentication.

**Q: How does the AI analysis work?**
A: When `includeAiAnalysis` is enabled and a `GEMINI_API_KEY` environment variable is set, the actor sends a summary of scraped products to Google Gemini for pricing trend analysis, best value recommendations, and competitive insights.

**Q: Why do some products have no price?**
A: Some products may have unavailable pricing (e.g. "See price in cart" or out-of-stock items). The actor reports `null` for these fields rather than guessing.

**Q: Can I scrape specific product pages?**
A: Yes. Use `productUrls` with direct Amazon.com.br product URLs. The actor extracts the ASIN and fetches full product details.

**Q: Does it handle Amazon's anti-bot protection?**
A: The actor uses residential proxies (Brazil-targeted), session rotation, and CAPTCHA detection with automatic retry. For best results, use Apify residential proxy.

### 💰 Pricing

This actor uses **Pay Per Event (PPE)** pricing:

| Metric | Cost |
|--------|------|
| `product-scraped` | $0.008 per product |

**Examples**: 50 products = **$0.40** · 500 products = **$4.00** · 1,000 products = **$8.00**.

### 🔗 Related Actors

- [Website Change Monitor](https://apify.com/viralanalyzer/website-change-monitor) — Track price changes on any website
- [Google Maps BR Scraper](https://apify.com/viralanalyzer/google-maps-br-scraper) — Brazilian business data
- [CNPJ Enricher](https://apify.com/viralanalyzer/cnpj-enricher) — Brazilian company data enrichment
- [Reclame Aqui Scraper](https://apify.com/viralanalyzer/reclameaqui-scraper) — Consumer complaints & ratings

### 📝 Changelog

#### v1.0 (Current)

- Product search with pagination on Amazon.com.br
- Direct product URL scraping by ASIN
- Full product details: price, rating, reviews, brand, categories, features, specs
- Customer review extraction with sentiment analysis
- AI market analysis via Google Gemini
- Sorting (relevance, price, rating, newest) and filtering (price range, Prime)
- Category filter applied to the product breadcrumb, before delivery and before charging
- CAPTCHA detection with session rotation
- Residential proxy support (Brazil-targeted)
- PPE charging per product scraped

***

<a name="português"></a>

## 🛒 Amazon Brazil Intelligence — Produtos, Preços, Avaliações & Análise IA

> 🔗 [View on Apify Store](https://apify.com/viralanalyzer/amazon-brazil-intelligence) | [🇺🇸 English](#-amazon-brazil-intelligence--products-prices-reviews--ai-analysis) | 🇧🇷 Português

Extraia **produtos da Amazon.com.br** com preços, avaliações, dados de vendedores e análise de mercado opcional via IA. Busque por palavra-chave ou forneça URLs diretas de produtos. Extraia informações detalhadas incluindo status Prime, descontos, marca, categorias, especificações técnicas, ranking de mais vendidos e avaliações de clientes com análise de sentimento.

### ✨ Funcionalidades

- **Busca de produtos** — Pesquise qualquer palavra-chave na Amazon.com.br com paginação
- **Scraping por URL direta** — Extraia páginas de produtos específicos por ASIN ou URL
- **Inteligência de preços** — Preço atual, preço original, percentual de desconto, status Prime
- **Extração de avaliações** — Avaliações de clientes com notas, datas, selo de compra verificada, votos úteis
- **Detalhes do produto** — Marca, categorias, características, especificações técnicas, ranking de mais vendidos
- **Análise de mercado com IA** — Análise competitiva opcional via Gemini com insights de preços
- **Ordenação e filtros** — Ordene por relevância, preço, avaliação ou mais recente; filtre por faixa de preço, Prime e breadcrumb de categoria
- **Tratamento de CAPTCHA** — Detecta páginas de CAPTCHA da Amazon e rotaciona sessões
- **Proxy residencial** — Suporte integrado a proxy com direcionamento para Brasil
- **Sentimento de avaliações** — Classificação automática de sentimento (positivo/misto/negativo) baseada nas notas

### 📥 Entrada

| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
| `searchQuery` | string | Sim\* | — | Termo de busca (ex: "iPhone 15", "fone bluetooth") |
| `productUrls` | string\[] | Sim\* | `[]` | URLs diretas de produtos da Amazon.com.br |
| `category` | string | Não | `""` | Mantém apenas produtos cujo **breadcrumb de categoria** contém este texto (substring sem distinção de maiúsculas/acentos). Vazio = mantém todos. Ver [Filtro de categoria](#filtro-de-categoria) |
| `maxProducts` | inteiro | Não | 50 | Máximo de produtos **coletados** (1-500). É aplicado *antes* do filtro de categoria, então com `category` preenchido você normalmente recebe menos do que isso |
| `includeReviews` | boolean | Não | false | Extrair avaliações de clientes |
| `maxReviewsPerProduct` | inteiro | Não | 10 | Máximo de avaliações por produto (1-100) |
| `sortBy` | string | Não | `"relevance"` | Ordenação: `relevance`, `price-asc`, `price-desc`, `rating`, `newest` |
| `minPrice` | número | Não | 0 | Filtro de preço mínimo (R$) |
| `maxPrice` | número | Não | 0 | Filtro de preço máximo (R$, 0 = sem limite) |
| `primeOnly` | boolean | Não | false | Apenas produtos com Prime |
| `includeAiAnalysis` | boolean | Não | false | Análise de mercado via IA (requer GEMINI\_API\_KEY) |
| `proxyConfiguration` | objeto | Não | Residencial BR | Configuração de proxy para scraping da Amazon |

\*`searchQuery` ou `productUrls` é obrigatório.

<a name="filtro-de-categoria"></a>

#### Filtro de categoria

A busca na Amazon BR é por palavra-chave, não por nó de categoria, então o `category` é aplicado **depois** da extração, sobre o breadcrumb `categories` lido na página de cada produto:

- **Regra de match** — o produto é mantido quando **qualquer** entrada do breadcrumb contém o seu texto como substring, ignorando maiúsculas e acentos. `eletronicos` casa com `Eletrônicos`; `fone` casa com `Fones de Ouvido`.
- **Sem breadcrumb, sem match** — se a página de detalhe não pôde ser lida (bloqueio, CAPTCHA, timeout), o produto fica sem breadcrumb e é descartado: não afirmamos uma categoria que não conseguimos verificar.
- **Você não paga pelos produtos descartados** — o filtro roda antes de gravar o dataset e antes de qualquer cobrança, então só conta o que você recebe.
- **Nada casou?** O run termina `SUCCEEDED` com um único item de diagnóstico informando quantos produtos foram extraídos e descartados, e **nenhuma cobrança é feita**. Use um termo mais amplo ou deixe `category` vazio.

#### Exemplo de Entrada

```json
{
  "searchQuery": "fone bluetooth",
  "maxProducts": 50,
  "includeReviews": true,
  "maxReviewsPerProduct": 10,
  "sortBy": "relevance",
  "primeOnly": false
}
```

### 📤 Saída

| Campo | Tipo | Descrição |
|---|---|---|
| `id` | string | ID único interno |
| `asin` | string | Amazon Standard Identification Number |
| `title` | string | Título do produto |
| `url` | string | URL da página do produto |
| `price` | número | Preço atual em BRL |
| `originalPrice` | número | Preço original antes do desconto |
| `discount` | número | Percentual de desconto (0-100) |
| `currency` | string | Sempre `"BRL"` |
| `rating` | número | Avaliação média dos clientes (0-5) |
| `reviewCount` | número | Número total de avaliações |
| `mainImage` | string | URL da imagem principal do produto |
| `images` | string\[] | Todas as URLs de imagens do produto (até 8) |
| `isPrime` | boolean | Se o produto tem entrega Prime |
| `seller` | string | Nome do vendedor |
| `brand` | string | Marca do produto |
| `categories` | string\[] | Categorias do produto (breadcrumb) |
| `features` | string\[] | Características do produto em tópicos (até 10) |
| `description` | string | Descrição do produto (até 1000 caracteres) |
| `techDetails` | objeto | Especificações técnicas em pares chave-valor |
| `availability` | string | Status de disponibilidade em estoque |
| `isAvailable` | boolean | Se o produto está disponível |
| `delivery` | string | Texto de estimativa de entrega |
| `bestSellerRank` | número | Ranking de mais vendidos na categoria |
| `isSponsored` | boolean | Se o anúncio é patrocinado |
| `coupon` | string | Texto do cupom disponível |
| `reviews` | objeto\[] | Avaliações de clientes (se `includeReviews` estiver ativo) |
| `reviewSentiment` | string | Sentimento geral: `positive`, `mixed` ou `negative` |
| `scrapedAt` | string | Timestamp ISO 8601 da coleta |

#### Exemplo de Saída

```json
{
  "id": "amz_1709225400_abc123",
  "asin": "B0BTYCRJSS",
  "title": "soundcore P20i da Anker, Fone de Ouvido Bluetooth 5.3",
  "url": "https://www.amazon.com.br/dp/B0BTYCRJSS",
  "price": 166.19,
  "originalPrice": 219.99,
  "discount": 24,
  "currency": "BRL",
  "rating": 4.5,
  "reviewCount": 12847,
  "mainImage": "https://m.media-amazon.com/images/I/61example.jpg",
  "images": ["https://m.media-amazon.com/images/I/61example.jpg"],
  "isPrime": true,
  "seller": "Anker Official",
  "brand": "Anker",
  "categories": ["Eletrônicos", "Fones de Ouvido"],
  "features": ["Bluetooth 5.3 para conexão estável", "30 horas de reprodução"],
  "description": "Fone de ouvido sem fio com drivers de 10mm...",
  "techDetails": {"Peso": "52g", "Conectividade": "Bluetooth 5.3"},
  "availability": "Em estoque",
  "isAvailable": true,
  "delivery": "Entrega em 3-5 dias úteis",
  "bestSellerRank": 15,
  "isSponsored": false,
  "coupon": null,
  "reviewSentiment": "positive",
  "scrapedAt": "2026-03-06T12:00:00.000Z"
}
```

### 📋 Casos de Uso

- **Inteligência E-commerce** — Monitore preços de concorrentes na Amazon Brasil
- **Pesquisa de Produtos** — Encontre bestsellers e produtos em tendência no mercado brasileiro
- **Monitoramento de Preços** — Acompanhe mudanças de preços ao longo do tempo com execuções agendadas
- **Análise de Avaliações** — Entenda o sentimento dos clientes por categoria de produto
- **Entrada no Mercado** — Pesquise o marketplace da Amazon Brasil antes de lançar produtos
- **Pesquisa de Dropshipping** — Encontre produtos com alta demanda e boas avaliações
- **Monitoramento de Marca** — Acompanhe seus produtos, avaliações e posicionamento competitivo
- **Análise Competitiva** — Inteligência de mercado via IA com tendências de preços e recomendações

### ❓ Perguntas Frequentes

**P: Preciso de uma conta da Amazon?**
R: Não. O actor extrai dados de produtos disponíveis publicamente na Amazon.com.br sem nenhuma autenticação.

**P: Como funciona a análise com IA?**
R: Quando `includeAiAnalysis` está habilitado e a variável de ambiente `GEMINI_API_KEY` está configurada, o actor envia um resumo dos produtos extraídos para o Google Gemini para análise de tendências de preços, recomendações de melhor custo-benefício e insights competitivos.

**P: Por que alguns produtos não têm preço?**
R: Alguns produtos podem ter preço indisponível (ex: "Veja o preço no carrinho" ou itens fora de estoque). O actor reporta `null` nesses campos ao invés de adivinhar.

**P: Posso extrair páginas de produtos específicos?**
R: Sim. Use `productUrls` com URLs diretas de produtos da Amazon.com.br. O actor extrai o ASIN e busca os detalhes completos do produto.

**P: Ele lida com a proteção anti-bot da Amazon?**
R: O actor usa proxies residenciais (direcionados para Brasil), rotação de sessão e detecção de CAPTCHA com retry automático. Para melhores resultados, use o proxy residencial do Apify.

### 💰 Preços

Este actor usa precificação **Pay Per Event (PPE)**:

| Métrica | Custo |
|---------|-------|
| `product-scraped` | $0.008 por produto extraído |

**Exemplos**: 50 produtos = **$0.40** · 500 produtos = **$4.00** · 1.000 produtos = **$8.00**.

### 🔗 Actors Relacionados

- [Website Change Monitor](https://apify.com/viralanalyzer/website-change-monitor) — Monitore mudanças de preço em qualquer site
- [Google Maps BR Scraper](https://apify.com/viralanalyzer/google-maps-br-scraper) — Dados de empresas brasileiras
- [CNPJ Enricher](https://apify.com/viralanalyzer/cnpj-enricher) — Enriquecimento de dados empresariais
- [Reclame Aqui Scraper](https://apify.com/viralanalyzer/reclameaqui-scraper) — Reclamações e avaliações de consumidores

### 📝 Changelog

#### v1.0 (Atual)

- Busca de produtos com paginação na Amazon.com.br
- Scraping de URLs diretas de produtos por ASIN
- Detalhes completos: preço, avaliação, reviews, marca, categorias, características, especificações
- Extração de avaliações de clientes com análise de sentimento
- Análise de mercado via Google Gemini
- Ordenação (relevância, preço, avaliação, mais recente) e filtros (faixa de preço, Prime)
- Filtro de categoria aplicado sobre o breadcrumb do produto, antes da entrega e antes da cobrança
- Detecção de CAPTCHA com rotação de sessão
- Suporte a proxy residencial (direcionado para Brasil)
- Cobrança PPE por produto extraído

# Actor input Schema

## `searchQuery` (type: `string`):

Product search term (e.g., 'iPhone 15', 'fone bluetooth', 'notebook gamer')

## `productUrls` (type: `array`):

Direct Amazon.com.br product URLs to scrape (alternative to search)

## `category` (type: `string`):

Optional. Keeps only products whose category breadcrumb contains this text (case- and accent-insensitive substring, e.g. 'eletronicos' matches 'Eletrônicos'). Filtering happens in memory before delivery, so discarded products are never charged. Products whose detail page could not be read have no breadcrumb and are discarded. Leave empty to keep every product.

## `maxProducts` (type: `integer`):

Maximum number of products to scrape

## `includeReviews` (type: `boolean`):

Scrape customer reviews for each product (slower but more data)

## `maxReviewsPerProduct` (type: `integer`):

Maximum reviews to scrape per product (if includeReviews is true)

## `sortBy` (type: `string`):

How to sort search results

## `minPrice` (type: `number`):

Filter products above this price

## `maxPrice` (type: `number`):

Filter products below this price (0 = no limit)

## `primeOnly` (type: `boolean`):

Only return products with Amazon Prime delivery

## `includeAiAnalysis` (type: `boolean`):

AI-powered pricing and sentiment analysis (requires GEMINI\_API\_KEY)

## `proxyConfiguration` (type: `object`):

Proxy settings — recommended for Amazon scraping

## Actor input object example

```json
{
  "searchQuery": "fone bluetooth",
  "productUrls": [],
  "category": "Eletrônicos",
  "maxProducts": 5,
  "includeReviews": false,
  "maxReviewsPerProduct": 10,
  "sortBy": "relevance",
  "minPrice": 0,
  "maxPrice": 0,
  "primeOnly": false,
  "includeAiAnalysis": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing all scraped results. Each item follows the dataset schema.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQuery": "fone bluetooth",
    "maxProducts": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("viralanalyzer/amazon-brazil-intelligence").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQuery": "fone bluetooth",
    "maxProducts": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("viralanalyzer/amazon-brazil-intelligence").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "fone bluetooth",
  "maxProducts": 5
}' |
apify call viralanalyzer/amazon-brazil-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,viralanalyzer/amazon-brazil-intelligence"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/mjK4efrRoC8hEqgQ1/builds/g9gmTF9f6BPCPx4MW/openapi.json
