Mango Scraper for Catalogue, Price and Size Level Data

Mango Scraper
Solutions

How the Service Works

You tell us the storefronts, the lines and the categories. We build the crawler, run it on the schedule you pick, and deliver CSV, JSON, XLSX or an API endpoint. Fields are named to your schema, not ours, and the reference, colour and size keys are kept intact so your rows join to later runs.

We watch the site for structural change, because it moves. Every page carries a version meta tag naming the front-end build, which gives us a cheap early signal that field names or markup may have shifted. When something does shift, we repair the parser before the next delivery rather than handing you a file with silent gaps in it. Mango sets Crawl-delay 0.2 in robots.txt and disallows its search and faceted paths; we pace and route requests to stay inside that.

What the Mango Scraper Extracts

One garment is a reference: an eight digit number that the product page publishes as schema.org mpn, not as sku and not as gtin. That reference is a design, not something you can buy. It expands into colours, each colour expands into sizes, and both price and stock hang off the colour rather than off the reference.

  • productId - the eight digit reference, identical in every country storefront.
  • colorId - a two character colour code, usually numeric but sometimes alphabetic, as in TO or TS.
  • lookId - the styling variant, default 00, which selects a different set of model shots.
  • Name and bullet description - the meta description repeats the bullets verbatim.
  • prices - price, previousPrices.originalShop, discountRate, starPrice, type and promotionName, held once per colour.
  • lowestPrices - the thirty day lowest price, carried only where the country config sets hasPriceHistory.
  • sizes[] - id, label, shortDescription, plusSize, available, isDelayed, lastUnits and warehouses.
  • colors[] - label, bulletImg and an rgb triple, so the swatch colour is machine readable.
  • Images - media.mango.com/is/image/punto/(productId)-(colorId)-(shot), resized by a wid query parameter.
  • families - id, label, labelEn, hasSizeGuide, hasPoms, erpId and originalCobolId.
  • Breadcrumb path - line, family and subfamily, localised per storefront.

Flattened, that produces one row per reference, colour and size. Size ids are numeric codes that stay constant across languages, so 20, 21 and 22 remain the same rows whether the label reads S, M and L or something else.

What the Mango Scraper Extracts
Beyond Name and Price

Beyond Name and Price

Mango publishes product detail that most fashion sites keep internal, all inside the same streamed payload.

  • compositions and washingRules, the latter with stable numeric ids and a localised description, so care symbols can be joined across languages without translating text.
  • originCountries, split into manufacturing, weaving and dyeingAndPrinting.
  • measures, modelHeight and modelSizeCode, which names the exact size the model is wearing.
  • recyclability.recyclableMaterials and care.releasesMicrofibers.
  • similars, crossSellings and looks, each pointing at other references by productId and colorId.
  • isSellable, isUniqueSize, customizable and isDelayed.
  • Shot codes inside the image set, where 001 is the general plane, 002 the medium plane, 003 the reverse and 900 the article without a model.

Listing pages add their own keys. Under an English category URL the payload still names the catalogue in Spanish, with a catalogId such as "prendas_she.vestidos_she", meaning garments, women, dresses. That string is stable and joins better than a translated breadcrumb.

Every image, homeware included, sits under the same media path segment, punto, so asset URLs rebuild from ids alone.

How shop.mango.com Is Built

Mango is a Spanish fashion company founded in Barcelona in 1984, with its design centre and head office at Palau-solità i Plegamans just north of the city. Selling runs through shop.mango.com, and every country storefront is served by the same application from the same catalogue. The site sits behind an Akamai edge tier: a client that identifies itself as curl or as python-requests is answered with a 403 Access Denied page, and the sitemap.xml named in robots.txt returns 403 as well.

The site is a Next.js application using the React server component streaming format. Product and listing data travel inside that stream as escaped JSON, so the values a shopper sees are already in the first server response. Beside it the product page emits schema.org microdata: a Product node, a BreadcrumbList, and two separate Offer nodes, one for the struck-through original price and one for the current price. Listing pages emit ItemList instead. No availability property appears in that microdata, so stock has to come from the streamed payload.

