Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Mercado Libre API page →
E-commerce & Marketplaces

Mercado Libre API & Scraper

The MercadoLibre API returns product, price, deals and review data from Latin America's largest marketplace as clean JSON.

5 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary deals endpoint returns items with id, title, permalink, current and previous price, discount and installments, and you can pull category items, reviews, suggestions and a category. It is built for price intelligence, catalog tools and LATAM e-commerce analytics that need MercadoLibre data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.

Reference

MercadoLibre site IDs: MLA, MLB, MLM, MLC, MCO and the rest

MercadoLibre is not one marketplace — it is a separate site per country, and the site_id picks which one you are calling. The same prefix is carried inside every id the API returns, so an id tells you which country it came from. Measured 2026-08-26 by calling deals once for each site.

site_idCountryCurrency returnedListing hostExample item_id
MLAArgentinaARSmercadolibre.com.arMLA2021354154
MLBBrazilBRLmercadolivre.com.brMLB7245055100
MLMMexicoMXNmercadolibre.com.mxMLM2305625685
MLCChileCLPmercadolibre.clMLC3787927218
MCOColombiaCOPmercadolibre.com.coMCO2881784742
MLUUruguayUYUmercadolibre.com.uyMLU698399113
MPEPeruPENmercadolibre.com.peMPE885394014
MLVVenezuelaUSDmercadolibre.com.veMLV757702281
MECEcuadorUSDmercadolibre.com.ecMEC622991704

site_id also accepts MBO (Bolivia), MPY (Paraguay), MRD (Dominican Republic), MCR (Costa Rica), MGT (Guatemala), MPA (Panama), MHN (Honduras), MNI (Nicaragua) and MSV (El Salvador). On 2026-08-26 none of those nine returned a deals feed, so they are not in the table above rather than listed as if they were verified. Default site_id is MLA.

Live example

Real request and response JSON

Captured from the indexed primary action, deals, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/mercadolibre/v1/deals",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "site_id": "MLA"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "mercadolibre",
    "endpoint": "deals",
    "mode": "live",
    "latency_ms": 1890,
    "record_count": 44,
    "bytes": 0,
    "cache_hit": false,
    "site_id": "MLA",
    "total_results": 11362,
    "stop_reason": "max_pages",
    "pagination": {
      "page": 1,
      "pages_fetched": 1,
      "has_more": true
    }
  },
  "data": {
    "site_id": "MLA",
    "items": [
      {
        "item_id": "MLA[redacted-phone]",
        "product_id": "MLA68461502",
        "position": 1,
        "title": "Kit X4 Neumáticos Onyx Ny-[redacted-phone] R13 79t",
        "permalink": "https://www.mercadolibre.com.ar/kit-x4-neumaticos-onyx-ny-[redacted-phone]-r13-79t/p/MLA68461502",
        "price": {
          "current": 226517,
          "currency": "ARS",
          "previous": null,
          "discount_label": null,
          "installments_text": "6 cuotas de",
          "installments_no_interest": false
        },
        "reviews_summary": null,
        "seller": null,
        "is_official_store": false,
        "shipping_text": null,
        "brand": null,
        "deal_label": null,
        "discount_pct": 0
      },
      {
        "item_id": "MLA[redacted-phone]",
        "product_id": "MLA44880114",
        "position": 2,
        "title": "Microondas Vitta 23L 1000W Blanco Panel Digital 6 Modos Cocción",
        "permalink": "https://www.mercadolibre.com.ar/microondas-vitta-23l-1000w-blanco-panel-digital-6-modos-coccion/p/MLA44880114",
        "price": {
          "current": 129878,
          "currency": "ARS",
          "previous": null,
          "discount_label": null,
          "installments_text": "6 cuotas de",
          "installments_no_interest": false
        },
        "reviews_summary": null,
        "seller": "Vitta Home",
        "is_official_store": true,
        "shipping_text": null,
        "brand": null,
        "deal_label": null,
        "discount_pct": 0
      },
      {
        "item_id": "MLA[redacted-phone]",
        "product_id": "MLA41998086",
        "position": 3,
        "title": "Combo Taladro 750W y Amoladora Angular 115mm 720W Konan Bricolaje",
        "permalink": "https://www.mercadolibre.com.ar/combo-taladro-750w-y-amoladora-angular-115mm-720w-konan-bricolaje/p/MLA41998086",
        "price": {
          "current": 82937,
          "currency": "ARS",
          "previous": null,
          "discount_label": null,
          "installments_text": "6 cuotas de",
          "installments_no_interest": false
        },
        "reviews_summary": null,
        "seller": "Vitta Home",
        "is_official_store": true,
        "shipping_text": null,
        "brand": null,
        "deal_label": null,
        "discount_pct": 0
      }
    ],
    "total_results": 11362
  }
}
Actions

What the Mercado Libre API does

