# MercadoLibre Scraper (`parsebird/mercadolibre-scraper`) Actor

Scrape MercadoLibre products, reviews, buyer Q\&A, and sellers across 9 LATAM marketplaces. One actor replaces Search, Product, Reviews, and Seller scrapers.

- **URL**: https://apify.com/parsebird/mercadolibre-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

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 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

### MercadoLibre Scraper

Extract product data, buyer reviews, Q\&A, and seller storefront profiles from **MercadoLibre** — the largest e-commerce marketplace in Latin America — across all 9 country sites, no coding required.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Pull a MercadoLibre product's full spec sheet, buyer Q&A, and top reviews in one call, mine every review across 9 marketplaces with a deep rating/sort sweep, or fetch a seller's storefront profile — followers, brand info, and corridor menu included.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Use the Apify actor "parsebird/mercadolibre-scraper" (call it via ApifyClient: client.actor("parsebird/mercadolibre-scraper").call(run_input={...})). It has three modes selected via the "mode" input field: "reviews" (default) returns paginated buyer reviews for one or more "productUrls" across MercadoLibre's 9 LATAM sites, using a deep-sweep strategy across rating and sort buckets to recover up to ~950 reviews per product; "product" returns full product-detail fields for "productUrls" — title, brand, price, installments, currency, availability, condition, sku, rating, seller (id/name/reputation/power status/official store), up to 50+ attributes, breadcrumbs, variations, up to 20 buyer Q&A pairs, and the top 5 reviews; "seller" returns one storefront-profile row per "sellerUrls" (must be a /tienda/, /loja/, or /pagina/ URL) with followers, brand info, banner, corridor menu, and compliance flags. Other key inputs: "country" (MX/AR/BR/EC/DO/CL/CO/PE/UY, default MX), "maxItems" (default 50), "reviewRating" (default "all"), "reviewOrder" (default "relevance"), "includeReviews"/"includeQuestions"/"includeVariations" (product mode, default true). Output is pushed to the default dataset — one row per review/product/seller. Full input/output schema and examples: https://apify.com/parsebird/mercadolibre-scraper/input-schema and https://apify.com/parsebird/mercadolibre-scraper/api. Get your API token at https://console.apify.com/settings/integrations.
```

### What does MercadoLibre Scraper do?

MercadoLibre Scraper is a MercadoLibre data extraction tool covering three focused modes in one actor:

- 🛒 **Product mode** — full PDP data: title, brand, price, original price and discount %, installments, currency, availability, condition, SKU, rating and review counts, seller identity and reputation, official-store flag, 50+ product attributes, category breadcrumbs, color/size/storage variations, up to 20 buyer questions with seller answers, and the top 5 reviews.
- ⭐ **Reviews mode** — full paginated buyer reviews for one or more products. When the rating filter is left at "all", the actor runs a deep sweep — 12 concurrent queries across every star rating and both sort orders — to recover far more unique reviews than a single query can (MeLi caps a single query at ~300 offset / ~330 reviews; the deep sweep can recover up to ~950 on a popular product).
- 🏪 **Seller mode** — one storefront-profile row per seller: follower count, creation date, tags, banner and logo URLs, free-trial dates, brand registry info, official-store status, and the full corridor/category menu.
- 🌎 **All 9 LATAM marketplaces** — Mexico, Argentina, Brazil, Chile, Colombia, Peru, Uruguay, Ecuador, and the Dominican Republic, selected with a single `country` input.
- ⚡ Runs on the [Apify platform](https://apify.com): schedule recurring runs, trigger via API or webhook, and export results as JSON, CSV, or Excel.

Q\&A extraction and the multi-bucket review-recovery strategy make this actor useful for use cases most MercadoLibre scrapers don't cover well — pulling buyer-seller conversations and maximizing review coverage on popular products.

### What data can you extract from MercadoLibre?

| Field | Description |
|---|---|
| `title`, `brand`, `sku` | Product identity |
| `price`, `originalPrice`, `discountPercentage`, `currency` | Pricing |
| `installments` | Interest-free installment plan (quantity, per-payment amount, total) |
| `availability`, `condition` | Stock status and item condition |
| `rating`, `ratingCount`, `reviewCount` | Aggregate rating data |
| `sellerId`, `sellerName`, `sellerReputation`, `sellerPowerStatus`, `isOfficialStore` | Seller identity and reputation |
| `attributes` | Product specs (RAM, dimensions, color, model, and 50+ more, varies by category) |
| `variations` | Color/size/storage options, when the listing has them |
| `questions` | Buyer questions with seller answers (up to 20 per product) |
| `reviews` | Top 5 reviews (product mode) or full paginated review text, rating, date, likes, and media (reviews mode) |
| `totalFollowers`, `bannerUrl`, `menuCorridors`, `freeTrialStart/End` | Seller storefront profile (seller mode) |

See the [Output tab](https://apify.com/parsebird/mercadolibre-scraper/output-schema) for the complete field list per mode.

### How to scrape MercadoLibre with this actor

1. Open the actor's [Input tab](https://apify.com/parsebird/mercadolibre-scraper/input-schema) in Apify Console, or use the API.
2. Pick a **Mode**: `reviews` to mine buyer reviews, `product` for full product-page data, or `seller` for a storefront profile.
3. Paste one or more MercadoLibre URLs into **Product URLs** (reviews/product mode) or **Seller URLs** (seller mode). Pasting into **Start URLs** also works — the mode and country are auto-detected from the URL.
4. Pick the **Country** matching the marketplace, set **Max Items**, and click **Start**.
5. Download results as JSON, CSV, or Excel from the Dataset tab, or pull them via the [API](https://apify.com/parsebird/mercadolibre-scraper/api) / [Integrations](https://docs.apify.com/platform/integrations) (Zapier, Make, Google Sheets, and more).

### Output example

Reviews mode, one row per review:

```json
{
  "mode": "reviews",
  "country": "MX",
  "productId": "MLM27172669",
  "catalogProductId": "MLM27172678",
  "reviewId": 803375213,
  "reviewRating": 5,
  "reviewText": "Producto chino pero 100% original...",
  "reviewDate": "2023-11-21T16:00:16Z",
  "reviewDateText": "Hace más de 1 año",
  "reviewCountry": "México",
  "reviewLikes": 2537,
  "reviewMedia": ["https://http2.mlstatic.com/D_NQ_NP_698307-MLA72919050762_112023-F.jpg"],
  "scrapedAt": "2026-08-16T07:08:12.148Z"
}
```

Product mode, one row per product:

```json
{
  "mode": "product",
  "country": "MX",
  "title": "Localizador Xiaomi Tag Tracker con Bluetooth blanco",
  "url": "https://www.mercadolibre.com.mx/localizador-xiaomi-tag-tracker-con-bluetooth-blanco/p/MLM65678975",
  "brand": "Xiaomi",
  "price": 295,
  "originalPrice": 685.25,
  "discountPercentage": 56,
  "currency": "MXN",
  "installments": { "quantity": 24, "amount": 17.83, "total": 427.92 },
  "rating": 4.8,
  "ratingCount": 11805,
  "sellerId": 454333952,
  "sellerName": "Xiaomi",
  "sellerReputation": "5_green",
  "sellerPowerStatus": "platinum",
  "isOfficialStore": true,
  "attributes": [
    { "name": "Marca", "value": "Xiaomi" },
    { "name": "Alcance máximo", "value": "10 m" }
  ],
  "questions": [
    { "text": "Es recargable?", "answer": "No es recargable, funciona con una pila botón CR2032...", "answerDate": "15/08/2026" }
  ],
  "reviews": [
    { "rating": 5, "text": "¡Producto muy bueno! Funciona perfectamente..." }
  ],
  "scrapedAt": "2026-08-16T08:11:10.203Z"
}
```

### Use cases

- **Price and stock monitoring** — track a product's price, discount, installments, and stock status over time.
- **Review mining** — pull every review for a product across all 9 marketplaces for sentiment analysis or product-feedback dashboards.
- **Competitive Q\&A research** — see what buyers ask sellers and how well (and how fast) they answer.
- **Seller due diligence** — check a storefront's reputation tier, official-store status, follower growth, and compliance flags before partnering or comparing competitors.
- **Category research** — collect specs and attributes across a catalog of products for a comparison table or feed.

### How it works

1. **Reviews mode** calls MercadoLibre's internal reviews API directly (`noindex/catalog/reviews/...`) — no browser or proxy needed, so it's fast and inexpensive. With the rating filter left at "all", the actor fans out 12 concurrent requests (5 star ratings + "all", × 2 sort orders) and de-duplicates by review ID to maximize unique reviews recovered.
2. **Seller mode** fetches the storefront's `/tienda/` or `/loja/` page anonymously and parses the embedded page-state JSON for profile fields — also no proxy needed.
3. **Product mode** renders the page with a real, fingerprinted browser session (Apify's residential proxy, routed to the selected country) because MercadoLibre's product pages sit behind a JavaScript-executing anti-bot challenge that plain HTTP requests cannot pass. The actor extracts the same internal page-state JSON MercadoLibre's own frontend uses, plus the page's schema.org `Product` JSON-LD, then fetches the listing's dedicated Q\&A page for the full buyer question list.
4. Every mode pushes normalized rows straight to the Apify dataset, ready to export or pull via API.

### Input parameters

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| mode | string | No | `reviews` | `reviews`, `product`, or `seller` |
| country | string | No | `MX` | MercadoLibre marketplace (MX, AR, BR, EC, DO, CL, CO, PE, UY) |
| productUrls | array | For reviews/product | — | MercadoLibre product URLs (catalog `/p/MLM…` or article `MLM-…`) |
| maxItems | integer | No | 50 | Max items to return (reviews mode: per product) |
| reviewRating | string | No | `all` | Filter reviews mode by star rating, or `all` for the deep sweep |
| reviewOrder | string | No | `relevance` | `relevance` or `dateCreated` |
| sellerUrls | array | For seller mode | — | Storefront URLs (`/tienda/`, `/loja/`, or `/pagina/`) |
| includeReviews | boolean | No | true | Product mode: include the top 5 reviews |
| includeQuestions | boolean | No | true | Product mode: include buyer Q\&A |
| includeVariations | boolean | No | true | Product mode: include variations |
| startUrls | array | No | — | Direct URLs; mode/country auto-detected |
| maxConcurrency | integer | No | 8 | Parallel requests in reviews mode's deep sweep |
| useResidentialProxy | boolean | No | true | Informational for product mode, which always uses residential proxy |

See the [Input tab](https://apify.com/parsebird/mercadolibre-scraper/input-schema) for full descriptions and enum values.

### How much does it cost to scrape MercadoLibre?

This actor uses [pay-per-event pricing](https://docs.apify.com/platform/actors/publishing/monetize#pay-per-event-pricing-model) — you pay only for records actually pushed to the dataset, not for compute time.

| Plan | Price per event | Price per 1,000 |
|---|---|---|
| Free | $0.0025 | $2.50 |
| Bronze | $0.0017 | $1.70 |
| Silver | $0.0012 | $1.20 |
| Gold | $0.0010 | $1.00 |

Every pushed row — one review, one product, or one seller profile — counts as one `result-scraped` event. Paid Apify plans (Bronze, Silver, Gold) get a lower per-event rate automatically. A run that pulls 300 reviews for one product costs about $0.75 on the free plan (as low as $0.30 on Gold); a single product-mode fetch costs $0.0025. Apify's [free trial](https://apify.com/pricing) covers enough runs to try every mode before committing to a plan. Product mode additionally consumes Apify's residential proxy bandwidth (~$8/GB, billed separately by Apify) since it requires a real browser session to get past MercadoLibre's anti-bot check.

### Is it legal to scrape MercadoLibre?

Scraping publicly available data, like MercadoLibre product listings and reviews, is generally legal — see [Apify's blog post on the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) for a fuller discussion. This actor only extracts publicly visible page data; it does not bypass logins, paywalls, or access non-public information. You are responsible for how you use the collected data and for complying with MercadoLibre's own terms of service.

### Other scrapers by ParseBird

- [eBay Sold Listings Scraper](https://apify.com/parsebird/ebay-sold-listings-scraper) — sold-listing prices and history from eBay
- [1688 Wholesale Scraper](https://apify.com/parsebird/1688-wholesale-scraper) — wholesale product data from 1688.com
- [Shopify Products Scraper](https://apify.com/parsebird/shopify-products-scraper) — product catalogs from any Shopify store
- [MercadoLibre Scraper (Español)](https://apify.com/parsebird/mercadolibre-scraper-espanol) — the same tool, with a Spanish-language interface

### FAQ

**Why isn't there a search or category-listing mode?**
MercadoLibre's search and category-listing pages (`listado.*`) sit behind a stricter, apparently behavior-based anti-bot layer than product pages, and a reliable bypass isn't in place yet. Product, reviews, and seller-profile modes are all fully working and use verified extraction against live MercadoLibre data.

**Why does seller mode return only one row per store instead of a full catalog?**
For the same reason — a seller's item catalog is served on `listado.*` pages, which this actor doesn't currently scrape reliably. Seller mode returns the storefront's profile data (followers, brand, corridor menu, compliance flags), which comes from the `/tienda/` or `/loja/` page and isn't affected by that block.

**Does reviews mode really cover all 9 marketplaces?**
Yes — pass the matching `country` for MX, AR, BR, CL, CO, PE, UY, EC, or DO, and the actor builds the review-API URL for that site's domain and site ID.

**Why is seller mode not supported for Argentina?**
Argentina's storefront pages (`mercadolibre.com.ar/tienda/...`) use a different rendering framework than the other 8 sites, so the profile-page parser doesn't apply there yet.

**Can I run this on a schedule or trigger it via API?**
Yes — use Apify's [Scheduler](https://docs.apify.com/platform/schedules) for recurring runs, or call the actor via the [API](https://apify.com/parsebird/mercadolibre-scraper/api) using Python, JavaScript, or any HTTP client. See the code snippets below.

**Something not working, or want a feature added?**
Open an issue on the actor's Issues tab in Apify Console — feedback and bug reports are welcome.

#### API usage examples

Python ([apify-client](https://docs.apify.com/api/client/python/)):

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("parsebird/mercadolibre-scraper").call(run_input={
    "mode": "reviews",
    "country": "MX",
    "productUrls": ["https://www.mercadolibre.com.mx/apple-iphone-15-256-gb-negro/p/MLM27172669"],
    "maxItems": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["reviewText"])
```

