Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Kieskeurig API page →
E-commerce & Marketplaces

Kieskeurig API & Scraper

Kieskeurig is a price comparison site for the Netherlands (kieskeurig.nl) and Belgium (kieskeurig.be).

8 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

This API reads both as JSON, logged out; `country` picks the market and the same product_id works in each. `search` and `category` return catalogue products with the cheapest offer including shipping, the shop that has it, the two cheapest new offers, the number of offers, EANs, the review score and the site's price-drop and lowest-price-ever flags, with brand, price, offer, score and spec filters and up to 100 rows per page. `offers` returns every shop for one product: item price, shipping cost, total, delivery promise, the shop's rating and its official-dealer and quality-mark flags, with refurbished offers in their own list. `product` adds the full spec sheet, EANs, the product family and images. `price_history` is Kieskeurig's own daily lowest price for about six months, with every point checked against the product's EANs, and `reviews` returns user reviews with a 1-10 score, 25 per page.

Reference

What a Kieskeurig field actually contains

Fields that read differently from how they look. Every row was measured against live Kieskeurig responses on 2026-10-15.

FieldWhat it holds
countrynl or be. Offers, prices and counts are per market ("iphone 15": 6,903 products in the Netherlands, 7,987 in Belgium); the same product_id works in both. Prices are in EUR.
lowest_total_price (search row)The cheapest NEW offer including shipping, the price Kieskeurig puts on the product card. It equalled the cheapest new offer in offers on every product checked; refurbished offers are not counted in it.
offers[].total_priceWhat the buyer pays at that shop: price plus shipping_cost. A Belgian shop listed a TV at 227 EUR plus 19 EUR shipping, total 246.
offers[].discount_priceA shop's temporary discount as the site shows it: a washing machine listed at 759 EUR carried "now 709 after 50 EUR off", shown with 759 struck through. total_price keeps the listed 759, discount_price holds 709 and effective_price is the price the site ranks by.
refurbished_offers[]Refurbished shops in their own list. The page's structured data mixes them in: an iPhone 15 Pro read 679 EUR there (a refurbished offer) while the cheapest new offer was 1,054 EUR. summary gives both, plus lowest_total_price_any_condition.
price_drop_pctThe percentage on the site's own "prijsdaling" badge, published as the site prints it.
price_history.points[]One point per day with the lowest price that day and the EAN it belongs to, about six months back. Every point's EAN is checked against the product's own EANs. The chart's daily low can come from any offer that day, so it can sit well below today's offers.
reviews[].other_variantA review can be written for another variant of the same product family; reviewed_product_id says which product it was written for.
total / reachable_totalKieskeurig's own count of matching products, and how many of them it lets you page through (the first 10,000).

