Product pages cost about 40 times a listing row, so decide before the run
Which fields only exist on product pages, what turning on `scrapeDetail` does to a run's page loads and its bill, and how to get the enriched fields for only the rows that need them.
Turning on `scrapeDetail` multiplies a Mercado Libre run's browser page loads by about 40 and is billed as a separate event at $0.018 per enriched row on the Free plan, against $0.0045 for a listing row. What that buys is a set of fields that exist on no marketplace's listing pages at all: rating, reviews count, location, stock ranges, attributes, seller identity, description, images, brand, warranty and the Venezuelan dual price. The efficient pattern is two passes — a cheap listing sweep to decide which items matter, then a second run over those specific product URLs through `startUrls`, which pays the detail rate only on rows that earned it.
Key points
Turning on `scrapeDetail` multiplies browser page loads by about 40, because each listing row becomes its own page fetch.
A product page is billed at $0.018 on the Free plan against $0.0045 for a listing row, and only when the page actually opened.
Rating, reviews, location, stock ranges, attributes, seller identity and the dual price appear on no marketplace's listing pages, so they cannot be obtained more cheaply.
A failed detail fetch returns the listing row at the listing rate rather than charging for a page that produced nothing.
Two passes — a listing sweep to select rows, then a detail run over those specific URLs — pays the detail rate only on the rows that earned it.
One switch changes a run's cost by more than an order of magnitude. It is worth understanding before it is worth setting.
What a product page adds
rating, reviews_count, location, sold_quantity_text, available_quantity_text, attributes, seller_id, description, images, brand, sku, availability, breadcrumb, warranty_text — and the Venezuelan dual price.
None of these appear on listing pages on any marketplace. Competing Actors that promise them from listings return null.
What it costs in loads and in money
Without detail, one page load yields up to 48 listing rows. With it, every row needs its own product page — about 40 times the browser page loads for the same number of results. The billing follows the work: $0.0045 per listing row on the Free plan against $0.018 per enriched row, falling to $0.0011 and $0.0095 on Gold and above.
What happens when a detail fetch fails
You get the listing row and pay the listing rate. The detail event is charged only when the page actually opened and produced its fields, which is the same rule that governs pages lost to the anti-bot wall.
The two-pass pattern
Run a cheap listing sweep first. Decide from it which items actually matter — the top 200 by price, the ones from a particular seller, the ones that changed since last week. Then run a second job with those product URLs in startUrls, which are scraped as detail pages.
Price monitoring, assortment tracking and competitor catalogues run entirely on listing rows. Rating, stock and attribute work needs detail. If you are unsure, start without it — a listing run is cheap enough to throw away and a detail run over a whole catalogue is not.
Frequently asked questions
▸Why is scrapeDetail so much more expensive?
Because it changes the unit of work. Without it, one page load yields up to 48 listing rows; with it, each row needs its own product page fetch, which is about 40 times the browser page loads for the same number of results.
▸Can I get ratings without scraping product pages?
No. Rating, reviews count, location, stock ranges, attributes and seller identity are absent from listing pages on every one of the seventeen marketplaces, so there is no cheaper route to them within Mercado Libre's public pages.
▸Am I charged if a product page fails to open?
No. A failed detail fetch returns the listing row and is charged at the listing rate, because the product page produced nothing. The detail event is only charged when the page actually opened and yielded its fields.
▸What is the two-pass pattern?
Run a cheap listing sweep first and decide from it which items are worth enriching, then run a second job over those specific product URLs through `startUrls`. That pays the product-page rate only on the rows that earned it rather than on the whole catalogue.
Sources
Every URL below was requested and returned a page on the date shown.
A working method for extracting listings and product pages from any of the 17 Mercado Libre marketplaces, including the two decisions — pagination and detail pages — that decide what a run costs.
The official Mercado Libre API requires OAuth and returns 403 to an anonymous request. A comparison of what the API gives an authorised caller, what scraping gives anyone, and which fields exist in only one of the two.
Mercado Libre results mix `articulo.…/MLA-…`, `/p/MLA…` and `/up/MLAU…` links. Deriving the item id from the URL looks fine until the third shape appears, which can be nearly half a page.