MercadoLibre Trends Scraper
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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:
- Fetches the start URL(s) (default: the Mexico trends homepage).
- Parses the four trend modules (
featuredTrends,increasedSearchGrowthTrends,higherRevenueTrends,shortTailTrends). - 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. - Stops at
max_itemsrows; dedupes repeated terms within a category. - Pushes one record per unique trend term.
Inputs
| Field | Type | Default | Description |
|---|---|---|---|
start_urls | array of strings | ["https://tendencias.mercadolibre.com.mx/"] | Public trends page URLs to begin from. Category pages are discovered automatically. |
max_items | integer | 200 | Maximum trend records to scrape before stopping. |
country | string | "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.mxsearch-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/loginor 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-scrapermkdir -p storage/key_value_stores/defaultcat > 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/.