MercadoLibre API: productos, precios y vehículos en JSON
MercadoLibre sí tiene una API pública, y conviene decirlo: existe y devuelve datos de mercado. Lo que pide a cambio es registrar una aplicación y un token OAuth en cada llamada, y el stock viene agrupado. Esta API resuelve lo mismo sin ese trámite, y añade algo que la oficial no expone igual de directo: la búsqueda de vehículos con el precio tal y como se anunció.
Endpoints
| endpoint | Qué devuelve | Obligatorios |
|---|---|---|
| search | Búsqueda por palabra clave en el sitio de un país: los resultados en el mismo orden que ve el comprador. | query |
| product_detail | La ficha completa a partir del item id, del id de producto de catálogo o de la URL. | item_id |
| vertical_search | Búsqueda de vehículos. Devuelve el precio anunciado en USD o en moneda local tal y como aparece, además de la financiación que muestra el anuncio. | todos opcionales |
| vertical_listing | La ficha completa de un vehículo desde su URL exacta, con el precio anunciado original. | url |
| deals | Las 'Ofertas del día' en vivo: tarjetas con el precio actual y el anterior. | todos opcionales |
| category_items | Los productos de una categoría con precio actual, anterior y descuento. | category_id |
| category | El árbol de categorías: nombre, número de artículos y la ruta completa. | category_id |
| reviews | Las reseñas de un producto de catálogo, con texto completo, puntuación y fecha, paginadas. | product_id |
| suggest | El autocompletado de búsqueda: lo que MercadoLibre sugiere mientras el comprador escribe. | query |
Cada llamada se cobra en créditos. Las llamadas fallidas y bloqueadas son gratuitas.
Ejemplo que funciona
En vehículos el precio importa más de lo que parece: muchos anuncios se publican en dólares y la página los muestra convertidos. `vertical_search` devuelve el valor anunciado original, que es el que hay que comparar.
curl -X POST https://api.reefapi.com/mercadolibre/v1/search \
-H "x-api-key: TU_CLAVE" \
-H "content-type: application/json" \
-d '{"query": "notebook", "country": "ar"}'{
"ok": true,
"data": {
"results": [
{
"item_id": "MLA...",
"title": "...",
"price": 1250000,
"currency": "ARS",
"sold_quantity": 150
}
]
},
"meta": { "record_count": 50, "cache_hit": false, "mode": "live" }
}En lugar de tu propio scraper de MercadoLibre
Un scraper propio de MercadoLibre funciona el primer día. Lo complicado llega después: cuando cambia la estructura de las tarjetas, el parser devuelve una lista vacía en vez de un error, y en recorridos largos salta la protección anti-bot a mitad de camino.
Hay además una trampa específica de este sitio: cada país es una tienda distinta, con su moneda y su catálogo. Un scraper que no fija el país mezcla mercados y produce comparaciones que parecen válidas y no lo son.
Para una extracción puntual tu propio script sale más barato y lo decimos claro. Para un seguimiento que deba funcionar todos los días, lo caro no es el código sino las averías que nadie ve.
Límites y notas honestas
- No es la API oficial de MercadoLibre y no tenemos ningún acuerdo con MercadoLibre. Su API pública existe; lo que evita esta es el registro de aplicación y el token.
- Cada país es un sitio independiente con su propia moneda. Sin indicar país obtienes el valor por defecto, no un resultado 'global'.
- En vehículos devolvemos el precio anunciado original; si el anuncio no publica precio, el campo viene vacío.
- Sin caché: cada llamada refleja el estado en ese momento.