Lines are modelled as brand ids inside the country configuration: she, he, teen, kids and home. Teen splits into teenA and teenO, kids into nina, nino, babyNina, babyNino and newBorn. All of them share one catalogue, one URL grammar and one reference space. Violeta, the former plus-size line, no longer has a home path of its own; what survives of it is a plusSize boolean on individual size rows inside the womenswear catalogue.

Get a Quote
dev_w
25

Developers

customers
500+

Customers worldwide

pages
1 500 000 000+

Pages extracted

stime
15000+

Hours saved for our clients

Plans

Airplane

€199 / one-time

setup fee - included

Data limits100,000
Frequencyone-time
Run timeup to 5 days
Data storing7 days

Helicopter

€169 / mo

setup fee €499

Data limits250,000
Frequencymonthly
Run timeup to 5 days
Data storing14 days

Glasses

€229 / mo

setup fee €499

Data limits1,000,000
Frequencyweekly
Run timeup to 5 days
Data storing30 days

DNA

€549 / mo

setup fee €799

Data limits3,000,000
Frequency3 times daily
Run timesame day
Data storing90 days

Why Teams Track Mango

Mango prices the same reference differently in each country, and the difference is not only currency. The country block carries a currency object with iso, symbol, decimals and a format string that fixes symbol placement, so US$ sits before the number while the euro sign sits after it. Discount rate and promotionName are set per storefront too: one market can be running a campaign labelled PROMO OUTLET while another runs COMPARTIDO OUTLET on the identical reference, at a different percentage off.

Price history is regional in the same way. Where the country config sets hasPriceHistory, the payload adds a lowestPrices block holding the thirty day lowest price required by European pricing rules, and a price_omnibus_countries feature flag decides how it is shown. Storefronts without that flag simply omit it, so a comparison table built across markets has to treat the field as optional rather than missing.

Measurement units move as well. The same garment reports its back length in inches on the US storefront and in centimetres on the Spanish one, driven by a measurementUnits object with sizeInInches and distanceInMiles booleans. Model height is stored once as a number and rendered in feet or centimetres depending on the same setting.

Related Case Studies

The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days

The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days

Scraping supplement products from iHerb.com with full details, including descriptions and packaging variations.

Learn More about The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days
The Lowest Allegro Prices from 150K Eans Collected

The Lowest Allegro Prices from 150K Eans Collected

Daily scraping of lowest prices for 150K products on Allegro.pl to support marketplace pricing and margin optimization.

Learn More about The Lowest Allegro Prices from 150K Eans Collected
Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset

Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset

Regular monitoring of Ralph Lauren clothing, footwear, and accessories sold across Amazon subdomains: AE, DE, ES, FR, IT, NL, PL, UK.

Learn More about Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset
Our Blog

Reads Our Latest News & Blog

Learn how to use web scraping to solve data problems for your organization

6 E-Commerce Sites Like eBay to Scrape in 2026

6 E-Commerce Sites Like eBay to Scrape in 2026

If you sell online, run a marketplace, or advise e-commerce clients, you already know why eBay matters: it’s one of the few places where big retailers compete side by side with thousands of small merchants and private sellers.

Top 8 E-commerce Websites to Scrape in 2026 (From Amazon to 1688)

Top 8 E-commerce Websites to Scrape in 2026 (From Amazon to 1688)

E-commerce teams do not just need “some” competitor data anymore. They need a continuous stream of real prices, discounts, stock levels, reviews, and seller behavior from the platforms that actually shape their markets.

How to Scrape Amazon Data: Benefits, Challenges & Best Practices

How to Scrape Amazon Data: Benefits, Challenges & Best Practices

Amazon provides valuable information gathered in one place: products, reviews, ratings, exclusive offers, news, etc. So scraping data from Amazon will help solve the problems of the time-consuming process of extracting data from e-commerce.

scrapeit logo

About ScrapeIt

