# Mercado Libre Scraper — LATAM Prices, Listings & Specs (`crawloop/mercado-libre-listings-scraper`) Actor

Scrape Mercado Libre across 18 Latin American sites. Extract product listings, prices, discounts, installments, seller info, shipping, and ratings. Optional PDP mode for specs, stock, descriptions, and variations. Keyword search, category URLs, Akamai bypass.

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

## Pricing

from $1.00 / 1,000 product listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Scraper — LATAM Prices, Listings & Specs

> **Disclaimer:** Unofficial integration, not affiliated with Mercado Libre or MercadoLibre, Inc. Mercado Libre and related trademarks belong to their respective owners. Data is read from publicly accessible search results and product pages. No account login required.
>
> This Actor is provided **for informational, research, and price monitoring purposes only**. You are solely responsible for complying with applicable laws, Mercado Libre's terms of use, and your organization's policies.

Extract **structured product listings and full specifications** from Mercado Libre across **18 Latin American country sites** — Argentina, Brazil, Mexico, Colombia, Chile, Peru, and more. Search by keyword, category URL, or direct product link. Collect titles, prices, discounts, installments, seller info, shipping badges, ratings, technical attributes, stock, sold quantity, and image galleries.

Built-in **Akamai anti-bot bypass** via Playwright browser automation and residential proxy rotation. **No cookies, no account required.**

**Best for:** Mercado Libre price monitoring, LATAM e-commerce market research, competitor catalog tracking, resale arbitrage, product specification enrichment, and bulk JSON/CSV export pipelines.

> **Crawloop Mercado Libre LATAM Suite** — raw listing export and market intelligence across the same 18 country sites.

