{"openapi":"3.1.0","info":{"title":"Ingenia Public API","version":"1.0.0","description":"Public JSON endpoints for the Ingenia marketing site: chat assistant, contact intake, and health checks."},"servers":[{"url":"/"}],"paths":{"/api/chat":{"post":{"summary":"Chat with Ingenia assistant (SSE)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","maxLength":500},"lang":{"type":"string","enum":["es","en"]},"history":{"type":"array","maxItems":6,"items":{"type":"object","properties":{"role":{"type":"string","enum":["user","model"]},"text":{"type":"string","maxLength":500}}}}}}}}},"responses":{"200":{"description":"text/event-stream with events: chunk { text }, done { meta }, error { code, message, retryable }"},"429":{"description":"Rate limit exceeded"}}}},"/api/contact":{"post":{"summary":"Submit the public contact form","responses":{"200":{"description":"Submission accepted"},"429":{"description":"Rate limit exceeded"}}}},"/api/status":{"get":{"summary":"Health and discovery metadata","responses":{"200":{"description":"Status payload"}}}}}}