Mercado Libre Scraper: Cars, Property & Category Alerts avatar

Mercado Libre Scraper: Cars, Property & Category Alerts

Pricing

from $1.00 / 1,000 listing returneds

Go to Apify Store
Mercado Libre Scraper: Cars, Property & Category Alerts

Mercado Libre Scraper: Cars, Property & Category Alerts

Mercado Libre scraper for car, property and category pages in Mexico, Argentina, Colombia (TuCarro), Chile (Portal Inmobiliario), Uruguay and Brazil. Monitor new listings, price drops and gone ones: a Mercado Libre sold items tracker with sell-through rate and median price. No login.

Pricing

from $1.00 / 1,000 listing returneds

Rating

0.0

(0)

Developer

Adrian Voss

Adrian Voss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

Watch a search, get only what's new. This actor reads Mercado Libre's car, property and category pages in Mexico, Argentina, Colombia (TuCarro), Chile (Portal Inmobiliario), Uruguay and Brazil, and returns one clean row per listing: title, price and currency, year and kilometres for cars, rooms and area for property, official-store badge, location, image and a permanent link. Turn on monitoring and it becomes a watchlist: new listings and price drops since your last run, charged per new row, free on quiet days. Add the sold signal and it also works as a Mercado Libre sold items tracker: listings that left the page since the last run, which of them were presumably sold, and the page's sell-through rate and median price. Schedule it and send the results to WhatsApp, Discord, Google Sheets or n8n.

Mercado Libre blocks automated keyword search; this actor monitors category and vertical pages. Keyword-search links (lista.mercadolivre.com.br/..., listado.mercadolibre.com.mx/...) and item pages go to Mercado Libre's own bot check, which also stopped a residential and an unblocking proxy in our tests. Car, property and category pages load normally, and that is what this actor watches.

Who it's for

A used-car buyer in Mexico City who wants every new Nissan listing the day it's posted. A dealer in Buenos Aires tracking Toyota prices. A renter in Santiago watching new apartments in Providencia on Portal Inmobiliario. A reseller in São Paulo watching which phones Mercado Livre is putting on offer. Each of them gets a live feed of what was just posted, without refreshing the page by hand. The Mercado Libre actors already on the Apify Store export a one-off list; none of them offers monitoring, and TuCarro and Portal Inmobiliario have almost no Store coverage at all.

Why this one

  • Monitoring first, not a one-off dump. Turn on "Only return results that are new, or dropped in price" and each page becomes a watchlist. The actor remembers every Mercado Libre item ID it has shown you and bills only for what is new or cheaper since the last run. A quiet run costs only the run fee.
  • Sold signal and sell-through rate. Tick "Alert on gone listings" and a watchlist also reports the listings that disappeared from the page, with their last price, days listed and a gonePresumedSold flag, plus a lifetime sell-through rate. See "Sold signal and sell-through" below.
  • Uses Mercado Libre's own "Publicados hoy" filter. Car pages have no newest-first sort, so a monitor would otherwise re-read the "most relevant" listings every run. With monitoring on, the actor follows the page's own "Publicados hoy" (published today) link, so each run reads today's new listings.
  • Six countries, three verticals, one input shape. Paste any car, property or category page URL with the filters you set on the site, or type a make like nissan and pick a country.
  • Typed columns from the page's own data, not text scraped off the layout: the item ID (MLM..., MLA..., MCO..., MLC..., MLU..., MLB...), the price and its currency code (including UF on Portal Inmobiliario), year and kilometres, rooms, bathrooms and m².
  • Never charged for a miss or a quiet monitoring run. A page that is blocked or empty gets a free row that says why.

What you get

One row per listing by default (turn off "Expand rows" in Advanced to get one row per search instead, with the listings nested under listings).

