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

Tweakers Pricewatch API & Scraper

Tweakers Pricewatch is the price-comparison section of tweakers.net, the largest tech site in the Netherlands: for each product it lists the shops that sell it and keeps a daily price chart.

6 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 it as JSON for the Dutch market. `search` takes product words, filters by category, brand and price range, and returns each product edition with its lowest price, number of shops and review count, plus the category and brand facets with their counts. `category` reads tweakers' own category listings (videokaarten, laptops, smartphones, or one brand or product family inside them). `offers` returns every shop for one product in one call, in tweakers' order, with tweakers' own cost breakdown per shop: product price, shipping line and amount, payment method and its cost, and the total. `product` adds the lowest and highest price, the exact review score, EAN and SKU codes, the category path and the product family. `price_history` returns the daily lowest and average shop price since the product was listed, and `specs` the full specification sheet.

Reference

What a Tweakers Pricewatch field actually contains

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

FieldWhat it holds
product_idTweakers' id of one product edition, digits only (2158394), the number in tweakers.net/pricewatch/<id>/. Pass it unchanged to product, offers, specs and price_history; a product URL works too. Search to product returned the same id and title on 9 of 9 products.
price_from (search, category)The lowest shop price printed on the listing card ('vanaf'). It matched product's lowest_price, the first offer row and the last price-history point on 9 of 9 products.
total_priceTweakers' own total for that shop: product price plus the shipping line plus the payment-method line, as its cost overview prints it. On 113 of 113 offer rows the total equalled the parts. offers comes in tweakers' order, which is by total, not by product price: a shop with a lower price but paid shipping can sit below a dearer shop with free shipping.
shipping_label, shipping_costThe shipping line exactly as the shop states it to tweakers ('Pakketpost (vanaf € 50,-)', 'Opsturen') and its amount for this order in euros; 0 when the line prints € 0,-.
seller.marketplace_sellerOn marketplace rows (Amazon.nl Marketplace, bol Plaza) the business that actually sells, from the row's 'Verkoop door …' line; null on ordinary shops, whose slogan is in seller.tagline.
rating_stars, ratingListing cards and shop ratings show half stars (a product with 4.8 from 123 reviews shows 5 / 5). product.rating is the exact score; it is null, not 0, for a product nobody has reviewed yet.
refurbished[]Refurbished offers come in their own list and are not counted in offer_count, lowest_price or highest_price.
row_type, unsorted_idSearch can list shop-feed items tweakers has not yet added to its catalogue (row_type unsorted, 3 of the 5 rows for "27 inch 4k monitor"). They have prices and shops but no spec sheet or price chart; pass unsorted_id to offers for their shop list. Catalogue rows have row_type product and a product_id.
category.path, family.pathTweakers' category path (videokaarten) and the product family inside it (videokaarten/asus/prime-geforce-rtx-5070-ti-16gb-gddr7_p1700610). Pass either unchanged to category; the product was in its family listing on 3 of 3 checks.

