StockX Scraper — Real-Time Sneaker & Resale Data avatar

StockX Scraper — Real-Time Sneaker & Resale Data

Pricing

from $15.00 / 1,000 results

Go to Apify Store
StockX Scraper — Real-Time Sneaker & Resale Data

StockX Scraper — Real-Time Sneaker & Resale Data

Live StockX resale market intelligence: keyword listing search, full product details, seller profiles, sold comps, and URL collection for sneakers, streetwear and collectibles. Checkbox features — enable only what you need. Structured JSON streamed to your dataset in real time.

Pricing

from $15.00 / 1,000 results

Rating

0.0

(0)

Developer

Emmanuel

Emmanuel

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

StockX Real-Time Data

Live StockX resale market intelligence: sneaker and streetwear listing search, full product details, seller profiles, sold comps, and URL collection. Checkbox features — enable only what you need. Structured JSON streamed to your dataset in real time.

Paid-only / free-tier notice: This Actor is designed for paying Apify users. Free (non-paying) Apify plans are limited to 2 results per run — see the Delivery section and input schema for details. Upgrade your Apify plan for unlimited sneaker and streetwear data exports.


Audience

  • Vintage & thrift resellers cross-listing on Poshmark, eBay, Depop, Mercari, and Grailed
  • Consignment owners tracking competitor inventory and repricing
  • Resale arbitrageurs sourcing undervalued sneakers, streetwear, and collectibles
  • Fashion researchers and pricing teams
  • AI agents using Apify MCP for real-time market data queries

Use Cases

  • Undervalued inventory discovery: Find underpriced sneakers, deadstock streetwear, vintage single-stitch, designer denim, gorpcore, and Y2K pieces on StockX before they sell out.
  • Sold comps / sell-through: Track completed sales for real market comps, resale margins, and sell-through analysis.
  • Closet / brand monitoring: Watch specific seller inventories or brand catalogs for new drops and price changes.
  • Slack / Discord deal alerts: Real-time webhooks for new listings, price drops, and sold items.
  • Multi-platform pricing sync: Align your listings across Poshmark, eBay, Depop, Mercari, and Grailed using unified StockX market data.

Features

FeatureDefaultDescription
Listing Search✅ OnLive keyword search across StockX — sneakers, streetwear, and collectibles. Prefilled with demo queries.
Listing Details❌ OffFull product records from StockX URLs or product IDs.
Seller Listings❌ OffBrand/seller inventory tracking — track competitor stock and source in bulk.
Seller Profile❌ OffSeller stats: rating, items sold, follower count, verification, and bio details.
Sold Item Comps / History❌ OffCompleted sales for market comps, resale margins, and sell-through analysis.
Scrape By URL❌ OffPaste any StockX URL — product page, search, brand, or category.

Listing Search Filters

  • Brand filter: Limit results to a brand (e.g. Nike, Adidas, Balenciaga, Yeezy).
  • Size filter: e.g. US 9, US 10, EU 42.
  • Min/Max price: Filter by asking price range in USD.
  • Sort order: Newest, Most active, Lowest ask, Highest bid, Deadstock sold.

Enrichment

When "Enrich with full listing details" is enabled, each search result stays one row (featureType: listing_search, detailsFetched: true) but is enriched with:

  • Full description
  • Product traits (size, color, material, style tags)
  • Full image gallery
  • Market statistics (last sale, bids/asks, sales in last 72 hours)

When disabled, you get fast search cards with price, title, brand, size, and market data.

Every discovered product is always saved — never filtered out.


Input Schema

FieldTypeDefaultDescription
enableListingSearchbooleantrueLive keyword search across StockX.
searchKeywordsstring[]["nike air jordan 1", "yeezy boost 350", "new balance 550"]One or more search terms.
searchMaxResultsinteger10Max products per keyword (1–200).
searchSortstring"newest"Sort order: newest, most-active, lowest_ask, highest_bid, deadstock_sold.
searchBrandstring""Brand filter (optional).
searchSizestring""Size filter (optional).
searchMinPriceinteger—Min price in USD (optional).
searchMaxPriceinteger—Max price in USD (optional).
searchFetchFullDetailsbooleanfalseEnrich search results with full product details.
enableListingDetailsbooleanfalseFetch full product data by URL or ID.
productIdsstring[][]StockX product IDs or URLs.
productUrlsstring[][]Full StockX product URLs.
enableSellerListingsbooleanfalseTrack seller/brand inventory.
sellerUsernamesstring[]["nike"]Seller usernames or brand names.
sellerMaxListingsinteger30Max listings per seller (1–500).
enableSellerProfilebooleanfalseExtract seller stats.
enableSoldHistorybooleanfalseCollect sold items for comps.
soldMaxItemsinteger30Max sold items per seller (1–500).
enableScrapeByUrlbooleanfalseProcess any StockX URL.
scrapeUrlsstring[][]StockX URLs to process.
webhookUrlstring""Optional webhook URL for real-time alerts.
webhookFormatstring"json"json or slack.
proxyConfigurationobjectResidential USApify proxy settings.

