Grailed Listings & Price-Spread Scraper
Pricing
from $2.00 / 1,000 results
Grailed Listings & Price-Spread Scraper
Search Grailed menswear/streetwear resale for any designer or keyword and get every listing with price, size, condition, seller, and sold status. Compare min-to-max prices across sizes for spread arbitrage. No login.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Farhan Febrian Nauval
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Search Grailed — the menswear/streetwear resale marketplace — for any designer, brand, or keyword and get back every matching listing with its price, size, condition, seller, and sold status. Built for price-spread arbitrage: see the full min-to-max price range across sizes and conditions for the same item.
Why use this actor
- No account, no login, no API key needed. Just enter a search term and run.
- Full listing detail: title, designer/brand, asking price, any price drops, size, condition, department, seller, photo, and listing link.
- Sold-price history: flip on "sold only" to pull completed sales with the real sold price — perfect for valuing an item before you buy or list.
- Price-spread ready: every listing carries price + size + condition, so you can compute the min↔max spread across a query in a spreadsheet.
- Stable JSON output suitable for pipelines, databases, and spreadsheets. Export to JSON, CSV, or Excel.
- Automatic retries, runs on Apify's schedule — no scrapers, browsers, or blocks to babysit.
How it works
- You provide one or more search terms (e.g.
nike,supreme box logo). - The actor searches Grailed for each term.
- It walks through the result pages and collects every listing, up to the limits you set.
- Each listing is returned as one clean row with price, size, condition, seller, and sold status.
- Export the dataset to JSON/CSV/Excel or pull it via the Apify API.
You never manage scrapers, browsers, or blocks — the actor handles retries and returns clean rows.
Input
{"queries": ["nike", "supreme box logo"],"mode": "search","soldOnly": false,"minPrice": 0,"maxPrice": 0,"hitsPerPage": 48,"maxItemsPerSearch": 96,"maxItems": 0,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
| Field | Type | Description |
|---|---|---|
queries | array of strings | Search terms — keywords, brands, or designers. Each is searched separately. |
mode | string | search (only mode). Returns matching listings for each query. |
soldOnly | boolean | When true, returns only sold listings with their final sold price. |
minPrice | integer | Only listings priced at or above this (USD). 0 = no minimum. |
maxPrice | integer | Only listings priced at or below this (USD). 0 = no maximum. |
hitsPerPage | integer | Listings fetched per page (1–100). Default 48. |
maxItemsPerSearch | integer | Max listings per query (0 = all available, up to ~1000 per query). |
maxItems | integer | Overall cap across all queries (0 = no cap). |
proxyConfiguration | object | Optional. Search is public; Residential is a safe default. |
Output
Each row is one listing. A convenient set of lead fields is placed first, followed by the full original listing detail.
Sample (available listing, query nike)
{"_query": "nike","_mode": "active","_source": "S1-search","_scrapedAt": "2026-07-09T18:41:12Z","id": 100438088,"title": "VTG Nike Faux Fur Jersey Zip Hoodie Y2K","designerNames": "Nike","price": 75,"priceDropsTo": null,"soldPrice": 0,"isSold": false,"soldAt": null,"size": "m","condition": "is_gently_used","categoryPath": "tops.sweatshirts_hoodies","department": "menswear","location": "Europe","makeoffer": true,"sellerId": 15748731,"sellerUsername": "oldornew","listingUrl": "https://www.grailed.com/listings/100438088","firstPhoto": "https://media-assets.grailed.com/prd/listing/temp/5b0dcccb6b9d4aa39a846e350092b2fa","createdAt": "2026-07-09T18:40:27.030Z","price_drops": [55, 38],"designers": [{ "id": 30, "name": "Nike" }],"user": { "id": 15748731, "username": "oldornew", "seller_score": { "rating_average": 4.9, "rating_count": 40 } }// … full original listing fields also included}
Sample (sold listing, soldOnly: true, query supreme box logo)
{"_query": "supreme box logo","_mode": "sold","_source": "S1-search","id": 85546402,"title": "Supreme Box Logo Sticker (pack of 10)","designerNames": "Supreme","price": 13,"soldPrice": 13,"isSold": true,"soldAt": "2026-07-09T17:44:18.361Z","size": "one size","condition": "is_new","categoryPath": "accessories.supreme","sellerUsername": "sohohypebeast","listingUrl": "https://www.grailed.com/listings/85546402"// … full original listing fields also included}
| Field | Type | Description |
|---|---|---|
id | number | Listing id. |
title | string | Listing title. |
designerNames | string | Designer / brand name(s). |
price | number | Current asking price (USD). |
priceDropsTo | number/null | Latest dropped-to price when the seller has reduced it, else null. |
soldPrice | number | Final sold price (populated for sold listings). |
isSold | boolean | Whether the listing has sold. |
soldAt | string/null | When it sold (sold listings). |
size | string | Listed size. |
condition | string | Item condition (e.g. is_new, is_gently_used). |
categoryPath | string | Category path (e.g. tops.sweatshirts_hoodies). |
department | string | Department (e.g. menswear). |
location | string | Seller location. |
makeoffer | boolean | Whether the seller accepts offers. |
sellerId / sellerUsername | number / string | Seller identity. |
listingUrl | string | Direct link to the listing. |
firstPhoto | string | Cover photo URL. |
createdAt | string | When the listing was posted. |
price_drops, designers, user, … | mixed | Full original listing detail, kept as-is. |
Rows that fail carry an _error field instead of listing fields, so problems are never silent.
Notes / limits
- ~1000 listings per query. Grailed's search returns up to roughly 1,000 results for any single term. For more volume, split into several narrower terms (e.g. by model or colorway) or add price ranges.
- Available vs. sold are separate. Available listings come from the live catalog; turn on
soldOnlyto pull completed sales with sold prices. - Prices are in USD.
- A proxy is optional because search is public. Residential is a safe default in the Console.