ScrapeIt is a managed web scraping agency. We write the crawlers, run the infrastructure, monitor the targets and repair breakages, and you receive clean data on a schedule in the format you asked for. We collect what a site publishes and we keep to its stated crawl limits.

There is no library to install and no dashboard to learn. Tell us the storefronts, the lines and the fields, agree a cadence, and the files or the API endpoint arrive. Fashion retail catalogues are a large part of what we run day to day.

FAQ

What actually identifies a Mango product?

The eight digit reference, published on the product page as schema.org mpn. On its own it identifies a design, not a buyable item. The full key is reference plus colorId plus size id. Listing pages already use a composite tile id in exactly that shape, written as productId:colorId or productId:colorId:lookId.

One warning: the canonical tag is not a colour key. It normalises the look segment to 00, and on some references it points at the default colour rather than the colour you requested. Take colorId from the request path or from the payload.

Does the same reference work across country storefronts?

Yes. Product URLs follow /(country)/(language)/p/(line)/(family)/(subfamily)/(slug)/(productId)/(colorId)/(lookId), and only the last three segments carry meaning. Request a reference with the wrong slug and the site answers 308 with the correct localised path, so we can crawl by reference alone and let Mango tell us the local name, category wording and canonical URL.

What differs per country is price, discount rate, promotion name, currency formatting, measurement units, warehouse ids and whether thirty day price history is present at all.

Can you get stock levels and store availability?

Not as counts. Mango exposes a boolean available per size, a lastUnits boolean that drives the visible "Últimas unidades" label, meaning last few items, on Spanish storefronts, an isDelayed flag, and a warehouses array of ids such as 400 or 001. Those ids are country specific, so they only mean something read against the storefront's own warehouse configuration.

Physical store stock is not published in the page payload, so we do not offer it. What we can do is sample the same size rows repeatedly and give you a sell-out timeline from the transitions.

How does category coverage and pagination work?

Category URLs are /(country)/(language)/c/(line)/(slug)/(id), where the id is eight hex characters. The slug is not unique - the same word can appear under two different ids - so the hex id is the key we store.

The first server response carries 100 product tiles plus a pagination object with currentPage, totalPages, totalItems and hasNextPage. Everything after tile 100 loads client side. Faceted and sorted variants are disallowed in robots.txt, so we enumerate through category and subcategory ids instead of through filters.

Is there a Mango API, and how often should the data refresh?

Mango publishes no product or price API for outside teams, so the storefront itself is the read path: product and listing values arrive as escaped JSON inside the first server response, and that is what we extract. How often to re-read it depends which field you care about. Size availability turns over fastest, since a single size selling out flips one boolean and nothing else on the page changes. Price and discountRate move on campaign boundaries and during the Spanish sale seasons, which the country config marks with an isDiscountSeason flag. Assortment rotates on a slower cycle as collections drop and older references stop being sellable. Daily suits pricing and stock work, weekly is usually enough for catalogue and assortment tracking, and we set the cadence per field group rather than crawling everything at the fastest rate.

How does it Work?

Step 1 - Make a Request

You share your needs, expectations, and desired timeframe. We’ll suggest the best solution based on your request and budget.

Step 2 - Configuring Custom Web Crawlers

Our specialists configure the crawlers and extract a sample dataset for your review before proceeding with the full-scale extraction.

Step 3 - Collect and Deliver

Once you approve the sample, we launch the project and start full data collection. We gather, filter, and structure the data for easy use, delivering it on time in your preferred format.

Step 4 - Maintain and Support

Our team manages ongoing processes, monitors website changes, and supports all data extraction cycles. We can also help integrate data into your systems or create dashboards to simplify analysis.

Request a Quote

Tell us more about you and your project information.
Which sites, which fields, how often. A couple of lines is enough.

We reply within 1 business day. No obligation.

scrapiet

Scrapeit Sp. z o.o.
10/208 Legionowa str., 15-099, Bialystok, Poland
NIP: 5423457175
REGON: 523384582