SuperAPI AI Directory

luxury-resale-research

Writing & research

View repository

Updated 10-15 20:29

About this skill

Luxury resale research

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

  1. 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.
  2. Discover opaque filters before searching. Use each platform's directory, categories, conditions, brands, models, or facets endpoint rather than guessing ids, slugs, or values.
  3. 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.
  4. 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.
  5. 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, and therealreal_designers (category). Search: therealreal_search (/therealreal/search, required query; optional category_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), and therealreal_collection (slug, after). Detail: therealreal_listing (url) and therealreal_similar (product_id). Reuse next_after exactly as returned.
  • Fashionphile: discovery/catalog: fashionphile_collections and fashionphile_products (page, limit; default 50, maximum 250), plus fashionphile_sitemaps and fashionphile_sitemap_urls (type, limit). Search: fashionphile_search (/fashionphile/search; q, condition, availability, vendor, sort, page, limit; default 20, maximum 50). Use availability=sold specifically for its sold archive; available is the default and all is also accepted. Details: fashionphile_product (handle) and fashionphile_product_recommendations (handle, intent, limit; default 10, maximum 20; intent is related or complementary). Collection and static-page reads use fashionphile_collection_products (handle, page, limit), fashionphile_pages (page, limit), and fashionphile_page (handle); suggestions use fashionphile_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_products and rebag_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), and rebag_store.
  • Vestiaire Collective: discovery: vestiaire_brands, vestiaire_categories, and vestiaire_conditions. Search: vestiaire_search (/vestiaire/search; q, brand_id, category_id, condition_id, sort, page, per_page). per_page is at most 60 and page * per_page must not exceed 1000; use the returned directory IDs. Detail/context: vestiaire_product (path), vestiaire_search_sellers (q), vestiaire_seller (id), and vestiaire_suggest (q).
  • Grailed: discover filters with grailed_categories and designers with grailed_designers (q, page, limit); curated browse is grailed_collections then grailed_collection (id). Use grailed_search for active asks and grailed_sold_listings for sold evidence. Both accept q, designer, department, category, size, color, condition, min_price, max_price, sort, page, and limit; 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), and grailed_suggest (q).
  • Chrono24: discover chrono24_brands, then chrono24_models (brand), and chrono24_facets (group) before advanced filters. Search with chrono24_search (/chrono24/search; at least query or brand; optional model, 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. Use chrono24_listing (path) for the reference number, specifications, price/currency, condition, seller type, and location; dealer context is chrono24_dealer (slug) and chrono24_dealer_reviews (slug, page, page_size 1–50, min_stars 0–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 (query plus brand_ids, category, subcategory, condition, colours, sizes, gender, is_kids, on_sale, price_min, price_max, sort, after); discover with depop_brands, depop_categories, depop_sizes, and depop_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_brands and poshmark_categories for discovery; active browse/search is poshmark_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). Reuse next_max_id exactly.
  • GOAT and StockX: use product detail for market context, not a confirmed sale comp unless the response explicitly provides a last-sale field. goat_search supports query, facets, page, and limit; discover with goat_search_facets, goat_countries, and goat_curated; detail is /goat/product/{slug} (country_code). stockx_search supports category, query, facet filters, page, and limit; discover stockx_categories and stockx_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.