{"openapi":"3.1.0","info":{"title":"SoldStack","description":"Sold listings and price stats from resale marketplaces. Human docs: /docs","version":"1.0"},"paths":{"/v1/sold":{"get":{"summary":"Sold","description":"Clean sold comps plus price stats for a keyword. Auth: X-API-Key header or ?api_key=.","operationId":"sold_v1_sold_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"Search keywords, e.g. 'lululemon align 6'","title":"Q"},"description":"Search keywords, e.g. 'lululemon align 6'"},{"name":"source","in":"query","required":false,"schema":{"type":"string","default":"poshmark","title":"Source"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"deep","in":"query","required":false,"schema":{"type":"boolean","description":"Read up to ~190 recent sales (4 Poshmark pages) instead of the 48 most recent. Slower when not cached (about 10s). Counts as one lookup.","default":false,"title":"Deep"},"description":"Read up to ~190 recent sales (4 Poshmark pages) instead of the 48 most recent. Slower when not cached (about 10s). Counts as one lookup."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only this size, e.g. 8, M or 10.5","title":"Size"},"description":"Only this size, e.g. 8, M or 10.5"},{"name":"condition","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated: new, used, or exact condition values","title":"Condition"},"description":"Comma-separated: new, used, or exact condition values"},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"description":"Only sales from the last N days","title":"Days"},"description":"Only sales from the last N days"},{"name":"min_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Price"}},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Max Price"}},{"name":"exclude","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated words; drop titles containing any","title":"Exclude"},"description":"Comma-separated words; drop titles containing any"},{"name":"clean","in":"query","required":false,"schema":{"type":"boolean","description":"Remove off-topic items, bundles, kids' sizes, other item types, duplicates and price outliers","default":true,"title":"Clean"},"description":"Remove off-topic items, bundles, kids' sizes, other item types, duplicates and price outliers"},{"name":"include_removed","in":"query","required":false,"schema":{"type":"boolean","description":"Also return removed_items: the sales cleaning dropped, each with a removed_reason (up to limit)","default":false,"title":"Include Removed"},"description":"Also return removed_items: the sales cleaning dropped, each with a removed_reason (up to limit)"},{"name":"exclude_seller","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated usernames (case-insensitive); drop their sales","title":"Exclude Seller"},"description":"Comma-separated usernames (case-insensitive); drop their sales"},{"name":"department","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated: Women, Men, Kids, Home, Pets, Electronics. Kids also keeps kids' sizes","title":"Department"},"description":"Comma-separated: Women, Men, Kids, Home, Pets, Electronics. Kids also keeps kids' sizes"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated Poshmark categories, e.g. Jeans","title":"Category"},"description":"Comma-separated Poshmark categories, e.g. Jeans"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"enum":["recent","price_asc","price_desc"],"type":"string"},{"type":"null"}],"description":"Order of the returned sales (stats unaffected). Default: marketplace order","title":"Sort"},"description":"Order of the returned sales (stats unaffected). Default: marketplace order"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoldResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/verdict":{"get":{"summary":"Verdict","description":"Buy, pass or maybe for an item at a given cost, judged from its clean sold comps. Same lookup cost as /v1/sold.","operationId":"verdict_v1_verdict_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"The item, e.g. 'coach tabby 26'","title":"Q"},"description":"The item, e.g. 'coach tabby 26'"},{"name":"cost","in":"query","required":true,"schema":{"type":"number","maximum":100000,"minimum":0,"description":"What you'd pay for it, e.g. the thrift-store tag price","title":"Cost"},"description":"What you'd pay for it, e.g. the thrift-store tag price"},{"name":"min_profit","in":"query","required":false,"schema":{"type":"number","maximum":100000,"minimum":0,"description":"Smallest profit after fees worth the effort","default":10,"title":"Min Profit"},"description":"Smallest profit after fees worth the effort"},{"name":"source","in":"query","required":false,"schema":{"type":"string","default":"poshmark","title":"Source"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":0,"description":"How many of the comps to include as evidence","default":5,"title":"Limit"},"description":"How many of the comps to include as evidence"},{"name":"deep","in":"query","required":false,"schema":{"type":"boolean","description":"Read up to ~190 recent sales (4 Poshmark pages) instead of the 48 most recent. Slower when not cached (about 10s). Counts as one lookup.","default":false,"title":"Deep"},"description":"Read up to ~190 recent sales (4 Poshmark pages) instead of the 48 most recent. Slower when not cached (about 10s). Counts as one lookup."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only this size, e.g. 8, M or 10.5","title":"Size"},"description":"Only this size, e.g. 8, M or 10.5"},{"name":"condition","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated: new, used, or exact condition values","title":"Condition"},"description":"Comma-separated: new, used, or exact condition values"},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"description":"Only sales from the last N days","title":"Days"},"description":"Only sales from the last N days"},{"name":"min_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Price"}},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Max Price"}},{"name":"exclude","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated words; drop titles containing any","title":"Exclude"},"description":"Comma-separated words; drop titles containing any"},{"name":"clean","in":"query","required":false,"schema":{"type":"boolean","description":"Remove off-topic items, bundles, kids' sizes, other item types, duplicates and price outliers","default":true,"title":"Clean"},"description":"Remove off-topic items, bundles, kids' sizes, other item types, duplicates and price outliers"},{"name":"include_removed","in":"query","required":false,"schema":{"type":"boolean","description":"Also return removed_items: the sales cleaning dropped, each with a removed_reason (up to limit)","default":false,"title":"Include Removed"},"description":"Also return removed_items: the sales cleaning dropped, each with a removed_reason (up to limit)"},{"name":"exclude_seller","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated usernames (case-insensitive); drop their sales","title":"Exclude Seller"},"description":"Comma-separated usernames (case-insensitive); drop their sales"},{"name":"department","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated: Women, Men, Kids, Home, Pets, Electronics. Kids also keeps kids' sizes","title":"Department"},"description":"Comma-separated: Women, Men, Kids, Home, Pets, Electronics. Kids also keeps kids' sizes"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated Poshmark categories, e.g. Jeans","title":"Category"},"description":"Comma-separated Poshmark categories, e.g. Jeans"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"enum":["recent","price_asc","price_desc"],"type":"string"},{"type":"null"}],"description":"Order of the returned sales (stats unaffected). Default: marketplace order","title":"Sort"},"description":"Order of the returned sales (stats unaffected). Default: marketplace order"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerdictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Cleaning":{"properties":{"found":{"type":"integer","title":"Found"},"used":{"type":"integer","title":"Used"},"removed":{"additionalProperties":{"type":"integer"},"type":"object","title":"Removed"},"item_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Item Type"},"confidence":{"type":"string","title":"Confidence"},"confidence_note":{"type":"string","title":"Confidence Note"},"undated":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Undated"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["found","used","removed","item_type","confidence","confidence_note"],"title":"Cleaning"},"ConditionStats":{"properties":{"condition":{"type":"string","title":"Condition"},"label":{"type":"string","title":"Label"},"count":{"type":"integer","title":"Count"},"median":{"type":"number","title":"Median"},"p10":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P10"},"p90":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P90"}},"type":"object","required":["condition","label","count","median"],"title":"ConditionStats"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PartialMatch":{"properties":{"source":{"type":"string","title":"Source"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"title":{"type":"string","title":"Title"},"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"},"price":{"type":"number","title":"Price"},"currency":{"type":"string","title":"Currency"},"sold_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sold At"},"listed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Listed At"},"days_to_sell":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Days To Sell"},"url":{"type":"string","title":"Url"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"seller":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seller"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"match_score":{"type":"number","title":"Match Score"}},"type":"object","required":["source","id","title","brand","size","condition","price","currency","sold_at","listed_at","days_to_sell","url","image","match_score"],"title":"PartialMatch"},"RemovedItem":{"properties":{"source":{"type":"string","title":"Source"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"title":{"type":"string","title":"Title"},"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"},"price":{"type":"number","title":"Price"},"currency":{"type":"string","title":"Currency"},"sold_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sold At"},"listed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Listed At"},"days_to_sell":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Days To Sell"},"url":{"type":"string","title":"Url"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"seller":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seller"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"removed_reason":{"type":"string","title":"Removed Reason"}},"type":"object","required":["source","id","title","brand","size","condition","price","currency","sold_at","listed_at","days_to_sell","url","image","removed_reason"],"title":"RemovedItem"},"SoldItem":{"properties":{"source":{"type":"string","title":"Source"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"title":{"type":"string","title":"Title"},"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"},"price":{"type":"number","title":"Price"},"currency":{"type":"string","title":"Currency"},"sold_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sold At"},"listed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Listed At"},"days_to_sell":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Days To Sell"},"url":{"type":"string","title":"Url"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"seller":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seller"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},"type":"object","required":["source","id","title","brand","size","condition","price","currency","sold_at","listed_at","days_to_sell","url","image"],"title":"SoldItem"},"SoldResponse":{"properties":{"query":{"type":"string","title":"Query"},"source":{"type":"string","title":"Source"},"stats":{"$ref":"#/components/schemas/SoldStats"},"by_condition":{"items":{"$ref":"#/components/schemas/ConditionStats"},"type":"array","title":"By Condition"},"cleaning":{"$ref":"#/components/schemas/Cleaning"},"items":{"items":{"$ref":"#/components/schemas/SoldItem"},"type":"array","title":"Items"},"removed_items":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemovedItem"},"type":"array"},{"type":"null"}],"title":"Removed Items"},"partial_matches":{"anyOf":[{"items":{"$ref":"#/components/schemas/PartialMatch"},"type":"array"},{"type":"null"}],"title":"Partial Matches"},"usage":{"anyOf":[{"$ref":"#/components/schemas/Usage"},{"type":"null"}]}},"type":"object","required":["query","source","stats","by_condition","cleaning","items"],"title":"SoldResponse"},"SoldStats":{"properties":{"count":{"type":"integer","title":"Count"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"median":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median"},"mean":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mean"},"p10":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P10"},"p90":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P90"},"min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min"},"max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max"},"median_days_to_sell":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median Days To Sell"},"median_net_payout":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median Net Payout"},"suggested_max_buy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Suggested Max Buy"}},"type":"object","required":["count"],"title":"SoldStats"},"Usage":{"properties":{"used":{"type":"integer","title":"Used"},"limit":{"type":"integer","title":"Limit"},"remaining":{"type":"integer","title":"Remaining"},"plan":{"type":"string","title":"Plan"},"resets":{"type":"string","title":"Resets"}},"type":"object","required":["used","limit","remaining","plan","resets"],"title":"Usage"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerdictResponse":{"properties":{"query":{"type":"string","title":"Query"},"source":{"type":"string","title":"Source"},"verdict":{"type":"string","title":"Verdict"},"reason":{"type":"string","title":"Reason"},"cost":{"type":"number","title":"Cost"},"min_profit":{"type":"number","title":"Min Profit"},"expected_sale_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expected Sale Price"},"expected_net_payout":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expected Net Payout"},"expected_profit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expected Profit"},"roi":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Roi"},"max_buy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Buy"},"days_to_sell":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Days To Sell"},"confidence":{"type":"string","title":"Confidence"},"stats":{"$ref":"#/components/schemas/SoldStats"},"cleaning":{"$ref":"#/components/schemas/Cleaning"},"comps":{"items":{"$ref":"#/components/schemas/SoldItem"},"type":"array","title":"Comps"},"removed_items":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemovedItem"},"type":"array"},{"type":"null"}],"title":"Removed Items"},"partial_matches":{"anyOf":[{"items":{"$ref":"#/components/schemas/PartialMatch"},"type":"array"},{"type":"null"}],"title":"Partial Matches"},"usage":{"anyOf":[{"$ref":"#/components/schemas/Usage"},{"type":"null"}]}},"type":"object","required":["query","source","verdict","reason","cost","min_profit","expected_sale_price","expected_net_payout","expected_profit","roi","max_buy","days_to_sell","confidence","stats","cleaning","comps"],"title":"VerdictResponse"}}}}