JavaScript ([apify-client](https://docs.apify.com/api/client/js/)):

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('parsebird/mercadolibre-scraper').call({
    mode: 'product',
    country: 'MX',
    productUrls: ['https://www.mercadolibre.com.mx/apple-iphone-15-256-gb-negro/p/MLM27172669'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].title, items[0].price);
```

### Legal and compliance

This actor extracts publicly available MercadoLibre page data for research, monitoring, and analysis purposes. It does not access private accounts, bypass authentication, or store personal buyer information beyond what MercadoLibre displays publicly (e.g. a reviewer's country or a seller's public storefront details). Use of this actor and the data it collects is your responsibility — review [MercadoLibre's Terms of Service](https://www.mercadolibre.com.mx/ayuda/Terminos-y-condiciones-generales_1926) before large-scale or commercial use.

# Actor input Schema

## `mode` (type: `string`):

What to scrape. 'reviews' returns paginated reviews for one product across all 9 LATAM marketplaces. 'product' returns full PDP fields (title, price, brand, attributes, variations, seller, inline reviews, Q\&A). 'seller' returns a seller's storefront profile.

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

MercadoLibre country marketplace. All nine Latin-American sites are supported across every mode (reviews, product, seller). The selected country routes the residential proxy to in-country IPs for product mode and selects the right TLD for built URLs. Runs that find no records for a country are not charged per-result.

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

One or more MercadoLibre product URLs. Used by 'reviews' and 'product' modes. Accepts both catalog (.../p/MLM…) and article (articulo.\*/MLM-…) URLs. The prefilled example is an iPhone PDP on MLM.

## `maxItems` (type: `integer`):

Maximum items to return. 0 = no limit. Product: PDPs; Reviews: reviews PER PRODUCT, so 3 product URLs at 50 returns up to 150 rows (the practical ceiling for a very popular product is ~900, because MeLi hard-caps single-bucket pagination at offset 300). Not used in 'seller' mode (always one profile row per seller URL).

## `reviewRating` (type: `string`):

In 'reviews' mode, scrape only reviews with this star rating. Default 'all' triggers the deep-sweep strategy — 12 concurrent queries across rating + sort buckets — to recover the maximum unique reviews per product (up to ~950 on popular products vs ~330 single-bucket).

## `reviewOrder` (type: `string`):

Sort order for reviews. 'relevance' is MeLi's helpfulness-ranked default; 'dateCreated' returns newest first. This applies when 'Review Rating Filter' is set to a specific rating (1-5). When the filter is 'all', the deep sweep already runs both sort orders in parallel, so it returns the full result set either way and this setting has no effect on how much you get.

## `sellerUrls` (type: `array`):

One or more seller storefront URLs: brand stores (https://www.mercadolibre.com.mx/tienda/phone-depot), BR brand stores (https://www.mercadolivre.com.br/loja/samsung), or independent eshops (.../pagina/...). Each seller produces one profile row with followers, dates, banner, brand info, and corridor menu. Not supported on AR (different storefront framework).

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

In 'product' mode, include the top 5 reviews from JSON-LD. Full paginated reviews require 'reviews' mode.

## `includeQuestions` (type: `boolean`):

In 'product' mode, include buyer questions + seller answers (up to 20 per product) from the listing's dedicated Q\&A page.

## `includeVariations` (type: `boolean`):

In 'product' mode, include product variations (color/size/storage) when the listing has them.

## `startUrls` (type: `array`):

Direct URLs to scrape. Accepts product URLs (both .../p/MLM… and articulo./MLM-…) or seller storefront URLs (.../tienda/..., .../loja/..., .../pagina/...). Pasting full URLs is supported — country/mode will be auto-detected. Alternative to the mode-specific URL fields above.

## `maxConcurrency` (type: `integer`):

Maximum parallel requests across all (product × rating × sort) slice tasks in 'reviews' mode. 8 is a safe default; bump up for large batches (50+ products) if you see throughput stalling. Capped at 24 to avoid MeLi rate-limits.

## `useResidentialProxy` (type: `boolean`):

Reviews and seller modes run without residential proxy. Product mode always routes through Apify's residential pool (matched to the selected country) via a real browser — this toggle is informational for product mode. Residential traffic adds Apify's ~$8/GB usage fee on top of actor pricing.

## Actor input object example

```json
{
  "mode": "reviews",
  "country": "MX",
  "productUrls": [
    "https://www.mercadolibre.com.mx/apple-iphone-15-256-gb-negro/p/MLM27172669"
  ],
  "maxItems": 10,
  "reviewRating": "all",
  "reviewOrder": "relevance",
  "sellerUrls": [
    "https://www.mercadolibre.com.mx/tienda/phone-depot"
  ],
  "includeReviews": true,
  "includeQuestions": true,
  "includeVariations": true,
  "startUrls": [],
  "maxConcurrency": 8,
  "useResidentialProxy": true
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {
    "mode": "reviews",
    "country": "MX",
    "productUrls": [
        "https://www.mercadolibre.com.mx/apple-iphone-15-256-gb-negro/p/MLM27172669"
    ],
    "maxItems": 10,
    "reviewRating": "all",
    "reviewOrder": "relevance",
    "sellerUrls": [
        "https://www.mercadolibre.com.mx/tienda/phone-depot"
    ],
    "includeReviews": true,
    "includeQuestions": true,
    "includeVariations": true,
    "startUrls": [],
    "maxConcurrency": 8,
    "useResidentialProxy": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/mercadolibre-scraper").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 = {
    "mode": "reviews",
    "country": "MX",
    "productUrls": ["https://www.mercadolibre.com.mx/apple-iphone-15-256-gb-negro/p/MLM27172669"],
    "maxItems": 10,
    "reviewRating": "all",
    "reviewOrder": "relevance",
    "sellerUrls": ["https://www.mercadolibre.com.mx/tienda/phone-depot"],
    "includeReviews": True,
    "includeQuestions": True,
    "includeVariations": True,
    "startUrls": [],
    "maxConcurrency": 8,
    "useResidentialProxy": True,
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/mercadolibre-scraper").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 '{
  "mode": "reviews",
  "country": "MX",
  "productUrls": [
    "https://www.mercadolibre.com.mx/apple-iphone-15-256-gb-negro/p/MLM27172669"
  ],
  "maxItems": 10,
  "reviewRating": "all",
  "reviewOrder": "relevance",
  "sellerUrls": [
    "https://www.mercadolibre.com.mx/tienda/phone-depot"
  ],
  "includeReviews": true,
  "includeQuestions": true,
  "includeVariations": true,
  "startUrls": [],
  "maxConcurrency": 8,
  "useResidentialProxy": true
}' |
apify call parsebird/mercadolibre-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/mercadolibre-scraper"
        }
    }
}

```

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/G2G8Fahw0xDaJaubU/builds/8Wyr8BTohUkG5WIBA/openapi.json