The same search, category and offer lists came back identical from five different network locations, so the market is set by the country you ask for, not by where the request comes from.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/kieskeurig/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "iphone 15",
    "country": "nl"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "kieskeurig",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 691.5,
    "record_count": 24,
    "bytes": 84263,
    "cache_hit": false,
    "total": 6930,
    "upstream_requests": 1,
    "charged_credits": 2,
    "version": "0.1.0",
    "request_id": "f4d9f31cd112419e",
    "queue_ms": 1.7,
    "fetched_at": "2026-10-15T17:02:53.806Z"
  },
  "data": {
    "results": [
      {
        "product_id": "42638602",
        "title": "Apple iPhone 15 Pro / 128 GB / Zwart Titanium",
        "brand": "Apple",
        "url": "https://www.kieskeurig.nl/smartphone/product/42638602-apple-iphone-15-pro-128-gb-zwart-titanium",
        "slug": "42638602-apple-iphone-15-pro-128-gb-zwart-titanium",
        "image": "https://media.reshift.nl/catalog/A73AD6FEA29D5B7DB24FC9256291415D0622CF48?trim=auto&w=200",
        "eans": [
          "0195949018572",
          "195949018572",
          "5413729244894"
        ],
        "category_slug": "smartphone",
        "category_path": "elektronica/telefonie-en-communicatie/smartphone",
        "taxonomy_slug": "smartphones",
        "lowest_total_price": 1054,
        "lowest_effective_price": 1054,
        "lowest_price": 1054,
        "lowest_shipping_cost": 0,
        "lowest_price_shop": "Belsimpel.nl",
        "lowest_price_shop_id": "3983",
        "cheapest_offers": [
          {
            "shop_id": "[trimmed-depth]",
            "shop_name": "[trimmed-depth]",
            "shop_type": "[trimmed-depth]",
            "total_price": "[trimmed-depth]",
            "discount_price": "[trimmed-depth]",
            "effective_price": "[trimmed-depth]",
            "price": "[trimmed-depth]",
            "shipping_cost": "[trimmed-depth]",
            "delivery_code": "[trimmed-depth]",
            "shop_certificates": "[trimmed-depth]"
          },
          {
            "shop_id": "[trimmed-depth]",
            "shop_name": "[trimmed-depth]",
            "shop_type": "[trimmed-depth]",
            "total_price": "[trimmed-depth]",
            "discount_price": "[trimmed-depth]",
            "effective_price": "[trimmed-depth]",
            "price": "[trimmed-depth]",
            "shipping_cost": "[trimmed-depth]",
            "delivery_code": "[trimmed-depth]",
            "shop_certificates": "[trimmed-depth]"
          }
        ],
        "offer_count": 3,
        "currency": "EUR",
        "review_score": null,
        "review_count": 0,
        "price_drop_pct": 47,
        "lowest_price_ever": false,
        "spotlight_specs": {
          "Schermdiagonaal": "5 tot 6 inch",
          "Schermgrootte": "6.1\" inch",
          "Opslagcapaciteit": "128 gb"
        },
        "promos": []
      },
      {
        "product_id": "52604931",
        "title": "Apple Siliconen Backcover MagSafe voor iPhone 15 Plus - Sunshine Geel",
        "brand": "Apple",
        "url": "https://www.kieskeurig.nl/telefoonhoesje/product/52604931-apple-siliconenhoesje-met-magsafe-voor-iphone-15-plus-zonnig-geel",
        "slug": "52604931-apple-siliconenhoesje-met-magsafe-voor-iphone-15-plus-zonnig-geel",
        "image": "https://media.reshift.nl/catalog/F29A0186CA9C6432C5CEF8F9FEA1B117D8511C48?trim=auto&w=200",
        "eans": [
          "0195949505607",
          "195949505607"
        ],
        "category_slug": "elektronica (overig)",
        "category_path": "elektronica/telefonie-en-communicatie/telefoonhoesje",
        "taxonomy_slug": "batterij-telefoonhoesjes",
        "lowest_total_price": 49.99,
        "lowest_effective_price": 49.99,
        "lowest_price": 49.99,
        "lowest_shipping_cost": 0,
        "lowest_price_shop": "Smartphonehoesjes.nl",
        "lowest_price_shop_id": "5694",
        "cheapest_offers": [
          {
            "shop_id": "[trimmed-depth]",
            "shop_name": "[trimmed-depth]",
            "shop_type": "[trimmed-depth]",
            "total_price": "[trimmed-depth]",
            "discount_price": "[trimmed-depth]",
            "effective_price": "[trimmed-depth]",
            "price": "[trimmed-depth]",
            "shipping_cost": "[trimmed-depth]",
            "delivery_code": "[trimmed-depth]",
            "shop_certificates": "[trimmed-depth]"
          },
          {
            "shop_id": "[trimmed-depth]",
            "shop_name": "[trimmed-depth]",
            "shop_type": "[trimmed-depth]",
            "total_price": "[trimmed-depth]",
            "discount_price": "[trimmed-depth]",
            "effective_price": "[trimmed-depth]",
            "price": "[trimmed-depth]",
            "shipping_cost": "[trimmed-depth]",
            "delivery_code": "[trimmed-depth]",
            "shop_certificates": "[trimmed-depth]"
          }
        ],
        "offer_count": 2,
        "currency": "EUR",
        "review_score": null,
        "review_count": 0,
        "price_drop_pct": null,
        "lowest_price_ever": false,
        "spotlight_specs": {},
        "promos": []
      },
      {
        "product_id": "50175397",
        "title": "Apple iPhone 15 / 128 GB / Zwart / 5G",
        "brand": "Apple",
        "url": "https://www.kieskeurig.nl/smartphone/product/50175397-apple-iphone-15-128-gb-zwart-5g",
        "slug": "50175397-apple-iphone-15-128-gb-zwart-5g",
        "image": "https://media.reshift.nl/catalog/E0C2223ECE0A03EA78E0D79BCE76E27F6318BF5E?trim=auto&w=200",
        "eans": [
          "0195949035999",
          "0195949036064",
          "195949035999"
        ],
        "category_slug": "smartphone",
        "category_path": "elektronica/telefonie-en-communicatie/smartphone",
        "taxonomy_slug": "smartphones",
        "lowest_total_price": 689.95,
        "lowest_effective_price": 689.95,
        "lowest_price": 689.95,
        "lowest_shipping_cost": 0,
        "lowest_price_shop": "Amazon",
        "lowest_price_shop_id": "79",
        "cheapest_offers": [
          {
            "shop_id": "[trimmed-depth]",
            "shop_name": "[trimmed-depth]",
            "shop_type": "[trimmed-depth]",
            "total_price": "[trimmed-depth]",
            "discount_price": "[trimmed-depth]",
            "effective_price": "[trimmed-depth]",
            "price": "[trimmed-depth]",
            "shipping_cost": "[trimmed-depth]",
            "delivery_code": "[trimmed-depth]",
            "shop_certificates": "[trimmed-depth]"
          },
          {
            "shop_id": "[trimmed-depth]",
            "shop_name": "[trimmed-depth]",
            "shop_type": "[trimmed-depth]",
            "total_price": "[trimmed-depth]",
            "discount_price": "[trimmed-depth]",
            "effective_price": "[trimmed-depth]",
            "price": "[trimmed-depth]",
            "shipping_cost": "[trimmed-depth]",
            "delivery_code": "[trimmed-depth]",
            "shop_certificates": "[trimmed-depth]"
          }
        ],
        "offer_count": 6,
        "currency": "EUR",
        "review_score": null,
        "review_count": 0,
        "price_drop_pct": 6,
        "lowest_price_ever": false,
        "spotlight_specs": {
          "Schermdiagonaal": "5 tot 6 inch",
          "Schermgrootte": "6 inch",
          "Opslagcapaciteit": "128 gb"
        },
        "promos": []
      }
    ],
    "count": 24,
    "total": 6930,
    "reachable_total": 6930,
    "total_capped": false,
    "page": 1,
    "limit": 24,
    "has_more": true,
    "price_range_in_results": {
      "min": 1,
      "max": 1859
    },
    "applied": {
      "sort": "relevance"
    },
    "country": "nl",
    "currency": "EUR",
    "query": "iphone 15"
  }
}
Actions

