Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the TheRealReal API page →
docs / therealreal

TheRealReal

Authenticated luxury resale: condition grades, original retail estimates and what comparable items actually sold for.

base /therealreal/v111 endpoints
post/therealreal/v1/browse1 credit

Browse a category, a designer, a curated sale or any filter combination without a keyword — the catalogue view. Same row shape and sorts as `search`. At least one of category, category_id, designer, designer_id, sale_slug or a facet filter is required, so nobody accidentally pages through four million rows.

ParameterAllowed / rangeDescription
currency = USDoptionalUSD · EUR · GBP · CAD · AUD · JPY · HKD · SGD · MXNDisplay currency for the *_display fields. Prices are ALSO always returned in USD, because the source converts the label only.
page = 1optional1–1-based page. The catalogue connection stops at 2000 rows.
page_size = 48optional1–120Rows per page, 1-120 (the source's own ceiling).
sort = newestoptionalnewest · price_asc · price_desc · sold · most_obsessedResult order.
sale_slugoptional—A curated sale/collection slug, e.g. 'hermes-birkin-bag'. `search` reports one in `redirect_to_sale` when the site answers a query with a curated page.
categoryoptional—Category permalink, e.g. 'women/handbags', 'men/shoes', 'jewelry/earrings', 'watches/bracelet'. Call `categories` for the live tree.
category_idoptional—Category facet id(s) from `filters`/`categories`.
designeroptional—Designer slug, e.g. 'chanel', 'saint-laurent', 'louis-vuitton'. Call `designers` for the full index.
designer_idoptional—Designer facet id(s) (from `designers`).
conditionoptionalpristine · excellent · very_good · good · fair · as_isCondition grade(s) the site assigns. A numeric facet id is also accepted.
coloroptionalblack · brown · burgundy · red · blue · purple · pink · orange · green · metallic · grey · yellow · white · gold · silver · animal_print · pattern_prints · neutrals · clearColour / pattern facet(s).
genderoptionalwomen · menGender facet.
clothing_sizeoptionalpetite · xxs · xs · s · m · l · xl · xxl · 3xl · 4xl · 5xlClothing size(s) (XS…5XL, Petite).
shoe_sizeoptional3.5 · 4 · 4.5 · 5 · 5.5 · 6 · 6.5 · 7 · 7.5 · 8 · 8.5 · 9 · 9.5 · 10 · 10.5 · 11 · 11.5 · 12 · 12.5 · 13 · 13.5 · 14 · 14.5 · 15 · 15.5 · 16 · 16.5 · 17 · 18US shoe size(s), 3.5-18.
store_idoptional—Physical-store id(s) — items available in that TheRealReal store. `filters` lists them.
price_minoptional0–Minimum asking price in USD.
price_maxoptional0–Maximum asking price in USD.
availability = availableoptionalavailable · all'available' hides sold listings (default); 'all' keeps them. Sold items are a real state on a one-of-a-kind marketplace, not an error.
on_sale = falseoptional—Only items the site currently marks as marked down.
vintage = falseoptional—Only items flagged vintage.
with_tags = falseoptional—Only items still carrying their original tags.
editors_picks = falseoptional—Only editors' picks.
Try in playground →
post/therealreal/v1/product/detail1 credit

One listing in full, by slug or URL: name, designer, category path, the CONDITION GRADE plus the condition narrative the site writes, the seller description as clean lines, measurements with the unit as published, materials and colours, asking price with the markdown against the site's own previous price, the ORIGINAL RETAIL ESTIMATE where the source publishes one, sold state, return policy, disclaimers and every image with its dimensions. A sold listing resolves normally — it is a state, not an error.

ParameterAllowed / rangeDescription
slugoptional—Listing slug, e.g. 'saint-laurent-embossed-leather-clutch-wod8x' — the last path segment of a therealreal.com product URL. Every search/browse row returns it.
urloptional—A therealreal.com product URL instead of `slug`.
Try in playground →
post/therealreal/v1/products/batch2 credits

Up to 50 listings in ONE upstream call, by slug — the shape a catalogue refresh or a price/availability watcher should use instead of 50 separate detail calls. Slugs that no longer resolve come back in `not_found` rather than failing the call.

ParameterAllowed / rangeDescription
slugsrequired—Up to 50 listing slugs (or product URLs), comma-separated or a JSON array.
Try in playground →
post/therealreal/v1/product/similar1 credit

Visually similar LIVE listings for one product id — the answer to 'this one-of-a-kind item is sold, what else is like it'. Same row shape as search.

ParameterAllowed / rangeDescription
product_idrequired—Numeric product id (every row and detail returns `product_id`).
only_similar = trueoptional—Restrict to close matches rather than the wider visual set.
Try in playground →
post/therealreal/v1/sold/search2 credits

SOLD comparables: what items matching a description actually sold for on TheRealReal, with the transacted price, the consignor commission percentage the site quotes on that price and the resulting payout, plus the condition grade of each comp. This is the resale pricing surface — the live catalogue only shows asking prices.

ParameterAllowed / rangeDescription
queryrequired—What sold, e.g. 'chanel classic flap' or 'hermes birkin 30'.
page = 1optional1–1-based page. The catalogue connection stops at 2000 rows.
page_size = 48optional1–120Rows per page, 1-120 (the source's own ceiling).
categoryoptional—Category permalink, e.g. 'women/handbags', 'men/shoes', 'jewelry/earrings', 'watches/bracelet'. Call `categories` for the live tree.
category_idoptional—Category facet id(s) from `filters`/`categories`.
designeroptional—Designer slug, e.g. 'chanel', 'saint-laurent', 'louis-vuitton'. Call `designers` for the full index.
designer_idoptional—Designer facet id(s) (from `designers`).
conditionoptionalpristine · excellent · very_good · good · fair · as_isCondition grade(s) the site assigns. A numeric facet id is also accepted.
coloroptionalblack · brown · burgundy · red · blue · purple · pink · orange · green · metallic · grey · yellow · white · gold · silver · animal_print · pattern_prints · neutrals · clearColour / pattern facet(s).
genderoptionalwomen · menGender facet.
clothing_sizeoptionalpetite · xxs · xs · s · m · l · xl · xxl · 3xl · 4xl · 5xlClothing size(s) (XS…5XL, Petite).
shoe_sizeoptional3.5 · 4 · 4.5 · 5 · 5.5 · 6 · 6.5 · 7 · 7.5 · 8 · 8.5 · 9 · 9.5 · 10 · 10.5 · 11 · 11.5 · 12 · 12.5 · 13 · 13.5 · 14 · 14.5 · 15 · 15.5 · 16 · 16.5 · 17 · 18US shoe size(s), 3.5-18.
store_idoptional—Physical-store id(s) — items available in that TheRealReal store. `filters` lists them.
price_minoptional0–Minimum asking price in USD.
price_maxoptional0–Maximum asking price in USD.
on_sale = falseoptional—Only items the site currently marks as marked down.
vintage = falseoptional—Only items flagged vintage.
with_tags = falseoptional—Only items still carrying their original tags.
editors_picks = falseoptional—Only editors' picks.
Try in playground →
post/therealreal/v1/suggestfree

The search box's own autocomplete for a partial term — the cheapest way to find the phrasing the catalogue actually indexes.

ParameterAllowed / rangeDescription
queryrequired—Partial term, e.g. 'chan'.
limit = 10optional1–50Max suggestions to return.
Try in playground →
post/therealreal/v1/designersfree

The designer index for one department — 5 417 names for women, 2 745 for men — each with the facet id `browse` takes. Use `search`/`browse` with `designer` (slug) or `designer_id`.

ParameterAllowed / rangeDescription
category = womenoptionalwomen · men · fine-jewelry · watches · art · home · kidsWhich directory to list.
queryoptional—Filter the index by a name fragment, e.g. 'saint'.
Try in playground →
post/therealreal/v1/categoriesfree

The live category tree with a live item count per node — the `category` permalinks every other action takes. Optionally scoped to one department or designer.

ParameterAllowed / rangeDescription
categoryoptional—Category permalink, e.g. 'women/handbags', 'men/shoes', 'jewelry/earrings', 'watches/bracelet'. Call `categories` for the live tree.
designeroptional—Designer slug, e.g. 'chanel', 'saint-laurent', 'louis-vuitton'. Call `designers` for the full index.
designer_idoptional—Designer facet id(s) (from `designers`).
Try in playground →
post/therealreal/v1/filtersfree

Every facet the catalogue exposes for a given scope, with live counts and the exact ids the filter params take: condition grades, colours, clothing and shoe sizes, gender, designers, physical stores, the price range and the boolean flags. Call this instead of hard-coding an id.

ParameterAllowed / rangeDescription
currency = USDoptionalUSD · EUR · GBP · CAD · AUD · JPY · HKD · SGD · MXNDisplay currency for the *_display fields. Prices are ALSO always returned in USD, because the source converts the label only.
categoryoptional—Category permalink, e.g. 'women/handbags', 'men/shoes', 'jewelry/earrings', 'watches/bracelet'. Call `categories` for the live tree.
category_idoptional—Category facet id(s) from `filters`/`categories`.
designeroptional—Designer slug, e.g. 'chanel', 'saint-laurent', 'louis-vuitton'. Call `designers` for the full index.
designer_idoptional—Designer facet id(s) (from `designers`).
conditionoptionalpristine · excellent · very_good · good · fair · as_isCondition grade(s) the site assigns. A numeric facet id is also accepted.
coloroptionalblack · brown · burgundy · red · blue · purple · pink · orange · green · metallic · grey · yellow · white · gold · silver · animal_print · pattern_prints · neutrals · clearColour / pattern facet(s).
genderoptionalwomen · menGender facet.
clothing_sizeoptionalpetite · xxs · xs · s · m · l · xl · xxl · 3xl · 4xl · 5xlClothing size(s) (XS…5XL, Petite).
shoe_sizeoptional3.5 · 4 · 4.5 · 5 · 5.5 · 6 · 6.5 · 7 · 7.5 · 8 · 8.5 · 9 · 9.5 · 10 · 10.5 · 11 · 11.5 · 12 · 12.5 · 13 · 13.5 · 14 · 14.5 · 15 · 15.5 · 16 · 16.5 · 17 · 18US shoe size(s), 3.5-18.
store_idoptional—Physical-store id(s) — items available in that TheRealReal store. `filters` lists them.
price_minoptional0–Minimum asking price in USD.
price_maxoptional0–Maximum asking price in USD.
availability = availableoptionalavailable · all'available' hides sold listings (default); 'all' keeps them. Sold items are a real state on a one-of-a-kind marketplace, not an error.
on_sale = falseoptional—Only items the site currently marks as marked down.
vintage = falseoptional—Only items flagged vintage.
with_tags = falseoptional—Only items still carrying their original tags.
editors_picks = falseoptional—Only editors' picks.
Try in playground →