OrbTop

Grailed Resale Listings Scraper

ECOMMERCELEAD GENERATION

Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.

Grailed Resale Listings Scraper

Scrape Grailed designer and streetwear resale listings — both active and SOLD — via the Algolia search API. Returns full listing data including sold price, seller score, original retail price, and arbitrage-ready comparables.

What it does

This actor queries Grailed's Algolia search index directly, giving you fast and complete listing data without relying on rendered HTML. Each run:

  1. Fetches live Algolia credentials from the Grailed page (the search key rotates — hardcoded keys don't work)
  2. Pages through active listings in the Listing_production Algolia index
  3. Optionally pages through sold listings in the Listing_sold_production index
  4. Returns structured records with all fields needed for resale comps and arbitrage analysis

Use cases

  • Resale comps: filter by designer and category to see what items actually sold for vs. asking price
  • Brand arbitrage: track original retail price vs. resale price across brands and categories
  • Inventory research: survey active listings for a designer or category to understand market depth and pricing
  • Seller intelligence: combine seller score and total transactions to identify top-rated sellers

Input

Field Type Required Description
category string one of these Grailed category slug (e.g. outerwear, tops, bottoms, footwear, accessories)
designer string one of these Designer / brand name (e.g. Supreme, Rick Owens, Comme des Garcons)
includeSold boolean no Include SOLD listings (default: true)
maxItems integer no Max total listings to return. 0 = no limit (default: 0)

Either category or designer (or both) must be provided.

Example — sold Supreme outerwear comps:

{
  "category": "outerwear",
  "designer": "Supreme",
  "includeSold": true,
  "maxItems": 500
}

Example — all active outerwear listings:

{
  "category": "outerwear",
  "includeSold": false
}

Output

Each record contains:

Field Description
listing_id Grailed listing ID
title Listing title
designer Brand or designer name
department menswear or womenswear
category Top-level category (e.g. outerwear)
sub_category Sub-category (e.g. parkas)
size Item size
condition Condition string (e.g. is_gently_used)
price Asking price in USD
original_price Original retail price in USD
sold true if the listing has sold
sold_price Final sold price in USD (sold listings only)
sold_at ISO-8601 timestamp when sold
seller_username Grailed username of the seller
seller_score Seller rating average (0–5)
location Seller's country
listing_url Full URL to the listing on Grailed
photo_url Primary listing photo URL
created_at When the listing was created
updated_at When the listing was last updated
scrapedAt ISO-8601 scrape timestamp

Performance and limits

  • Speed: ~1000 listings/page, ~200ms between pages — expect ~5-10k listings/minute
  • Memory: 256 MB
  • Algolia limits: Max 500 pages x 1000 hits = 500k results per query. For categories with more than 500k listings, use designer + category filters together to scope queries under that limit.
  • Setup: none — run it as it ships.

Notes

  • Grailed's Algolia search key rotates. The actor extracts the live key from the page on each run — do not attempt to hardcode credentials.
  • Sold listings data is only available for items sold through the Grailed platform.
  • The original_price field is populated only when the seller entered it manually.