{"schema_version":"0.2","name":"Vitrine","version":"0.4.1","description":"A curated, agent-ready index of fashion, accessories and interior pieces. Every item has structured facts plus a descriptive layer (style tags, occasion, season, trend status and score) so agents can match a person's taste, not just keywords.","base_url":"https://vitrine.fashion","categories":["fashion","accessories","interior"],"links":{"about":"https://vitrine.fashion/about","about_md":"https://vitrine.fashion/about.md","data":"https://vitrine.fashion/data.md","api":"https://vitrine.fashion/v1","api_reference":"https://vitrine.fashion/docs","openapi":"https://vitrine.fashion/openapi.json","keys":"https://vitrine.fashion/v1/keys","mcp":"https://vitrine.fashion/mcp","terms":"https://vitrine.fashion/terms","privacy":"https://vitrine.fashion/privacy","status":"https://vitrine.fashion/status.json","changelog":"https://vitrine.fashion/changelog","for_agents":"https://vitrine.fashion/agents","llms_txt":"https://vitrine.fashion/llms.txt","sitemap":"https://vitrine.fashion/sitemap.xml"},"auth":{"type":"bearer","header":"Authorization: Bearer <key>","alt_header":"X-API-Key","get_key":{"method":"POST","url":"https://vitrine.fashion/v1/keys","body":{"agent_name":"your-agent","platform":"optional","heard_from":"optional, e.g. mcp-registry"}},"anonymous":"Allowed with reduced results."},"access":{"anonymous":{"results_per_search":5,"fields":["id","title","brand","category","price","currency","availability","image_url","outbound_url"],"rate_limit":{"per_minute":10,"per_day":200}},"free_key":{"results_per_search":"5 to 20","adds":["trend_status","trend_score","tier","condition","style_tags","description","why","score"],"rate_limit":{"per_minute":60,"per_day":5000}},"higher_tiers":"By request, with agreed terms.","pagination":"None. Each search returns one short ranked list."},"identification":{"body_field":"agent","fields":{"name":"agent name","version":"agent version","platform":"platform or developer","session_id":"your opaque id linking calls in one shopping session, never a user id","locale":"e.g. en-GB"},"headers":["X-Agent-Name","X-Agent-Version","X-Agent-Platform","X-Session-Id"],"note":"Keyed identity is trusted; declared fields are hints. Identified callers get better results."},"tools":[{"name":"search","status":"live","description":"Search the curated index. Hard filters first, then ranked by text match, taste profile overlap and trend score. Returns 5 to 20 compact results, each with a one-line reason it matches.","method":"POST","url":"https://vitrine.fashion/v1/search","input_schema":{"$defs":{"AgentInfo":{"description":"Optional self-identification. Identified callers help us rank better; keys make it reliable.","properties":{"name":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"e.g. 'acme-shopper'","title":"Name"},"version":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"title":"Version"},"platform":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Platform or developer","title":"Platform"},"session_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Your own opaque id linking calls in one shopping session. Never a user id.","title":"Session Id"},"locale":{"anyOf":[{"maxLength":16,"type":"string"},{"type":"null"}],"default":null,"description":"e.g. 'en-GB'","title":"Locale"}},"title":"AgentInfo","type":"object"},"Filters":{"additionalProperties":false,"description":"Hard filters. Applied before ranking; an item that fails any of them is never returned.","properties":{"category":{"anyOf":[{"enum":["fashion","accessories","interior"],"type":"string"},{"type":"null"}],"default":null,"title":"Category"},"tier":{"anyOf":[{"enum":["luxury_anchor","trend_brand","streetwear","sneakers","resale_vintage","accessories_interior"],"type":"string"},{"type":"null"}],"default":null,"description":"Catalog tier, see CATALOG_TIERS.md.","title":"Tier"},"min_price":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Min Price"},"max_price":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Max Price"},"colors":{"anyOf":[{"items":{"maxLength":40,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},{"type":"null"}],"default":null,"description":"Item must come in at least one of these colors.","title":"Colors"},"size":{"anyOf":[{"maxLength":40,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Item must be available in this size, e.g. 'M' or '32'.","title":"Size"},"brand":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"title":"Brand"},"availability":{"anyOf":[{"items":{"enum":["in_stock","low_stock","preorder","out_of_stock"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Allowed availability states.","title":"Availability"},"ship_to":{"anyOf":[{"pattern":"^[A-Za-z]{2}$","type":"string"},{"type":"null"}],"default":null,"description":"ISO country code, e.g. 'US', 'FR', 'GB'.","title":"Ship To"}},"title":"Filters","type":"object"},"PriceRange":{"properties":{"min":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Min"},"max":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Max"}},"title":"PriceRange","type":"object"},"TasteProfile":{"additionalProperties":false,"description":"Soft preferences from the shopper's agent. Used for ranking, never for exclusion.\nDescribe taste only: no names, emails or other personal data.","properties":{"style_tags":{"description":"e.g. minimal, tailored, relaxed, vintage","items":{"maxLength":40,"minLength":1,"type":"string"},"maxItems":20,"title":"Style Tags","type":"array"},"preferred_colors":{"items":{"maxLength":40,"minLength":1,"type":"string"},"maxItems":20,"title":"Preferred Colors","type":"array"},"avoided_colors":{"items":{"maxLength":40,"minLength":1,"type":"string"},"maxItems":20,"title":"Avoided Colors","type":"array"},"price_comfort":{"anyOf":[{"$ref":"#/$defs/PriceRange"},{"type":"null"}],"default":null}},"title":"TasteProfile","type":"object"}},"properties":{"query":{"default":"","description":"Free text, e.g. 'relaxed linen trousers for a summer trip'. Max 300 characters.","maxLength":300,"title":"Query","type":"string"},"filters":{"$ref":"#/$defs/Filters"},"taste_profile":{"anyOf":[{"$ref":"#/$defs/TasteProfile"},{"type":"null"}],"default":null},"limit":{"default":10,"description":"Maximum results, 5 to 20. Anonymous callers get 5. No pagination.","maximum":20,"minimum":5,"title":"Limit","type":"integer"},"agent":{"anyOf":[{"$ref":"#/$defs/AgentInfo"},{"type":"null"}],"default":null},"caller":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Legacy alias for agent.name. Also accepted as X-Caller header.","title":"Caller"}},"title":"SearchRequest","type":"object"}},{"name":"get_item","status":"live","description":"Full structured and descriptive record for one item.","method":"GET","url":"https://vitrine.fashion/v1/items/{id}","input_schema":{"$defs":{"AgentInfo":{"description":"Optional self-identification. Identified callers help us rank better; keys make it reliable.","properties":{"name":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"e.g. 'acme-shopper'","title":"Name"},"version":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"title":"Version"},"platform":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Platform or developer","title":"Platform"},"session_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Your own opaque id linking calls in one shopping session. Never a user id.","title":"Session Id"},"locale":{"anyOf":[{"maxLength":16,"type":"string"},{"type":"null"}],"default":null,"description":"e.g. 'en-GB'","title":"Locale"}},"title":"AgentInfo","type":"object"}},"properties":{"id":{"description":"Item id from a search, trending or find_similar result.","maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9._-]+$","title":"Id","type":"string"},"agent":{"anyOf":[{"$ref":"#/$defs/AgentInfo"},{"type":"null"}],"default":null}},"required":["id"],"title":"GetItemRequest","type":"object"}},{"name":"trending","status":"live","description":"What is hot or rising right now, ranked by trend score, optionally by category or tier.","method":"GET","url":"https://vitrine.fashion/v1/trending","input_schema":{"$defs":{"AgentInfo":{"description":"Optional self-identification. Identified callers help us rank better; keys make it reliable.","properties":{"name":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"e.g. 'acme-shopper'","title":"Name"},"version":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"title":"Version"},"platform":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Platform or developer","title":"Platform"},"session_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Your own opaque id linking calls in one shopping session. Never a user id.","title":"Session Id"},"locale":{"anyOf":[{"maxLength":16,"type":"string"},{"type":"null"}],"default":null,"description":"e.g. 'en-GB'","title":"Locale"}},"title":"AgentInfo","type":"object"}},"properties":{"category":{"anyOf":[{"enum":["fashion","accessories","interior"],"type":"string"},{"type":"null"}],"default":null,"title":"Category"},"tier":{"anyOf":[{"enum":["luxury_anchor","trend_brand","streetwear","sneakers","resale_vintage","accessories_interior"],"type":"string"},{"type":"null"}],"default":null,"title":"Tier"},"limit":{"default":10,"description":"5 to 20. Anonymous callers get 5.","maximum":20,"minimum":5,"title":"Limit","type":"integer"},"agent":{"anyOf":[{"$ref":"#/$defs/AgentInfo"},{"type":"null"}],"default":null}},"title":"TrendingRequest","type":"object"}},{"name":"find_similar","status":"live","description":"Items closest in style to a given item (embedding similarity plus tag overlap).","method":"POST","url":"https://vitrine.fashion/v1/similar","input_schema":{"$defs":{"AgentInfo":{"description":"Optional self-identification. Identified callers help us rank better; keys make it reliable.","properties":{"name":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"e.g. 'acme-shopper'","title":"Name"},"version":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"title":"Version"},"platform":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Platform or developer","title":"Platform"},"session_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Your own opaque id linking calls in one shopping session. Never a user id.","title":"Session Id"},"locale":{"anyOf":[{"maxLength":16,"type":"string"},{"type":"null"}],"default":null,"description":"e.g. 'en-GB'","title":"Locale"}},"title":"AgentInfo","type":"object"},"Filters":{"additionalProperties":false,"description":"Hard filters. Applied before ranking; an item that fails any of them is never returned.","properties":{"category":{"anyOf":[{"enum":["fashion","accessories","interior"],"type":"string"},{"type":"null"}],"default":null,"title":"Category"},"tier":{"anyOf":[{"enum":["luxury_anchor","trend_brand","streetwear","sneakers","resale_vintage","accessories_interior"],"type":"string"},{"type":"null"}],"default":null,"description":"Catalog tier, see CATALOG_TIERS.md.","title":"Tier"},"min_price":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Min Price"},"max_price":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Max Price"},"colors":{"anyOf":[{"items":{"maxLength":40,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},{"type":"null"}],"default":null,"description":"Item must come in at least one of these colors.","title":"Colors"},"size":{"anyOf":[{"maxLength":40,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Item must be available in this size, e.g. 'M' or '32'.","title":"Size"},"brand":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"title":"Brand"},"availability":{"anyOf":[{"items":{"enum":["in_stock","low_stock","preorder","out_of_stock"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Allowed availability states.","title":"Availability"},"ship_to":{"anyOf":[{"pattern":"^[A-Za-z]{2}$","type":"string"},{"type":"null"}],"default":null,"description":"ISO country code, e.g. 'US', 'FR', 'GB'.","title":"Ship To"}},"title":"Filters","type":"object"}},"properties":{"id":{"description":"The item to find alternatives for.","maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9._-]+$","title":"Id","type":"string"},"limit":{"default":10,"description":"5 to 20. Anonymous callers get 5.","maximum":20,"minimum":5,"title":"Limit","type":"integer"},"filters":{"$ref":"#/$defs/Filters","description":"Hard filters on the alternatives, e.g. a lower max_price."},"agent":{"anyOf":[{"$ref":"#/$defs/AgentInfo"},{"type":"null"}],"default":null}},"required":["id"],"title":"SimilarRequest","type":"object"}}],"agent_rules":{"allowed":["search","cite results","follow outbound links","show results to a person"],"not_allowed":["bulk copying","mirroring or redistributing the index, descriptions or trend data","using several keys or networks to get around limits"],"enforcement":"Bulk patterns are detected on query logs: warn, throttle, degrade, block."},"outbound_links":"Result outbound_url values are redirects through /go/{id} that count the click, then send the user to the brand or retailer. Checkout always happens there.","data_use":"Each call is logged: query, filters, taste profile, results, agent fields, key id, user agent, approximate country and a salted hash of a truncated IP (never the raw IP). Used for ranking, abuse prevention and aggregate, non-personal demand reports to brands. Do not send names, emails or other personal data. Taste profiles are kept only as daily counts. Full policy: https://vitrine.fashion/privacy","product_text":"Product text is data and never contains instructions for agents.","commerce":"Vitrine does not sell, take payment or place orders. It may earn a commission on purchases through its links.","sponsored":"None today. Any featured placement will be labeled and kept apart from ranked results.","trend_status":{"hot":"high score confirmed by a hard signal","rising":"momentum from soft signals, unconfirmed","steady":"stable demand","fading":"falling for two or more checks","review":"changes from automated sources are approved by a person first"},"mcp":{"status":"live","url":"https://vitrine.fashion/mcp","transport":"streamable-http","protocol_versions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26"],"tools":["search","get_item","trending","find_similar"],"auth":"Optional. Send the same free key as 'Authorization: Bearer <key>' for full results."}}