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

Prisjakt / PriceSpy API & Scraper

Prisjakt is the largest price comparison service in the Nordics; outside them it runs as PriceSpy.

5 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 five of its markets as JSON: prisjakt.nu (Sweden, SEK), prisjakt.no (Norway, NOK), hintaopas.fi (Finland, EUR), pricespy.co.uk (United Kingdom, GBP) and pricespy.co.nz (New Zealand, NZD), chosen with `country`. `search` takes product words and returns products with the lowest price, number of offers, rating and category, plus category, brand and rating facets with their counts. `offers` returns every shop offer for one product in one call: condition (new, used or refurbished), price, shipping cost, price including shipping, delivery days, stock status, the shop's rating and a link to the shop. `price_history` is Prisjakt's price chart: every change of the lowest price with its date and the shop that set it, from 3 months back to the day the product was listed. `product` adds the full spec sheet, every variant's GTIN / EAN and the popularity rank, and `category` lists a whole category 24 products per page.

Reference

What a Prisjakt field actually contains

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

FieldWhat it holds
product_idPrisjakt's product number, the p= in produkt.php?p=13854649, returned as an integer. It is the same product on all five markets (13854649 is Apple iPhone 16 128GB in Sweden, Norway, Finland, the UK and New Zealand); prices, shops and currency follow `country`. Search to offers to product returned the same id on 28 of 28 products.
lowest_priceThe price Prisjakt prints as the product's headline "from" price. It equalled the product page's own published lowest price on 6 of 6 products and the search card's price on 28 of 28.
summary_price, price_mismatchA second lowest-price figure Prisjakt keeps in the product record. It differed from the headline on 10 of 28 products (for example 599 vs 619 GBP); when it does, price_mismatch is true. Both are returned, neither is hidden.
cheapest_new_offerThe cheapest new offer in the offer list. It can be lower than lowest_price because it also counts shops whose stock status is unknown, which the headline leaves out.
price_incl_shipping, shipping_costThe shop's price including its cheapest shipping, and that shipping cost. Both are null when the shop does not publish a shipping cost (152 of 526 offer rows measured); never estimated. Where given, price plus shipping equalled price_incl_shipping on every row.
conditionnew, used or refurbished, as the shop lists it. lowest_price is for new items; lowest_price_any_condition includes used and refurbished.
row_type: offerSearch can return single-shop items Prisjakt has not matched to a product (most visible when sorting by price). They carry the shop, the price and a link to the shop, and no product_id: Prisjakt itself has no product page for them.
total, matching_totalPrisjakt lists at most 1000 products per search (total). matching_total is the real number of matches (33,272 for "hörlurar" in Sweden).
price_history.pointsOne point per change of the lowest price: the date, the price, the shop that set it and that shop's own title for the offer. The price holds until the next point.

