{"openapi":"3.1.0","info":{"title":"Vinted Resale Index","version":"0.1.0","description":"What used goods actually sell for on Vinted: sold-price percentiles, share of listings that sell, and time to sell, per brand and category. Built from public listings watched over time; a listing counts as sold when it leaves the catalogue and its page confirms it. Not affiliated with Vinted.","license":{"name":"MIT"}},"servers":[{"url":"https://gigscope-api.exochard.workers.dev"}],"paths":{"/v1/sold":{"get":{"summary":"Sold-price statistics for one brand and category","parameters":[{"name":"brand","in":"query","required":true,"schema":{"type":"string"},"example":"nike"},{"name":"category","in":"query","required":true,"schema":{"type":"string","enum":["hoodie","jacket","shoes","jeans","tshirt"]}},{"name":"tld","in":"query","required":false,"schema":{"type":"string","default":"it"}}],"responses":{"200":{"description":"One cell with up to 60 days of history","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cell"}}}},"404":{"description":"No data for that brand and category yet"}}}},"/v1/index/export":{"get":{"summary":"Every cell for one country, without sold examples","parameters":[{"name":"tld","in":"query","required":false,"schema":{"type":"string","default":"it"}}],"responses":{"200":{"description":"All cells","content":{"application/json":{"schema":{"type":"object","properties":{"tld":{"type":"string"},"cells":{"type":"array","items":{"$ref":"#/components/schemas/Cell"}}}}}}}}}},"/v1/stats":{"get":{"summary":"Index size and freshness","responses":{"200":{"description":"Counts"}}}},"/v1/agent/chat":{"post":{"summary":"Ask the index a question in plain Italian or English","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant","system"]},"content":{"type":"string"}}}},"tld":{"type":"string"}},"required":["messages"]}}}},"responses":{"200":{"description":"Answer plus the cell it used"}}}},"/mcp":{"post":{"summary":"Model Context Protocol endpoint (Streamable HTTP, protocol 2025-11-25): resale_value, sold_prices, deal_check, list_brands, list_categories","responses":{"200":{"description":"JSON-RPC or SSE frame"}}}}},"components":{"schemas":{"Cell":{"type":"object","properties":{"brand":{"type":"string"},"category":{"type":"string"},"tld":{"type":"string"},"window_days":{"type":"integer"},"generated":{"type":"integer","description":"Unix seconds"},"n_listed":{"type":"integer"},"n_sold":{"type":"integer"},"n_removed":{"type":"integer"},"sell_through":{"type":["number","null"],"description":"0 to 1"},"median_ask":{"type":["number","null"]},"median_sold":{"type":["number","null"]},"p20_sold":{"type":["number","null"]},"p50_sold":{"type":["number","null"]},"p80_sold":{"type":["number","null"]},"median_days_to_sell":{"type":["number","null"]},"currency":{"type":["string","null"],"description":"ISO code of the market the row was collected from"},"examples":{"type":"array","items":{"type":"object"}}}}}}}