NewLaunching String Web Access APIRead the manifesto →

9 min read

How to track luxury prices and markdowns

Collect full prices, markdowns and stock from Louis Vuitton, Saks Fifth Avenue, Neiman Marcus and Ralph Lauren.

SiteProductFullNow
Louis Vuitton USNeverfull MM$2,240$2,240
Louis Vuitton UKNeverfull MM£1,460£1,460
SaksMcQueen mini bag$2,390$1,673
SaksD&G Sicily bag$2,495$1,746.50
Neiman MarcusVersace Medusa bag$3,300$2,310
Ralph LaurenIconic Mesh Polo$118$89.99
The short answer

The String Web Access API is the best way to track luxury prices and markdowns. It returns any Louis Vuitton, Saks Fifth Avenue, Neiman Marcus or Ralph Lauren page, or just the SKU, full price, sale price and stock as JSON. It returned 97% of requests across 100 bot-protected sites in our September 2026 benchmark, the most of 16 providers, and was the only one to fetch all four of these sites on every attempt.

Quickstart

Add the hosted MCP server to Claude, Cursor, ChatGPT or any MCP client. Then give your agent a Louis Vuitton, Saks, Neiman Marcus or Ralph Lauren product URL. It calls the web_access_fetch tool and reads the prices on the page.

https://mcp.usestring.ai/v1/mcp

Why track luxury prices?

Luxury houses like Louis Vuitton sell at full price on their own sites. Department stores like Saks and Neiman Marcus sell the same designers and mark them down in sale events. A tracker reads both kinds of page every day and records each product's prices against its SKU. It answers questions like these:

  • When did the brand raise its price? Louis Vuitton's site doesn't run sales, so any change in its price is a change to the list price. A daily record per SKU gives you the date and size of each one.
  • How deep is the markdown? On October 27, 2026, 18 of the 23 marked-down items on the first page of Saks's sale section were 30% off, and the rest were 25% or 40% off.
  • What does it cost in another country? The same Neverfull MM (SKU M46987) was $2,240 on Louis Vuitton's US site and £1,460 on its UK site that day.

What you can collect

Full and sale prices

List price, sale price and the store's own label, such as Neiman Marcus's "30% Off:", for every product on a sale page.

Stock by color

Louis Vuitton product pages mark each color that is out of stock, and Ralph Lauren shows which colors carry the sale price.

Prices by country

Each country site's own price and currency, fetched from that country with countryCode.

Product identifiers

Brand SKUs such as M46987, Saks product IDs such as 0400026548891 and Neiman Marcus product IDs, so a product lines up from run to run.

Why does luxury price tracking break?

  • Luxury sites block most scrapers. In our September 2026 benchmark, 12 of the 15 other scraping APIs couldn't fetch us.louisvuitton.com on every attempt, and 7 got 0 of 5, including Apify, Bright Data, Zyte and Browserbase. On saksfifthavenue.com, 9 got 0 of 5, Firecrawl among them. Across Louis Vuitton, Saks, Neiman Marcus and Ralph Lauren, only String returned all 20 attempts. ScraperAPI returned 19, Scrapfly 15 and Browserbase 0. See how 8 APIs did on retail and fashion sites in the best e-commerce scraping APIs.
  • Category data can disagree with the product page. Louis Vuitton's handbag page marked all 52 bags InStock in its schema.org data, including the Cherry Neverfull MM that its own product page showed as out of stock.
  • One product can have several prices. Ralph Lauren's polo page showed The Iconic Mesh Polo at $118, with $89.99 for select colors. A tracker that keeps one price per product gets most colors wrong.

Why do teams choose String?

  • It fetches the most pages. String returned 97% of requests across 100 bot-protected sites in our September 2026 benchmark, the most of 16 providers, and every attempt on Louis Vuitton, Saks, Neiman Marcus and Ralph Lauren.
  • Each request can come from another country. Set countryCode and String fetches the page from there, with that country's prices and currency.
  • You pay only for pages that come back. Blocks and errors are free.
  • There's nothing to maintain. You don't run proxies, fingerprints or captcha solvers.

