John Lewis Scraper — UK Department Store Prices & Stock avatar

John Lewis Scraper — UK Department Store Prices & Stock

Pricing

from $1.20 / 1,000 result scrapeds

Go to Apify Store
John Lewis Scraper — UK Department Store Prices & Stock

John Lewis Scraper — UK Department Store Prices & Stock

Scrape product data from johnlewis.com, the UK's largest department-store group. Extract names, brands, prices, ratings, stock and images by category or search term. No login, no cookies.

Pricing

from $1.20 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Categories

Share

John Lewis Scraper

Pull product data from johnlewis.com, John Lewis & Partners -- the UK's largest department-store group, spanning fashion, home, electricals, furniture and beauty. This scraper reads the same JSON data John Lewis' own Next.js storefront embeds in every category and search page, so it returns clean, structured data -- brand, price, rating, stock, category and images -- without any per-product page fetching.

How to scrape John Lewis data

Give the actor either a search term (e.g. "headphones", "air fryer", "dress") or one or more John Lewis category page URLs (e.g. https://www.johnlewis.com/browse/electricals/televisions/view-all-tvs/_/N-6srf), and it paginates through the results until it hits maxResults or runs out of matching products. You can combine both in a single run.

Under the hood, every John Lewis category and search page is server-rendered by a Next.js (Pages Router) app that embeds the full product listing -- title, brand, price, rating, review count, stock status, images and the breadcrumb category path -- as JSON inside a single <script id="__NEXT_DATA__"> tag on the page. This actor requests that page directly and reads the embedded JSON instead of rendering the page in a browser, which makes it fast and avoids the fragility of parsing rendered HTML markup.

If you don't provide any input, it defaults to searching for "dress" as a demo.

Why this needs a residential proxy

johnlewis.com blocks Apify's automatic/datacenter proxy pool outright for both HTTP/1.1 and HTTP/2 requests -- the connection doesn't complete at all, on every attempt tested. A residential exit IP gets a clean response every time, with no retries needed. Because of this, the proxyConfiguration input is prefilled with the RESIDENTIAL group and GB country and should be left as-is; switching to the automatic pool will make every request fail.

Input

FieldTypeDescription
searchQuerystringSingle search term, e.g. "headphones"
searchQueriesarrayMultiple search terms, combined with startUrls if both are given (max 20)
startUrlsarrayJohn Lewis category (/browse/...) page URLs to scrape (max 20)
maxResultsintegerCap on number of products returned across all inputs combined (default: 100, max: 2000)
proxyConfigurationobjectApify proxy settings. Prefilled to RESIDENTIAL / GB -- required, see above

What you get back

FieldTypeExample
namestring"Sony WH-CH720 Noise Cancelling Bluetooth Wireless Over-Ear Headphones"
brandstring"Sony"
pricenumber | null67.00
originalPricenumber | nullnull (only populated when a higher pre-markdown price is exposed)
currencystring"GBP"
productIdstring"110194491"
skustring"110163003"
inStockboolean | nulltrue (straight from John Lewis' own stock flag; null only if that flag is missing entirely)
ratingnumber | null4.6 on a 0-5 scale
reviewCountinteger | null2551
categorystring | null"Headphones"
categoriesarray | nullFull breadcrumb path, e.g. ["Electricals", "Headphones"]
imageUrlstring | nullPrimary product image
imageUrlsarrayAll product images found on the listing card
urlstringFull product page URL
sourcestringAlways "johnlewis.com"
searchQuerystring | nullThe search term used to find this product, when scraped via search
categoryUrlstring | nullThe category page used to find this product, when scraped via a category URL
scrapedAtstringISO timestamp

Sample output

{
"name": "Sony WH-CH720 Noise Cancelling Bluetooth Wireless Over-Ear Headphones with Mic/Remote",
"brand": "Sony",
"price": 67.00,
"originalPrice": null,
"currency": "GBP",
"productId": "110194491",
"sku": "110163003",
"inStock": true,
"rating": 4.6,
"reviewCount": 2551,
"category": "Headphones",
"categories": ["Electricals", "Headphones"],
"imageUrl": "https://media.johnlewiscontent.com/i/JohnLewis/110163003?",
"imageUrls": [
"https://media.johnlewiscontent.com/i/JohnLewis/110163003?",
"https://media.johnlewiscontent.com/i/JohnLewis/110163003alt2"
],
"url": "https://www.johnlewis.com/sony-wh-ch720-noise-cancelling-bluetooth-wireless-over-ear-headphones-with-mic-remote/p110194491",
"source": "johnlewis.com",
"searchQuery": "headphones",
"categoryUrl": null,
"scrapedAt": "2026-09-14T19:42:31.145Z"
}

Use cases

  • Price monitoring -- track John Lewis' price changes over time on the products you sell against, department store-wide.
  • Assortment research -- John Lewis carries a wide mix of own-brand (ANYDAY, John Lewis & Partners) and third-party brands across fashion, home, electricals and beauty; see which brands and categories it's carrying at what price points.
  • Rating and review tracking -- rating and reviewCount come straight from the listing, no extra requests needed, useful for popularity/quality signals across a category.
  • Stock tracking -- inStock reflects John Lewis' own listing-level stock flag.
  • Market comparison -- as the UK's largest department-store group, John Lewis is a natural comparison point against Debenhams, Next, House of Fraser, Selfridges and Harrods.

Coverage

v1 covers the UK flagship storefront (www.johnlewis.com, GBP pricing).

Performance and cost

The scraper reads John Lewis' own server-rendered listing JSON directly -- no per-product page fetches, no browser rendering -- so throughput is one HTTP request per 72 products. A run of 100 products typically completes in under 15 seconds. This actor charges $0.005 per run (start fee) plus $0.002 per result -- a 100-product run costs about $0.205 in platform fees. Your run's usage cost only settles after the run reports SUCCEEDED -- checking cost mid-run will undercount it.

Limitations

  • originalPrice is only populated when John Lewis' own promotion-history data exposes a pre-markdown price higher than the current one -- many products simply don't have one.
  • category/categories reflect the breadcrumb of the page a product was found on (the category URL, or the generic "search results" label for search), not a per-product category lookup.
  • v1 targets the UK flagship catalogue (GBP) only.

If you're covering UK department-store and general retail more broadly, also check out:

Support

Found an issue or need a different locale covered? Open an issue on this actor's Apify Store page and we'll take a look.