Documentation Python quickstart Blog Free tools hello@quanticdata.ioLog in

Nike Scraper API

A Nike scraper API that runs a keyword search on nike.com’s product wall and returns one row per product: Nike’s style-colour code, title and subtitle, product type, current and original price with an on-sale flag, how many colourways the style comes in, the displayed colourway and image, the card badge and the product URL. Sort by relevance, price or newest.

$0.001 per delivered product · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/nike_products/run
$ curl $QD/nike_products/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"query": "running", "max_results": 24}'
{ "status": "done", "count": 24,
  "results": [
    {
      "id": "…",
      "group_key": "…",
      "product_id": "…",
      "title": "…" } ],
  "cost": 0.024 }
# 24 products × $0.001 · nothing delivered, nothing charged
Nike Scraper API: query and sort in, a residential exit in the middle, delivered rows with rank, id and group_key on the right, $0.001 per product.
You send query and sort; the run goes out through a residential exit and comes back as products with rank, id and group_key — 20 fields on every row — and you are billed $0.001 for each product actually delivered, nothing for a run that delivers none.
$0.001 / product2,000 products on the free $2 every month
Semantic inputquery, sort, country — no URL lists
Up to 24products per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

Try it

Nike product search, running now

Change the input and run it against the live collector — nothing to install, no sign-up.

Run it from your own code, on your own inputs

Same collector, same rows — $2 of free API credit every month, no card.

Get my free API key

What a Nike scraper API does

Nike server-renders its product wall and ships the wall state in the page’s hydration payload, whose product groupings are the verbatim result set the cards are built from. That is what this collector reads, and it was confirmed against the rendered page on all 24 rows of a capture: title, subtitle and URL matched exactly, and so did both prices once the DOM’s two price hooks were read the way the markup means them.

That last point is why the payload wins. A card exposes one price hook, plus a second one only when the product is discounted — and on a discounted row the first hook holds the struck-out original while the current price moves to the second. The obvious selector therefore reports the pre-discount price as the current one on every discounted row, 11 of 24 on the capture, and the values alone cannot tell the two cases apart. The payload states both numbers as data. It also carries the whole colourway array, up to 22 on a page, where the card renders at most five swatches and none at all for a single-colour product. Nike’s own product API was tried and rejected: it refuses a plain GET without a caller-id header.

Limits, in plain numbers

Everything that bounds one run of this collector. No hidden throttles.

Max per run

24 products

Price

$0.001 / product

Per 1,000

$1.00

Failed runs

Free zero rows, zero charge

Free every month

$2 no card

Rate limit

60 req/min on the free tier

What one product looks like

Every delivered product carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
rankinteger1-based position in Nike's order for this response.
idstring · nullableNike style-colour code, e.g. HM6804-300. Unique per row.
group_keystring · nullableNike's style key, as it appears in the PDP URL. NOT unique — different products can share one.
product_idstring · nullableNike's global product id (UUID).
titlestringProduct name, e.g. "Nike Vomero 18". Occasionally just the brand, with the full name in subtitle.
subtitlestring · nullableNike's category line, e.g. "Women's Road Running Shoes".
product_typestring · nullableFOOTWEAR, APPAREL or EQUIPMENT.
pricenumber · nullableCurrent price of the displayed colourway.
original_pricenumber · nullablePre-discount price; equals price when not reduced.
discount_percentinteger · nullableNike's own discount figure, rounded down — a $20 item at $19.97 reports 0. Use on_sale for the reliable flag.
on_salebooleanTrue when price is below original_price.
currencystring · nullableAlways USD on the US catalogue.
colour_countintegerColourways Nike groups under this style. Not present in the markup — the card shows at most five swatches.
colourstring · nullableDisplayed colourway's simple colour, e.g. "Green".
colour_descriptionstring · nullableFull colourway name, e.g. "Barely Green/Steam/Light Silver/Metallic Silver".
badgestring · nullableCard badge when shown: Just In, Best Seller, Recycled Materials, Customize.
customizablebooleanTrue for Nike By You customizer entries.
new_untilstring · nullableISO timestamp until which Nike badges the product as new. Delivered as Nike states it; it was null on every product of the captured page, so expect it mostly empty.
imagestring · nullableDisplayed colourway's product image.
urlstring · nullableProduct page URL.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
querystringyesWhat to search on nike.com, e.g. "running" or "air max 90".
sortstringnoResult order (default relevance). One of: relevance, price_low, price_high, newest.
countrystringnoISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool.
max_resultsintegernoHow many products to deliver at most (1–24). You pay only for delivered products.

Pricing

Nike Scraper API pricing

$0.001 per delivered product. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 2,000 products before you spend anything.

$0.001per delivered product$1 per 1,000 delivered products
2,000 productson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Pay as you go

$0/mo
  • $2 free credit / month
  • 60 requests / min
  • List unit prices

Starter

$19/mo
  • $15 free credit / month
  • 300 requests / min
  • 10% off unit prices

Scale

$299/mo
  • $250 free credit / month
  • 1,200 requests / min
  • 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/nike_products/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/nike_products/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"running","max_results":24}'

What people build with the Nike scraper API

Three shapes of work this endpoint was designed around.

Sneaker and apparel price tracking

Current and original price with an explicit on-sale flag per style-colour, so markdowns are never mistaken for list prices.

Range and colourway analysis

How many colourways Nike groups under a style — a number the visible card never shows.

Drop monitoring

Sort by newest and re-run: new style codes and “Just In” badges appear as new rows keyed by id.

Nike Scraper API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
Discounted rowsOriginal price reported as currentBoth prices as data, with on_sale
ColourwaysFive swatches or nothingThe full count from the payload
Nike’s APIRefuses a plain GETNot needed: the page carries the result set
Entities' in namesDecoded in the payload
Nike Scraper API: the POST to /v1/scraper/collectors/nike_products/run with query and sort on the left, and the JSON envelope on the right with 24 products and usage.cost_usd $0.024.
The same call you would paste into a terminal: a Bearer key, query, sort and country in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many products arrived and usage.cost_usd is $0.024, which is 24 × $0.001. A run that delivers nothing costs nothing. The key is good for 60 req/min on the free tier.

Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

FAQ

Questions we get about the Nike scraper API.

Something else? Ask us →

Why is max_results 24?

That is one product wall page — the set Nike ships in the hydration payload for a search. Its own paging API requires a caller header a plain request cannot send, so a run is one wall.

Which region and currency?

The country you pass selects the proxy exit and the wall it is served; prices are stated with their currency on every row.

What is the id?

Nike’s style-colour code — the key that identifies one colourway of one style, and the right thing to track a product by across runs.

Does it include the “Just In” or “Best Seller” labels?

Yes, as badge, read from the payload rather than the card, along with customizable and new_until where Nike states them.

Is there a free Nike scraper API?

Every account gets $2 of credit every month with no card, which is about 2,000 delivered products on this endpoint at $0.001 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

How much does one run cost?

Multiply the rows you actually receive by $0.001. A run capped at 24 products — the maximum for this collector — costs $0.024 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

Run the Nike scraper API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Get my free API key