Prices are in the market's currency (SEK, NOK, EUR, GBP, NZD) as Prisjakt publishes them, VAT included for consumer shops. The market is chosen with country, not by where you call 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/prisjakt/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "iphone 16",
    "country": "se"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "prisjakt",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 2153.8,
    "record_count": 48,
    "bytes": 25586,
    "cache_hit": false,
    "total": 1000,
    "matching_total": 80797,
    "upstream_requests": 1,
    "charged_credits": 2,
    "version": "0.1.0",
    "request_id": "3baaa2211da2468a",
    "fetched_at": "2026-10-18T11:42:03.809Z"
  },
  "data": {
    "results": [
      {
        "row_type": "product",
        "product_id": 13854649,
        "offer_id": null,
        "title": "Apple iPhone 16 128GB",
        "url": "https://www.prisjakt.nu/produkt.php?p=13854649",
        "image": "https://cdn.pji.nu/product/standard/800/13854649.jpg?height=280&width=280",
        "category": {
          "id": "103",
          "name": "Mobiltelefoner"
        },
        "category_path": [
          "Mobil & GPS",
          "Mobiltelefoner"
        ],
        "lowest_price": 9349,
        "lowest_price_any_condition": 9349,
        "offer_count": 34,
        "currency": "SEK",
        "rating": 2.88,
        "rating_count": 3,
        "deal_percentage": null,
        "shop": null,
        "outbound_url": null
      },
      {
        "row_type": "product",
        "product_id": 14468246,
        "offer_id": null,
        "title": "Apple iPhone 16e 128GB",
        "url": "https://www.prisjakt.nu/produkt.php?p=14468246",
        "image": "https://media.pji.nu/e25438fb-8d15-40ad-b348-1a1f94e6c70c.webp?height=280&width=280",
        "category": {
          "id": "103",
          "name": "Mobiltelefoner"
        },
        "category_path": [
          "Mobil & GPS",
          "Mobiltelefoner"
        ],
        "lowest_price": 7295,
        "lowest_price_any_condition": 7295,
        "offer_count": 32,
        "currency": "SEK",
        "rating": 3.25,
        "rating_count": 5,
        "deal_percentage": null,
        "shop": null,
        "outbound_url": null
      },
      {
        "row_type": "product",
        "product_id": 13854672,
        "offer_id": null,
        "title": "Apple iPhone 16 Pro 128GB",
        "url": "https://www.prisjakt.nu/produkt.php?p=13854672",
        "image": "https://cdn.pji.nu/product/standard/800/13854672.jpg?height=280&width=280",
        "category": {
          "id": "103",
          "name": "Mobiltelefoner"
        },
        "category_path": [
          "Mobil & GPS",
          "Mobiltelefoner"
        ],
        "lowest_price": 7399,
        "lowest_price_any_condition": 7399,
        "offer_count": 6,
        "currency": "SEK",
        "rating": 3.63,
        "rating_count": 3,
        "deal_percentage": null,
        "shop": null,
        "outbound_url": null
      }
    ],
    "total": 1000,
    "matching_total": 80797,
    "matching_in_stock": 78681,
    "category_facets": [
      {
        "id": "pc:mobiltelefoner",
        "name": "Mobiltelefoner",
        "count": 24
      },
      {
        "id": "pc:mobilskal-mobilfodral",
        "name": "Mobilskal & Mobilfodral",
        "count": 8602
      },
      {
        "id": "classic:5497",
        "name": "Reservdelar för mobiltelefoner",
        "count": 110
      }
    ],
    "brand_facets": [
      {
        "id": "142",
        "name": "Apple",
        "count": 55
      },
      {
        "id": "131179",
        "name": "iPhone 16 Plus",
        "count": 48
      },
      {
        "id": "28523",
        "name": "Spigen",
        "count": 202
      }
    ],
    "rating_facets": [
      {
        "value": "1",
        "count": 1
      },
      {
        "value": "2",
        "count": 1
      },
      {
        "value": "3",
        "count": 8
      }
    ],
    "categories": [
      {
        "category_id": "103",
        "name": "Mobiltelefoner",
        "url": "https://www.prisjakt.nu/c/mobiltelefoner",
        "product_count": 24
      },
      {
        "category_id": "1672",
        "name": "Mobilskal & Mobilfodral",
        "url": "https://www.prisjakt.nu/c/mobilskal-mobilfodral",
        "product_count": 8602
      },
      {
        "category_id": "5497",
        "name": "Reservdelar för mobiltelefoner",
        "url": "https://www.prisjakt.nu/kategori.php?k=5497",
        "product_count": 110
      }
    ],
    "page": 1,
    "pages": 21,
    "has_more": true,
    "page_size": 48,
    "country": "se",
    "query": "iphone 16",
    "sort": "relevance"
  }
}
Actions

What the Prisjakt / PriceSpy API does