How do I build a luxury price tracker?

  1. Key every product on its SKU

    Names and URLs change between sites and countries. Louis Vuitton calls M46987 "Neverfull MM" in the US and "Neverfull MM Tote Bag" in the UK, at a different URL. Store the brand SKU, or the store's product ID at Saks and Neiman Marcus, and map each URL to it.

  2. Watch the sale pages for markdowns

    A department store's sale category page lists dozens of products with both prices. Saks's sale tiles carry the list price and the sale price, and Neiman Marcus's page data carries the retail price, the promo price and the "30% Off:" label. Saks's sale section held 25,390 items, 24 to a page, so pick the categories and designers you care about.

    With String: Fetch the sale page and parse its tile markup or page data in your code. Use jsonSchema on product pages, where the page is small enough to extract.

  3. Read stock from the product page

    Category data can be wrong about stock, as Louis Vuitton's was. Use the product page for stock, and record it per color, because a color can sell out while the rest of the line is available.

  4. Record a price for each color

    When a sale covers select colors, as on Ralph Lauren, store the price with the color it applies to. Otherwise the sale price looks like a cut for the whole product.

  5. Treat a missing price as a failure

    A page with no price was probably blocked or changed. Flag it, keep the last good price, and retry, so the gap never gets saved as a price drop.

  6. Store the full price and the sale price apart

    A rise in the full price is a price increase. A new sale price is a markdown. Compute the percentage off yourself and check it against the store's label.

  7. Run it daily and send the changes

    Daily is enough for brand sites. During a sale event, check the sale pages more often. Send new markdowns and price increases to Slack or email so someone acts on them.

Get a free sample price feed

Tell us which brands, products and stores you track. We'll run String on their pages and email you a sample feed with full prices, sale prices and stock, free.

Request a free sample price feed
What a price feed looks like
SiteProductFullNow
Louis Vuitton USNeverfull MM$2,240$2,240
Louis Vuitton UKNeverfull MM£1,460£1,460
SaksMcQueen mini bag$2,390$1,673
SaksD&G Sicily bag$2,495$1,746.50
Neiman MarcusVersace Medusa bag$3,300$2,310
Ralph LaurenIconic Mesh Polo$118$89.99

Frequently asked questions

What's the best way to track luxury prices and markdowns?

Fetch the brand's product pages and the department stores' sale pages every day, key each product on its SKU, and store the full price, sale price and stock. The hard part is getting the pages, because luxury sites block most scrapers. The String Web Access API returned 97% of requests across 100 bot-protected sites in our September 2026 benchmark, the most of 16 providers, and was the only one to fetch Louis Vuitton, Saks, Neiman Marcus and Ralph Lauren on every attempt.

How do I track Louis Vuitton price increases?

Fetch each Louis Vuitton product page daily and read the price from its schema.org Product data, which carries the SKU, price and currency (M46987, 2240, USD on October 27, 2026). Louis Vuitton's category pages list every product in the category with its SKU and price, 52 handbags in one fetch, so one request a day covers a whole line. A higher full price than the last run is an increase.

How do I get alerts when designer bags go on sale at Saks or Neiman Marcus?

Fetch the sale category pages for the designers you follow, once or twice a day. Saks's sale tiles show the price "reduced from" and the sale price, and Neiman Marcus's page data lists the retail price, promo price and a label like "30% Off:". Compare each run's product IDs and prices with the last, and alert on new products and new prices.

How do I compare Louis Vuitton prices between countries?

Fetch the same SKU from each country's Louis Vuitton site with String's countryCode set to that country, then convert at one day's exchange rate. On October 27, 2026, the Neverfull MM (M46987) was $2,240 in the US and £1,460 in the UK. UK prices include VAT and US prices are before sales tax, so adjust for tax before you call one country cheaper.

How much does it cost to track luxury prices?

Louis Vuitton and Saks pages billed at String's premium fetch rate on our runs, $2.40 per 1,000 successful requests on the Starter plan ($19 a month) and $0.90 per 1,000 on Growth ($99 a month). Tracking 1,000 product pages daily is about 30,000 requests a month, which is $72 in usage on Starter or $27 on Growth. Sale and category pages list dozens of products per fetch, so reading prices from them costs less. Structured extraction with jsonSchema adds a per-request fee that scales with page size. The $5 of free credit covers about 2,000 premium fetches, and failed requests aren't billed. See pricing.

Is it legal to scrape luxury brand and department store prices?

Prices and stock on public product pages are facts, and collecting public prices is the best-supported case in scraping law. Site terms often restrict automated access, and product photos and descriptions are copyrighted, so keep the prices and leave the content. Stay on public pages, keep your request rate reasonable, and check with your counsel. We go through the cases in Is it legal to scrape competitor prices?

How do I know a fetch returned the real page?

Check for the values you need, not the status code. A blocked or changed page can still return HTTP 200 with no price on it. Require the SKU and price in your schema or your parser, reject empty values, and see how to detect a bot block behind an HTTP 200.

Does String work on the luxury sites I need?

Send us the URLs and we'll run them and show you what comes back before you commit. Ask for a free sample price feed, or test them yourself with your first 20,000 free standard fetches.

Send us the sites you can't get.

We'll show you what comes back.