El Corte Inglés Price Tracker (elcorteingles.es) avatar

El Corte Inglés Price Tracker (elcorteingles.es)

Pricing

from $1.40 / 1,000 product scrapeds

Go to Apify Store
El Corte Inglés Price Tracker (elcorteingles.es)

El Corte Inglés Price Tracker (elcorteingles.es)

Products from El Corte Inglés category pages, one flat row each: name, brand, price in EUR, original price, discount, category, photo, product URL - and whether each product is new, cheaper or dearer than on the last run.

Pricing

from $1.40 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Superslow Sloth

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Read product prices from El Corte Inglés category pages - Spain's largest department store - and tell which products are new in a category since your last run and which ones changed price. Give it one or more category pages; it returns one flat row per product: price in EUR, original price and discount, brand, category, photo, product link, seller and availability. Schedule it daily with Watch mode on to get a price feed that costs nothing for products whose price did not move.

Input

FieldNotes
categoryUrlsCategory pages, as full URLs or paths: https://www.elcorteingles.es/electrodomesticos/lavadoras/ or /electrodomesticos/lavadoras/. Only elcorteingles.es is accepted; any other host is refused. A page number at the end (/lavadoras/3/) starts the walk on that page.
maxItemsStop reading each category after this many products (default 100; the site shows 12 per page).
changesOnlyWatch mode: return and charge only products that are new in the category or whose price changed since the last run over it.
proxyConfigurationApify datacenter proxy by default.

A query string is passed through unchanged. ?sorting=priceAsc (also priceDesc, discountPerDesc, bestSellerQtyDesc, newInAsc) was measured to change the order and to keep working on later pages; other parameters (?s=bosch) were silently ignored by the site. The default order is the site's own "Recomendados".

A path the site does not know

El Corte Inglés does not answer an unknown category with 404. It answers 200 with the parent category (/lavadoras/nonexistent-xyz/ returned the whole /lavadoras/ listing, 2026-10-07) and gives itself away only in the page's canonical link. The actor compares that link with the path you asked for and refuses the category with a message naming what the site served instead, rather than hand you the parent's products as if they were yours. A genuinely missing section (/moda/ answered HTTP 404) is reported as a failure of that category; the other categories in the run carry on.

Output

FieldNotes
changenew, price_drop, price_rise or unchanged, compared with the previous run over the same category.
product_id, code, gtinproduct_id is the reference of the variant on the card (a string, leading zeros kept); code is the product-level code, the same across a product's colours; gtin is the barcode.
name, brand, urlurl is the product page on elcorteingles.es. The store's own label is the brand El Corte Inglés.
price, currencyThe price to pay now (f_price on the site), in EUR.
original_priceThe price before the reduction (o_price). Null for a product that is not reduced.
discount_amount, discount_percentThe site's own reduction in EUR and rounded percentage. 0 when the site says the product is not reduced.
category, category_pathDeepest category name, and the full path joined with >.
image_urlThe product photo.
seller_name, marketplaceEl Corte Ingles, S.A. for the store's own stock, the seller's name for a marketplace listing (marketplace: true). marketplace is null for products sold in several variants, where the page carries no single seller block.
status, availableThe site's own status word (ADD, add, NO_SALE), and available: true for ADD in any case, false for NO_SALE, null for any other word.
page, positionThe page of the category the card was on, and its position there.
category_urlThe category this row was read from, so a multi-category dataset can be split.

One price per card

A product sold in several colours or sizes (an iPhone in three storage sizes) is one card on the page, and the card shows one variant's price. That is the price returned; product_id is that variant's reference. Variants are not expanded into rows.

Honest nulls, and what is not here

A field the site did not send is null, never 0 or "": original_price on an unreduced product is the clearest case. Star rating and review count are not returned - the site loads them from a review vendor in the browser, so the category page carries no value for them.

Products with no numeric price are dropped (counted in the run log), because there is no price to track or to bill for.

Change tracking

Each category (its path and query string) has its own memory, kept in a named key-value store on your Apify account (elcorteingles-products-watch), so it is never visible to anyone else, and adding or removing a category in the input does not reset the others. The first run over a category has nothing to compare against: it labels every product new. From the second run on, a product is new if the last run did not read it, price_drop / price_rise if its price moved, and unchanged otherwise. The key is the product-level code, so a product whose representative colour changes between runs is not reported as new.

With changesOnly, unchanged products are neither returned nor charged. The walk does not stop at the first page with no changes: a category is in the site's own order, not newest-first, so one quiet page says nothing about the next. maxItems bounds how many products are read per category, which is also how far the watch reaches - a product beyond that point is not seen, so not tracked.

A product that appears in two categories of the same run is returned and charged once, under the first category listed.

Pricing

Pay per event:

  • $0.002 per run (actor-start), charged only after your input is validated - a run that fails on bad input costs nothing.
  • $0.0014 per product row written (product-scraped), i.e. $1.40 per 1,000 products. With changesOnly, unchanged products are not charged.

How it fetches

The category page is server-rendered and embeds its product data as JSON in the page (the dataLayer analytics block and the page's render state); the actor decodes that JSON, it does not scrape the visible HTML. Twelve products per request, about 1 MB per page. No account and no login.

The site sits behind Akamai, which answers a Python HTTP client with HTTP 403 "Access Denied" whatever headers it sends, and answers a client that presents Chrome's TLS handshake. The actor presents Chrome's handshake, and when an address is refused anyway it retries from a fresh one through the proxy. Local (non-proxy) requests with this fingerprint got HTTP 200 on 2026-10-07; the Apify datacenter proxy has not yet been confirmed for this site.