Practical StockX Search Examples

  • "nike air jordan 1" — Classic sneaker search
  • "yeezy boost 350" — Yeezy sneakers
  • "new balance 550" — New Balance retro
  • "nike dunk" — Nike Dunk college colors
  • "balenciaga triple s" — Designer sneakers
  • "stussy" — Streetwear brand
  • Search with brand filter: leave searchBrand as "Nike" and keywords like "air max"
  • Size-specific: "air jordan" + searchSize: "US 10"

Output Schema

Every row includes these core fields:

FieldTypeDescription
featureTypestringlisting_search, listing_details, seller_listings, seller_profile, sold_history, or scrape_by_url
scrapedAtstringISO-8601 timestamp
urlstringSource URL
item_idstring|nullProduct ID
item_urlstring|nullProduct URL
titlestring|nullProduct title
descriptionstring|nullProduct description
main_image_urlstring|nullMain product image
additional_image_urlsstring[]Image gallery
statusstring|nullavailable, sold, or null
current_pricenumber|nullCurrent asking price
original_pricenumber|nullRetail/MSRP price
currencystring|nullCurrency (default: USD)
discount_percentagenumber|nullMarkdown % vs. original price
price_drop_amountnumber|nullPrice drop in dollars
brandstring|nullBrand name
brand_idstring|nullBrand ID
sizestring|nullProduct size (e.g. US 9, EU 42)
conditionstring|nullProduct condition
categorystring|nullCategory (e.g. sneakers, apparel)
departmentstring|nullDepartment
subcategorystring|nullSubcategory
colorstring|nullPrimary color
colorsstring[]All colors
style_tagsstring[]Style tags (vintage, y2k, streetwear, etc.)
materialstring|nullMaterial/fabric
productCategorystring|nullProduct category type
traitsstring[]Product traits
genderstring|nullGender (Men, Women, Unisex)
releaseDatestring|nullRelease date
manufacturingDatestring|nullManufacturing date
last_sale_pricenumber|nullLast sale price
last_sale_datestring|nullLast sale date
sales_last_72_hoursnumber|nullSales in last 72 hours
highest_bidnumber|nullHighest bid
lowest_asknumber|nullLowest asking price
bids_countnumber|nullNumber of bids
asks_countnumber|nullNumber of asks
likes_countnumber|nullLikes/engagement
is_soldboolean|nullIs sold
seller_usernamestring|nullSeller username
seller_idstring|nullSeller ID
seller_display_namestring|nullSeller display name
seller_avatar_urlstring|nullSeller avatar
seller_ratingnumber|nullSeller rating
seller_items_soldnumber|nullSeller items sold
seller_locationstring|nullSeller location
seller_verifiedboolean|nullSeller verified
seller_last_activestring|nullSeller last active
sizeChartarray|nullSize chart data
positionnumber|nullPosition in search results
detailsFetchedboolean|nullTrue when full details were merged into this search row

Webhooks

Configure a webhook URL to receive real-time alerts for every record. Each record is always saved to the dataset — the webhook is an additional push.

Formats

  • JSON: Full record object — ideal for Zapier, Make, n8n, or custom pricing bots.
  • Slack: Formatted Slack message with product title, price, brand, size, condition, seller, and link.

Setup

  1. In Apify Console, add your webhook URL to the webhookUrl input field.
  2. Select webhookFormat: json for full records, slack for Slack-friendly messages.
  3. Each new dataset row is POSTed to your URL (15s timeout, fire-and-forget).

MCP / AI Agent Usage

Connect this Actor to your AI agent via Apify MCP:

What is the average sold price for a Nike Air Jordan 1 on StockX?
Find underpriced Yeezy Boost 350 listings under $200.
Show me the lowest ask for New Balance 550 in US 9.
Who are the top Nike sellers on StockX?
What sneakers sold in the last 72 hours?

Delivery

  • Listing Search (default): 10 results per keyword, ready within seconds of starting.
  • Streaming: every record is saved to the dataset the moment it is collected, so the first results appear in your dataset before the run finishes.
  • Enrichment: adds a little extra time per listing to fold full product details into the same row — opt-in only.
  • Memory: 2048 MB default (the run keeps a live catalog session open), configurable up to 8192 MB.
  • Timeout: 10,000 seconds (about 2.7 hours).

First run tip: leave the cached run memory at the default 2048 MB. Smaller allocations can end the run early on large inventories.

Free Tier