Prices are euros including VAT for delivery in the Netherlands. Tweakers shows a different set of shops and shipping costs to visitors in Belgium; this API returns the Dutch market and says so in country: NL on every response.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/tweakers/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "rtx 5070"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "tweakers",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 506.6,
    "record_count": 40,
    "bytes": 416514,
    "cache_hit": false,
    "total": 451,
    "price_basis": "EUR, VAT included, Dutch market (tweakers.net Pricewatch for delivery in the Netherlands)",
    "pagination": {
      "page": 1,
      "last_page": 12,
      "has_more": true
    },
    "upstream_requests": 1,
    "country": "NL",
    "charged_credits": 3,
    "version": "0.1.0",
    "request_id": "56d0c438f06243c3",
    "queue_ms": 1.6,
    "fetched_at": "2026-10-18T11:42:03.805Z"
  },
  "data": {
    "query": {
      "query": "rtx 5070",
      "priced_only": true,
      "sort": "relevance",
      "page": 1
    },
    "total": 451,
    "page": 1,
    "last_page": 12,
    "has_more": true,
    "page_beyond_last": null,
    "results": [
      {
        "row_type": "product",
        "product_id": "2158422",
        "unsorted_id": null,
        "title": "Gigabyte GeForce RTX 5070 Ti Gaming OC 16G",
        "url": "https://tweakers.net/pricewatch/2158422/gigabyte-geforce-rtx-5070-ti-gaming-oc-16g.html",
        "image": "https://tweakers.net/i/NCtAXPW8w7ZWKVDndR99C40LMyQ=/fit-in/84x63/filters:strip_icc():fill(white):strip_exif()/i/2007289380.jpeg?f=thumbsmall",
        "summary": "Max. 2,588GHz • 16GB GDDR7 • 3x DP, HDMI",
        "tested": true,
        "rating_stars": 5,
        "review_count": 30,
        "price_from": 1349,
        "price_display": "€ 1.349,-",
        "currency": "EUR",
        "shop_count": 18,
        "price_status": null
      },
      {
        "row_type": "product",
        "product_id": "2176414",
        "unsorted_id": null,
        "title": "MSI GeForce RTX 5070 Ti 16G VENTUS 3X OC",
        "url": "https://tweakers.net/pricewatch/2176414/msi-geforce-rtx-5070-ti-16g-ventus-3x-oc.html",
        "image": "https://tweakers.net/i/kKc7vTleF1-gL6eeLlR9PdgsE_4=/fit-in/84x63/filters:strip_icc():fill(white):strip_exif()/i/2007272654.jpeg?f=thumbsmall",
        "summary": "Max. 2,497GHz • 16GB GDDR7 • 3x DP, HDMI",
        "tested": true,
        "rating_stars": 3.5,
        "review_count": 4,
        "price_from": 1249,
        "price_display": "€ 1.249,-",
        "currency": "EUR",
        "shop_count": 13,
        "price_status": null
      },
      {
        "row_type": "product",
        "product_id": "2158394",
        "unsorted_id": null,
        "title": "ASUS Prime GeForce RTX 5070 Ti 16GB GDDR7 OC Edition",
        "url": "https://tweakers.net/pricewatch/2158394/asus-prime-geforce-rtx-5070-ti-16gb-gddr7-oc-edition.html",
        "image": "https://tweakers.net/i/udFRaPCRnc35xA5khkcK98x6HVE=/fit-in/84x63/filters:fill(white):strip_exif()/i/2007171922.png?f=thumbsmall",
        "summary": "Max. 2,527GHz • 16GB GDDR7 • 3x DP, HDMI",
        "tested": true,
        "rating_stars": 5,
        "review_count": 123,
        "price_from": 1379.9,
        "price_display": "€ 1.379,90",
        "currency": "EUR",
        "shop_count": 15,
        "price_status": null
      }
    ],
    "country": "NL",
    "category_facets": [
      {
        "id": 326,
        "name": "Barebones",
        "count": 2
      },
      {
        "id": 61,
        "name": "Behuizingen",
        "count": 2
      },
      {
        "id": 496,
        "name": "Laptops",
        "count": 219
      }
    ],
    "brand_facets": [
      {
        "id": 47,
        "name": "Acer",
        "count": 43
      },
      {
        "id": 5,
        "name": "ASUS",
        "count": 65
      },
      {
        "id": 492,
        "name": "Gigabyte",
        "count": 20
      }
    ]
  }
}
Actions

What the Tweakers Pricewatch API does

