Research public, read-only marketplace data for luxury fashion, handbags,
watches, sneakers, and streetwear. Use this skill when the user needs current
asks, sold comparables where the source exposes them, listing-level condition,
or seller/dealer context across luxury resale sources. It complements the broad
resale-secondhand-research skill; use this one when specialist luxury sources
or a disciplined evidence comparison matters.
Tool scope and data flow
The optional shell helper is the only command this skill asks to run. It makes
GET requests only to the documented, allowlisted Crawlora routes. When invoked,
it reads CRAWLORA_API_KEY and sends it as an x-api-key header over HTTPS to
api.crawlora.net; it does not send the key to marketplace sites. It briefly
writes a mode-600 curl config under TMPDIR and removes it when the command
exits. It does not inspect other environment variables, enumerate files, install
software, or run with elevated privileges. Run it only when you want to make a
Crawlora API request; successful requests can consume credits.
Do not place orders, make offers, authenticate an item, estimate an appraisal, claim a purchase total, or imply that a platform's condition label proves authenticity. Do not infer fees, duties, shipping, or currency conversion when the selected public response does not state them.
Evidence workflow
- Define the comparability key first: brand, model/reference or style ID, material/color, size, condition, and region/currency where present. Search active and sold datasets separately; an asking price is not sale evidence.
- Discover opaque filters before searching. Use each platform's directory, categories, conditions, brands, models, or facets endpoint rather than guessing ids, slugs, or values.
- Pull a compact active set, then fetch detail only for credible matches. Keep source URL/path and the retrieval time for every record. Follow only the source's cursor/page limit; narrow the query instead of deep paging.
- Report separate fields for: active asks; sold evidence (sale price
and sale date only where the endpoint supplies both); condition and
authentication signals (source-stated, never independently verified);
fees/shipping/duties (stated amount or
not provided); currency; and source timestamp (listing/sale date if supplied, plus retrieval time). Do not pool currencies or condition grades without labeling the normalization assumption. - State evidence gaps plainly. Current inventory, recommendation rails, seller reputation, and marketplace-wide counts are useful context, not a transaction record or authenticity determination.
Source map
Use the exact routes and parameter names below. All are GET public-data
reads. Braces identify a path parameter; all others are query parameters.
Core luxury sources
- The RealReal: discovery:
therealreal_autocomplete(/therealreal/autocomplete,term),therealreal_categories,therealreal_conditions,therealreal_collections, andtherealreal_designers(category). Search:therealreal_search(/therealreal/search, requiredquery; optionalcategory_id,designer_id,condition_id,price_from,price_to,on_sale,available,after). Browse:therealreal_category(path,on_sale,available,after),therealreal_designer(slug,on_sale,available,after), andtherealreal_collection(slug,after). Detail:therealreal_listing(url) andtherealreal_similar(product_id). Reusenext_afterexactly as returned. - Fashionphile: discovery/catalog:
fashionphile_collectionsandfashionphile_products(page,limit; default 50, maximum 250), plusfashionphile_sitemapsandfashionphile_sitemap_urls(type,limit). Search:fashionphile_search(/fashionphile/search;q,condition,availability,vendor,sort,page,limit; default 20, maximum 50). Useavailability=soldspecifically for its sold archive;availableis the default andallis also accepted. Details:fashionphile_product(handle) andfashionphile_product_recommendations(handle,intent,limit; default 10, maximum 20;intentisrelatedorcomplementary). Collection and static-page reads usefashionphile_collection_products(handle,page,limit),fashionphile_pages(page,limit), andfashionphile_page(handle); suggestions usefashionphile_search_suggest(q,types,limit; maximum 20). - Rebag: use the same public storefront pattern with only Rebag routes:
rebag_search(/rebag/search;q,sort,page,limit),rebag_product(handle),rebag_product_recommendations(handle,intent,limit),rebag_productsandrebag_collections(page,limit; default 50, maximum 250),rebag_collection_products(handle,page,limit),rebag_search_suggest(q,types,limit; maximum 20),rebag_sitemaps,rebag_sitemap_urls(type,limit),rebag_pages(page,limit),rebag_page(handle), andrebag_store. - Vestiaire Collective: discovery:
vestiaire_brands,vestiaire_categories, andvestiaire_conditions. Search:vestiaire_search(/vestiaire/search;q,brand_id,category_id,condition_id,sort,page,per_page).per_pageis at most 60 andpage * per_pagemust not exceed 1000; use the returned directory IDs. Detail/context:vestiaire_product(path),vestiaire_search_sellers(q),vestiaire_seller(id), andvestiaire_suggest(q). - Grailed: discover filters with
grailed_categoriesand designers withgrailed_designers(q,page,limit); curated browse isgrailed_collectionsthengrailed_collection(id). Usegrailed_searchfor active asks andgrailed_sold_listingsfor sold evidence. Both acceptq,designer,department,category,size,color,condition,min_price,max_price,sort,page, andlimit; price filters mean final sold price on the sold route. Detail/context:grailed_listing(id),grailed_similar_listings(id,limit),grailed_seller(username,page,limit),grailed_seller_reviews(username,page), andgrailed_suggest(q). - Chrono24: discover
chrono24_brands, thenchrono24_models(brand), andchrono24_facets(group) before advanced filters. Search withchrono24_search(/chrono24/search; at leastqueryorbrand; optionalmodel,sort,page,page_size,condition,used_or_new,case_material,dial_color,bracelet_material,movement_type,gender,watch_type,stock_info). The UI page sizes are 30, 60, or 120. Usechrono24_listing(path) for the reference number, specifications, price/currency, condition, seller type, and location; dealer context ischrono24_dealer(slug) andchrono24_dealer_reviews(slug,page,page_size1–50,min_stars0–5,sort). Suggestions:chrono24_autocomplete(query).
Adjacent resale benchmarks
Use these only when they improve the requested comparison; do not substitute a streetwear marketplace for a luxury-listing comparable without saying so.
- Depop:
depop_search(queryplusbrand_ids,category,subcategory,condition,colours,sizes,gender,is_kids,on_sale,price_min,price_max,sort,after); discover withdepop_brands,depop_categories,depop_sizes, anddepop_search_facets(query). Detail/shop:/depop/item/{slug},/depop/item/{slug}/similar(after,limit, up to 150),depop_search_sellers(query), and/depop/shop/{username}with the compatible filters. Suggestions:depop_suggest(query). - Poshmark: use
poshmark_brandsandposhmark_categoriesfor discovery; active browse/search isposhmark_search(query,department,max_id),/poshmark/brand/{name}(max_id), or/poshmark/category/{path}(max_id). Details are/poshmark/listing/{id}; seller context is/poshmark/closet/{username}(max_id). Reusenext_max_idexactly. - GOAT and StockX: use product detail for market context, not a confirmed
sale comp unless the response explicitly provides a last-sale field.
goat_searchsupportsquery, facets,page, andlimit; discover withgoat_search_facets,goat_countries, andgoat_curated; detail is/goat/product/{slug}(country_code).stockx_searchsupportscategory,query, facet filters,page, andlimit; discoverstockx_categoriesandstockx_brands; detail is/stockx/product/{slug}.stockx_releases(from,page,limit) is a release calendar, not resale history.
Reporting shape
For a comparison, return a compact table or JSON list with one row per source
listing and include source, listing_url_or_path, status (active,
sold, or market_context), price, currency, condition_text,
authentication_signal, seller_or_dealer_signal, sale_date,
fees_shipping_duties, source_timestamp, and retrieved_at. Leave an
unsupported field null or label it not provided; never fill it with an
estimate. Keep active asks and sold evidence in separate summaries before any
user-requested comparison.