Grailed Listings & Price-Spread Scraper avatar

Grailed Listings & Price-Spread Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Grailed Listings & Price-Spread Scraper

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

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

  1. You provide one or more search terms (e.g. nike, supreme box logo).
  2. The actor searches Grailed for each term.
  3. It walks through the result pages and collects every listing, up to the limits you set.
  4. Each listing is returned as one clean row with price, size, condition, seller, and sold status.
  5. 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"] }
}
FieldTypeDescription
queriesarray of stringsSearch terms — keywords, brands, or designers. Each is searched separately.
modestringsearch (only mode). Returns matching listings for each query.
soldOnlybooleanWhen true, returns only sold listings with their final sold price.
minPriceintegerOnly listings priced at or above this (USD). 0 = no minimum.
maxPriceintegerOnly listings priced at or below this (USD). 0 = no maximum.
hitsPerPageintegerListings fetched per page (1–100). Default 48.
maxItemsPerSearchintegerMax listings per query (0 = all available, up to ~1000 per query).
maxItemsintegerOverall cap across all queries (0 = no cap).
proxyConfigurationobjectOptional. 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
}
FieldTypeDescription
idnumberListing id.
titlestringListing title.
designerNamesstringDesigner / brand name(s).
pricenumberCurrent asking price (USD).
priceDropsTonumber/nullLatest dropped-to price when the seller has reduced it, else null.
soldPricenumberFinal sold price (populated for sold listings).
isSoldbooleanWhether the listing has sold.
soldAtstring/nullWhen it sold (sold listings).
sizestringListed size.
conditionstringItem condition (e.g. is_new, is_gently_used).
categoryPathstringCategory path (e.g. tops.sweatshirts_hoodies).
departmentstringDepartment (e.g. menswear).
locationstringSeller location.
makeofferbooleanWhether the seller accepts offers.
sellerId / sellerUsernamenumber / stringSeller identity.
listingUrlstringDirect link to the listing.
firstPhotostringCover photo URL.
createdAtstringWhen the listing was posted.
price_drops, designers, user, …mixedFull 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 soldOnly to 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.