Currys UK Scraper icon

Currys UK Scraper - Products, Prices, Stock & Reviews

Scrape Currys UK electronics by keyword or URL. Extract prices, brands, stock status, EANs, descriptions, full image galleries and customer reviews. Supports automatic forward pagination for efficient catalogue scraping.

Open actor on Apify ↗Need a custom scraper?Telegram @abotapi ↗

Currys UK Scraper at a glance

Currys UK Scraper is a ready-to-run Apify actor from abotapi for collecting ecommerce data. Its output documents 29 fields, including product id, change type (incremental mode), sku, url and title, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Ecommerce
Region
Europe
Pricing
$2.00 per 1,000 results (Free plan), from $1.20 on paid plans
Output
29 documented fields · JSON, CSV, Excel
Inputs
21 options

What Currys UK Scraper can do

  • Two ways in. Keyword search, or paste search and category URLs directly.
  • Rich product data. Brand, current price, stock state, EAN/GTIN, category path, and the full high-resolution photo gallery.
  • Customer reviews included. Pull each product's own customer reviews, rating, text, author, and date, as a separate toggle.
  • Client-side filters. Narrow by price range and in-stock status without extra requests.
  • Multi-category coverage. TVs, laptops, mobiles, appliances, and every other category the site carries, all through one actor.
  • Predictable output caps. One clear limit on total products per run, with pagination following automatically.

Choose what to collect

These inputs let you configure Currys UK Scraper - Products, Prices, Stock & Reviews. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredSearch mode = type keywords to search for. URL mode = paste one or more currys.co.uk search/category URLs already refined in a browser.

Choices: search, url

queriesarrayOne or more keywords to search for, e.g. "tv", "laptop", "washing machine". Each keyword runs as its own search.
minPriceintegerOptional. Only keep products priced at or above this amount. Applied to the already-fetched results (does not reduce the number of pages fetched).
maxPriceintegerOptional. Only keep products priced at or below this amount.
inStockOnlybooleanOnly keep products currently marked in stock.
sortBystringHow to order results within each search.

Choices: Relevance, PriceAsc, PriceDesc

urlsarrayOne or more full currys.co.uk search URLs. Multi-URL supported. Pagination starts at the page in the URL and walks forward.
Show 14 more inputs
More input fields
InputWhat it controls
fetchDetailsbooleanAdds the full description, GTIN/EAN, full high-res photo gallery, and precise stock state. Turn off for a faster run with just the search-result fields (title, brand, price, rating).
fetchReviewsbooleanFetch each product's Currys customer reviews (rating, text, author, date) from the reviews provider. Billed per review fetched, see the Pricing tab.
maxReviewsPerProductintegerCap on reviews fetched per product when "Fetch customer reviews" is on.
maxPagesintegerHow many result pages to walk per search/URL (20 products per page). Leave empty to walk until Max total products is reached or the search runs out of pages.
maxListingsintegerHard cap across the whole run. 0 = unlimited (bounded only by Max pages).
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a full-catalogue walk across separate runs. Products already collected there (matched by product id) are skipped, so this run only saves the new ones. Leave empty for a normal fresh run. For recurring monitoring of the same search instead, use Incremental mode below.
incrementalModebooleanTurn this on for daily/weekly recurring monitoring of the same search. The first run returns all matching products as NEW. Later runs return only NEW, UPDATED, and REAPPEARED products by default. Turn on "Emit unchanged products" or "Emit expired products" only when you also want those rows returned (and billed). State is kept separately per search (keywords/URLs, filters, detail/review settings); use State key below to name or deliberately share a monitoring campaign.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the search inputs above.
emitUnchangedbooleanOff by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you specifically want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return products that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search, not when Max pages/Max products capped it, a block stopped it early, or Resume was used.
ignoreFieldsForChangesarrayOptional. Field names to exclude from change detection in addition to the defaults (rating, reviewCount, reviews, priceValidUntil, which are already ignored because they change independently of the product itself). Use this if another field in your setup turns out to be noisy.
mcpConnectorsarrayOptionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip, never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

idProduct ID
changeTypeChange type (incremental mode)
skuSKU
urlURL (link)
titleTitle
brandBrand
pricePrice
wasPriceWas price (pre-discount)
discountDiscount amount
discountPercentDiscount %
currencyCurrency
availabilityStatusAvailability
Show 17 more fields
categoriesCategories (array)
eanEAN/GTIN
ratingRating
reviewCountReview count
descriptionDescription
imagesImage URLs (array)
priceValidUntilPrice valid until (date)
carePlansCare plans (array)
financeOptionsFinance options (array)
scrapedAtScraped (date)
changedFieldsChanged fields (incremental mode) (array)
firstSeenAtFirst seen (incremental mode) (date)
lastSeenAtLast seen (incremental mode) (date)
reviewReview text
authorAuthor
authorLocationAuthor location
dateDate (date)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "id": "10000001",
  "sku": "000001",
  "url": "https://www.currys.co.uk/products/sample-product-0000000-10000001.html",
  "title": "Sample Brand 40\" Smart Full HD HDR LED TV",
  "brand": "SAMPLE BRAND",
  "price": 199.99,
  "currency": "GBP",
  "availabilityStatus": "InStock",
  "categories": [
    "TV & Audio",
    "Televisions",
    "TVs"
  ],
  "ean": "0000000000000",
  "rating": 4.6,
  "reviewCount": 29,
  "description": "Sample product description text appears here when details are fetched.",
  "images": [
    "https://media.currys.biz/i/currysprod/00000000?$l-large$"
  ],
  "priceValidUntil": "2026-12-31",
  "reviews": [
    {
      "rating": 5,
      "review": "Sample review text goes here.",
      "author": "Sample Author",
      "authorLocation": "GBR",
      "date": "2026-01-01T00:00:00.000Z"
    }
  ]
}

Ways to use this data

  • Price monitoring: track current and historical prices across electronics categories for competitive analysis.
  • Market research: compare brand and category coverage across a major UK electronics retailer.
  • Review analysis: collect customer ratings and review text to gauge product sentiment.
  • Stock tracking: monitor which products are in stock versus out of stock over time.
  • Catalog enrichment: pull structured product data (EAN, brand, category) to enrich an existing product database.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Currys UK Scraper return?

Currys UK Scraper returns 29 documented fields, including product id, change type (incremental mode), sku, url, title, brand, price and was price (pre-discount). Availability of each field depends on the source page and the selected mode.

How much does Currys UK Scraper cost?

It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Why did a run return fewer results than I expected?

Some searches return fewer than Max total products if the search itself has fewer matching products, or if your price/stock filters removed some results after fetching. Try widening the filters or raising Max pages.

Can I get only new or changed products on a schedule?

Yes. Turn on Incremental changes for scheduled runs and schedule the actor (e.g. daily). The first run returns everything as NEW; every later run returns only NEW, UPDATED, and REAPPEARED products by default, so you're not billed again for products that haven't changed.

Why did my run fail instead of returning an empty dataset?

A failed run usually means the upstream site rejected the connection for that attempt. Run again shortly; most failures are transient.

Can I use it with AI agents or MCP?

Yes. You can call this actor from any MCP-compatible client or agent framework via the Apify API, as shown in "Run it from your code" above.