Brico APIbrico.be ↗
Search Brico.be's home improvement catalog via API. Returns product titles, prices, availability, ratings, brand, and category data for Belgian DIY products.
What is the Brico API?
The Brico.be API gives developers access to Belgium's home improvement retailer through 1 endpoint that returns up to 100 products per page, including price, brand, rating, category, and availability data. The search_products endpoint accepts free-text queries in French, Dutch, or English and supports pagination and sort controls, making it straightforward to build product finders, price trackers, or purchasing tools against Brico.be's full catalog.
curl -X GET 'https://api.parse.bot/scraper/bc8a561c-9a09-4e2d-b5b1-18f24dd97173/search_products?page=1&sort=default&query=wood+shelves&page_size=20' \ -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 brico-be-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: brico_be_api SDK — bounded, re-runnable; every call capped."""
from parse_apis.brico_be_api import Brico, Sort, InvalidInput
client = Brico()
# Search for wood shelves sorted by price ascending
for product in client.products.search(query="wood shelves", sort=Sort.PRICE_ASC, limit=3):
print(product.title, product.price, product.currency)
# Take one product for detail inspection
item = client.products.search(query="wood shelves", limit=1).first()
if item:
print(item.title, item.brand, item.category, item.rating)
# Typed error handling around a search call
try:
for p in client.products.search(query="etagere", sort=Sort.NEWEST, limit=2):
print(p.id, p.title, p.availability)
except InvalidInput as e:
print("invalid input:", e)
print("exercised: products.search")
Full-text search over Brico.be's product catalog. Returns paginated product listings with price, availability, ratings, and category information. When the query matches an exact category, the upstream redirects and an empty list is returned with the redirect URL.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for paginated results (1-based). |
| sort | string | Sort order for results. When omitted, results are sorted by popularity/relevance. |
| queryrequired | string | Search term for products (e.g. 'wood shelves', 'vis', 'etagere'). |
| page_size | integer | Number of products per page (1-100). |
{
"type": "object",
"fields": {
"page": "current page number",
"products": "array of product objects with id, title, price, category, brand, rating, etc.",
"page_size": "number of products per page",
"total_results": "total number of matching products across all pages"
},
"sample": {
"data": {
"page": 1,
"products": [
{
"id": "10296378",
"ean": "7290112632685",
"link": "/fr/meubles-rangements/meubles-buanderie-garage-cave/etageres-rangement-etageres-rayonnage/etageres-rangement/etagere-keter-fused-152x122x45cm-charge-max-180kg-noir/10296378",
"brand": "Curver",
"image": "https://d2fb1ew6v6wv87.cloudfront.net/products/10296378/s01/424x424/origin.webp",
"price": 142,
"title": "Étagère Keter - Fused - 152x122x45cm - Charge Max. 180kg - Noir",
"rating": 5,
"seller": "Brico",
"category": "Etagères rangement",
"currency": "EUR",
"online_only": false,
"availability": "A domicile/ Reserve&Go",
"discontinued": false,
"review_count": 6
}
],
"page_size": 20,
"total_results": 20
},
"status": "success"
}
}About the Brico API
What the API returns
The search_products endpoint accepts a query string and returns a paginated list of product objects from Brico.be's catalog. Each product in the products array includes an id, title, price, brand, category, and rating. The total_results field tells you how many products matched across all pages, and page_size (1–100) lets you control how many appear per response.
Searching and sorting
The query parameter accepts product names, material types, or category keywords in any language commonly used on the Belgian site (French, Dutch, or English terms all work — e.g. vis, wood shelves, etagere). The optional sort parameter changes result ordering; when omitted, results default to relevance/popularity order. The page parameter is 1-based and works alongside page_size for standard offset pagination.
Category redirect behavior
When a query exactly matches a Brico.be category name rather than a product keyword, the upstream redirects rather than returning product results. In that case the API returns an empty products array along with the redirect URL. This is expected behavior for category-level terms, not an error — adjust your query to be more specific or use a product-level term to get product listings.
Coverage scope
The API covers Brico.be's French-language catalog as it appears in public product listings. Data such as stock counts per store location, loyalty pricing, and product specification sheets that sit behind login or store-selector flows are not exposed by the current endpoint.
The Brico API is a managed, monitored endpoint for brico.be — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when brico.be 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 brico.be 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 Belgian DIY product search widget that shows live Brico.be prices and ratings.
- Track price changes over time for specific products by polling
search_productswith a product name or SKU. - Compare brand availability across a product category (e.g. all wall shelf brands) using the
brandandcategoryfields. - Populate an affiliate product feed with Brico.be titles, prices, and ratings for home improvement content.
- Aggregate top-rated products in a category by filtering results on the
ratingfield. - Monitor availability status for restocking alerts on frequently out-of-stock DIY items.
- Build a multilingual product lookup tool by querying in French or Dutch and normalizing results via the structured response fields.
| 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 Brico.be offer an official developer API?+
What does the `search_products` endpoint return for each product?+
products array includes the product id, title, price, category, brand, and rating. The response also includes pagination metadata: page, page_size, and total_results.Why does my search return an empty product list?+
products array plus a redirect URL. Use a more specific product-level term (e.g. tablette murale bois instead of tablettes murales) to get product results.Does the API return per-store stock levels or store location data?+
Can I retrieve a single product's full specification sheet or technical details?+
search_products endpoint returns listing-level fields (title, price, brand, category, rating) rather than the full specification detail found on an individual product page. You can fork the API on Parse and revise it to add a product-detail endpoint that targets a specific product ID.