ActionDescriptionConcrete use caseKey params
searchKeyword search in tweakers.net Pricewatch (the Netherlands). Filter by tweakers category id and brand id (both from the facets this action returns), price range and sort. Each row is one product edition with its lowest shop price ('vanaf'), number of shops, half-star rating and review count. Needs `query` OR `category_id` (either one is enough). By default only products that some shop sells right now are counted (`priced_only`); tweakers' own search also counts discontinued and announced products.Pricing teams call search to get keyword search in tweakers.net Pricewatch (the Netherlands).query, category_id, brand_id, min_price, max_price, ...
categoryOne tweakers Pricewatch category listing (the site's own 'vergelijken' page): every product edition in a category, or in a brand / product family inside it, with its lowest price, number of shops, rating and the two spec columns tweakers shows for that category. Lists what tweakers lists: products with a shop price plus announced ones without a price yet (`price_status: Wordt verwacht`). Filter by brand id and price range; sort by popularity, price, rating or newest.Marketplace operators call category to get one tweakers Pricewatch category listing (the site's own 'vergelijken' page).category, brand_id, min_price, max_price, sort, ...
productOne Pricewatch product page: title, brand, images, EAN and SKU codes, category and product family (pass `category.path` / `family.path` to `category`), the lowest and highest shop price, the number of offers, the exact review score and review count, how many users want / have it, the headline specs and whether Tweakers' lab tested it. The lowest price is checked against the offer table. Use `offers` for every shop, `specs` for the full sheet, `price_history` for the chart.Catalog enrichment teams call product to get one Pricewatch product page.product_id, url
offersEvery shop selling one product in the Netherlands, in Pricewatch's order (cheapest TOTAL first — price plus shipping plus payment cost): the shop (id, name, slogan or the marketplace seller, half-star rating and review count), the price, and tweakers' own cost breakdown for that shop — shipping line and amount, payment method and its cost, and the total. Delivery promise text per shop. Refurbished offers come apart in `refurbished[]`. The whole table comes in one call. Takes a catalogue `product_id` (or `url`), or the `unsorted_id` of an unsorted search row.Retail analysts call offers to get every shop selling one product in the Netherlands, in Pricewatch's order (cheapest TOTAL first.product_id, url, unsorted_id
specsThe full specification sheet of one product (Specificaties), grouped as tweakers groups it, in tweakers' own Dutch wording; yes/no specs are true / false. Includes the 'Meer informatie' group (category, brand, series, EAN, SKU, maker link).Pricing teams call specs to get the full specification sheet of one product (Specificaties), grouped as tweakers groups it, i….product_id, url
price_historyDaily price history of one product on Pricewatch (the price chart): the lowest shop price and the average shop price for every day tweakers recorded, from the day it was listed, plus tweakers' own chart markers (e.g. lowest price in 6 months). The chart is daily; its last point is the last completed day.Marketplace operators call price_history to get daily price history of one product on Pricewatch (the price chart).product_id, url
Code samples

Call search from your stack

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

Who uses this API and why

  • Monitor the cheapest Dutch shop price, including shipping, for a list of products every day.
  • Build a price-history dataset of the daily lowest and average price per product since launch.
  • Compare shop prices, shipping and payment costs for one product across every Dutch shop.
  • Map a category's catalogue (graphics cards, laptops, monitors) with prices, ratings and EAN codes.
  • Match products to your own catalogue by EAN and SKU and pull the full Dutch spec sheet.
FAQ

Questions developers ask before integrating

Do I need a Tweakers account?

No. Everything is read logged out, and you call reefapi.com from anywhere.

How many shops does offers return?

All of them, in one call: from 1 to 34 shops on the 9 products measured on 2026-10-15, plus a separate refurbished list (up to 13 rows on one iPhone).

Is shipping included?

Yes, as tweakers calculates it: every offer row has the shipping line, the payment method line and the total, and on 113 of 113 rows the total equalled price plus shipping plus payment cost.

Which search filters are there?

Category, brand, price range, priced-only and five sorts. Each was checked against the unfiltered count in the same run: "rtx 5070" 468 priced products → Laptops 224, one brand 73, € 600 to 900 15 (15 of 15 in range), from € 1,000 432 (40 of 40 in range). Category and brand ids come back in the facets of the same response.

How far back does price_history go?

To the day tweakers first listed the product: 597 daily points for a graphics card launched in February 2025, 1,623 for an older laptop accessory. Each point has the lowest and the average shop price of that day; the last point is the last full day.

Can I list a whole category?

Yes. category reads tweakers' own listing, 40 products per page: Videokaarten had 811 products, Laptops 4,277, Monitoren 4,058 on 2026-10-15. Filter by brand or price, sort by popularity, price, rating or newest.

Does the price depend on where I call from?

Not for you. Tweakers serves Belgian visitors a different shop list; this API always returns the Dutch one and marks it country: NL.

Do you return user reviews?

Not yet. product returns the exact review score and the number of reviews; the review texts themselves are not returned.

What is the Tweakers Pricewatch API?

Tweakers Pricewatch API is a ReefAPI endpoint group for the netherlands' tech price comparison: every dutch shop's price with shipping and total, daily price history, full specs and category listings. It returns live JSON through POST requests under /tweakers/v1.

Is the Tweakers Pricewatch API free to try?

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

Do I need a Tweakers Pricewatch login or account?

No login to Tweakers Pricewatch 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 Tweakers Pricewatch 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 Tweakers Pricewatch API use?

Tweakers Pricewatch 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 Tweakers Pricewatch from an AI assistant or MCP client?

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

docs / tweakers

Tweakers Pricewatch

The Netherlands' tech price comparison: every Dutch shop's price with shipping and total, daily price history, full specs and category listings.

base /tweakers/v16 endpoints
post/tweakers/v1/category3 credits

