{"openapi":"3.0.3","info":{"title":"Qstomize Partner API","version":"1.0.0","description":"REST API for Qstomize distribution partners: browse the custom-products catalog with your negotiated pricing, submit quote requests, and track quotes and orders. Get an API key at partners@qstomize.com.","contact":{"email":"partners@qstomize.com","url":"https://api.qstomize.com"}},"servers":[{"url":"https://api.qstomize.com/v1"}],"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Authorization: Bearer qs_live_..."},"apiKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"PriceTier":{"type":"object","properties":{"qty":{"type":"integer","description":"Minimum quantity for this tier"},"list_price":{"type":"number","description":"Public list price per unit (USD)"},"net_price":{"type":"number","description":"Your partner price per unit (USD)"}}},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}},"paths":{"/products":{"get":{"summary":"List products","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","maximum":100,"default":50}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}},{"name":"category","in":"query","schema":{"type":"string"},"description":"Category slug (see /categories)"}],"responses":{"200":{"description":"Paginated product list with partner pricing"},"401":{"description":"Missing or invalid API key"},"429":{"description":"Rate limit exceeded (120 req/min)"}}}},"/products/{slug}":{"get":{"summary":"Product detail","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Full product with specs and per-decoration-method pricing"},"404":{"description":"Product not found"}}}},"/categories":{"get":{"summary":"List categories","responses":{"200":{"description":"Active categories"}}}},"/quotes":{"post":{"summary":"Submit a quote request","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["quantity","contact_name","contact_email"],"properties":{"product_slug":{"type":"string","description":"Catalog product (preferred)"},"product_name":{"type":"string","description":"Free-text item if not in catalog"},"quantity":{"type":"integer","minimum":1},"contact_name":{"type":"string"},"contact_email":{"type":"string","format":"email"},"company":{"type":"string"},"phone":{"type":"string"},"artwork_url":{"type":"string","format":"uri"},"message":{"type":"string"}}}}}},"responses":{"201":{"description":"Quote received; returns quote_number for polling"},"400":{"description":"Validation error"}}}},"/quotes/{quoteNumber}":{"get":{"summary":"Quote status","parameters":[{"name":"quoteNumber","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status and quoted price once available"},"404":{"description":"Not found"}}}},"/orders/{orderId}":{"get":{"summary":"Order status","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string"},"description":"Order reference, e.g. DP-1770648206-GLOVES"}],"responses":{"200":{"description":"Order, payment, and tracking status"},"404":{"description":"Not found"}}}}}}