
Grailed Scraper
hipersoft/grailed-scraper
Scrape Grailed designer and streetwear resale listings in bulk: title, brand, size, price, condition, seller and sold prices. Filter by designer, category, size and price.
Total users
2Monthly users
0Total runs
63Per listing scraped
$0.003Last rebuilt
Oct 26, 2026Overview
Scrape Grailed listings into clean JSON, CSV or Excel. Search any keyword — designer, brand, garment or silhouette — and pull title, designer/brand, size, price, condition, seller and photo for every result, plus a dedicated sold-listings mode that returns the final sold price for real resale comps.
Built for resale price research, market and trend analysis, sourcing, reselling and archive tracking across the global designer and streetwear resale market.
Features
- Search by keyword — enter any query (e.g.
carhartt jacket,jordan 1,raf simons) and collect matching listings in bulk. - Sold-price mode — flip on
soldOnlyto get sold listings with their final sale price — the data you need for pricing comps and market valuation. - Rich filtering — narrow by designer/brand, category, size and a price range. Filters combine so you can zero in on exactly the segment you want.
- Bulk at scale — set
maxItemsas high as you like; for large result sets the scraper automatically slices by price to gather well beyond a single query's limit. - Clean, structured output — every record has a stable
id, the listing URL, seller info and a photo link. One row per listing.
Input
query— the search term (e.g.nike,margiela boots). Leave empty to browse by filters alone.designers— optional brand filter, one per line, exactly as spelled on Grailed (e.g.Nike,Supreme,Carhartt).categories— optional top-level category filter (e.g.tops,bottoms,footwear,outerwear,accessories,tailoring).sizes— optional size filter (e.g.m,l,32,10.5).soldOnly— return sold listings with the final sold price instead of active listings.priceMin/priceMax— restrict to a price range, in USD.maxItems— cap the number of listings returned.
Example input
{ "query": "carhartt", "categories": ["outerwear"], "priceMin": 50, "priceMax": 300, "maxItems": 500 }
Sold comps for a brand:
{ "query": "jordan 1", "soldOnly": true, "maxItems": 200 }
Output
Every listing returns one row:
| Field | Type | Description |
|---|---|---|
id |
string | Unique Grailed listing ID. |
title |
string | Listing title. |
designer |
string | Designer / brand name(s). |
category |
string | Item category path (e.g. tops.polos). |
size |
string | Item size as listed. |
price |
number | Current asking price (USD). |
originalPrice |
number | Original price before drops, when available. |
isSold |
boolean | Whether the listing has sold. |
soldPrice |
number | Final sold price (in sold mode). |
condition |
string | Item condition (e.g. New, Gently Used, Used). |
sellerUsername |
string | Seller's public username. |
sellerRating |
number | Seller's average rating. |
photoUrl |
string (URL) | Link to the listing's main photo. |
url |
string (URL) | Direct link to the listing page. |
createdAt |
string (ISO date) | When the listing was posted. |
collectedAt |
string (ISO date) | When the record was collected. |
Example output
{
"id": "104977574",
"title": "Deadstock Vintage Y2K Nike University of Michigan Shirt",
"designer": "Nike",
"category": "tops.polos",
"size": "m",
"price": 95,
"originalPrice": null,
"isSold": false,
"soldPrice": null,
"condition": "New / Never Worn",
"sellerUsername": "voguesquared1",
"sellerRating": 4.85,
"photoUrl": "https://media-assets.grailed.com/prd/listing/temp/0f5eaf348afa4fdead44c73330a6707e",
"url": "https://www.grailed.com/listings/104977574",
"createdAt": "2026-09-04T18:41:30.714Z",
"collectedAt": "2026-09-04T18:45:00.000Z"
}
FAQ
How do I get sold prices?
Turn on soldOnly. Each row then includes the final soldPrice — ideal for building resale comps and tracking market values over time.
How many listings can I collect?
Set maxItems to whatever you need. For large searches the scraper automatically works through price segments to gather more than a single query would otherwise return.
What export formats are supported? Export as JSON, CSV, Excel or XML, or pull results via the Apify API.
Can I use this with n8n? Yes. Run the Grailed Scraper from n8n using the Apify community node, or trigger a run and read the dataset via the Apify API and webhooks. It also connects to Make, Zapier, Slack, Google Drive and many more, plus the JavaScript/Python clients and MCP.
Notes
Original clean-room implementation. Use responsibly and in line with Grailed's Terms of Service. Listing data belongs to Grailed and the listing sellers.
Input
| Field | Type | Description |
|---|---|---|
querySearch query | string | Keyword to search Grailed for, e.g. "nike", "carhartt jacket" or "jordan 1". Leave empty to browse everything matching your filters. |
designersDesigners / brands | array | Optional brand filter, one per line, exactly as spelled on Grailed (e.g. "Nike", "Carhartt", "Supreme"). Multiple values are combined as OR. |
categoriesCategories | array | Optional top-level category filter, one per line (e.g. "tops", "bottoms", "footwear", "outerwear", "accessories", "tailoring"). Multiple values are combined as OR. |
sizesSizes | array | Optional size filter, one per line, as used on Grailed (e.g. "m", "l", "32", "10.5"). Multiple values are combined as OR. |
soldOnlySold listings only | boolean | When enabled, returns SOLD listings with their final sold price instead of active listings. Useful for resale price research and comps. Default: false |
priceMinMinimum price (USD) | integer | Only include listings priced at or above this amount (in USD). |
priceMaxMaximum price (USD) | integer | Only include listings priced below this amount (in USD). |
maxItemsMax listings | integer | Maximum number of listings to return. For large totals the scraper automatically slices by price to gather more than the per-query limit. Default: 200 |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~grailed-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "nike"
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/grailed-scraper").call(run_input={
"query": "nike"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/grailed-scraper').call({
"query": "nike"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Listing Scraped Charged per listing scraped. | $0.003 | $0.0015 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Carousell Scraper
Scrape Carousell search listings: title, price, condition, location, seller, photo and URL. Requires your own Carousell app token.
242 runs · 2 users · $0.003 / listing scrapedGoogle Flights Scraper
Scrape flight options from Google Flights by route and date: airline, flight number, departure and arrival times, duration, stops, layovers and price. One-way or round-trip, any cabin and currency. For travel and price monitoring.
216 runs · 4 users · $0.004 / flight scrapedPinterest Scraper
Search Pinterest and scrape pins (title, description, destination link, image, pinner, board, saves), boards and users. Fast. For visual research, e-commerce, trend and marketing analysis.
151 runs · 2 users · $0.0034 / item scrapedGoogle Trends Scraper
Scrape Google Trends for any keyword: interest over time, related and rising queries, and interest by region. Per country and timeframe. For SEO, market and trend research. No setup.
139 runs · 6 users · $0.001 / keyword scrapedAliExpress Product Search Scraper
Search AliExpress by keyword and export one clean row per product — title, sale price, original price, image and product URL. Export to JSON, CSV or Excel.
135 runs · 3 users · $0.003 / product scrapedGoogle Maps Scraper
Search Google Maps and scrape places: name, category, full address, city, coordinates, rating, phone, website, Place ID and map link. Fast browser-free via Google's internal endpoint, no setup. For local lead generation and market research.
130 runs · 2 users · $0.005 / place scrapedSend the site and the fields. We build it and you get it first.