One tweakers Pricewatch category listing (the site's own 'vergelijken' page): every product edition in a category, or in a brand / product family inside it, with its lowest price, number of shops, rating and the two spec columns tweakers shows for that category. Lists what tweakers lists: products with a shop price plus announced ones without a price yet (`price_status: Wordt verwacht`). Filter by brand id and price range; sort by popularity, price, rating or newest.

ParameterAllowed / rangeDescription
categoryrequired—Category path as in tweakers' URL: `videokaarten`, `laptops`, `smartphones`, or deeper (a brand or product family, e.g. `consoles/sony/playstation-5-pro_p1573800`), or the full tweakers.net/…/vergelijken/ URL. `product` returns it as `category.path` and `family.path`.
brand_idoptional1–Tweakers brand id, as returned in `brand_facets` (e.g. 5 = ASUS). An unknown id is refused by tweakers (INVALID_PARAM).
min_priceoptional0–Lowest shop price in EUR (VAT included).
max_priceoptional0–Highest shop price in EUR (VAT included).
sort = popularityoptionalpopularity · price_asc · price_desc · rating · newestResult order.
page = 1optional1–500Result page, 40 products per page. A page past the last one returns no rows with `page_beyond_last: true`.
Try in playground →
post/tweakers/v1/product3 credits

One Pricewatch product page: title, brand, images, EAN and SKU codes, category and product family (pass `category.path` / `family.path` to `category`), the lowest and highest shop price, the number of offers, the exact review score and review count, how many users want / have it, the headline specs and whether Tweakers' lab tested it. The lowest price is checked against the offer table. Use `offers` for every shop, `specs` for the full sheet, `price_history` for the chart.

ParameterAllowed / rangeDescription
product_idoptional—Tweakers product id (the 'Tweakers ID' of one product edition, digits only): the `product_id` of a `search` or `category` row, also the number in a product URL tweakers.net/pricewatch/<id>/…. Provide product_id OR url.
urloptional—A tweakers.net Pricewatch product URL; alternative to product_id.
Try in playground →
post/tweakers/v1/offers3 credits

Every shop selling one product in the Netherlands, in Pricewatch's order (cheapest TOTAL first — price plus shipping plus payment cost): the shop (id, name, slogan or the marketplace seller, half-star rating and review count), the price, and tweakers' own cost breakdown for that shop — shipping line and amount, payment method and its cost, and the total. Delivery promise text per shop. Refurbished offers come apart in `refurbished[]`. The whole table comes in one call. Takes a catalogue `product_id` (or `url`), or the `unsorted_id` of an unsorted search row.

ParameterAllowed / rangeDescription
product_idoptional—Tweakers product id (the 'Tweakers ID' of one product edition, digits only): the `product_id` of a `search` or `category` row, also the number in a product URL tweakers.net/pricewatch/<id>/…. Provide product_id OR url.
urloptional—A tweakers.net Pricewatch product URL; alternative to product_id.
unsorted_idoptional—Id of an 'unsorted' row (`row_type: unsorted` in search / category): a shop-feed item tweakers lists with prices before it is added to its catalogue. Only `offers` accepts it; such items have no spec sheet or price chart.
Try in playground →
post/tweakers/v1/specs2 credits

The full specification sheet of one product (Specificaties), grouped as tweakers groups it, in tweakers' own Dutch wording; yes/no specs are true / false. Includes the 'Meer informatie' group (category, brand, series, EAN, SKU, maker link).

ParameterAllowed / rangeDescription
product_idoptional—Tweakers product id (the 'Tweakers ID' of one product edition, digits only): the `product_id` of a `search` or `category` row, also the number in a product URL tweakers.net/pricewatch/<id>/…. Provide product_id OR url.
urloptional—A tweakers.net Pricewatch product URL; alternative to product_id.
Try in playground →
post/tweakers/v1/price_history1 credit

Daily price history of one product on Pricewatch (the price chart): the lowest shop price and the average shop price for every day tweakers recorded, from the day it was listed, plus tweakers' own chart markers (e.g. lowest price in 6 months). The chart is daily; its last point is the last completed day.

ParameterAllowed / rangeDescription
product_idoptional—Tweakers product id (the 'Tweakers ID' of one product edition, digits only): the `product_id` of a `search` or `category` row, also the number in a product URL tweakers.net/pricewatch/<id>/…. Provide product_id OR url.
urloptional—A tweakers.net Pricewatch product URL; alternative to product_id.
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.