MercadoLibre Trends Scraper avatar

MercadoLibre Trends Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
MercadoLibre Trends Scraper

MercadoLibre Trends Scraper

Scrape trending searches and popular products on MercadoLibre to spot market trends early.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Danilo Frias

Danilo Frias

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Scrapes public, logged-out trending searches and trending products from MercadoLibre Mexico's trends surfaces (tendencias.mercadolibre.com.mx). No login, no session cookies, no proxies, no CAPTCHA solving.

Who would use it: market researchers, ecommerce sellers, and SEO teams who want to know what Mexican MercadoLibre shoppers are searching for right now (e.g. spotting demand spikes for air conditioners, iPhones, or sneakers before sourcing inventory).

How it works

The trends pages server-render their data inside a __NORDIC_RENDERING_CTX__ JSON payload. The actor:

  1. Fetches the start URL(s) (default: the Mexico trends homepage).
  2. Parses the four trend modules (featuredTrends, increasedSearchGrowthTrends, higherRevenueTrends, shortTailTrends).
  3. Discovers category trend pages from each page's navigation (category URLs follow the pattern /{id-number}-{slug}, e.g. /1743-accesorios_para_vehiculos) and crawls them up to a depth of 3.
  4. Stops at max_items rows; dedupes repeated terms within a category.
  5. Pushes one record per unique trend term.

Inputs

FieldTypeDefaultDescription
start_urlsarray of strings["https://tendencias.mercadolibre.com.mx/"]Public trends page URLs to begin from. Category pages are discovered automatically.
max_itemsinteger200Maximum trend records to scrape before stopping.
countrystring"mx"Country site. Supported: mx, ar, co, cl, pe, br, uy. Each maps to that country's tendencias.* host.

Sample output record

{
"trend_term": "magnum 22 inverter",
"trend_url": "https://listado.mercadolibre.com.mx/magnum-22-inverter",
"category": "ROOT",
"rank": 1
}

Fields:

  • trend_term (string): the trending search keyword.
  • trend_url (string or null): the URL the trend entry points to. Stored as a string only; these pages are never fetched by this actor.
  • category (string or null): the trends category page the term came from (e.g. "Autos, Motos y Otros"; "ROOT" for the homepage).
  • rank (integer or null): 1-based position of the term within its trend module on that page.

Coverage and limits

Covered surfaces (verified live, no login wall):

  • Trends homepage: 2 live modules x ~20 terms (higherRevenueTrends, shortTailTrends).
  • Vertical category trend pages, e.g. /1743-accesorios_para_vehiculos (Autos/Motos) and /1744-autos_y_camionetas, each up to ~37 terms.
  • Two vertical pages exist but currently return zero trends (/1459-inmuebles, /1540-servicios).

Typical run yields roughly 100-160 rows; max_items above that will simply stop early. A RUN_SUMMARY value is also stored with row counts, duration, and the redirect/block/error log.

Deliberately avoided pages (login / account-verification walls):

  • listado.mercadolibre.com.mx search-result pages (trend URLs point here, but the actor never requests them).
  • articulo.mercadolibre.com.mx / product detail pages.
  • Any URL that redirects to jms/mlm/lgz/login or serves a CAPTCHA: the URL, status code, and redirect target are recorded in the run log and the crawl moves on.

Rate limiting: plain HTTPS with a normal desktop User-Agent, at most 2 concurrent connections and ~1 second between requests. The client honors the host's standard egress proxy from the https_proxy environment variable when present (and its SSL_CERT_FILE CA bundle); with no proxy configured it connects directly. A 403/429 stops the crawl politely and keeps already-scraped rows.

Data rules

  • Public pages only. No login flows, no session cookies, no CAPTCHA solving, no proxy services.
  • No personal data is collected: trend terms and public store/brand keywords only. No names, emails, or phone numbers of private individuals.

Local run

cd mercadolibre-trends-scraper
mkdir -p storage/key_value_stores/default
cat > storage/key_value_stores/default/INPUT.json <<'EOF'
{"start_urls": ["https://tendencias.mercadolibre.com.mx/"], "max_items": 200, "country": "mx"}
EOF
/home/hatch/workspace/cash-ops/apify-actors/.venv/bin/python main.py

Results land in storage/datasets/default/; a RUN_SUMMARY value with the run log lands in storage/key_value_stores/default/.