Mercado Livre APImercadolivre.com.br ↗
Access Mercado Livre daily deals, best sellers, categories, search suggestions, and supermarket products via a structured JSON API for Brazil's largest marketplace.
What is the Mercado Livre API?
This API exposes 5 endpoints covering Mercado Livre (mercadolivre.com.br), Brazil's largest online marketplace. You can retrieve current Ofertas do dia via get_daily_deals — each deal object includes name, price, discount percentage, seller, rating, reviews count, free-shipping flag, and a direct product URL — or browse ranked best-sellers, top-level categories, supermarket inventory, and autocomplete search suggestions.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/5c08b656-26a3-4907-88e3-e40e79c31dcd/get_daily_deals' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace mercadolivre-com-br-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Mercado Livre SDK — bounded, re-runnable; every call capped."""
from parse_apis.mercado_livre_brazil_api import MercadoLivre, QueryRequired
client = MercadoLivre()
# Browse daily deals — limit caps total items fetched
for deal in client.deals.list(limit=3):
print(deal.name, deal.price, deal.discount)
# Search suggestions — autocomplete for a query prefix
suggestion = client.searchsuggestions.search(query="notebook", limit=1).first()
if suggestion:
print(suggestion.q, suggestion.match_start, suggestion.match_end)
# List marketplace categories
for category in client.categories.list(limit=5):
print(category.name, category.id)
# Best sellers with ranking
seller = client.bestsellers.list(limit=1).first()
if seller:
print(seller.name, seller.rank, seller.price, seller.free_shipping)
# Supermarket products
for product in client.supermarketproducts.list(limit=3):
print(product.name, product.price, product.free_shipping)
# Typed error handling for missing query
try:
client.searchsuggestions.search(query="", limit=1).first()
except QueryRequired as exc:
print(f"query required: {exc}")
print("exercised: deals.list / searchsuggestions.search / categories.list / bestsellers.list / supermarketproducts.list")
Retrieve current daily deals (Ofertas do dia) from Mercado Livre. Returns a list of discounted products with prices, discount percentages, product URLs, and seller information. The deals rotate daily and reflect time-limited promotions.
No input parameters required.
{
"type": "object",
"fields": {
"deals": "array of deal objects with product details and discount information"
},
"sample": {
"data": {
"deals": [
{
"url": "https://www.mercadolivre.com.br/creatina-monohidratada-pura-1kg-dark-lab-unidade-sem-sabor/p/MLB25929487",
"name": "Creatina Monohidratada Pura 1kg Dark Lab Unidade Sem Sabor",
"image": "https://http2.mlstatic.com/D_Q_NP_2X_848860-MLA99964507641_112025-AB.webp",
"price": 159.9,
"rating": null,
"seller": "Por Dark Lab",
"item_id": "MLB25929487",
"discount": "56% OFF",
"free_shipping": true,
"reviews_count": null
}
]
},
"status": "success"
}
}About the Mercado Livre API
Deals and Best Sellers
get_daily_deals returns the current Ofertas do dia as an array of deal objects. Each object carries name, price, url, item_id, image, seller, free_shipping, rating, reviews_count, and discount. No parameters are required — the endpoint reflects whatever deals Mercado Livre is currently promoting. get_best_sellers returns a similar shape with an added rank field so you can track position changes across polls. Both endpoints cover the full cross-category listing rather than a single department.
Categories and Supermarket
list_categories returns every top-level category Mercado Livre exposes, with each object providing name, url, and id. These IDs correspond to the standard Mercado Libre category taxonomy used across the MercadoLibre group. get_supermarket_products targets the Supermercado vertical specifically, returning grocery and household items with name, price, url, item_id, image, seller, free_shipping, rating, and reviews_count — the same shape as daily deals minus the discount field.
Search Suggestions
get_search_suggestions accepts a single required parameter, query, and returns the q (original query string) plus a suggested_queries array. Each suggestion carries its own q string, match_start and match_end character offsets indicating where the input was matched, an is_verified_store flag, and a filters array that reflects any category or facet constraints attached to that suggestion. This endpoint is useful for building typeahead interfaces or generating seed keyword lists from a partial input.
The Mercado Livre API is a managed, monitored endpoint for mercadolivre.com.br — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mercadolivre.com.br changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official mercadolivre.com.br API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor Mercado Livre daily deal prices and discount percentages to feed a price-drop alert service.
- Track best-seller rank changes over time to identify trending products in the Brazilian e-commerce market.
- Seed a product database with supermarket inventory including seller names and free-shipping eligibility.
- Build a typeahead search component using suggested_queries with match_start/match_end highlight offsets.
- Map Mercado Livre category IDs to your own taxonomy using the list_categories endpoint.
- Aggregate rating and reviews_count across daily deals to surface highly-rated discounted items.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Mercado Livre have an official developer API?+
What does get_search_suggestions return beyond the query string?+
q), match_start and match_end integer offsets showing where in the suggestion the input prefix was matched, a boolean is_verified_store flag, and a filters array that may carry category or facet constraints tied to that suggestion. The filters are useful for routing a user directly to a pre-filtered search result page.Does the API support filtering best sellers or daily deals by category?+
get_best_sellers and get_daily_deals return site-wide results without a category filter parameter. list_categories does return category IDs, but no endpoint currently accepts a category ID to scope deal or best-seller results. You can fork this API on Parse and revise it to add category-scoped endpoints using those IDs.Does the API cover product detail pages, seller profiles, or customer reviews?+
How fresh is the daily deals data?+
get_daily_deals endpoint reflects the live Ofertas do dia listing. Mercado Livre rotates these deals throughout the day, so the response content will change as promotions start and end. There is no timestamp field in the response, so consumers should record their own retrieval time if freshness tracking matters to their application.