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.
| Input | What it controls |
|---|---|
modestring · required | Search mode = type keywords to search for. URL mode = paste one or more currys.co.uk search/category URLs already refined in a browser. |
queriesarray | One or more keywords to search for, e.g. "tv", "laptop", "washing machine". Each keyword runs as its own search. |
minPriceinteger | Optional. Only keep products priced at or above this amount. Applied to the already-fetched results (does not reduce the number of pages fetched). |
maxPriceinteger | Optional. Only keep products priced at or below this amount. |
inStockOnlyboolean | Only keep products currently marked in stock. |
sortBystring | How to order results within each search. |
urlsarray | One 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
| Input | What it controls |
|---|---|
fetchDetailsboolean | Adds 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). |
fetchReviewsboolean | Fetch each product's Currys customer reviews (rating, text, author, date) from the reviews provider. Billed per review fetched, see the Pricing tab. |
maxReviewsPerProductinteger | Cap on reviews fetched per product when "Fetch customer reviews" is on. |
maxPagesinteger | How 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. |
maxListingsinteger | Hard cap across the whole run. 0 = unlimited (bounded only by Max pages). |
resumeFromRunIdstring | Paste 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. |
incrementalModeboolean | Turn 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. |
stateKeystring | Optional. 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. |
emitUnchangedboolean | Off 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. |
emitExpiredboolean | Off 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. |
ignoreFieldsForChangesarray | Optional. 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. |
mcpConnectorsarray | Optionally 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). |
notionParentPageUrlstring | URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap 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 IDchangeTypeChange type (incremental mode)skuSKUurlURL (link)titleTitlebrandBrandpricePricewasPriceWas price (pre-discount)discountDiscount amountdiscountPercentDiscount %currencyCurrencyavailabilityStatusAvailabilityShow 17 more fields
categoriesCategories (array)eanEAN/GTINratingRatingreviewCountReview countdescriptionDescriptionimagesImage 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 textauthorAuthorauthorLocationAuthor locationdateDate (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.
