{"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":"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":"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":"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":"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"}},"type":"object","required":["found","used","removed","item_type","confidence","confidence_note"],"title":"Cleaning"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}},"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"},"cleaning":{"$ref":"#/components/schemas/Cleaning"},"items":{"items":{"$ref":"#/components/schemas/SoldItem"},"type":"array","title":"Items"}},"type":"object","required":["query","source","stats","cleaning","items"],"title":"SoldResponse"},"SoldStats":{"properties":{"count":{"type":"integer","title":"Count"},"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"},"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"}},"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"}}}}