POST /api/thredup/products
Price: 5 credits
Get one ThredUp listing by item number or product URL: price, MSRP and promotion, condition and its notes, size and measurements, item attributes, materials and colors, photos, marketplace seller details and similar brands
Fetch the full ThredUp listing for one item number, as returned in id by the ThredUp product search. Listings from marketplace sellers carry a seller block with ship-from location and shipping cost.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)product string required — ThredUp item number or product URL (examples: "236674693", "https://www.thredup.com/product/women-jolie-and-joy-brown-casual-skirt/236674693"; minLength: 1)@type string (default: "ThredupProduct")id string requiredurl string requiredinternal_id string nullabledescription string nullablebrand string nullablebrand_id string nullablebrand_style_name string nullablecategory string nullablecategory_tags array (default: [])department string nullabledepartments array (default: [])gender string nullableprice number nullablemsrp number nullableoriginal_price number nullablesavings number nullablecurrency string (default: "USD")promotion object nullable@type string (default: "ThredupPromotion")code string nullablediscount_percent number nullableprice number nullableis_dynamic_discount boolean nullablecondition string nullableis_new_with_tags boolean nullableis_clearance boolean nullableis_p2p boolean nullableavailability string nullablestate string nullablesize string nullablesize_ids array (default: [])colors array (default: [])materials array (default: [])styles array (default: [])access_levels array (default: [])favorite_count integer nullablempn_title string nullablesupplier_id string nullableoriginal_supplier_id string nullablewarehouse_id string nullablecluster_id string nullablecluster_item_count integer nullablesimilar_search_filters object nullable@type string (default: "ThredupSimilarFilters")departments array (default: [])categories array (default: [])size_ids array (default: [])image string nullableimages array (default: [])additional_description string nullablecategory_id string nullablecondition_code string nullablecondition_grade string nullablecondition_notes array (default: [])condition_detail string nullableattributes array (default: [])@type string (default: "ThredupAttribute")name string requiredvalues array (default: [])measurements object nullable@type string (default: "ThredupMeasurements")text string nullablemethod string nullablechest number nullabledepth number nullableheel_height number nullableheight number nullableinseam number nullablelength number nullablerise number nullablewaist number nullablemeasurements_override string nullablesize_details object nullable@type string (default: "ThredupSize")value string nullablescale string nullablechart string nullablesize_id string nullablesize_detailed string nullablesize_eu string nullablesize_note string nullablemannequin_size string nullableis_adjustable_waist boolean nullableis_final_sale boolean nullableis_sale boolean nullableis_preorderable boolean nullablehas_inappropriate_content boolean nullableauthentication_type string nullableout_of_region_price number nullablempn string nullablesearch_tags array (default: [])shipping_from string nullableseller object nullable@type string (default: "ThredupSeller")id string nullablename string nullablekind string nullablecity string nullableregion string nullableis_on_vacation boolean nullablehas_covered_shipping boolean nullablehas_covered_buyer_protection boolean nullableshipping_cost number nullablebuyer_protection_price number nullablerating object nullable@type string (default: "ThredupSellerRating")positive_share number nullablerating_count integer nullablevisible_rating_count integer nullableitem_as_described_positive_share number nullableitem_as_described_count integer nullableshipping_positive_share number nullableshipping_count integer nullableoffer object nullable@type string (default: "ThredupOffer")id string nullablestate string nullableprice number nullableprice_before_offer number nullableseller_price number nullableexpires_at integer nullabledropshipper object nullable@type string (default: "ThredupDropshipper")id string nullablename string nullableis_active boolean nullableis_certificate_included boolean nullableis_certified_authentic boolean nullablepartner object nullable@type string (default: "ThredupPartner")name string nullablebrand_name string nullablekind string nullableurl string nullableimage string nullablepartner_description string nullablesimilar_brands array (default: [])@type string (default: "ThredupSimilarBrand")id string requiredname string nullabledepartment string nullablesustainability object nullable@type string (default: "ThredupSustainability")category string nullablewater_glasses number nullablelighting_hours number nullablecar_miles number nullablephotos array (default: [])@type string (default: "ThredupPhoto")url string requiredkind string nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — No ThredUp listing has this item number Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.