queryfoundstatussearchQuerysearchUrlcountrypageTypepublishedTodayOnlysortAppliedviaResidentialProxylistingCounttotalAvailabletruncatednewCountpriceDropCountgoneCountsellThroughRatemedianPricemedianPriceCurrencymonitorStatuslistingslistingIdtitlepricecurrencyisPriceFromverticallistingTypeisOfficialStoreofficialStoreNameyearkmroomsbathroomsareaM2attributeslocationimageUrlchangeTypeisNewpreviousPricepriceDropPctfirstSeenAtlastSeenAtdaysListedurlscrapedAt
https://www.mercadolivre.com.br/c/celulares-e-telefonestrueOKhttps://www.mercadolivre.com.br/c/celulares-e-telefoneshttps://www.mercadolivre.com.br/c/celulares-e-telefonesbrcategory-dealsfalserelevancefalse2020false<gone since last run (delisted, most often sold)><sell-through rate, watchlist lifetime (0-1)><median price of the page (most common currency)><all listings found (full list)>MLB6001548604Smartphone Huawei Pura 80 Pro 12gb+512gb Câmera Ultra-iluminação De 1 Polegada Câmera Teleobjetiva Macro Ultra-iluminação Cancelamento De Ruído Por Ia 5.17 Ah Dual Supercharge Celular Preto3999BRLfalsecategory-dealsfalsehttps://http2.mlstatic.com/D_Q_NP_2X_673005-MLA113775487924_072026-AB.webp<days listed (first to last seen)>https://www.mercadolivre.com.br/smartphone-huawei-pura-80-pro-12gb512gb-camera-ultra-iluminacao-de-1-polegada-camera-teleobjetiva-macro-ultra-iluminacao-cancelamento-de-ruido-por-ia-517-ah-dual-supercharge-celular-preto/p/MLB58089730?pdp_filters=deal%3AMLB1536253-22026-09-24T06:20:13.130Z
FieldTypeDescription
querytextYour input line, echoed back
foundbooleantrue if Mercado Libre returned a page with listings for this line
statustextOK on a match; NOT_FOUND, BLOCKED or BAD_FORMAT on a miss
messagetextPlain-English reason for a miss, only present when found is false
searchQuerytextYour input line
searchUrllinkThe Mercado Libre page actually read (after sort and "Publicados hoy")
countrytextmx, ar, co, cl, uy or br
pageTypetextsearch for car, property and category search pages; category-deals for a Brazil /c/ landing page
publishedTodayOnlybooleantrue when the "Publicados hoy" filter was applied
sortAppliedtextThe sort actually used, or empty when the page did not offer the one you chose
listingCountnumberListings returned and billed for this line
totalAvailablenumberTotal listings Mercado Libre reports for this page
truncatedbooleantrue if more results existed than were returned
newCount / priceDropCountnumberNew listings and price drops this run (monitoring only)
goneCountnumberListings that left the page since the last run, whether or not "Alert on gone listings" returns them. Empty when this run could not check (first run, or the page was not read in full)
sellThroughRatenumberLifetime share of this watchlist's listings that went gone, 0 to 1 (0.25 = one in four). Empty until the watchlist has made its first gone check (monitoring only)
medianPrice / medianPriceCurrencynumber / textMedian price of every listing this run read, in the page's most common currency (monitoring only)
monitorStatustextNO_NEW_ROWS on a quiet monitoring run, WATCHLIST_SEEDED on a silent first run
listingIdtextMercado Libre's item ID, e.g. MLM5496379898
titletextListing title
pricenumberPrice as shown on the card
currencytextMXN, ARS, COP, CLP, CLF (UF), UYU, USD or BRL
isPriceFrombooleantrue when the card says "Desde" (a new-car range or a development's lowest unit)
verticaltextcars, property, category or category-deals
listingTypetextMercado Libre's own listing domain, e.g. CARS_AND_VANS, APARTMENTS_FOR_RENT
isOfficialStorebooleanSold by a Mercado Libre official store (a brand or dealership)
officialStoreNametextThat official store's name, e.g. "Nissan". Empty for every other seller
year / kmnumberCars only
rooms / bathrooms / areaM2numberProperty only. For a development listed as a range ("1 a 3 dormitorios") the lower bound
attributestextThe card's attribute strip as shown, e.g. "2020 | 60.000 Km"
locationtextLocation as shown on the card, where the card has one
imageUrllinkFirst listing image
changeTypetextnew, price-drop, gone or seen (monitoring only)
isNewbooleantrue on this listing's first appearance (monitoring only)
previousPrice / priceDropPctnumberThe last recorded price and the drop, on a price drop (monitoring only)
firstSeenAtdateWhen this watchlist first saw the listing (monitoring only)
lastSeenAt / daysListeddate / numberWhen the listing was last seen, and the days between first and last sighting (monitoring only)
lastPricenumberGone rows only: the last price seen before the listing left the page
gonePresumedSoldbooleanGone rows only: seen on 2+ runs in a row and priced at or under the page's median in its currency
urllinkPermanent listing link
scrapedAtdateWhen this row was fetched

Pricing

  • Listing returned: $2 per 1,000 listings

Plus a $0.00005 start fee per run. Each event above is billed independently, only when it actually returns data — misses (found:false) are never charged.

Monitoring / only new results

Turn on "Only return results that are new, or dropped in price" and a line becomes a watchlist:

  • A listing counts as new the first time its Mercado Libre item ID is returned by this watchlist.
  • A listing counts as a price drop when its price falls by at least "Minimum price drop" (5% by default) since it was last seen, measured against the most recently seen price.
  • Already-seen, unchanged listings are dropped before you're billed. A quiet run returns one free row with monitorStatus: NO_NEW_ROWS.
  • The first run has nothing to compare against, so it returns everything as new. Turn on "Seed silently" to bank the first run quietly and start alerting from the second run.
  • With monitoring on, "Published today filter" = Auto reads the page's "Publicados hoy" view. Mercado Libre's "today" ends at midnight in the country's time zone, so schedule the watchlist every few hours (for example 09:00, 15:00 and 21:00 local time) to catch listings published late in the day. Set it to "Never" to watch the page in its normal order instead (best with the "Newest first" sort on Portal Inmobiliario, the one site that offers it).

Monitoring with Auto "Publicados hoy" makes no gone check, because yesterday's listings leave the "today" view at midnight whether they sold or not. Ticking "Alert on gone listings" switches Auto to the whole page (see below).

Schedule recipe. Save this actor as an Apify Task with deltaMode: true and a deltaName you choose, add a Schedule every few hours, and point the task's webhook at Discord, Slack, Google Sheets, or an n8n/Make webhook URL.

Price-drop window limitation. A price drop is only seen while the listing is still inside what a run reads. With "Publicados hoy" on, that is today's listings, so price drops on older listings are only caught with the filter set to "Never" and a narrow page (a model, a city, a price band).

Sold signal and sell-through

Tick "Alert on gone listings" and a watchlist tells you which listings left the page since the last run. This makes the actor a Mercado Libre sold items tracker for a car model, a neighbourhood's rentals or a category: how fast listings move, at what price, and what share of them sells.

What "gone" means, honestly. Mercado Libre never shows that a listing sold. gone means delisted: most often sold, sometimes withdrawn. A seller may also pause a listing, delete it and repost it under a new ID, or edit it so it no longer matches the page's filters (a price outside a price filter you set in this actor is checked and is not called gone). gonePresumedSold: true is our stronger guess: the listing was seen on 2 or more runs in a row and its last price was at or under the page's median price in the same currency. A cheap listing that stayed up and then vanished most likely sold; an overpriced one may just have been withdrawn.

How detection works, and its limit. Mercado Libre sorts car and property pages by relevance (car pages have no newest-first sort), so a listing's position on the page can't tell "sold" apart from "pushed further down". The actor therefore only checks for gone listings when a run read the whole page: it followed the page's own next-page links to the last page, the number of listings read matches Mercado Libre's own total, nothing was blocked or failed, and nothing was cut by "Most listings to return". Then every remembered listing that is missing is gone. If any of that is not true, the run makes no gone check and goneCount is empty; nothing is ever declared gone on a first run, an empty page or a blocked run. So:

  • Watch a page that fits in one run. Filter on the site (a model and year, a city, a price band) until the page has fewer listings than your "Most listings to return" (max 1,000), then paste that URL. A 4,744-listing "nissan" page is never read in full, so it never reports gone listings.
  • With "Alert on gone listings" on, "Published today filter" = Auto reads the whole page instead of "Publicados hoy". "Always" keeps the today view, and then no gone check is possible.
  • Brazil's /c/ featured-offers pages rotate their products, so they make no gone check either.
  • A gone listing is reported once. If it comes back (a paused listing reactivated), it is not re-alerted and it is taken back off the sell-through count. A listing not seen for 30 days is forgotten without being reported.
  • Sell-through rate = listings that went gone / listings this watchlist ever tracked, over its lifetime. Gone listings are counted even when "Alert on gone listings" is off, so the rate is right from the first run that reads the page in full. It stays empty until that first check.

Billing. Gone rows are ordinary listing rows, billed like any other listing (no separate event), and only returned when "Alert on gone listings" is on. A gone row never loads the listing again: it is rebuilt from what the watchlist saw last time (title, link, last price, year and km, rooms and area, location), so image and attribute strip are empty on it.

Example input (daily watchlist of apartments for rent in Providencia, Santiago, about 730 listings on Portal Inmobiliario, so one run reads the whole page; for a rental, "gone" most often means rented):

{
"searches": ["https://www.portalinmobiliario.com/arriendo/departamento/providencia-metropolitana"],
"maxListingsPerSearch": 1000,
"deltaMode": true,
"deltaName": "providencia-rent-sold",
"skipFirstRun": true,
"alertOnGone": true,
"alertOnNew": false,
"alertOnPriceDrop": false
}

The first run banks the page silently. Every later run returns only the gone rows, each with gonePresumedSold, lastPrice and daysListed, and sellThroughRate on every row. An unnamed watchlist gets a fresh memory automatically when you tick "Alert on gone listings" with Auto; a named one keeps its memory, which came from the "today" view, so the first whole-page run would report the page's older listings as new. Use a new deltaName (or "Seed silently" on a new name) when you add the sold signal to an existing watchlist.

How to use

  1. In the Apify Console. Open the actor page and click Start — the searches field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~mercadolibre-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"searches":["https://autos.mercadolibre.com.mx/nissan"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
  1. Which pages work. Paste the page from your browser, filters included:
CountryCarsPropertyCategory pages
Mexicoautos.mercadolibre.com.mx/<make> (a make works as a path keyword)inmuebles.mercadolibre.com.mx/... (not tested at build time)www.mercadolibre.com.mx/c/<slug> (not tested at build time)
Argentinaautos.mercadolibre.com.ar/<make> (a make works as a path keyword)inmuebles.mercadolibre.com.ar/... (not tested at build time)not tested
ColombiaTuCarro, carros.tucarro.com.co/ (paste a filtered URL)inmuebles.mercadolibre.com.co/... (not tested at build time)not tested
Chileautos.mercadolibre.cl/ (paste a filtered URL)Portal Inmobiliario, www.portalinmobiliario.com/<arriendo or venta>/<type>/<comuna>-metropolitananot tested
Uruguayautos.mercadolibre.com.uy/ (paste a filtered URL)inmuebles.mercadolibre.com.uy/... (not tested at build time)not tested
Brazilblocked by Mercado Livre's bot checkblocked by Mercado Livre's bot checkwww.mercadolivre.com.br/c/<slug> (featured offers, about 20 per page)

On Colombia, Chile and Uruguay a make typed as a plain line is read as a narrow text match (one to four results in our tests), so filter by make on the site and paste that URL instead. Peru and Ecuador car pages go to the bot check and are not supported.

Input

{
"searches": [
"https://autos.mercadolibre.com.mx/nissan"
]
}

One per line. Paste a car, property or category page URL from Mercado Libre, TuCarro or Portal Inmobiliario (filters included), or type a make like "nissan" and pick the country and meaning below. Keyword-search links (lista. / listado.) are not supported: Mercado Libre blocks automated keyword search. Accepted formats: https://autos.mercadolibre.com.mx/nissan, https://www.portalinmobiliario.com/arriendo/departamento/providencia-metropolitana, https://www.mercadolivre.com.br/c/celulares-e-telefones, toyota.

Sample output

See the table under "What you get" above. A line that finds nothing comes back as a row with "found": false and is never charged. A quiet monitoring run comes back as a row with "found": true, "monitorStatus": "NO_NEW_ROWS" and is also never charged.

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~mercadolibre-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"searches":["https://autos.mercadolibre.com.mx/nissan"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~mercadolibre-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"searches":["https://autos.mercadolibre.com.mx/nissan"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~mercadolibre-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"searches":["{{search}}"]}, mapping the row's search into the searches array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Mercado Libre Scraper: Car & Property Alerts" — the agent will find and run this actor.

For monitoring, point the Task's webhook (Console, your Task, Webhooks) at a Discord or Slack incoming-webhook URL, a WhatsApp automation, or an n8n/Make workflow's webhook trigger.

Tips

  • For a sold-signal watchlist, turn on "Seed silently" and leave "Alert on new listings" off: the first run banks the page and every later run returns only what left it.
  • Turn on "Seed silently" for a watchlist you're putting on a schedule, so day one isn't a wall of "new" alerts.
  • Portal Inmobiliario lists some rentals in UF (CLF) and others in pesos (CLP) on the same page. The minimum and maximum price filters compare numbers in each listing's own currency, so filter on currency too, or set the currency on the site before you paste the URL.
  • Brazil's /c/ pages show Mercado Livre's featured offers for a category (around 20 products), not every listing. Monitoring one reports new offers and price drops among them.
  • A BLOCKED status with "account verification" in the message means that page type is behind Mercado Libre's bot check. Use a car, property or category page from the table above instead.

vs. the other Mercado Libre actors

The largest Mercado Libre actors on the Apify Store (karamelo: 174 users in 30 days on Brazil and 167 on the Spanish-language sites; Apify's generic e-commerce scraper: 631) export a one-off list of products. None of them offers new-listing or price-drop monitoring, and TuCarro and Portal Inmobiliario have almost no dedicated coverage.

What it costsWhat you getTrade-off
This actorPay per listing returned; nothing for a miss or a quiet monitoring runCar, property and category pages in 6 countries, monitoring (new + price drop + gone / presumed sold), sell-through rate, "Publicados hoy", year/km, rooms/areaNo keyword search: Mercado Libre blocks it for automated visitors
One-off Mercado Libre product scrapersVariesProduct lists, often by keywordNo watchlist; you diff the exports yourself
Doing it yourselfYour timeThe same dataThis actor's page-state parsing, link-following and monitoring memory are the upkeep it absorbs

Data & privacy

This actor reads public listing pages that anyone can see without logging in. It doesn't log in, solve CAPTCHAs, or reveal hidden contact details, and it doesn't use Mercado Libre's API. Listing cards carry no private seller identity: the only seller detail output is the name of an official store (a brand or dealership) when Mercado Libre shows that badge. Seller phone numbers and emails are never collected. Not affiliated with Mercado Libre.

Is this allowed? It collects the same public listing data your browser shows, for the pages you choose. It's built for monitoring a page, not for copying the marketplace. Check that your use fits Mercado Libre's terms and your local law (Brazil's LGPD, for example, is close to the GDPR).

FAQ

Why can't I search by keyword? Mercado Libre sends automated keyword searches and item pages to an "account verification" bot check. In our tests it stopped a Brazilian residential IP and an unblocking proxy too. Car, property and category pages are not behind it, so the actor watches those.

Why is a row empty, or why does found say false? The line was blank or not a Mercado Libre link (BAD_FORMAT), the page went to the bot check (BLOCKED), or the page had no listings right now (NOT_FOUND). The message column says which. None of these are billed.

Does it find sold listings? It finds listings that left the page, which is the closest a public Mercado Libre page gets: the site never marks a listing as sold. Turn on "Alert on gone listings". Each gone row says whether it is presumed sold (seen on 2+ runs and priced at or under the median) and the watchlist gets a sell-through rate. It only works on pages the actor can read in full in one run; see "Sold signal and sell-through".

Am I charged for a quiet monitoring run? No. When nothing is new and nothing is cheaper you get one row with monitorStatus: NO_NEW_ROWS and listingCount: 0, and billing only fires when listingCount is above zero.

Why does a car price say "from" (isPriceFrom: true)? New cars sold by official stores and new property developments show a "Desde" (from) price for the cheapest version or unit. The card's number is kept as is and flagged.

Do I need to configure proxies? No. The actor starts on Apify's default datacenter proxy. Some pages (the Mexico car pages, for example) send data-centre visitors to Mercado Libre's bot check; those are fetched again through a residential IP in the page's own country, automatically, and the row says so in viaResidentialProxy. You can turn that off in the input. No proxy helps with keyword search.

Can an AI agent call this directly? Yes. An agent in Claude, Cursor or another MCP client with the Apify MCP server can find and run it by name, or you can call the REST endpoint shown above.

  • OLX Pakistan Scraper: the same watch-a-search monitoring for Pakistan's largest classifieds site.
  • OLX Scraper: multi-country OLX listings with the same monitoring mode.