ActionDescriptionConcrete use caseKey params
dealsMercadoLibre's live deals feed (Ofertas del día) — discounted listing cards with current and previous price, discount %, star rating + review count, seller (+official-store flag), shipping and brand. Multi-country, paginated, optional minimum-discount filter. Note: this is the site-wide daily-deals browse — it is NOT keyword-filtered.Pricing teams call deals to get mercadoLibre's live deals feed (Ofertas del día).site_id, page, max_pages, min_discount, sort
category_itemsProducts listed in a MercadoLibre category — title, price (current/previous/discount), rating, product link and picture. Pass a category_id (it's resolved to the category's /c/ landing page). MercadoLibre puts keyword search behind a login, so browsing by category is the way to list real products for it.Marketplace operators call category_items to get products listed in a MercadoLibre category.category_id, site_id, sort, min_price, max_price
reviewsBuyer reviews for a catalog product — full review text, rating and date, paginated to gather ALL reviews in one call + a derived star distribution and average. Works across countries.Catalog enrichment teams call reviews to get buyer reviews for a catalog product.product_id, site_id, page, max_pages
suggestSearch-term autocomplete — what MercadoLibre suggests as a shopper types.Retail analysts call suggest to get search-term autocomplete.query, site_id
categoryBrowse the MercadoLibre category tree — a category's name, total item count, full path from root and its direct child subcategories. Drill down via children[].id; use `category_items` to retrieve the products within a category.Pricing teams call category to get browse the MercadoLibre category tree.category_id
Code samples

Call deals from your stack

curl -X POST https://api.reefapi.com/mercadolibre/v1/deals \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"site_id":"MLA"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.mercadolibre.deals with {"site_id":"MLA"}.
Use cases

Who uses this API and why

  • Pricing teams call deals and category_items to track MercadoLibre prices and promotions.
  • Catalog tools use category and suggest to map a segment's products and demand.
  • Review-analysis products pull reviews to monitor sentiment across LATAM listings.
FAQ

Questions developers ask before integrating

What do the MercadoLibre site IDs MLA, MLB, MLM, MLC and MCO mean?

They are country codes for MercadoLibre's per-country marketplaces: MLA is Argentina, MLB is Brazil, MLM is Mexico, MLC is Chile and MCO is Colombia. Every action takes a site_id (default MLA), and the money comes back in that country's currency — ARS, BRL, MXN, CLP and COP respectively, all confirmed by a live call on 2026-08-26. The table above lists the nine sites that returned data plus the nine further codes the parameter accepts.

Is a MercadoLibre item_id the same across countries?

No — an item_id belongs to exactly one country site, and it carries that site's prefix. Measured on 2026-08-26: MLA2021354154 (Argentina), MLB7245055100 (Brazil), MLM2305625685 (Mexico), MLC3787927218 (Chile), MCO2881784742 (Colombia). So you can read the country straight off the id, and looking up a MLB id against the Argentine site will not find it. Pass the matching site_id with the id.

What is the difference between item_id and product_id?

item_id is one seller's listing; product_id is the catalog entry several sellers compete on with their own prices. Both carry the site prefix — the same deals row returned item_id MLA2021354154 and product_id MLA46255802 on 2026-08-26. Use product_id when you want every offer for a product, item_id when you want the exact listing you saw.

How do I page through the MercadoLibre deals feed?

deals returns roughly 45-48 items per page. Set max_pages between 1 and 10 to fetch and merge consecutive pages in one call (results are deduplicated), and read meta.total_results for how deep the feed goes — 11,652 for Argentina and 13,550 for Brazil when measured on 2026-08-26. meta.pagination.has_more tells you whether to keep going. min_discount is documented as filtering to items with at least that percentage off, but it filters on the previous price and the deals feed does not carry one: measured 2026-08-27 across Argentina, Brazil and Mexico, every row came back with a null previous price and a zero discount, so min_discount matches nothing. Use category_items for discounts instead — most rows there do carry a previous price.

Do I need a MercadoLibre developer account or OAuth token?

No. MercadoLibre's own developer platform needs an app registration and an OAuth flow per country. This API needs neither — you send your ReefAPI key and a site_id, and the response comes back in the same { ok, data, meta, error } envelope as every other engine here.

What is the Mercado Libre API?

Mercado Libre API is a ReefAPI endpoint group for latin-american marketplace products and prices. It returns live JSON through POST requests under /mercadolibre/v1.

Is the Mercado Libre API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Mercado Libre calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Mercado Libre login or account?

No login to Mercado Libre is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Mercado Libre data?

The page example is captured from a live deals call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Mercado Libre API use?

Mercado Libre actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Mercado Libre from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call mercadolibre actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Mercado Libre API a Mercado Libre scraper?

It is the managed alternative to a DIY Mercado Libre scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same latin-american marketplace products and prices back as clean JSON.

Why does my Mercado Libre scraper keep getting blocked?