What the Kieskeurig API does

ActionDescriptionConcrete use caseKey params
searchKeyword search on Kieskeurig (kieskeurig.nl or kieskeurig.be). Rows are catalogue products with the cheapest offer incl. shipping and the shop that has it (the two cheapest new offers), number of offers, EANs, review score and count, the site's price-drop badge and lowest-price-ever flag. Filter by category, brand, price, offer, review score and the site's own facets; sort by relevance, popularity or price.Pricing teams call search to get keyword search on Kieskeurig (kieskeurig.nl or kieskeurig.be).query, category, country, page, limit, ...
categoryOne Kieskeurig category listing (e.g. `smartphone`, `wasmachine`, `televisie`, or a top level such as `elektronica`): the same rows as `search`, sorted by popularity by default, with brand, price, offer, score, facet and numeric-trait filters and paging.Marketplace operators call category to get one Kieskeurig category listing (e.g.category, country, page, limit, sort, ...
facetsThe filter lists Kieskeurig shows for a search or a category, with counts: categories, brands, on offer, lowest price ever, price bands and spec traits (string options with their `facet_id`, numeric traits with their `trait_id` and min / median / max). Takes the same filters as `search` / `category`, so counts follow the filters already applied. Give `query` or `category` (or both).Catalog enrichment teams call facets to get the filter lists Kieskeurig shows for a search or a category, with counts.query, category, country, brand, min_price, ...
productOne Kieskeurig product with every shop's offer: title, brand, model type, EANs, product family, category, images, summary and description, the full spec sheet and filter traits, review score and count, the site's price-drop badge; plus the live offers (new and refurbished apart) and the lowest prices computed from them.Retail analysts call product to get one Kieskeurig product with every shop's offer.product_id, country
offersEvery shop's offer for one product on Kieskeurig: shop (name, id, type, rating and count, official dealer and quality-mark flags), item price, shipping cost, total incl. shipping, a shop's temporary discount price where the site shows one, delivery promise, the shop's own text and the click-out link. New offers in the site's order (cheapest effective price first); refurbished offers apart.Pricing teams call offers to get every shop's offer for one product on Kieskeurig.product_id, country, condition
price_historyKieskeurig's own price history for one product: the lowest price on each day (about six months, one point a day), with lowest / highest / median in the range. The chart's daily lowest spans every offer and can hold single days far below the band; those are kept as published and flagged `suspect_low`. Each point carries the EAN it belongs to and is checked against the product's own EANs.Marketplace operators call price_history to get kieskeurig's own price history for one product.product_id, country
reviewsUser reviews of one product on Kieskeurig, 25 per page: score (1-10), title, text, date, whether the reviewer bought it, language, likes, criteria ratings, pros and cons, and which product variant the review was written for.Catalog enrichment teams call reviews to get user reviews of one product on Kieskeurig, 25 per page.product_id, country, page
categoriesKieskeurig's category list (slug + name, about 1 270 entries) for the `category` parameter. Top-level groups such as `elektronica` work too but are not in this list.Retail analysts call categories to get kieskeurig's category list (slug + name, about 1 270 entries) for the `category` parameter.country, query
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/kieskeurig/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"iphone 15","country":"nl"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.kieskeurig.search with {"query":"iphone 15","country":"nl"}.
Use cases

Who uses this API and why

  • Track every Dutch or Belgian shop's price, shipping and delivery promise for a product list.
  • Compare the Netherlands and Belgium for the same product with one id.
  • Use the daily price history to judge whether today's price is a good one.
  • Map a category with prices, brands, review scores and spec filters.
  • Collect user reviews with scores for a product.
FAQ

Questions developers ask before integrating

Do I need a Kieskeurig account?

No. Everything is read logged out.

Which countries are covered?

The Netherlands (kieskeurig.nl) and Belgium (kieskeurig.be). Set country to nl or be. The Belgian site lists Belgian shops such as VandenBorre and Krefel.

Is shipping included in the price?

Every offer carries price, shipping_cost and total_price. total_price equalled price plus shipping on every offer measured, and the search card's price is the total.

Are refurbished offers included?

Yes, in refurbished_offers, kept apart from the new offers. Use condition=new or condition=refurbished on offers to get one list only.

How far back does price_history go?

About six months, one point a day, as Kieskeurig keeps it: 100 to 197 daily points on the products measured. Kieskeurig hides the chart on some products; those return no points and a warning.

Which filters are there?

Category, brand, price range, on offer, lowest price ever, minimum review score, spec facets and numeric spec ranges. Each was checked against the unfiltered count in the same run: Smartphones 12,544 → Apple 372, 300 to 500 EUR 620, on offer 1,241, lowest price ever 3,301, score 8 or more 252.

How many results can I page through?

Up to 100 rows per page and the first 10,000 rows of any listing; reachable_total and total_capped say where that limit falls. Narrow a large listing with filters to reach the rest.

What happens with an unknown category?

The call is refused with INVALID_PARAM. The categories action lists about 1,270 category slugs; top levels such as elektronica work too.

What is the Kieskeurig API?

Kieskeurig API is a ReefAPI endpoint group for dutch and belgian price comparison: every shop's price with shipping, new and refurbished apart, the daily price history, specs and reviews. It returns live JSON through POST requests under /kieskeurig/v1.

Is the Kieskeurig API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Kieskeurig calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Kieskeurig login or account?

No login to Kieskeurig is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Kieskeurig data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Kieskeurig API use?

Kieskeurig actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Kieskeurig from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call kieskeurig actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / kieskeurig

Kieskeurig

Dutch and Belgian price comparison: every shop's price with shipping, new and refurbished apart, the daily price history, specs and reviews.

base /kieskeurig/v18 endpoints
post/kieskeurig/v1/category2 credits

One Kieskeurig category listing (e.g. `smartphone`, `wasmachine`, `televisie`, or a top level such as `elektronica`): the same rows as `search`, sorted by popularity by default, with brand, price, offer, score, facet and numeric-trait filters and paging.

ParameterAllowed / rangeDescription
categoryrequired—Category slug: from the `categories` action, a row's `category_slug`, the first path part of a category URL (kieskeurig.nl/<slug>), or a top level like `elektronica`. An unknown slug is refused (the source would silently list the whole catalogue).
country = nloptionalnl · beWhich Kieskeurig: nl = kieskeurig.nl (Dutch shops), be = kieskeurig.be (Belgian shops). Product ids are shared; offers, prices and counts are per market. Prices in EUR.
page = 1optional1–10000Result page. The source serves the first 10 000 rows of a listing (page × limit ≤ 10 000); `reachable_total` says how many that is.
limit = 24optional1–100Rows per page (site default 24).
sort = popularoptionalpopular · relevance · price_asc · price_descResult order.
brandoptional—Brand name (`Apple`, `JACK & JONES`) or several comma-separated; matched on the site's brand key (letters and digits).
min_priceoptional0–Lowest price in EUR, whole euros (the source refuses decimals and matches against the product's cheapest offer). A value below 1 is sent as 1.
max_priceoptional0–Highest price in EUR, whole euros (rounded up). The source filters on its own price index, which can lag the live cheapest offer: measured 2026-10-15, wasmachine 300-500 returned 2 of 24 rows at 529 and 259.
on_sale = falseoptional—Only products the site marks as on offer (aanbieding).
lowest_price_ever = falseoptional—Only products at their lowest price ever (laagste prijs ooit).
min_scoreoptional1–10Lowest user review score (1-10 scale).
facetoptional—Facet option id(s) from `facets[].options[].facet_id` of an earlier `facets` call (like `t23142:iOS`, `p0-100`), comma-separated for several.
range_filteroptional—One numeric trait range as `<trait_id>_<min>-<max>` (trait ids in `facets[].trait_id`; 23144 = storage GB on smartphones).
Try in playground →
post/kieskeurig/v1/facets1 credit

The filter lists Kieskeurig shows for a search or a category, with counts: categories, brands, on offer, lowest price ever, price bands and spec traits (string options with their `facet_id`, numeric traits with their `trait_id` and min / median / max). Takes the same filters as `search` / `category`, so counts follow the filters already applied. Give `query` or `category` (or both).

ParameterAllowed / rangeDescription
queryoptional—Search words (give query or category).
categoryoptional—Category slug (give query or category).
country = nloptionalnl · beWhich Kieskeurig: nl = kieskeurig.nl (Dutch shops), be = kieskeurig.be (Belgian shops). Product ids are shared; offers, prices and counts are per market. Prices in EUR.
brandoptional—Brand name (`Apple`, `JACK & JONES`) or several comma-separated; matched on the site's brand key (letters and digits).
min_priceoptional0–Lowest price in EUR, whole euros (the source refuses decimals and matches against the product's cheapest offer). A value below 1 is sent as 1.
max_priceoptional0–Highest price in EUR, whole euros (rounded up). The source filters on its own price index, which can lag the live cheapest offer: measured 2026-10-15, wasmachine 300-500 returned 2 of 24 rows at 529 and 259.
on_sale = falseoptional—Only products the site marks as on offer (aanbieding).
lowest_price_ever = falseoptional—Only products at their lowest price ever (laagste prijs ooit).
min_scoreoptional1–10Lowest user review score (1-10 scale).
facetoptional—Facet option id(s) from `facets[].options[].facet_id` of an earlier `facets` call (like `t23142:iOS`, `p0-100`), comma-separated for several.
range_filteroptional—One numeric trait range as `<trait_id>_<min>-<max>` (trait ids in `facets[].trait_id`; 23144 = storage GB on smartphones).
Try in playground →
post/kieskeurig/v1/product3 credits

One Kieskeurig product with every shop's offer: title, brand, model type, EANs, product family, category, images, summary and description, the full spec sheet and filter traits, review score and count, the site's price-drop badge; plus the live offers (new and refurbished apart) and the lowest prices computed from them.

ParameterAllowed / rangeDescription
product_idrequired—Kieskeurig product id: `product_id` of a search / category row, or the number at the start of the product URL slug (/<category>/product/<id>-…).
country = nloptionalnl · beWhich Kieskeurig: nl = kieskeurig.nl (Dutch shops), be = kieskeurig.be (Belgian shops). Product ids are shared; offers, prices and counts are per market. Prices in EUR.
Try in playground →
post/kieskeurig/v1/offers1 credit

Every shop's offer for one product on Kieskeurig: shop (name, id, type, rating and count, official dealer and quality-mark flags), item price, shipping cost, total incl. shipping, a shop's temporary discount price where the site shows one, delivery promise, the shop's own text and the click-out link. New offers in the site's order (cheapest effective price first); refurbished offers apart.

ParameterAllowed / rangeDescription
product_idrequired—Kieskeurig product id: `product_id` of a search / category row, or the number at the start of the product URL slug (/<category>/product/<id>-…).
country = nloptionalnl · beWhich Kieskeurig: nl = kieskeurig.nl (Dutch shops), be = kieskeurig.be (Belgian shops). Product ids are shared; offers, prices and counts are per market. Prices in EUR.
condition = alloptionalall · new · refurbishedWhich offers.
Try in playground →
post/kieskeurig/v1/price_history3 credits

Kieskeurig's own price history for one product: the lowest price on each day (about six months, one point a day), with lowest / highest / median in the range. The chart's daily lowest spans every offer and can hold single days far below the band; those are kept as published and flagged `suspect_low`. Each point carries the EAN it belongs to and is checked against the product's own EANs.

ParameterAllowed / rangeDescription
product_idrequired—Kieskeurig product id: `product_id` of a search / category row, or the number at the start of the product URL slug (/<category>/product/<id>-…).
country = nloptionalnl · beWhich Kieskeurig: nl = kieskeurig.nl (Dutch shops), be = kieskeurig.be (Belgian shops). Product ids are shared; offers, prices and counts are per market. Prices in EUR.
Try in playground →
post/kieskeurig/v1/reviews3 credits

User reviews of one product on Kieskeurig, 25 per page: score (1-10), title, text, date, whether the reviewer bought it, language, likes, criteria ratings, pros and cons, and which product variant the review was written for.

ParameterAllowed / rangeDescription
product_idrequired—Kieskeurig product id: `product_id` of a search / category row, or the number at the start of the product URL slug (/<category>/product/<id>-…).
country = nloptionalnl · beWhich Kieskeurig: nl = kieskeurig.nl (Dutch shops), be = kieskeurig.be (Belgian shops). Product ids are shared; offers, prices and counts are per market. Prices in EUR.
page = 1optional1–500Review page, 25 reviews each.
Try in playground →
post/kieskeurig/v1/categories2 credits

Kieskeurig's category list (slug + name, about 1 270 entries) for the `category` parameter. Top-level groups such as `elektronica` work too but are not in this list.

ParameterAllowed / rangeDescription
country = nloptionalnl · beWhich Kieskeurig: nl = kieskeurig.nl (Dutch shops), be = kieskeurig.be (Belgian shops). Product ids are shared; offers, prices and counts are per market. Prices in EUR.
queryoptional—Keep only categories whose name or slug contains this text.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.