Leroy Merlin APIleroymerlin.pt ↗
Access Leroy Merlin Portugal product listings, prices, specs, categories, and DIY workshop schedules via a structured JSON API with 5 endpoints.
What is the Leroy Merlin API?
The Leroy Merlin Portugal API provides 5 endpoints covering product search, detailed product data, category navigation, and DIY workshop listings from leroymerlin.pt. The search_products endpoint accepts a keyword and returns up to 30 items per query with name, price, rating, SKU, image, and URL. Workshop data includes per-store schedules with store name, day, and time, making it useful for both catalog integration and event planning workflows.
curl -X GET 'https://api.parse.bot/scraper/2fdc2f1f-164a-408a-9e84-325d1face053/search_products?query=tinta' \ -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 leroymerlin-pt-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.
from parse_apis.leroy_merlin_portugal_api import LeroyMerlin, Product, ProductDetail, Workshop, WorkshopDetail, WorkshopSession, Category
client = LeroyMerlin()
# Search for products
for product in client.products.search(query="tinta"):
print(product.name, product.price, product.url)
# Get full details for the first product
detail = product.details.get()
print(detail.description, detail.reference)
for spec_key, spec_value in detail.specifications.items():
print(spec_key, spec_value)
break
# List workshops and get details
for workshop in client.workshops.list():
print(workshop.title, workshop.date)
info = workshop.details.get()
print(info.description)
for session in info.agenda:
print(session.loja, session.dia, session.hora)
break
# Browse categories
for category in client.categories.list():
print(category.name, category.url)
Search for products by keyword on leroymerlin.pt. Returns the first page of product listings with name, price, rating, URL, image, and SKU. Pagination is not supported; results are limited to the first page (~18-30 items).
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword (e.g. 'martelo', 'tinta', 'pavimento') |
{
"type": "object",
"fields": {
"count": "integer total number of products returned",
"products": "array of product objects with name, price, rating, url, image, and sku fields"
},
"sample": {
"data": {
"count": 18,
"products": [
{
"sku": "",
"url": "https://www.leroymerlin.pt/produtos/tinta-de-interior-anti-fungos-mate-branco-15-l-tecknik-pro3-dyrup-78931604.html",
"name": "Tinta de interior anti-fungos mate branco 15 L Tecknik Pro3 Dyrup",
"image": "https://media.adeo.com/media/5529474/media.png?width=100",
"price": "59,99 €",
"rating": "(37)"
}
]
},
"status": "success"
}
}About the Leroy Merlin API
Product Search and Details
The search_products endpoint accepts a required query string (e.g. 'tinta', 'martelo', 'pavimento') and returns a products array with name, price, rating, url, image, and sku fields, plus a count integer. Results are limited to the first page of listings — roughly 18 to 30 items — and pagination is not supported. To retrieve the full specification set for a specific item, pass its URL to get_product_details, which returns name, price, images (array), reference, description, and a specifications object containing key-value pairs parsed from the product page.
Category Navigation
get_product_categories requires no input parameters and returns a categories array of objects with name and url fields sourced from the site's main navigation. These cover top-level departments and featured subcategories, giving you a map of the catalog structure you can use to build browse interfaces or seed further searches.
DIY Workshop Listings and Schedules
get_workshops returns an array of upcoming workshop objects with title, url, and date fields — no parameters required. For deeper data, get_workshop_details accepts a workshop url and returns the title, a description of what participants will learn, an info object containing metadata such as duração (duration), dificuldade (difficulty level), and preço (price), and an agenda array where each entry specifies loja (store location), dia (day), and hora (time). This makes it straightforward to surface session availability across different store branches.
The Leroy Merlin API is a managed, monitored endpoint for leroymerlin.pt — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when leroymerlin.pt 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 leroymerlin.pt 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?+
- Build a price comparison tool for Portuguese hardware and home improvement products using
priceandskufields fromsearch_products. - Sync a product catalog with descriptions and technical specifications by chaining
search_productswithget_product_details. - Display upcoming Leroy Merlin DIY workshops with dates and store locations using
get_workshopsandget_workshop_details. - Generate a store-by-store event calendar using the
agendaarray fromget_workshop_details, filtered byloja. - Populate a category navigation menu or sitemap using names and URLs from
get_product_categories. - Monitor product ratings over time using the
ratingfield returned bysearch_productsfor a given keyword. - Aggregate product images for a visual search or catalog app using the
imagesarray fromget_product_details.
| 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 Leroy Merlin Portugal have an official developer API?+
How many results does `search_products` return, and can I paginate through them?+
count field indicating how many products were returned.Does `get_workshop_details` return session availability for all Leroy Merlin Portugal stores?+
agenda array includes all sessions listed on the individual workshop page, each with a loja (store name), dia (day), and hora (time). Coverage reflects only what is scheduled and published on that specific workshop's page at the time of the request.Does the API expose stock availability or inventory levels for products?+
name, price, rating, sku, description, images, and specifications, but do not include stock status or in-store inventory counts. You can fork this API on Parse and revise it to add an endpoint targeting product availability data.Are product reviews or user-submitted ratings beyond the summary score accessible?+
search_products endpoint returns a summary rating field per product, but individual review text, review counts, or reviewer details are not returned by any endpoint. You can fork this API on Parse and revise it to add a review-detail endpoint if that data is needed.