Nordstrom Data Extraction: Styles, SKUs and Prices

Nordstrom Scraper
Solutions

How we deliver it

We build the crawler, run it on your schedule and hand over the result. Output is CSV, JSON, XLSX or an API endpoint, with the schema agreed before the first run.

Scope usually takes one of three shapes: a fixed list of style ids, a set of /browse/ or /brands/ paths, or a full sweep driven by the product sitemaps. Because the style id is the stable key and the slug is not, we key every record on the number, which keeps runs joinable even when Nordstrom rewrites a slug.

Rack can run in the same job. The shared id space means a full-price row and an off-price row line up without fuzzy matching on titles.

Fields we extract from a Nordstrom style

Product pages render from a JavaScript object named __INITIAL_CONFIG__ embedded in the HTML. Styles hang off a stylesById map keyed by the same number that ends the URL. The only JSON-LD on the page is a BreadcrumbList, so price and stock have to be read from that object rather than from schema.org markup.

  • Style id - the number in the URL and the key in stylesById.
  • Item # - a second and different number, printed under the "Details & care" heading and held as styleNumber.
  • Brand - the brand name, its imsBrandId, and whether it has its own brand page.
  • Product title, description and sellingStatement.
  • productTypeName and productTypeParentName, plus the coded productTypeCode and productParentCode.
  • Colour, size and width - three separate axes under filters.color.byId, filters.size.byId and filters.width.byId.
  • SKUs - skus.byId, with sold-out combinations kept in a separate soldOutSkus map.
  • Price ladder - the labels the site prints are "Now:", "Was:", "Orig:", "Sale:" and "After Sale:".
  • Stock - totalQuantityAvailable, isAvailable, isBackOrdered and maxOrderQuantity.
  • Reviews - averageRating, numberOfReviews and secondaryRatings against a maximumRating of five.
  • Fit - the sizing verdict the page prints as "Runs small", "True to size" or "Runs large", plus the Size and Fit block.
  • Promotions - the enticements list, which is where offer badges and card promotions are held.
  • Images - shots served from n.nordstrommedia.com under a UUID filename rather than the style id.

Fields we extract from a Nordstrom style
The Anniversary Sale and other moving parts

The Anniversary Sale and other moving parts

The Anniversary Sale is not an end-of-season clearance. It discounts incoming autumn stock for a few weeks in midsummer and then returns it to full price, which inverts the usual assumption that a discount decays. Nordstrom models the event in its own fields. Each style carries eventFlags.anniversaryPhase, which reads "NONE" outside the event, alongside isAnniversaryStyle and isAnniversaryPreorder, and there is a site-wide anniversaryPeriod feature flag. The label to capture is "After Sale:", the price the item returns to once the event closes. The site's own copy calls the event #NSale.

Access is staged by loyalty tier before the sale opens to everyone, so what is visible during the early window is not what the public sees. A run that ignores anniversaryPhase will record event pricing as though it were the standing price.

Store-level fulfilment is exposed as well. Styles carry isPickUpStoreEligible, and the pickup dialog asks for a ZIP code and answers with "Free Pickup at" a named store, "Curbside Pickup", or "Not available for pickup near you". Pickup availability is resolved per size and per width, not per style, so it has to be captured at SKU level or not at all.

How Nordstrom is built as a data source

Nordstrom runs a full-price department store at nordstrom.com and an off-price banner at nordstromrack.com. Both serve product pages from the same address shape, /s/{slug}/{style-id}, where the trailing number is the real key and the slug is cosmetic. Ask for a product with the wrong slug and the site answers 301 with the canonical slug for that id, so a crawler can address any style by number alone.

The two banners share one identifier space. A style id taken from a Rack sitemap resolves to the same product on nordstrom.com, and an id taken from the full-price sitemap resolves on nordstromrack.com. That makes it practical to follow a single style across both and see when it moves from full price into off-price.

Category pages sit under /browse/ with lowercase hyphenated segments and accept filters such as filterByBrand, filterByColor and filterByDiscount. Brand pages join a brand slug to a numeric brand id with a double hyphen, as in /brands/other-stories--81009160. Rack clearance is different again, keeping capitalised and URL-encoded category names in the path, as in /clearance/Women/Accessories/Scarves.

