{"openapi":"3.1.0","info":{"title":"BlizPromo API","version":"0.1.0","description":"Register products, generate reviewable marketing copy, and publish BlizWorks product pages."},"servers":[{"url":"https://blizworks.com/api/v1"}],"security":[{"bearerAuth":[]}],"paths":{"/products":{"get":{"summary":"List products","responses":{"200":{"description":"Product list"}}},"post":{"summary":"Create or upsert a product","responses":{"201":{"description":"Product created or updated"}}}},"/products/{id}":{"get":{"summary":"Get one product","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Product detail"},"404":{"description":"Not found"}}},"patch":{"summary":"Update product metadata","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Product updated"},"404":{"description":"Not found"}}}},"/products/{id}/generate":{"post":{"summary":"Generate page content","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"AI draft generated"}}}},"/products/{id}/publish":{"post":{"summary":"Publish a product","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Product published"},"409":{"description":"Approved content required"}}}},"/products/{id}/unpublish":{"post":{"summary":"Unpublish a product","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Product moved to review"}}}},"/analytics/events":{"post":{"summary":"Record a privacy-conscious analytics event","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["eventType","path"],"properties":{"eventType":{"type":"string","enum":["page_view","cta_click","custom"]},"productId":{"type":"string","format":"uuid"},"path":{"type":"string","maxLength":500},"locale":{"type":"string","enum":["en","de","da","no","sv","es"]},"referrer":{"type":"string","maxLength":500},"metadata":{"type":"object","additionalProperties":true}}}}}},"responses":{"202":{"description":"Event accepted"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}