Most Mercado Libre scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / mercadolibre

Mercado Libre

Latin-American marketplace products and prices.

base /mercadolibre/v15 endpoints
post/mercadolibre/v1/deals1 credit

MercadoLibre's live deals feed (Ofertas del día) — discounted listing cards with current and previous price, discount %, star rating + review count, seller (+official-store flag), shipping and brand. Multi-country, paginated, optional minimum-discount filter. Note: this is the site-wide daily-deals browse — it is NOT keyword-filtered.

ParameterAllowed / rangeDescription
site_id = MLAoptionalMLA · MLM · MLB · MLC · MCO · MLU · MPE · MLV · MBO · MPY · MEC · MRD · MCR · MGT · MPA · MHN · MNI · MSVMercadoLibre country site. MLA=Argentina, MLM=Mexico, MLB=Brazil, MLC=Chile, MCO=Colombia, MLU=Uruguay, MPE=Peru, MEC=Ecuador, MRD=Dominican Republic, etc. Prices and currency are per-country.
page = 1optional1–Page to start from (1, 2, 3 …; ~48 deals/page).
max_pages = 1optional1–10How many consecutive pages to fetch + merge in one call (1–10, ~48 items/page; deduped).
min_discount = 0optional0–99Only items discounted at least this % off the previous price.
sort = discountoptionaldiscount · price_asc · price_desc · ratingOrder the returned deals.
Try in playground →
post/mercadolibre/v1/category_items1 credit

Products listed in a MercadoLibre category — title, price (current/previous/discount), rating, product link and picture. Pass a category_id (it's resolved to the category's /c/ landing page). MercadoLibre puts keyword search behind a login, so browsing by category is the way to list real products for it.

ParameterAllowed / rangeDescription
category_idrequiredMercadoLibre category ID (e.g. MLA1051 = Celulares y Teléfonos in Argentina). Discover IDs with the `category` action.
site_id = MLAoptionalMLA · MLM · MLB · MLC · MCO · MLU · MPE · MLV · MBO · MPY · MEC · MRD · MCR · MGT · MPA · MHN · MNI · MSVMercadoLibre country site. MLA=Argentina, MLM=Mexico, MLB=Brazil, MLC=Chile, MCO=Colombia, MLU=Uruguay, MPE=Peru, MEC=Ecuador, MRD=Dominican Republic, etc. Prices and currency are per-country.
sort = relevanceoptionalrelevance · price_asc · price_desc · ratingOrder the returned items.
min_priceoptional0–Only items at or above this price (site currency).
max_priceoptional0–Only items at or below this price (site currency).
Try in playground →
post/mercadolibre/v1/reviews1 credit

Buyer reviews for a catalog product — full review text, rating and date, paginated to gather ALL reviews in one call + a derived star distribution and average. Works across countries.

ParameterAllowed / rangeDescription
product_idrequiredMercadoLibre catalog product ID (the ML…id in a /p/<id> URL — e.g. MLA1027172677). Get it from a search item's product_id.
site_id = MLAoptionalMLA · MLM · MLB · MLC · MCO · MLU · MPE · MLV · MBO · MPY · MEC · MRD · MCR · MGT · MPA · MHN · MNI · MSVMercadoLibre country site. MLA=Argentina, MLM=Mexico, MLB=Brazil, MLC=Chile, MCO=Colombia, MLU=Uruguay, MPE=Peru, MEC=Ecuador, MRD=Dominican Republic, etc. Prices and currency are per-country.
page = 1optional1–Review page to start from (20 reviews/page).
max_pages = 5optional1–25How many review pages to gather in one call (1–25, 20/page → up to 500 reviews). Stops early when reviews run out.
Try in playground →
post/mercadolibre/v1/suggest1 credit

Search-term autocomplete — what MercadoLibre suggests as a shopper types.

ParameterAllowed / rangeDescription
queryrequiredPartial search text to complete.
site_id = MLAoptionalMLA · MLM · MLB · MLC · MCO · MLU · MPE · MLV · MBO · MPY · MEC · MRD · MCR · MGT · MPA · MHN · MNI · MSVMercadoLibre country site. MLA=Argentina, MLM=Mexico, MLB=Brazil, MLC=Chile, MCO=Colombia, MLU=Uruguay, MPE=Peru, MEC=Ecuador, MRD=Dominican Republic, etc. Prices and currency are per-country.
Try in playground →
post/mercadolibre/v1/category1 credit

Browse the MercadoLibre category tree — a category's name, total item count, full path from root and its direct child subcategories. Drill down via children[].id; use `category_items` to retrieve the products within a category.

ParameterAllowed / rangeDescription
category_idrequiredMercadoLibre category ID (starts with the site prefix, e.g. MLA1051 = Celulares y Teléfonos in Argentina, MLB1051 in Brazil). Drill down via this action's children[].id.
Try in playground →