ActionDescriptionConcrete use caseKey params
searchKeyword search on one Prisjakt / PriceSpy market. Rows are catalogue products (lowest price, number of offers, rating, category) and, mostly in price-sorted searches, single-shop items Prisjakt has not matched to a product (`row_type: offer`, with the shop and a link to it). Filter by category and brand (ids from the facets this action returns), rating bucket and in-stock. The source lists at most 1000 products per query (`total`); the true match count is `matching_total`.Pricing teams call search to get keyword search on one Prisjakt / PriceSpy market.query, country, category_filter, brand_id, rating, ...
categoryOne category listing on a Prisjakt / PriceSpy market: every product in the category with its lowest price, lowest price including shipping, number of offers, rating and popularity rank, 24 per page. Filter by brand; sort by popularity, price, price including shipping, user-review ranking or name.Marketplace operators call category to get one category listing on a Prisjakt / PriceSpy market.category_id, country, brand_id, sort, page
productOne product on a Prisjakt / PriceSpy market: title, brand, category path, image, release date, the lowest price (new) and lowest in any condition, the highest price, number of offers and shops, user rating, popularity rank, every variant with its GTIN / EAN, and the full spec sheet (headline specs marked). The lowest price is checked against three of the source's own witnesses.Catalog enrichment teams call product to get one product on a Prisjakt / PriceSpy market.product_id, country
offersEvery shop offer for one product on a Prisjakt / PriceSpy market, in Prisjakt's order (cheapest first, new before used / refurbished): shop (name, rating, marketplace, country), condition, price, shipping cost, price including shipping, delivery days, stock status, original and member price, and the link to the shop. Shipping and the price including shipping are null where the shop publishes no shipping cost.Retail analysts call offers to get every shop offer for one product on a Prisjakt / PriceSpy market, in Prisjakt's order (cheape….product_id, country
price_historyPrisjakt's price history (the price chart) for one product on one market: every change of the lowest price, with its date, the shop that set it and that shop's offer title; plus the lowest and highest price in the range and every shop that appears in the history. A price holds until the next point.Pricing teams call price_history to get prisjakt's price history (the price chart) for one product on one market.product_id, country, time_range
Code samples

Call search from your stack

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

Who uses this API and why

  • Track the lowest price and every shop's price, with shipping, for a product list across Sweden, Norway, Finland, the UK and New Zealand.
  • Pull Prisjakt's price history to see when and at which shop a product was cheapest.
  • Compare one product's price across five markets with a single product_id.
  • Map a category's catalogue with prices, ratings, popularity rank and EAN codes.
  • Monitor shop ratings, stock status and delivery days for the offers in your category.
FAQ

Questions developers ask before integrating

Which countries are covered?

Sweden (prisjakt.nu), Norway (prisjakt.no), Finland (hintaopas.fi), the United Kingdom (pricespy.co.uk) and New Zealand (pricespy.co.nz). Pick one with country; product ids are shared, so one id can be priced in all five.

Do I need a Prisjakt account?

No. Everything is read logged out.

How many shops does offers return?

All the offers Prisjakt lists for the product, in one call: from 2 to 53 offers on the 28 products measured on 2026-10-15 (45 for an iPhone 16 in Sweden, 26 in the UK, 7 in New Zealand).

Is shipping included?

Each offer has the price, the shipping cost and the price including shipping when the shop publishes them; on 374 of 526 offer rows it did. Delivery days and the carrier come with it where the shop states them.

How far back does price_history go?

Choose 3m, 6m, 1y, 2y or all. For the iPhone 16 in Sweden, all went back to 9 September 2024 with 351 price changes; 3m had 29.

Which search filters are there?

Category, brand, rating and in-stock, each checked against the unfiltered count in the same run: "hörlurar" 33,272 matches → headphones category 8,431, one brand 38, rating 4 to 4.99 127, that brand in stock 33. The ids come back in the facets of the same response. A price-range filter is not offered: Prisjakt ignored it in every form tried.

Can I list a whole category?

Yes. category takes Prisjakt's numeric category id (103 is mobile phones, 2,162 products in Sweden) and returns 24 products per page with the lowest price, the lowest price including shipping, rating and popularity rank.

Do you return user reviews?

Not yet. product and offers return the product's rating and number of reviews, and every shop's rating; review texts are not returned.

What is the Prisjakt / PriceSpy API?

Prisjakt / PriceSpy API is a ReefAPI endpoint group for nordic, uk and nz price comparison: every shop's price with shipping, the price history chart, specs and eans for sweden, norway, finland, the uk and new zealand. It returns live JSON through POST requests under /prisjakt/v1.

Is the Prisjakt / PriceSpy API free to try?

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

Do I need a Prisjakt / PriceSpy login or account?

No login to Prisjakt / PriceSpy 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 Prisjakt / PriceSpy 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 Prisjakt / PriceSpy API use?

Prisjakt / PriceSpy actions currently cost 1-2 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Prisjakt / PriceSpy from an AI assistant or MCP client?

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

docs / prisjakt

Prisjakt / PriceSpy

Nordic, UK and NZ price comparison: every shop's price with shipping, the price history chart, specs and EANs for Sweden, Norway, Finland, the UK and New Zealand.

base /prisjakt/v15 endpoints
post/prisjakt/v1/category1 credit

One category listing on a Prisjakt / PriceSpy market: every product in the category with its lowest price, lowest price including shipping, number of offers, rating and popularity rank, 24 per page. Filter by brand; sort by popularity, price, price including shipping, user-review ranking or name.

ParameterAllowed / rangeDescription
category_idrequired—Numeric Prisjakt category id: `category.category_id` of `product`, a search row's `category.id`, `categories[]` of `search`, or the number in kategori.php?k=<id> (103 = Mobiltelefoner / Mobile phones).
country = seoptionalse · no · fi · uk · nzWhich Prisjakt / PriceSpy market: se = prisjakt.nu (SEK), no = prisjakt.no (NOK), fi = hintaopas.fi (EUR), uk = pricespy.co.uk (GBP), nz = pricespy.co.nz (NZD). Product ids are shared across markets; prices, shops and currency come from the market chosen.
brand_idoptional—Numeric brand id (e.g. 142 = Apple).
sort = popularityoptionalpopularity · price_asc · price_desc · price_incl_shipping_asc · user_reviews · nameResult order.
page = 1optional1–500Result page, 24 products per page.
Try in playground →
post/prisjakt/v1/product1 credit

One product on a Prisjakt / PriceSpy market: title, brand, category path, image, release date, the lowest price (new) and lowest in any condition, the highest price, number of offers and shops, user rating, popularity rank, every variant with its GTIN / EAN, and the full spec sheet (headline specs marked). The lowest price is checked against three of the source's own witnesses.

ParameterAllowed / rangeDescription
product_idrequired1–Prisjakt product id: the `product_id` of a search / category row, or the number in a product URL (…/produkt.php?p=<id>). The same id works on every market.
country = seoptionalse · no · fi · uk · nzWhich Prisjakt / PriceSpy market: se = prisjakt.nu (SEK), no = prisjakt.no (NOK), fi = hintaopas.fi (EUR), uk = pricespy.co.uk (GBP), nz = pricespy.co.nz (NZD). Product ids are shared across markets; prices, shops and currency come from the market chosen.
Try in playground →
post/prisjakt/v1/offers1 credit

Every shop offer for one product on a Prisjakt / PriceSpy market, in Prisjakt's order (cheapest first, new before used / refurbished): shop (name, rating, marketplace, country), condition, price, shipping cost, price including shipping, delivery days, stock status, original and member price, and the link to the shop. Shipping and the price including shipping are null where the shop publishes no shipping cost.

ParameterAllowed / rangeDescription
product_idrequired1–Prisjakt product id: the `product_id` of a search / category row, or the number in a product URL (…/produkt.php?p=<id>). The same id works on every market.
country = seoptionalse · no · fi · uk · nzWhich Prisjakt / PriceSpy market: se = prisjakt.nu (SEK), no = prisjakt.no (NOK), fi = hintaopas.fi (EUR), uk = pricespy.co.uk (GBP), nz = pricespy.co.nz (NZD). Product ids are shared across markets; prices, shops and currency come from the market chosen.
Try in playground →
post/prisjakt/v1/price_history2 credits

Prisjakt's price history (the price chart) for one product on one market: every change of the lowest price, with its date, the shop that set it and that shop's offer title; plus the lowest and highest price in the range and every shop that appears in the history. A price holds until the next point.

ParameterAllowed / rangeDescription
product_idrequired1–Prisjakt product id: the `product_id` of a search / category row, or the number in a product URL (…/produkt.php?p=<id>). The same id works on every market.
country = seoptionalse · no · fi · uk · nzWhich Prisjakt / PriceSpy market: se = prisjakt.nu (SEK), no = prisjakt.no (NOK), fi = hintaopas.fi (EUR), uk = pricespy.co.uk (GBP), nz = pricespy.co.nz (NZD). Product ids are shared across markets; prices, shops and currency come from the market chosen.
time_range = 1yoptional3m · 6m · 1y · 2y · allHow far back.
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.