MediaMarkt APImediamarkt.be ↗
Search MediaMarkt Belgium's catalog, browse categories, and retrieve full product specs, pricing, ratings, and variants via 4 structured endpoints.
What is the MediaMarkt API?
The MediaMarkt.be API gives developers structured access to Belgium's MediaMarkt catalog across 4 endpoints, covering product search, category browsing, and detailed product pages. The get_product_details endpoint returns up to a dozen fields per product including price, brand, color, storage variants, availability, and technical specifications. Results are paginated and include article numbers suitable for inventory tracking or price monitoring.
curl -X GET 'https://api.parse.bot/scraper/b861ff7d-c572-4037-a88c-2eb8324795bf/search_products?page=1&query=hdmi+kabel' \ -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 mediamarkt-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.
"""MediaMarkt Belgium: search, browse categories, get product details."""
from parse_apis.mediamarkt_be_api import Preview, ProductNotFound
client = Preview()
# Search for products by keyword — limit= caps total items fetched
for product in client.products.search(query="hdmi kabel", limit=5):
print(product.name, product.price, product.currency)
# Browse categories from the homepage
category = client.categories.list(limit=1).first()
if category:
print(f"Category: {category.name} (slug: {category.slug})")
# List products within that category
for item in client.category(category.slug).products(limit=3):
print(item.name, item.price, item.rating)
# Fetch full product details including specs and variants
try:
detail = client.productdetails.get(url_or_slug="apple-iphone-15-5g-128-gb-blue-mtp43zda-2107453")
print(detail.name, detail.color, detail.storage)
print("Specs:", len(detail.specifications), "entries")
for color_variant in detail.variants.colors:
print(f" Color variant: {color_variant.name}")
except ProductNotFound as exc:
print(f"Product not found: {exc.url_or_slug}")
print("exercised: products.search / categories.list / category.products / productdetails.get")
Search for products on MediaMarkt.be by keyword. Returns paginated results with product names, prices, ratings, and images. Each page contains up to 12 products. Some common keywords may be redirected by the site to curated pages and return fewer results.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number to retrieve. Each page contains up to 12 products. |
| queryrequired | string | Search keyword (e.g. 'hdmi kabel', 'iphone case', 'samsung tv') |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"query": "string, the search query used",
"has_next": "boolean, whether more pages are available",
"products": "array of product objects with name, price, currency, rating, review_count, url, image, article_number",
"total_on_page": "integer, number of products returned on this page",
"total_results": "integer or absent, estimated total results (only present when extractable from the page)"
},
"sample": {
"data": {
"page": 1,
"query": "hdmi kabel",
"has_next": true,
"products": [
{
"url": "https://www.mediamarkt.be/nl/product/_isy-ihd-1015-hdmi-kabel-4k-15-m-2084710.html",
"name": "ISY IHD 1015 HDMI kabel 4K 1,5 m",
"image": "https://assets.mmsrg.com/isr/166325/c1/-/ASSET_MMS_159694095",
"price": 10.99,
"rating": 5,
"currency": "EUR",
"review_count": 2,
"article_number": "2084710"
}
],
"total_on_page": 12
},
"status": "success"
}
}About the MediaMarkt API
Search and Browse
The search_products endpoint accepts a query string (e.g. 'laptop' or 'iphone 15 128gb') and an optional page integer. Each page returns up to 12 products with name, price, currency, rating, review_count, url, image, article_number, brand, and an optional discount field. The total_results field gives an estimated count across all pages, and has_next signals whether additional pages exist.
The get_category_products endpoint works similarly but scopes results to a specific category using a category_slug parameter that matches the URL path — for example 'laptop-866' or 'telefonie-wearables-891'. The get_main_categories endpoint (no inputs required) returns the full list of top-level navigation categories with their name, slug, and url, making it straightforward to discover valid slugs before querying category listings.
Product Detail
The get_product_details endpoint accepts either a full product URL or a slug such as 'apple-iphone-15-5g-128-gb-blue-mtp43zda-2107453'. It returns name, brand, color, storage, price, rating, description, availability, and a variants object containing colors and storage arrays — each with a variant name and url. This makes it possible to enumerate all purchasable configurations of a product without additional lookups.
Coverage and Pagination
All listing endpoints (search_products, get_category_products) expose page, total_on_page, and has_next fields for cursor-style pagination. The currency field is fixed to EUR, reflecting MediaMarkt Belgium's pricing. Article numbers (article_number) are consistent across search and category results, enabling deduplication when the same product appears in multiple queries.
The MediaMarkt API is a managed, monitored endpoint for mediamarkt.be — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mediamarkt.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 mediamarkt.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?+
- Track price changes on specific products by polling
get_product_detailswith a stored product slug - Build a category navigator by fetching
get_main_categoriesthen paginating throughget_category_productsfor each slug - Enumerate all color and storage variants for a product line using the
variantsobject fromget_product_details - Monitor in-stock availability across a product set using the
availabilityfield returned byget_product_details - Aggregate brand-level pricing data by filtering
search_productsresults by thebrandresponse field - Compile product ratings and review counts across a category by paginating
get_category_productsand readingratingandreview_count
| 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 MediaMarkt have an official public developer API?+
What does the `get_product_details` endpoint return beyond basic pricing?+
price, it returns brand, color, storage, description, availability, rating, a main image URL, and a variants object listing all color and storage configurations with their individual URLs. The brand and color fields can be null when the source data does not include them.Does the search endpoint support filtering by brand, price range, or other facets?+
search_products endpoint currently accepts only a query string and a page number. Facet filtering by brand, price range, or category is not exposed. You can fork this API on Parse and revise it to add a filtering endpoint if that capability is needed.How many products does each page return, and is there a way to get more per page?+
search_products returns up to 12 products, matching MediaMarkt.be's default pagination. There is no parameter to increase the page size. The total_results field gives an estimated total so you can calculate how many pages to iterate.Are promotions, bundle deals, or historical price data available through this API?+
discount field on search results when a markdown is present, but historical pricing, bundle configurations, and promotional campaign details are not covered. You can fork this API on Parse and revise it to add an endpoint targeting promotional or deals pages.