StockX Listings Scraper avatar

StockX Listings Scraper

Pricing

from $1.49 / 1,000 search products

Go to Apify Store
StockX Listings Scraper

StockX Listings Scraper

StockX scraper for sneakers, streetwear, and collectibles. Search or open a product URL to export lowest ask, highest bid, last sale, and 90-day sales as JSON.

Pricing

from $1.49 / 1,000 search products

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by StockX. Data is read from publicly accessible search pages only. No login. You are responsible for complying with applicable law and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.

StockX Listings Scraper is a StockX scraper and StockX API alternative for public catalog cards. A keyword or a product URL returns lowest ask, highest bid, last sale, and 90-day sales. Export JSON from Python, Node.js, or an MCP assistant. Schedule a monitor to keep only new products.

Best for: resellers who already price comps on eBay or Poshmark and want the same ask/bid snapshot from StockX.

StockX ListingseBay soldPoshmark soldDepop
StockX Listings Scraper ◄── you are hereeBay Sold Listings ScraperPoshmark Sold Listings ScraperDepop Monitor

When to use this Actor

  • Ask / bid check — keyword search with lowest ask, highest bid, and last sale
  • One product — a product URL or slug matched to that same market card
  • New catalog alerts — monitor mode saves only url keys that were not in the last run
  • Python / Node.js / MCP pipelines — structured dataset, JSON or CSV export

When not to use this Actor

Key features

  • Keyword search — about 40 products per page, up to 200 per keyword
  • Product URL — matched to the search card for that slug: ask, bid, and last sale
  • Market fields on search — lowest ask, highest bid, last sale, 72-hour and 90-day sales
  • Monitor mode — named Key-Value store of seen url keys; the first run seeds silently
  • Market country — residential proxy country selects the price market

Input parameters

ParameterTypeDefaultDescription
searchTermsArraynike dunkKeywords. Paged until Max items
startUrlsArraySearch URLs. One page each
productUrlsArrayProduct URLs or slugs
countryStringUSResidential proxy country. Prices follow that market
maxItemsInteger40Search cards per keyword (1–200)
monitorModeBooleanfalseSave only new url keys after the first seed
emitExistingBooleanfalseAlso save cached products on a monitor run
monitorStoreNameStringNamed store for the seen-product cache
proxyConfigurationObjectResidentialDirect requests are blocked
{
"searchTerms": ["nike dunk"],
"country": "US",
"maxItems": 40,
"monitorMode": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Output

FieldDescription
title / url / urlKeyProduct name, page URL, and slug
brand / model / categoryCatalog labels
lowestAsk / highestBid / lastSaleMarket prices on a search card
salesLast72Hours / salesLast90DaysRecent sales counts
averagePrice90Days / annualSales90-day average and yearly sales count
styleId / colorway / sizesFilled only when the catalog card includes them
currency / countryMarket of the proxy country
recordTypesearch or product
scrapedAtUTC parse time
{
"productId": "prod-1",
"urlKey": "nike-dunk-low-retro-white-black",
"title": "Nike Dunk Low Retro White Black",
"url": "https://stockx.com/nike-dunk-low-retro-white-black",
"brand": "Nike",
"lowestAsk": 110,
"highestBid": 95,
"lastSale": 108,
"currency": "USD",
"country": "US",
"salesLast90Days": 2400,
"recordType": "search",
"scrapedAt": "2026-09-23T12:00:00Z"
}

Use cases

  • Snapshot lowest ask and last sale for a sneaker keyword before buying inventory
  • Pass one product URL and keep ask, bid, and last sale for that slug
  • Schedule a monitor and append only new url keys
  • Compare a StockX ask with sold prices from eBay Sold Listings Scraper

Integration examples

Node.js

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor("crawloop/stockx-listings-scraper").call({
searchTerms: ["nike dunk"],
country: "US",
maxItems: 40,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient(token="YOUR_TOKEN")
run = client.actor("crawloop/stockx-listings-scraper").call(run_input={
"searchTerms": ["nike dunk"],
"country": "US",
"maxItems": 40,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["lowestAsk"], item["lastSale"])

cURL

curl -X POST "https://api.apify.com/v2/acts/crawloop~stockx-listings-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms":["nike dunk"],"country":"US","maxItems":40}'

MCP and AI assistants

Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store name.

Example prompts:

  • "Run StockX Listings Scraper for nike dunk in the US and return the top 20 rows as JSON"
  • "Open the Dunk Low White Black product URL and return lowest ask, highest bid, and last sale"
  • "Chain StockX Listings Scraper then eBay Sold Listings Scraper for the same sneaker and compare ask versus sold price"

Suite next step

After you have an ask and a last sale, run eBay Sold Listings Scraper on the same model for completed-sale comps. For fashion listings outside this catalog, use Poshmark Sold Listings Scraper or Depop Monitor. For Japan sold prices, use Mercari Japan Scraper.

FAQ

Does this replace the official seller API?

It reads public search pages. A product URL is matched to the search card for that slug. It does not create listings, pull your orders, or use a seller login. Direct product pages stay behind Cloudflare, so per-size asks are not included.

Why is a proxy required?

Search pages do not return catalog JSON to a plain HTTP client. The run uses a residential proxy in the country you select, and prices follow that market.

What does monitor mode save?

The first run stores url keys and writes no dataset rows. Later runs save products whose url key was not in that cache. Product URLs are always saved.

How many products come back per page?

Search pages carry about 40 products. maxItems stops the keyword at 200.