Nordstrom Canada and nordstrom.ca closed in 2023, and what remains is a United States operation. The product record reflects that: styles carry an isStyleRestrictedFromIntlShipping flag, and the site prints "You'll need to ship this to a U.S. address."

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

What buyers do with Nordstrom scraping

Nordstrom carries designer and mainstream labels side by side, which makes it a reference point for how a brand is priced and presented in the United States. Brands watch their own products on it; retailers watch the ones they compete against.

Markdown tracking is the common request, and the price ladder is explicit enough to reconstruct. "Now:" set against "Was:" or "Orig:" gives the working discount, and the style record carries an isUmap flag, which matters to anyone policing minimum advertised price.

Assortment work is the other half. Because colour, size and width are separate axes, one style expands into a long list of purchasable rows, and the useful signal is usually which rows have gone. A style can look healthy on the page while every size above a certain point has moved into soldOutSkus, and the page will say "Only 1 left" long before it says "SOLD OUT".

Buyers also track entry and exit: new style ids appearing in the product sitemaps, ids that turn up in Rack clearance after a spell at full price, and styles that stop resolving altogether. Because the product sitemaps are partitioned at ten thousand URLs per file and each entry carries a lastmod date, a scheduled sweep can find what moved without refetching the whole catalogue.

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

Working with ScrapeIt

ScrapeIt is a managed scraping agency. We write the crawlers, host them, monitor them and repair them when a site changes, so you receive data rather than code.

Nordstrom shifts both its page structure and its promotional calendar through the year, so the maintenance is the service. Tell us which fields you need and how often, and we will confirm what is available before any work begins.

FAQ

What is the number at the end of a Nordstrom product URL?

It is the style id, and it is the canonical key for the product. The slug in front of it is cosmetic: request /s/x/8344252 and Nordstrom answers 301 with /s/massage-oil-candle-small/8344252. The same number is the key in the stylesById map inside the page's __INITIAL_CONFIG__ object. It is not the same value as the "Item #" printed under the "Details & care" heading, which is a separate number carried as styleNumber, so the two should never be merged into one column.

Can you scrape Nordstrom Rack as well as nordstrom.com?

Yes, and in the same job. Rack uses the same /s/{slug}/{style-id} address shape, and the two sites share one identifier space: a style id taken from a Rack sitemap resolves to the same product on nordstrom.com, and the reverse holds as well. Rack also publishes its own clearance and promo sitemaps, and its clearance paths keep capitalised, URL-encoded category names such as /clearance/Men/Accessories/Designer. That shared key is what lets you watch a style cross from full price into off-price without matching on titles.

How do you handle colours and sizes?

A Nordstrom style is not one row. Colour, size and width are three separate filter axes, so a single style expands into every purchasable combination, and width matters more than people expect once footwear is in scope. We deliver one row per SKU with the style id repeated, plus a parent style record. Combinations that have sold out are held in a separate soldOutSkus map rather than being deleted, which is what makes size-level and width-level stock tracking possible.

Does Nordstrom have a public API, and does it block scrapers?

Nordstrom publishes no public API and maintains no developer portal for catalogue data. Access exists only for approved partners: Mirakl credentials for brands accepted onto the invite-only marketplace, and Rithum integration for drop-ship suppliers. So the published pages are the read path, and they are defended. A plain HTTP client does not receive product data. The request returns HTTP 200 with a large obfuscated JavaScript page that stores a payload in the browser and re-issues the request with computed headers, so that response contains no __INITIAL_CONFIG__ and no price. Rendering therefore needs a real browser engine rather than a simple fetch. robots.txt also disallows keyword search under /sr and most of /api/. We collect at a modest rate and work within those constraints; we do not offer anti-bot circumvention.

How often does Nordstrom data change?

Price and stock move fastest, and size-level availability changes faster than the style list does. On a recent crawl the product sitemaps carried a lastmod date matching the day of the request, so new and changed styles surface there quickly. Markdown activity steps up around the Anniversary Sale in midsummer and again at end of season, when the After Sale price takes effect. Most clients run price and stock daily and a full catalogue sweep weekly.

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