Komplett APIkomplett.no ↗
Access Komplett.no product data via API: search, category browsing, specs, reviews, delivery options, weekly deals, and outlet products. Norway's largest electronics retailer.
What is the Komplett API?
The Komplett.no API exposes 10 endpoints covering Norway's largest online electronics retailer, from product search and category navigation to technical specifications, customer reviews, and real-time delivery options. The get_product_details endpoint returns price, stock status, variants, and images for any product by ID, while check_delivery_options maps delivery types and estimated arrival times to a specific Norwegian postal code.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/a8644b8f-7a67-4d70-884a-8667929c17d6/get_categories' \ -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 komplett-no-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: Komplett.no SDK — search products, browse categories, check delivery."""
from parse_apis.komplett_no_api import Komplett, Sort, ProductNotFound
client = Komplett()
# Search for laptops — limit= caps total items fetched across all pages.
for product in client.products.search(query="laptop", limit=5):
print(product.name, product.price)
# Get full details on the first search result via .get()
product = client.products.search(query="gaming headset", limit=1).first()
if product:
detail = client.products.get(id=product.id)
print(detail.name, detail.brand, detail.price, detail.currency)
# Browse a category sorted by price — constructible Category by ID.
category = client.category(category_id="10088")
for item in category.products(sort=Sort.PRICE_ASC, limit=3):
print(item.name, item.price, item.rating)
# Check delivery options for a product.
if product:
for option in product.delivery_options.list(post_code="0150", limit=5):
print(option.type, option.gross_price, option.estimated_delivery)
# Get technical specifications for a product.
if product:
spec = product.specs.get()
print(spec.sections)
# Typed error handling for a missing product.
try:
missing = client.products.get(id="9999999")
print(missing.name)
except ProductNotFound as exc:
print(f"Product not found: {exc.product_id}")
# Weekly deals — single-page listing.
for deal in client.products.weekly_deals(limit=3):
print(deal.name, deal.price, deal.review_count)
print("exercised: products.search / products.get / category.products / delivery_options.list / specs.get / products.weekly_deals")
Get the full category navigation tree including departments, categories, and subcategories with their IDs and URL paths. Returns a hierarchical structure of all product categories available on Komplett.no. Each element contains a categoryId, display text, URL path, type (Group/Category/Link), and nested child elements. Use category IDs from this tree as input to get_category_products.
No input parameters required.
{
"type": "object",
"fields": {
"navigationElements": "array of category objects with categoryId, text, url, type, and nested navigationElements",
"desktopNavigationBar": "array of top-level navigation bar links"
},
"sample": {
"data": {
"navigationElements": [
{
"text": "Alle produkter",
"type": "Group",
"categoryId": "53ebb868-158c-47ef-ae80-1111e576f9a6",
"navigationElements": [
{
"url": "/department/10000/datautstyr",
"text": "Datautstyr",
"type": "Group",
"categoryId": "aa470ae2-bf27-1920-65cd-ea1768e9f9ec",
"navigationElements": [
{
"url": "/category/10088/datautstyr/pc-komponenter/harddiskerssd",
"text": "Harddisker/SSD",
"type": "Category",
"categoryId": "10088",
"navigationElements": []
}
]
}
]
}
],
"desktopNavigationBar": [
{
"url": "/kundeservice/live-shopping",
"text": "Live Shopping",
"type": "Link",
"categoryId": "e38a8ff3-663c-416b-e051-a67860891b55"
}
]
},
"status": "success"
}
}About the Komplett API
Product Data and Search
The search_products endpoint accepts a query string and optional page integer, returning arrays of product objects that include id, name, url, price, original_price, discount, stock_status, rating, review_count, and brand. The same product shape is shared across get_category_products, get_weekly_deals, and get_outlet_products, so code written to handle one response works across all four. Category browsing via get_category_products additionally accepts a sort parameter (PriceAsc, PriceDesc, Rating, Newest) and accepts either numeric category IDs or UUIDs sourced from get_categories.
Product Detail, Specs, and Reviews
get_product_details takes a product_id (the material number) and returns a single product record including sku, currency (always NOK), variants array, description, and an images URL. For structured technical data, get_product_specifications returns sections as top-level keys, with each section containing key-value specification pairs — useful for building comparison tables. get_product_reviews returns up to 3 featured reviews (each with title, text, author, rating, and date) plus an aggregate summary with rating_value, review_count, best_rating, and worst_rating.
Delivery, Deals, and Related Products
check_delivery_options accepts a product_id and optional 4-digit Norwegian post_code, returning an array of delivery options with Type (e.g. PickupPoint, Letter, PickupInStore, Locker), GrossPrice in NOK, ExtraServices, and EstimatedDelivery as an ISO datetime. Invalid postal codes return an upstream_error field rather than silently failing. get_related_products returns two recommendation groups — recs_top for similar products and recs_accessories for accessories — each with a label and a products array using the standard product shape.
Category Navigation
get_categories requires no inputs and returns the full navigation tree as nested navigationElements, each carrying categoryId, text, url, and type. The returned IDs can be passed directly into get_category_products to programmatically walk the catalog hierarchy.
The Komplett API is a managed, monitored endpoint for komplett.no — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when komplett.no 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 komplett.no 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 over time using
get_product_detailsand theprice/original_pricefields. - Build a Norwegian electronics price comparison tool by querying
search_productsacross multiple keywords. - Monitor
get_weekly_dealsandget_outlet_productsdaily to alert users when discounted items hit a target price. - Generate structured product data sheets by combining
get_product_detailsspecs fromget_product_specifications. - Estimate shipping costs for a Norwegian e-commerce integration using
check_delivery_optionswith customer postal codes. - Populate a product recommendation widget using the
recs_accessoriesdata fromget_related_products. - Index the full Komplett.no catalog hierarchy for site search by crawling
get_categoriesand thenget_category_products.
| 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 Komplett.no have an official public developer API?+
How many reviews does `get_product_reviews` return, and what fields are included?+
title, text, author, rating, and date. The summary object provides aggregate stats: rating_value, review_count, best_rating, and worst_rating.Are there any quirks with `check_delivery_options` and postal codes?+
upstream_error field rather than an empty array, so callers should check for that field. Omitting post_code still returns available delivery types without location-specific estimates.Does the API cover seller marketplace listings or third-party merchants on Komplett.no?+
Can I retrieve the full review history for a product, beyond the 3 featured reviews?+
get_product_reviews currently returns up to 3 featured reviews as shown on the product page, along with aggregate rating data. Full paginated review history is not currently covered. You can fork the API on Parse and revise it to add a paginated reviews endpoint.