| **[Mercado Libre Scraper](https://apify.com/crawloop/mercado-libre-listings-scraper)** ◄── *you are here* | [Mercado Libre Market Intelligence](https://apify.com/crawloop/mercado-libre-market-intelligence) |
| :---: | :---: |
| Raw listings, fast search, optional PDP | Niche score, demand, GMV, market reports |

---

### When to use this Actor

- **Mercado Libre price tracking** — Monitor listing prices, discounts, and installments across Argentina (MLA), Brazil (MLB), Mexico (MLM), Chile (MLC), Colombia (MCO), and 13 more LATAM sites.
- **Product catalog enrichment** — Enable `includeProductDetail` to fetch full PDP data: description, spec tables, stock, sold count, variations, and high-resolution images.
- **Cross-border market research** — Compare the same product keyword across multiple Mercado Libre country sites with local currency output.
- **Official store monitoring** — Filter to official stores only and track brand-authorized sellers.
- **Category & filter scraping** — Paste any filtered Mercado Libre search or category URL into Start URLs to replicate browser filters exactly.
- **Bulk data pipelines** — Export structured JSON or CSV datasets for spreadsheets, databases, and BI tools.

### When not to use this Actor

- **Private seller messaging or account actions** — Reads public listing and search pages only; no login, cart, or messaging access.
- **Real-time sub-second monitoring** — Optimized for reliable bulk extraction, not millisecond-level price tick feeds.
- **Non-Mercado Libre sites** — Built specifically for Mercado Libre domains across LATAM; not a generic web scraper.
- **Niche scoring & market reports** — use [Mercado Libre Market Intelligence — LATAM Niche & Demand Analyzer](https://apify.com/crawloop/mercado-libre-market-intelligence) for opportunity score, demand, GMV, and Markdown reports.

---

### Key Features

- **18 LATAM country sites** — MLA, MLB, MLM, MCO, MLC, MPE, MLU, MLV, MEC, MBO, MPA, MPY, MRD, MCR, MNI, MGT, MHN, MSV with automatic country-targeted residential proxy.
- **Two extraction modes** — Fast search-card mode (title, price, seller, shipping) or full PDP enrichment (specs, description, stock, gallery, variations).
- **Parallel PDP fetching** — Multi-session proxy pool with configurable `pdpConcurrency` and automatic retry on anti-bot timeouts.
- **Rich listing data** — Original price, discount percent, installment plans, condition (new/used/refurbished), free shipping, FULL logistics badge, seller reputation, and ratings.
- **Flexible inputs** — Keyword search, category URLs, direct product URLs, price range filters, condition filters, sort order, and official-store-only mode.
- **Structured dataset output** — Clean JSON rows ready for Apify dataset export, webhooks, and integrations.

---

### How it works

1. Creates a pool of Playwright browser contexts, each with an independent residential proxy session in the target country.
2. Navigates to the constructed search URL and waits for Akamai security checks to complete.
3. Parses search result cards — titles, prices, sellers, shipping, thumbnails, and product IDs.
4. When `includeProductDetail` is enabled, fetches each product detail page in parallel, parses specifications and description, then retries through an alternate proxy session on failure.
5. Pushes structured rows to the Apify dataset with pay-per-event billing per extracted item.

---

### Supported country sites

| Site ID | Country | Currency | Domain |
| :--- | :--- | :--- | :--- |
| MLA | Argentina | ARS | mercadolibre.com.ar |
| MLB | Brazil | BRL | mercadolivre.com.br |
| MLM | Mexico | MXN | mercadolibre.com.mx |
| MCO | Colombia | COP | mercadolibre.com.co |
| MLC | Chile | CLP | mercadolibre.cl |
| MPE | Peru | PEN | mercadolibre.com.pe |
| MLU | Uruguay | UYU | mercadolibre.com.uy |
| MLV | Venezuela | VES | mercadolibre.com.ve |
| MEC | Ecuador | USD | mercadolibre.com.ec |
| MBO | Bolivia | BOB | mercadolibre.com.bo |
| MPA | Panama | USD | mercadolibre.com.pa |
| MPY | Paraguay | PYG | mercadolibre.com.py |
| MRD | Dominican Republic | DOP | mercadolibre.com.do |
| MCR | Costa Rica | CRC | mercadolibre.co.cr |
| MNI | Nicaragua | NIO | mercadolibre.com.ni |
| MGT | Guatemala | GTQ | mercadolibre.com.gt |
| MHN | Honduras | HNL | mercadolibre.com.hn |
| MSV | El Salvador | USD | mercadolibre.com.sv |

---

### Input Parameters

| Parameter | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `siteId` | String | `MLA` | Target country site code (see table above). |
| `searchQueries` | Array | `["iphone"]` | Keywords to search (one per line). |
| `categoryUrls` | Array | `[]` | Category or filtered search URLs to crawl. |
| `startUrls` | Array | `[]` | Mix of search, category, or direct product detail URLs. |
| `priceMin` | Integer | — | Minimum price filter in local currency. |
| `priceMax` | Integer | — | Maximum price filter in local currency. |
| `condition` | String | `any` | Filter: `any`, `new`, `used`, `refurbished`. |
| `officialStoresOnly` | Boolean | `false` | Restrict results to Mercado Libre official stores. |
| `sort` | String | `relevance` | Sort: `relevance`, `price_asc`, `price_desc`. |
| `includeProductDetail` | Boolean | `false` | Fetch full PDP: description, specs, stock, variations, gallery. |
| `maxItems` | Integer | `100` | Stop after N items (0 = unlimited). |
| `maxPagesPerQuery` | Integer | `42` | Maximum search pages per query (~48 items/page). |
| `maxConcurrency` | Integer | `5` | Parallel search/category crawl jobs. |
| `pdpConcurrency` | Integer | `5` | Parallel product detail page fetches (when PDP enabled). |
| `sessionPoolSize` | Integer | `4` | Independent residential proxy sessions (1–10). |
| `proxyConfiguration` | Object | auto | Apify proxy; residential proxy in target country auto-configured. |

#### Input example — search listings

```json
{
  "siteId": "MLA",
  "searchQueries": ["iphone 15"],
  "maxItems": 500,
  "condition": "new",
  "officialStoresOnly": false,
  "includeProductDetail": false,
  "sort": "price_asc"
}
````

#### Input example — full product details (PDP)

```json
{
  "siteId": "MLB",
  "searchQueries": ["samsung galaxy s24"],
  "maxItems": 200,
  "includeProductDetail": true,
  "pdpConcurrency": 8,
  "sessionPoolSize": 4
}
```

***

### Output Format

Each dataset row = one Mercado Libre product listing.

| Field | Type | Description |
| :--- | :--- | :--- |
| `id` | String | Product ID (e.g. MLA1424728826, MLAU3921879606). |
| `siteId` | String | Country site code (MLA, MLB, MLM, etc.). |
| `title` | String | Product title. |
| `permalink` | String | Canonical product URL. |
| `price` | Number | Current selling price in local currency. |
| `currency` | String | Currency code (ARS, BRL, MXN, CLP, etc.). |
| `originalPrice` | Number | Price before discount. |
| `discountPercent` | Integer | Discount percentage. |
| `installments` | Object | Installment quantity, amount, and interest rate. |
| `condition` | String | `new`, `used`, or `refurbished`. |
| `availableQuantity` | Integer | Stock count (PDP mode). |
| `soldQuantity` | Integer | Historical sold count (PDP mode). |
| `thumbnailUrl` | String | Search card thumbnail. |
| `images` | Array | Full image gallery (PDP mode). |
| `description` | String | Product description text (PDP mode). |
| `location` | Object | Seller city, state, country (PDP mode). |
| `seller` | Object | Nickname, official store flag, store name, reputation. |
| `freeShipping` | Boolean | Free shipping badge. |
| `fullShipping` | Boolean | Mercado Libre FULL logistics delivery. |
| `ratingAverage` | Number | Star rating (0–5). |
| `reviewCount` | Integer | Total review count (PDP mode). |
| `attributes` | Object | Technical specifications key-value pairs (PDP mode). |
| `variations` | Array | Color, size, and other variants with IDs and URLs (PDP mode). |
| `scrapedAt` | String | Extraction timestamp (UTC ISO 8601). |

#### Output example

```json
{
  "id": "MLA1424728826",
  "siteId": "MLA",
  "title": "Apple iPhone 14 (128 GB) - Blanco Estelar",
  "permalink": "https://www.mercadolibre.com.ar/apple-iphone-14-128-gb-blanco-estelar/p/MLA19597568",
  "price": 1199999,
  "currency": "ARS",
  "originalPrice": 1499999,
  "discountPercent": 20,
  "installments": {
    "quantity": 12,
    "amount": 99999,
    "rate": 0
  },
  "condition": "new",
  "availableQuantity": 15,
  "soldQuantity": 1500,
  "seller": {
    "nickname": "Apple",
    "isOfficialStore": true,
    "storeName": "Apple",
    "reputation": "level_5"
  },
  "freeShipping": true,
  "fullShipping": true,
  "ratingAverage": 4.8,
  "attributes": {
    "Memoria interna": "128 GB",
    "Memoria RAM": "6 GB",
    "Modelo del procesador": "Apple A15 Bionic"
  },
  "scrapedAt": "2026-07-09T10:40:00Z"
}
```

***

### Search mode vs. PDP mode

| | Search listings | Product detail (PDP) |
| :--- | :--- | :--- |
| **Input flag** | `includeProductDetail: false` | `includeProductDetail: true` |
| **Speed** | ~3 min per 1,000 items | ~40 min per 1,000 items |
| **Data depth** | Title, price, seller, shipping, thumbnail | + description, specs, stock, sold qty, gallery, variations |
| **Best for** | Price monitoring, bulk catalog scans | Specification matching, enrichment, inventory analysis |

***

### Use Cases

| Use Case | What you get |
| :--- | :--- |
| **LATAM price intelligence** | Structured price datasets per keyword across Argentina, Brazil, Mexico, Chile, and more |
| **Competitor monitoring** | Track official store listings, discounts, and installment offers in your product niche |
| **Catalog specification matching** | Full technical attribute tables for ERP, PIM, and marketplace listing sync |
| **Resale arbitrage** | Compare new vs. refurbished prices and sold quantities to find margin opportunities |
| **Cross-border research** | Same keyword on MLA vs. MLB vs. MLM with local currency normalization |
| **Data pipelines** | JSON/CSV export or webhook integrations to Sheets, databases, and BI tools |

***

### FAQ

#### Which Mercado Libre countries are supported?

All 18 Mercado Libre regional sites: Argentina, Brazil, Mexico, Colombia, Chile, Peru, Uruguay, Venezuela, Ecuador, Bolivia, Panama, Paraguay, Dominican Republic, Costa Rica, Nicaragua, Guatemala, Honduras, and El Salvador. Set `siteId` to the corresponding code (e.g. `MLA` for Argentina, `MLB` for Brazil).

#### How does it bypass Mercado Libre's Akamai bot protection?

The Actor uses headless Chromium via Playwright with residential proxies targeted to the site's country. Multiple independent proxy sessions rotate requests to avoid rate limiting. Akamai JavaScript challenges are solved automatically in the browser context.

#### Do I need proxies?

Residential proxies in the target country are **strongly recommended** and auto-configured on Apify Cloud when proxy input is left empty. For PDP mode with high `maxItems`, increase `sessionPoolSize` (default 4) to spread load across more IP addresses.

#### What is the difference between search and PDP mode?

Search mode (`includeProductDetail: false`) extracts data from search result cards — fast and cost-efficient for price monitoring. PDP mode (`includeProductDetail: true`) visits each product page for full specifications, description, stock, sold quantity, image gallery, and variations.

#### Can I scrape specific categories or advanced filters?

Yes. Open Mercado Libre in your browser, apply filters (category, price range, condition, sort order), copy the URL from the address bar, and paste it into `categoryUrls` or `startUrls`. Price and condition filters can also be set directly in the Actor input.

#### Does it work with used and refurbished listings?

Yes. Set `condition` to `used` or `refurbished`, or leave it as `any`. The Actor correctly parses user-product listings (`/up/MLAU...` URLs) alongside catalog products (`/p/MLA...`).

#### Can I scrape 1,000+ listings in one run?

Yes. Set `maxItems` to your target (e.g. 1000). Search mode handles 1,000 items in approximately 3 minutes. PDP mode with `pdpConcurrency: 8` and `sessionPoolSize: 4` completes 1,000 enriched products in approximately 40 minutes.

#### Does it export to JSON / CSV?

Yes. Results are written to the Apify dataset. Download JSON, CSV, or Excel from the run, or connect webhooks and integrations.

#### How is this different from Mercado Libre Market Intelligence?

This Actor exports **raw listing rows** for catalogs, price feeds, and custom pipelines. [Mercado Libre Market Intelligence — LATAM Niche & Demand Analyzer](https://apify.com/crawloop/mercado-libre-market-intelligence) adds opportunity scoring, demand/GMV estimates, competition tables, and Markdown market reports on top of the same Mercado Libre data.

#### How is this different from a generic web scraper?

This Actor is purpose-built for Mercado Libre: correct URL construction per country, Akamai bypass, installment parsing, official store detection, FULL shipping badges, LATAM number formatting, and parallel PDP enrichment with proxy session pooling.

***

**Also see:** [Mercado Libre Market Intelligence — LATAM Niche & Demand Analyzer](https://apify.com/crawloop/mercado-libre-market-intelligence) — niche opportunity score, demand analysis, estimated GMV, top sellers/brands, and market reports from Mercado Libre search and category data.

# Actor input Schema

## `siteId` (type: `string`):

Select the target Mercado Libre country site.

## `searchQueries` (type: `array`):

List of free-text keywords to search (one query per line).

## `categoryUrls` (type: `array`):

List of category search URLs to crawl.

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

Mix of listing, category, or detail URLs to scrape directly.

## `priceMin` (type: `integer`):

Lower bound of the price filter (in site's local currency).

## `priceMax` (type: `integer`):

Upper bound of the price filter (in site's local currency).

## `condition` (type: `string`):

Filter by item condition.

## `officialStoresOnly` (type: `boolean`):

Restrict results to Mercado Libre official stores only.

## `sort` (type: `string`):

Define the sorting order of results.

## `includeProductDetail` (type: `boolean`):

Fetch each product's full detail page (description, full specs, stock, variations). Adds 1 extra request per item.

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

Stop collecting after N items (0 = unlimited).

## `maxPagesPerQuery` (type: `integer`):

Maximum pages to paginate per query/category.

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

Maximum concurrent search/category crawl jobs in parallel.

## `pdpConcurrency` (type: `integer`):

Maximum product detail pages fetched in parallel when includeProductDetail is enabled. Defaults to maxConcurrency.

## `sessionPoolSize` (type: `integer`):

Number of independent residential proxy sessions (IPs) used in parallel. More sessions spread the load and reduce anti-bot timeouts.

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

Apify proxy configuration. Uses residential proxies in the target country automatically if empty.

## Actor input object example

```json
{
  "siteId": "MLA",
  "searchQueries": [
    "iphone"
  ],
  "categoryUrls": [],
  "startUrls": [],
  "condition": "any",
  "officialStoresOnly": false,
  "sort": "relevance",
  "includeProductDetail": false,
  "maxItems": 100,
  "maxPagesPerQuery": 42,
  "maxConcurrency": 5,
  "pdpConcurrency": 5,
  "sessionPoolSize": 4,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "searchQueries": [
        "iphone"
    ],
    "categoryUrls": [],
    "startUrls": [],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawloop/mercado-libre-listings-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 = {
    "searchQueries": ["iphone"],
    "categoryUrls": [],
    "startUrls": [],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("crawloop/mercado-libre-listings-scraper").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 '{
  "searchQueries": [
    "iphone"
  ],
  "categoryUrls": [],
  "startUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call crawloop/mercado-libre-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawloop/mercado-libre-listings-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Mercado Libre Scraper — LATAM Prices, Listings & Specs",
        "description": "Scrape Mercado Libre across 18 Latin American sites. Extract product listings, prices, discounts, installments, seller info, shipping, and ratings. Optional PDP mode for specs, stock, descriptions, and variations. Keyword search, category URLs, Akamai bypass.",
        "version": "0.9",
        "x-build-id": "REv0a7dJDHQIsdXQ6"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawloop~mercado-libre-listings-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawloop-mercado-libre-listings-scraper",
                "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/crawloop~mercado-libre-listings-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawloop-mercado-libre-listings-scraper",
                "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/crawloop~mercado-libre-listings-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawloop-mercado-libre-listings-scraper",
                "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": [
                    "siteId"
                ],
                "properties": {
                    "siteId": {
                        "title": "Country / Site ID",
                        "enum": [
                            "MLA",
                            "MLB",
                            "MLM",
                            "MCO",
                            "MLC",
                            "MPE",
                            "MLU",
                            "MLV",
                            "MEC",
                            "MBO",
                            "MPA",
                            "MPY",
                            "MRD",
                            "MCR",
                            "MNI",
                            "MGT",
                            "MHN",
                            "MSV"
                        ],
                        "type": "string",
                        "description": "Select the target Mercado Libre country site.",
                        "default": "MLA"
                    },
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "List of free-text keywords to search (one query per line)."
                    },
                    "categoryUrls": {
                        "title": "Category URLs",
                        "type": "array",
                        "description": "List of category search URLs to crawl."
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Mix of listing, category, or detail URLs to scrape directly.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "priceMin": {
                        "title": "Minimum Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Lower bound of the price filter (in site's local currency)."
                    },
                    "priceMax": {
                        "title": "Maximum Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Upper bound of the price filter (in site's local currency)."
                    },
                    "condition": {
                        "title": "Condition",
                        "enum": [
                            "any",
                            "new",
                            "used",
                            "refurbished"
                        ],
                        "type": "string",
                        "description": "Filter by item condition.",
                        "default": "any"
                    },
                    "officialStoresOnly": {
                        "title": "Official Stores Only",
                        "type": "boolean",
                        "description": "Restrict results to Mercado Libre official stores only.",
                        "default": false
                    },
                    "sort": {
                        "title": "Sort Order",
                        "enum": [
                            "relevance",
                            "price_asc",
                            "price_desc"
                        ],
                        "type": "string",
                        "description": "Define the sorting order of results.",
                        "default": "relevance"
                    },
                    "includeProductDetail": {
                        "title": "Include Product Detail",
                        "type": "boolean",
                        "description": "Fetch each product's full detail page (description, full specs, stock, variations). Adds 1 extra request per item.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop collecting after N items (0 = unlimited).",
                        "default": 100
                    },
                    "maxPagesPerQuery": {
                        "title": "Max Pages per Query",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum pages to paginate per query/category.",
                        "default": 42
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum concurrent search/category crawl jobs in parallel.",
                        "default": 5
                    },
                    "pdpConcurrency": {
                        "title": "PDP Concurrency",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum product detail pages fetched in parallel when includeProductDetail is enabled. Defaults to maxConcurrency.",
                        "default": 5
                    },
                    "sessionPoolSize": {
                        "title": "Proxy Session Pool Size",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Number of independent residential proxy sessions (IPs) used in parallel. More sessions spread the load and reduce anti-bot timeouts.",
                        "default": 4
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify proxy configuration. Uses residential proxies in the target country automatically if empty."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