Free (non-paying) Apify plans are limited to 2 results per run. This is intentional — it lets you validate the data quality before committing to a paid plan.

  • Limit mode (default): 2 items, then stop with a clear upgrade message.
  • Block mode (configurable via Console env vars): 0 items, upgrade message shown before collection.

Upgrade to a paid Apify plan for unlimited sneaker and streetwear data exports.


Proxy Setup

  • Apify Platform: Residential proxy recommended (US default).
  • Local testing: add your own residential proxy values to .env (see .env.example).

Proxy credentials are never shown in logs, output, or README.


FAQ

Q: How fresh is the data? A: Data is collected in real-time during the run. Search results reflect the current StockX catalog at the moment of collection.

Q: What's the difference between Listing Search and Listing Details? A: Listing Search finds products by keyword. Listing Details fetches the full record for specific products you already know about (by URL or ID).

Q: Can I track specific sellers? A: Yes — enable Seller Listings and Seller Profile, then add seller usernames or brand names to sellerUsernames.

Q: Does this work for sold items? A: Yes — enable Sold Item Comps / History to collect completed sales for market comps and sell-through analysis.

Q: How do I get deal alerts? A: Set up a webhook URL (Slack, Discord, Zapier, Make, n8n, or a custom bot). Every saved record is also sent to your webhook in real time.

Q: What proxy should I use? A: Residential proxies are recommended for the most reliable results. On Apify, the built-in Residential proxy is preconfigured (US by default) — leave it enabled for best results. For local testing, add your own proxy values to .env (see .env.example).

Q: Is the free tier really only 2 results? A: Yes — free (non-paying) Apify plans are capped at 2 results per run. This is a platform-level limit, not a scraper limitation. Upgrade to a paid plan for unlimited exports.

Q: I got fewer results than I asked for. Why? A: StockX only shows a limited inventory for very specific search terms — narrow keywords (a full product name) return fewer products than broad ones (a brand plus a silhouette). Occasional empty runs can also happen when the marketplace is rate-limiting; simply run the Actor again.

Q: Why is my first keyword slower than the next ones? A: The run opens one catalog session and reuses it for every keyword. The first request pays that setup cost — the rest stream in as the session stays warm.


Output Views

Filter your dataset by feature type:

  • overview — Core fields across all features
  • search — Listing Search results (one row per product)
  • details — Listing Details (specific IDs/URLs only)
  • seller_listings — Seller/brand inventory
  • seller_profile — Seller profiles
  • sold_history — Sold item comps
  • scrape_by_url — URL scrape results

Build & Run

# Install dependencies
npm install
# Build
npm run build
# Typecheck
npm run typecheck
# Local run (reads local.input.json + .env)
npm run start:local
# Dev run
npm run start:dev

Apify Console Setup

  1. Build tag: latest — the first build takes a few minutes because the base image is large.
  2. Memory: keep the default 2048 MB. The run keeps a live catalog session open, so a smaller allocation can end the run early.
  3. PPE event name: result (configure in Actor → Monetization).
  4. Proxy: Residential, US default — leave the prefilled proxy settings enabled for best results.
  5. Free-tier env vars (recommended):
    • FREE_TIER_MODE=limit (or block)
    • FREE_TIER_MAX_ITEMS=2
  6. Test run: enable Listing Search and click Start — 10 search cards per keyword should land in the dataset within the first minute.

Privacy & Data Handling

This Actor collects only publicly available product and market data from StockX. No login credentials, no personal data, and nothing from signed-in accounts is collected. All data is structured catalog intelligence suitable for market research and pricing analysis.


File Layout

.actor/
actor.json # Apify actor configuration
input_schema.json # Input UI schema
output_schema.json # Output schema
dataset_schema.json # Dataset field definitions
Dockerfile # Container build
package.json # Dependencies
tsconfig.json # TypeScript config
scripts/
apify-entrypoint.mjs # Apify entry point
src/
main.ts # Actor entry point
localMain.ts # Local testing entry
normalizeInput.ts # Input normalization
runner.ts # Feature orchestration
types.ts # TypeScript types
features/
listingSearch.ts # Keyword search
listingDetails.ts # Product details by ID/URL
sellerListings.ts # Seller/brand inventory
sellerProfile.ts # Seller profiles
soldHistory.ts # Sold item comps
scrapeByUrl.ts # URL auto-detect
utils/
stockxClient.ts # Data collection
mapping.ts # Data transformations
actorLog.ts # User-facing log messages
concurrency.ts # Parallel processing
paywall.ts # Free-tier gating
ppeCharge.ts # Pay-per-event charging
proxy.ts # Proxy configuration
runState.ts # State management
spendingLimit.ts # Spend limit tracking
webhook.ts # Webhook delivery

Built for resale intelligence. Structured JSON, real-time streaming, and checkbox-driven features — so you only pay for what you need.