# Mercado Libre Multi-Country Scraper - BR MX AR CL CO PE UY (`viralanalyzer/mercadolibre-multi-country`) Actor

Search and scrape Mercado Libre products, prices, discounts, conditions, categories, shipping, and sellers across 7 LATAM countries.

- **URL**: https://apify.com/viralanalyzer/mercadolibre-multi-country.md
- **Developed by:** [viralanalyzer](https://apify.com/viralanalyzer) (community)
- **Categories:** E-commerce, Marketing
- **Stats:** 6 total users, 4 monthly users, 86.5% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 product scrapeds

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

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Mercado Libre Multi-Country Scraper 🛒 7 LATAM Marketplaces (BR, MX, AR, CL, CO, PE, UY)

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

Scrape product listings from **Mercado Libre / Mercado Livre across 7 Latin American marketplaces** — Brazil, Mexico, Argentina, Chile, Colombia, Peru, and Uruguay — with a single Actor. Pick a `country` and the scraper targets its native domain, locale, and currency automatically. Extract product details, pricing, seller data, shipping info, reviews, and categories. No API key needed.

### ✨ Features

- 🌎 **7 LATAM countries in one Actor** — BR, MX, AR, CL, CO, PE, UY, each on its native Mercado Libre domain
- 💱 **Country-aware currency & locale** — Prices returned in the marketplace's real currency (BRL, MXN, ARS, CLP, COP, PEN, UYU)
- 🛒 **Product search** — Any keyword on the selected country's marketplace
- 💰 **Full pricing** — Price, original price, discount percentage, currency
- 🏪 **Seller data** — Nickname, reputation level, total sales *(requires `includeDetails`)*
- 🚚 **Shipping info** — Free shipping, estimated days, fulfillment type *(requires `includeDetails`)*
- ⭐ **Reviews & categories** — Rating, review count, full category tree *(requires `includeDetails`)*
- ⚡ **Cost/speed toggle** — `includeDetails=false` (default) returns fast search-only data; enable it for deep per-product enrichment
- 🌐 **Geo-aware proxy** — Uses Apify Residential proxy in the target country (Mercado Libre geo-blocks foreign IPs)

### 🌍 Supported Countries

| Code | Marketplace | Domain | Currency |
|------|-------------|--------|----------|
| `BR` | Brazil | mercadolivre.com.br | BRL |
| `MX` | Mexico | mercadolibre.com.mx | MXN |
| `AR` | Argentina | mercadolibre.com.ar | ARS |
| `CL` | Chile | mercadolibre.cl | CLP |
| `CO` | Colombia | mercadolibre.com.co | COP |
| `PE` | Peru | mercadolibre.com.pe | PEN |
| `UY` | Uruguay | mercadolibre.com.uy | UYU |

### 📥 Input

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `country` | string | `"BR"` | Target marketplace: `BR`, `MX`, `AR`, `CL`, `CO`, `PE`, `UY` |
| `searchQuery` | string | *(required)* | Search term (e.g. `"iphone 15"`, `"notebook samsung"`) |
| `maxResults` | integer | `10` | Max products to extract (1–100) |
| `includeDetails` | boolean | `false` | Visit each product page for seller, shipping, full condition & description. Leave `false` for fast, search-only data |
| `proxyConfiguration` | object | Residential | Apify Proxy settings. Residential in the target country is recommended (and applied automatically) |

#### Input Example

```json
{
  "country": "MX",
  "searchQuery": "iphone 15",
  "maxResults": 20,
  "includeDetails": true,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
````

### 📤 Output

Each product produces one object. `currency` always matches the selected country's marketplace. Fields marked *(detail)* are only populated when `includeDetails=true`.

| Field | Type | Description |
|-------|------|-------------|
| `product_id` | string | Mercado Libre product ID (prefix varies by country: MLB, MLM, MLA, MLC, MCO, MPE, MLU) |
| `title` | string | Product title |
| `price` | number | Current price in the marketplace currency |
| `original_price` | number | Original price before discount |
| `discount_pct` | integer | Discount percentage |
| `currency` | string | Marketplace currency (BRL, MXN, ARS, CLP, COP, PEN, UYU) |
| `condition` | string | new / used / refurbished / unknown |
| `seller.nickname` | string | Seller display name *(detail)* |
| `seller.reputation` | string | Seller reputation level *(detail)* |
| `seller.total_sales` | integer | Seller total sales count *(detail)* |
| `shipping.free_shipping` | boolean | Whether shipping is free *(detail)* |
| `shipping.estimated_days` | integer | Estimated delivery days *(detail)* |
| `shipping.type` | string | fulfillment / free / standard *(detail)* |
| `categories` | string\[] | Product category tree *(detail)* |
| `reviews_count` | integer | Number of product reviews *(detail)* |
| `average_rating` | number | Average review rating 1.0–5.0 *(detail)* |
| `url` | string | Product page URL |
| `thumbnail` | string | Product image URL |

#### Output Example

```json
{
  "product_id": "MLM3576810718",
  "title": "iPhone 15 128 GB Negro",
  "price": 17999.00,
  "original_price": 19999.00,
  "discount_pct": 10,
  "currency": "MXN",
  "condition": "new",
  "seller": {
    "nickname": "APPLE STORE MX",
    "reputation": "5_green",
    "total_sales": 85000
  },
  "shipping": {
    "free_shipping": true,
    "estimated_days": 3,
    "type": "fulfillment"
  },
  "categories": ["Celulares y Teléfonos", "Smartphones", "Apple"],
  "reviews_count": 1240,
  "average_rating": 4.7,
  "url": "https://www.mercadolibre.com.mx/p/MLM3576810718",
  "thumbnail": "https://http2.mlstatic.com/D_NQ_NP_..."
}
```

### 💡 Use Cases

- **Cross-Border Price Monitoring** — Compare the same product's price across 7 LATAM markets
- **Regional Market Research** — Analyze demand, categories, and discounts per country
- **Competitor & Seller Analysis** — Track seller reputation and pricing by marketplace
- **Affiliate & Dropshipping Sourcing** — Find top products and sellers in each LATAM niche
- **E-commerce Intelligence** — Monitor shipping options and fulfillment per region

### ❓ FAQ

**Q: How do I scrape a country other than Brazil?**
A: Set `country` to `MX`, `AR`, `CL`, `CO`, `PE`, or `UY`. The Actor switches to that marketplace's domain, locale, and currency automatically.

**Q: Do I need a Mercado Libre API key?**
A: No — the Actor works without any API credentials.

**Q: What proxy should I use?**
A: Apify **Residential** proxy in the target country. Mercado Libre geo-blocks foreign IPs, so the Actor requests `RESIDENTIAL` with the country code automatically.

**Q: What does `includeDetails` do?**
A: When `true`, the Actor visits each product page to add seller, shipping, full condition, categories, and reviews. When `false` (default), it returns faster search-only data.

**Q: Am I charged if a run returns no products?**
A: No. Billing is per `product-scraped`; a run that returns zero products is not charged for results.

### 💰 Pricing

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

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

**Example**: Extracting 100 products costs $3.50. Billed per product regardless of `country`.

### 🔗 Related Actors

- [Mercado Livre BR Scraper](https://apify.com/viralanalyzer/mercadolivre-scraper) — Brazil-only single-marketplace version
- [Amazon Multi-Country Intelligence](https://apify.com/viralanalyzer/amazon-multi-country) — Amazon across multiple marketplaces
- [CNPJ Enricher](https://apify.com/viralanalyzer/cnpj-enricher) — Enrich Brazilian sellers with company data
- [Google Maps BR Scraper](https://apify.com/viralanalyzer/google-maps-br-scraper) — Local business data + reviews

### 📝 Changelog

#### v1.1 (Current)

- LATAM expansion: 7 marketplaces (BR, MX, AR, CL, CO, PE, UY) with native domains, locales, and currencies
- Geo-aware Residential proxy per country
- `includeDetails` toggle for cost/speed control

#### v1.0

- Initial geo-fork of the Brazil Mercado Livre scraper

***

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

## Mercado Libre Multi-País Scraper 🛒 7 Marketplaces da América Latina (BR, MX, AR, CL, CO, PE, UY)

> [🇺🇸 English](#mercado-libre-multi-country-scraper--7-latam-marketplaces-br-mx-ar-cl-co-pe-uy) | 🇧🇷 Português

Extraia listagens de produtos do **Mercado Livre / Mercado Libre em 7 marketplaces da América Latina** — Brasil, México, Argentina, Chile, Colômbia, Peru e Uruguai — com um único Actor. Escolha um `country` e o scraper usa o domínio, idioma e moeda nativos daquele país automaticamente. Extraia detalhes do produto, preços, dados do vendedor, frete, avaliações e categorias. Sem necessidade de API key.

### ✨ Funcionalidades

- 🌎 **7 países LATAM em um Actor** — BR, MX, AR, CL, CO, PE, UY, cada um no seu domínio nativo
- 💱 **Moeda e idioma por país** — Preços na moeda real do marketplace (BRL, MXN, ARS, CLP, COP, PEN, UYU)
- 🛒 **Busca de produtos** — Qualquer termo no marketplace do país escolhido
- 💰 **Preços completos** — Preço, preço original, desconto, moeda
- 🏪 **Dados do vendedor** — Apelido, reputação, total de vendas *(requer `includeDetails`)*
- 🚚 **Info de frete** — Frete grátis, prazo, tipo de envio *(requer `includeDetails`)*
- ⭐ **Avaliações e categorias** — Nota, contagem, árvore de categorias *(requer `includeDetails`)*
- ⚡ **Controle de custo/velocidade** — `includeDetails=false` (padrão) retorna dados rápidos da busca; ative para enriquecimento profundo por produto
- 🌐 **Proxy geo-consciente** — Usa proxy Residencial Apify no país-alvo (o Mercado Libre bloqueia IPs estrangeiros)

### 🌍 Países Suportados

| Código | Marketplace | Domínio | Moeda |
|--------|-------------|---------|-------|
| `BR` | Brasil | mercadolivre.com.br | BRL |
| `MX` | México | mercadolibre.com.mx | MXN |
| `AR` | Argentina | mercadolibre.com.ar | ARS |
| `CL` | Chile | mercadolibre.cl | CLP |
| `CO` | Colômbia | mercadolibre.com.co | COP |
| `PE` | Peru | mercadolibre.com.pe | PEN |
| `UY` | Uruguai | mercadolibre.com.uy | UYU |

### 📥 Entrada

| Parâmetro | Tipo | Padrão | Descrição |
|-----------|------|--------|-----------|
| `country` | string | `"BR"` | Marketplace alvo: `BR`, `MX`, `AR`, `CL`, `CO`, `PE`, `UY` |
| `searchQuery` | string | *(obrigatório)* | Termo de busca (ex: `"iphone 15"`, `"notebook samsung"`) |
| `maxResults` | inteiro | `10` | Máx produtos a extrair (1–100) |
| `includeDetails` | boolean | `false` | Visita cada página de produto para vendedor, frete, condição e descrição completas. Deixe `false` para dados rápidos só da busca |
| `proxyConfiguration` | objeto | Residencial | Configuração de proxy Apify. Residencial no país-alvo é recomendado (e aplicado automaticamente) |

#### Exemplo de Entrada

```json
{
  "country": "MX",
  "searchQuery": "iphone 15",
  "maxResults": 20,
  "includeDetails": true,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

### 📤 Saída

Cada produto produz um objeto. `currency` sempre corresponde ao marketplace do país escolhido. Campos marcados *(detalhe)* só são preenchidos quando `includeDetails=true`.

| Campo | Tipo | Descrição |
|-------|------|-----------|
| `product_id` | string | ID do produto (prefixo varia por país: MLB, MLM, MLA, MLC, MCO, MPE, MLU) |
| `title` | string | Título do produto |
| `price` | número | Preço atual na moeda do marketplace |
| `original_price` | número | Preço original antes do desconto |
| `discount_pct` | inteiro | Porcentagem de desconto |
| `currency` | string | Moeda do marketplace (BRL, MXN, ARS, CLP, COP, PEN, UYU) |
| `condition` | string | new / used / refurbished / unknown |
| `seller.nickname` | string | Nome do vendedor *(detalhe)* |
| `seller.reputation` | string | Nível de reputação *(detalhe)* |
| `seller.total_sales` | inteiro | Total de vendas *(detalhe)* |
| `shipping.free_shipping` | boolean | Se o frete é grátis *(detalhe)* |
| `shipping.estimated_days` | inteiro | Prazo estimado em dias *(detalhe)* |
| `shipping.type` | string | fulfillment / free / standard *(detalhe)* |
| `categories` | string\[] | Árvore de categorias *(detalhe)* |
| `reviews_count` | inteiro | Número de avaliações *(detalhe)* |
| `average_rating` | número | Nota média 1.0–5.0 *(detalhe)* |
| `url` | string | URL da página do produto |
| `thumbnail` | string | URL da imagem |

### 💡 Casos de Uso

- **Monitoramento de Preço Transfronteiriço** — Compare o preço do mesmo produto em 7 mercados LATAM
- **Pesquisa de Mercado Regional** — Analise demanda, categorias e descontos por país
- **Análise de Concorrência e Vendedores** — Acompanhe reputação e preços por marketplace
- **Sourcing para Afiliados e Dropshipping** — Encontre produtos e vendedores top em cada nicho LATAM
- **Inteligência de E-commerce** — Monitore opções de frete e fulfillment por região

### ❓ Perguntas Frequentes

**P: Como extraio um país diferente do Brasil?**
R: Defina `country` como `MX`, `AR`, `CL`, `CO`, `PE` ou `UY`. O Actor muda para o domínio, idioma e moeda daquele marketplace automaticamente.

**P: Preciso de API key do Mercado Libre?**
R: Não — o Actor funciona sem nenhuma credencial de API.

**P: Qual proxy devo usar?**
R: Proxy **Residencial** Apify no país-alvo. O Mercado Libre bloqueia IPs estrangeiros, então o Actor solicita `RESIDENTIAL` com o código do país automaticamente.

**P: O que faz o `includeDetails`?**
R: Quando `true`, o Actor visita cada página de produto para adicionar vendedor, frete, condição completa, categorias e avaliações. Quando `false` (padrão), retorna dados mais rápidos só da busca.

**P: Sou cobrado se a execução não retornar produtos?**
R: Não. A cobrança é por `product-scraped`; execução com zero produtos não é cobrada por resultados.

### 💰 Preços

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

| Métrica | Custo |
|---------|-------|
| `product-scraped` | $0.035 por produto |

**Exemplo**: Extrair 100 produtos custa $3.50. Cobrado por produto, independente do `country`.

### 🔗 Actors Relacionados

- [Mercado Livre BR Scraper](https://apify.com/viralanalyzer/mercadolivre-scraper) — Versão só Brasil (marketplace único)
- [Amazon Multi-Country Intelligence](https://apify.com/viralanalyzer/amazon-multi-country) — Amazon em múltiplos marketplaces
- [CNPJ Enricher](https://apify.com/viralanalyzer/cnpj-enricher) — Enriqueça vendedores brasileiros com dados empresariais
- [Google Maps BR Scraper](https://apify.com/viralanalyzer/google-maps-br-scraper) — Dados de empresas locais + avaliações

### 📝 Histórico de Versões

#### v1.1 (Atual)

- Expansão LATAM: 7 marketplaces (BR, MX, AR, CL, CO, PE, UY) com domínios, idiomas e moedas nativos
- Proxy Residencial geo-consciente por país
- Toggle `includeDetails` para controle de custo/velocidade

#### v1.0

- Geo-fork inicial do scraper Mercado Livre Brasil

# Actor input Schema

## `country` (type: `string`):

Target Mercado Libre country marketplace. Each country has its own domain (mercadolivre.com.br, mercadolibre.com.mx, etc).

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

Search term (e.g. 'iphone 15', 'notebook samsung')

## `maxResults` (type: `integer`):

Maximum products to extract (default: 10)

## `includeDetails` (type: `boolean`):

Visit each product page to extract seller, full condition, shipping details, description. DISABLE to reduce cost ~70% (skip Phase 2 Playwright detail pages).

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

Proxy settings. Recommended: Apify Proxy with Residential groups.

## Actor input object example

```json
{
  "country": "BR",
  "searchQuery": "iphone",
  "maxResults": 3,
  "includeDetails": 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 = {
    "country": "BR",
    "searchQuery": "iphone",
    "maxResults": 3,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("viralanalyzer/mercadolibre-multi-country").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 = {
    "country": "BR",
    "searchQuery": "iphone",
    "maxResults": 3,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("viralanalyzer/mercadolibre-multi-country").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "country": "BR",
  "searchQuery": "iphone",
  "maxResults": 3,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call viralanalyzer/mercadolibre-multi-country --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=viralanalyzer/mercadolibre-multi-country",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Mercado Libre Multi-Country Scraper - BR MX AR CL CO PE UY",
        "description": "Search and scrape Mercado Libre products, prices, discounts, conditions, categories, shipping, and sellers across 7 LATAM countries.",
        "version": "1.2",
        "x-build-id": "JR89iFdypKTw6diEq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/viralanalyzer~mercadolibre-multi-country/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-viralanalyzer-mercadolibre-multi-country",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/viralanalyzer~mercadolibre-multi-country/runs": {
            "post": {
                "operationId": "runs-sync-viralanalyzer-mercadolibre-multi-country",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/viralanalyzer~mercadolibre-multi-country/run-sync": {
            "post": {
                "operationId": "run-sync-viralanalyzer-mercadolibre-multi-country",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "searchQuery"
                ],
                "properties": {
                    "country": {
                        "title": "Country (Mercado Libre marketplace)",
                        "enum": [
                            "BR",
                            "MX",
                            "AR",
                            "CL",
                            "CO",
                            "PE",
                            "UY"
                        ],
                        "type": "string",
                        "description": "Target Mercado Libre country marketplace. Each country has its own domain (mercadolivre.com.br, mercadolibre.com.mx, etc).",
                        "default": "BR"
                    },
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search term (e.g. 'iphone 15', 'notebook samsung')"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum products to extract (default: 10)",
                        "default": 10
                    },
                    "includeDetails": {
                        "title": "Include Detail Page Enrichment",
                        "type": "boolean",
                        "description": "Visit each product page to extract seller, full condition, shipping details, description. DISABLE to reduce cost ~70% (skip Phase 2 Playwright detail pages).",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Recommended: Apify Proxy with Residential groups.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
