# MercadoLivre search $1/1000 results (`riseandcode/apify-mercadolivre-search`) Actor

Extract product listings from MercadoLivre search results — prices, discounts, ratings, seller names, shipping info, installment details, catalog IDs, and categories. Scrape any keyword, set how many results you need.

- **URL**: https://apify.com/riseandcode/apify-mercadolivre-search.md
- **Developed by:** [Rise and Code](https://apify.com/riseandcode) (community)
- **Categories:** E-commerce, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

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

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

### What does MercadoLivre Search Scraper do?

**MercadoLivre Search Scraper** extracts structured product data from [lista.mercadolivre.com.br](https://lista.mercadolivre.com.br) — Brazil's largest e-commerce marketplace. Pass one or more search terms and get back clean JSON records for every listing, including **title, price, discount, installments, rating, sold count, seller, shipping, and more**.

### Why use MercadoLivre Search Scraper?

- 📊 **Price monitoring** — track price changes and discount trends for any product category over time
- 🛒 **Competitor research** — see what sellers, prices, and products appear for your target keywords
- 📈 **Market analysis** — aggregate listing data to identify top-rated products and high-volume sellers
- 🔎 **Lead generation** — find official brand stores and their product catalogues at scale
- 🔥 **Trend discovery** — find trending products by keyword and spot emerging categories before competitors do
- 🤖 **Automation** — trigger runs on a schedule and pipe results into spreadsheets, databases, or dashboards via Apify integrations

### How to use MercadoLivre Search Scraper

1. Visit the [Actor page](https://apify.com/riseandcode/apify-mercadolivre-search) on Apify and click **Try for free** — no credit card required.
2. In the **Input** tab, type one or more search terms (e.g. `fitness`, `pets`, `mouse`).
3. Set **Max Items** to control how many products to scrape per term, and also charged.
4. Click **Start** and wait a few seconds for the run to complete.
5. Open the **Output** tab or download the dataset as **JSON, CSV, or Excel**.

To trigger a run via the Apify API:

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/rise-and-code~apify-mercadolivre-search/runs?token=<YOUR_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "searchTerms": ["fitness", "pets"],
    "maxItems": 100
  }'
````

### Input

Configure the Actor in the **Input** tab or via JSON.

| Field                | Type       | Default    | Description                                                                           |
| -------------------- | ---------- | ---------- | ------------------------------------------------------------------------------------- |
| `searchTerms`        | `string[]` | `["pets"]` | **Required.** One or more search terms. Spaces are converted to dashes automatically. |
| `maxItems`           | `integer`  | `50`       | Maximum products to scrape **per search term** (1–10000).                             |
| `proxyConfiguration` | `object`   | —          | Proxy settings. Using Apify Proxy is recommended to avoid bot detection.              |

Example input:

```json
{
    "searchTerms": ["fitness", "pets"],
    "maxItems": 100
}
```

### Output

One dataset record is pushed per product listing. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel from the **Output** tab or via the Apify API.

#### Output example

```json
{
    "searchTerm": "carregador celular",
    "position": 1,
    "productId": "MLB178925",
    "itemId": "MLB3456789012",
    "title": "Carregador Turbo 65W USB-C compatível com Samsung",
    "url": "https://www.mercadolivre.com.br/p/MLB178925",
    "thumbnail": "https://http2.mlstatic.com/D_NQ_NP_123456-MLB789.jpg",
    "seller": "Loja TechBrasil",
    "price": 89.9,
    "originalPrice": 129.9,
    "currency": "BRL",
    "discountPercentage": 30,
    "installments": "ou 12x R$ 7,49 sem juros",
    "rating": 4.8,
    "soldCount": "+10mil vendidos",
    "shipping": "Frete grátis",
    "highlight": "MAIS VENDIDO",
    "isSponsored": false,
    "isInternational": false,
    "category": "MLB-CELL_PHONE_CHARGERS",
    "scrapedAt": "2026-04-28T12:00:00.000Z"
}
```

### Output fields

| Field                | Type             | Description                                                                                                                                    |
| -------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `searchTerm`         | `string`         | The search term that produced this result                                                                                                      |
| `position`           | `number`         | 1-based position in search results (across pages)                                                                                              |
| `productId`          | `string \| null` | Catalog/product-group ID (e.g. `MLB178925`). Groups all seller offers for the same product. `null` for listings not linked to a catalog entry. |
| `itemId`             | `string \| null` | Individual listing ID (e.g. `MLB3456789012`). Unique per seller offer — equivalent to the `wid` parameter in the card URL.                     |
| `title`              | `string`         | Product title                                                                                                                                  |
| `url`                | `string`         | Product page URL                                                                                                                               |
| `thumbnail`          | `string \| null` | Product image URL                                                                                                                              |
| `seller`             | `string \| null` | Seller or official store name                                                                                                                  |
| `price`              | `number \| null` | Current price in BRL                                                                                                                           |
| `originalPrice`      | `number \| null` | Original price before discount                                                                                                                 |
| `currency`           | `string`         | Always `"BRL"`                                                                                                                                 |
| `discountPercentage` | `number \| null` | Discount percentage (e.g. `30`)                                                                                                                |
| `installments`       | `string \| null` | Instalment text                                                                                                                                |
| `rating`             | `number \| null` | Average user rating (0–5)                                                                                                                      |
| `soldCount`          | `string \| null` | Sold count label (e.g. `"+5mil vendidos"`)                                                                                                     |
| `shipping`           | `string \| null` | Shipping label (e.g. `"Frete grátis"`)                                                                                                         |
| `highlight`          | `string \| null` | Badge text (e.g. `"MAIS VENDIDO"`)                                                                                                             |
| `isSponsored`        | `boolean`        | Whether the listing is a paid ad                                                                                                               |
| `isInternational`    | `boolean`        | Whether the product is sold by a cross-border (international) merchant, indicated by the CBT badge on the card                                 |
| `category`           | `string \| null` | MercadoLivre category ID (e.g. `"MLB-CELL_PHONE_CHARGERS"`), extracted from the page's embedded state JSON. May be `null` if unavailable.      |
| `scrapedAt`          | `string`         | ISO 8601 timestamp of when the record was scraped                                                                                              |

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

**Scraping 100 products (2 pages) typically uses under 0.05 Compute Units (CUs)**.

Apify's [free plan](https://apify.com/pricing) includes $5 of free usage per month — enough to scrape **thousands of products** at no cost.

#### Tips to keep costs low

- Set `maxItems` to only what you need — fewer pages means less compute.
- Combine multiple search terms in a single run rather than triggering separate runs.

### FAQ

#### Is it legal to scrape MercadoLivre?

This Actor only collects publicly available product listing data — the same information visible to any visitor without logging in. No private user data is collected. Always comply with MercadoLivre's [Terms of Service](https://www.mercadolivre.com.br/ajuda/termos-e-politicas_194) and applicable local laws. Do not use scraped data in ways that compete unfairly with MercadoLivre or its sellers.

#### Some fields come back as `null` — is that expected?

Yes. Not every listing includes all fields. For example, `soldCount` only appears on high-volume products, `rating` only appears when the product has reviews, and `originalPrice` only when a discount is active. Missing fields are set to `null` rather than omitted so the schema is always consistent.

#### The scraper got bot-blocked — what can I do?

Bot detection can be more aggressive on certain IP ranges. Enabling **Apify Proxy** (residential proxies) in the `proxyConfiguration` input significantly improves success rates on the Apify platform.

### Support

If you encounter a bug or have any suggestion for this actor or for a new one, please feel free to reach us at <contact.riseandcode@gmail.com> and we'll look into it ASAP.
We'll respond emails in English 🇺🇸 and Portuguese 🇧🇷.

# Actor input Schema

## `searchTerms` (type: `array`):

List of search terms to scrape from MercadoLivre. Each term is searched independently. Spaces are automatically converted to dashes.

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

Maximum number of products to scrape per search term.

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

Proxy settings. Using Apify Proxy is recommended to avoid rate limiting.

## Actor input object example

```json
{
  "searchTerms": [
    "pets"
  ],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "BR"
  }
}
```

# Actor output Schema

## `results` (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 = {
    "searchTerms": [
        "pets"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("riseandcode/apify-mercadolivre-search").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 = { "searchTerms": ["pets"] }

# Run the Actor and wait for it to finish
run = client.actor("riseandcode/apify-mercadolivre-search").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 '{
  "searchTerms": [
    "pets"
  ]
}' |
apify call riseandcode/apify-mercadolivre-search --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "MercadoLivre search $1/1000 results",
        "description": "Extract product listings from MercadoLivre search results — prices, discounts, ratings, seller names, shipping info, installment details, catalog IDs, and categories. Scrape any keyword, set how many results you need.",
        "version": "1.0",
        "x-build-id": "0z7QwjQQhEIn6kPhS"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/riseandcode~apify-mercadolivre-search/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-riseandcode-apify-mercadolivre-search",
                "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/riseandcode~apify-mercadolivre-search/runs": {
            "post": {
                "operationId": "runs-sync-riseandcode-apify-mercadolivre-search",
                "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/riseandcode~apify-mercadolivre-search/run-sync": {
            "post": {
                "operationId": "run-sync-riseandcode-apify-mercadolivre-search",
                "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": [
                    "searchTerms"
                ],
                "properties": {
                    "searchTerms": {
                        "title": "Search Terms",
                        "type": "array",
                        "description": "List of search terms to scrape from MercadoLivre. Each term is searched independently. Spaces are automatically converted to dashes.",
                        "default": [
                            "pets"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max Items (PER SEARCH TERM)",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of products to scrape per search term.",
                        "default": 50
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Using Apify Proxy is recommended to avoid rate limiting.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "BR"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
