{"openapi":"3.0.0","info":{"title":"Thig.ai API Documentation","version":"3.2.0","description":"\n# Thig.ai API\n\nAI-powered Product Requirement Document generator with multi-tenant SaaS architecture.\n\n## Authentication\n\nMost endpoints require authentication using NextAuth.js sessions or API keys.\n\n### Session Authentication\nWhen using the web application, sessions are managed automatically via cookies.\n\n### API Key Authentication\nFor programmatic access, use your API key in the Authorization header:\n```\nAuthorization: Bearer your-api-key-here\n```\n\n## Rate Limiting\n\nAPI requests are rate limited based on your subscription plan:\n- **Free**: 10 requests/minute\n- **Starter**: 30 requests/minute\n- **Professional**: 60 requests/minute\n- **Enterprise**: 300 requests/minute\n\n## Subscription Tiers\n\n| Tier | Projects | Members | AI Tokens/mo | Templates | API Keys |\n|------|----------|---------|--------------|-----------|----------|\n| FREE | 3 | 1 | 10,000 | 3 | 1 |\n| STARTER | 10 | 5 | 50,000 | 10 | 3 |\n| PROFESSIONAL | 50 | 20 | 200,000 | Unlimited | 10 |\n| ENTERPRISE | Unlimited | Unlimited | 1,000,000 | Unlimited | Unlimited |\n\n## Response Format\n\nAll responses are JSON. Successful responses return data directly.\nError responses include an `error` field with details.\n\n```json\n{\n  \"error\": \"Error message here\",\n  \"code\": \"ERROR_CODE\"\n}\n```\n\n## Changelog\n\n### v3.2.0 (November 2025)\n- Added Floating AI Toolbar for text selection improvements in PRD editor\n- Added PRD persistence with localStorage fallback for data safety\n- Added PRDDocument and PRDVersion tables for proper PRD storage\n- Added version history tracking for PRD changes\n- Improved PRD loading with automatic cache recovery\n- Added visual indicator for projects with existing PRDs\n\n### v3.1.0 (November 2025)\n- Added AI Prompt Assistant API for prompt creation/improvement\n- Enhanced usage analytics with user-wise tracking\n- Added user attribution for all AI conversations\n- Improved token optimization and cost efficiency tracking\n- Added hourly usage trends and week-over-week comparison\n\n### v3.0.0 (November 2025)\n- Added AI Memory system for personalized conversations\n- Added User Profile management\n- Added Project handover functionality\n- Enhanced webhook system with better event logging\n\n### v2.0.0 (2024)\n- Added SuperAdmin APIs for platform management\n- Added Template Marketplace with community submissions\n- Added User API Key (BYOK) management\n- Added Organization billing and feature access\n- Added CRM system for SuperAdmins\n- Enhanced security with AES-256-GCM encryption\n                ","contact":{"name":"Thig.ai Support","email":"support@thig.ai","url":"https://app.thig.ai/support"},"license":{"name":"Proprietary","url":"https://app.thig.ai/terms"}},"servers":[{"url":"https://app.thig.ai","description":"Current environment"}],"tags":[{"name":"Authentication","description":"User authentication and registration"},{"name":"Projects","description":"PRD project management"},{"name":"Conversation","description":"AI conversation for requirements gathering"},{"name":"PRD Generation","description":"PRD document generation"},{"name":"AI Features","description":"AI-powered features (coaching, improvements, roadmaps)"},{"name":"Templates","description":"PRD templates management"},{"name":"Marketplace","description":"Template marketplace and community submissions"},{"name":"Organization","description":"Organization and team management"},{"name":"User","description":"User profile, settings, and API keys"},{"name":"Billing","description":"Subscription and payment management"},{"name":"Admin","description":"Organization admin endpoints"},{"name":"SuperAdmin","description":"Platform-level administration (SuperAdmin only)"},{"name":"Webhooks","description":"Webhook management"},{"name":"Feature Flags","description":"Feature flag evaluation"},{"name":"Notifications","description":"Platform notifications"},{"name":"Export","description":"Document export (PDF, DOCX)"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API key authentication"},"sessionAuth":{"type":"apiKey","in":"cookie","name":"next-auth.session-token","description":"NextAuth.js session cookie"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string","description":"Error message"},"code":{"type":"string","description":"Error code"}},"required":["error"]},"User":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"image":{"type":"string","format":"uri","nullable":true},"role":{"type":"string","enum":["USER","ADMIN"]},"globalRole":{"type":"string","enum":["USER","SUPER_ADMIN"],"nullable":true},"subscriptionTier":{"type":"string","enum":["free","starter","professional","enterprise"]},"subscriptionStatus":{"type":"string","enum":["active","canceled","past_due","trialing"],"nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"Project":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"status":{"type":"string","enum":["DRAFT","IN_PROGRESS","READY_FOR_PRD","IN_REVIEW","APPROVED","ARCHIVED"]},"priority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"templateId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid","nullable":true},"assignedToId":{"type":"string","format":"uuid","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"Template":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string"},"systemPrompt":{"type":"string"},"initialQuestion":{"type":"string"},"aiProvider":{"type":"string","enum":["openai","anthropic"]},"model":{"type":"string"},"version":{"type":"integer"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}}},"MarketplaceTemplate":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"icon":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"pricingTier":{"type":"string","enum":["FREE","STARTER","PROFESSIONAL","ENTERPRISE"]},"isPremiumAddon":{"type":"boolean"},"addonPrice":{"type":"number","nullable":true},"systemPrompt":{"type":"string"},"initialQuestion":{"type":"string"},"sampleQuestions":{"type":"array","items":{"type":"string"}},"isActive":{"type":"boolean"},"isFeatured":{"type":"boolean"},"isCommunityTemplate":{"type":"boolean"},"approvalStatus":{"type":"string","enum":["PENDING","APPROVED","REJECTED"]},"popularity":{"type":"integer"},"usageCount":{"type":"integer"}}},"TemplateSubmission":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"systemPrompt":{"type":"string"},"initialQuestion":{"type":"string"},"status":{"type":"string","enum":["PENDING","UNDER_REVIEW","APPROVED","REJECTED","REVISION_REQUESTED"]},"submittedBy":{"type":"string","format":"uuid"},"requestedPricingTier":{"type":"string","enum":["FREE","STARTER","PROFESSIONAL"]},"reviewNotes":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time"}}},"Organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"type":"string"},"subscriptionTier":{"type":"string","enum":["free","starter","professional","enterprise"]},"subscriptionStatus":{"type":"string"},"customDomain":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time"}}},"OrganizationMember":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"user":{"$ref":"#/components/schemas/User"}}},"Webhook":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"url":{"type":"string","format":"uri"},"events":{"type":"string","description":"Comma-separated event types"},"secret":{"type":"string","nullable":true},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}}},"SubscriptionPlan":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"priceMonthly":{"type":"number"},"priceYearly":{"type":"number"},"maxMembers":{"type":"integer"},"maxProjects":{"type":"integer"},"maxAiTokens":{"type":"integer"},"maxTemplates":{"type":"integer"},"maxApiKeys":{"type":"integer"},"maxWebhooks":{"type":"integer"},"customDomain":{"type":"boolean"},"isPopular":{"type":"boolean"},"isActive":{"type":"boolean"}}},"FeatureFlag":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string","enum":["feature","experiment","kill_switch"]},"isEnabled":{"type":"boolean"},"rolloutPercentage":{"type":"integer","minimum":0,"maximum":100},"targetPlans":{"type":"array","items":{"type":"string"}}}},"UserApiKeyPreference":{"type":"object","properties":{"useOrgKeys":{"type":"boolean","description":"Whether to use organization keys or personal BYOK"},"openaiKeySet":{"type":"boolean"},"anthropicKeySet":{"type":"boolean"},"preferredProvider":{"type":"string","enum":["openai","anthropic"]},"openaiKeyMasked":{"type":"string","nullable":true},"anthropicKeyMasked":{"type":"string","nullable":true}}},"Pagination":{"type":"object","properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"}}},"PRDDocument":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"content":{"type":"string","description":"Markdown content of the PRD"},"style":{"type":"string","enum":["comprehensive","concise","technical","executive"],"description":"PRD style/format"},"currentVersion":{"type":"integer","description":"Current version number"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PRDVersion":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"documentId":{"type":"string","format":"uuid"},"version":{"type":"integer"},"content":{"type":"string"},"changeType":{"type":"string","enum":["generated","manual","ai_improvement","snapshot"],"description":"Type of change"},"changeSummary":{"type":"string","nullable":true,"description":"Summary of changes made"},"createdAt":{"type":"string","format":"date-time"}}}}},"paths":{"/api/auth/register":{"post":{"tags":["Authentication"],"summary":"Register a new user","description":"Create a new user account with email and password","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","password","name"],"properties":{"email":{"type":"string","format":"email"},"password":{"type":"string","minLength":6},"name":{"type":"string"}}}}}},"responses":{"201":{"description":"User created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Email already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/projects":{"get":{"tags":["Projects"],"summary":"List all projects","description":"Get a paginated list of projects for the authenticated user/organization","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","schema":{"type":"integer","default":10}},{"name":"status","in":"query","schema":{"type":"string"}},{"name":"search","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"List of projects","content":{"application/json":{"schema":{"type":"object","properties":{"projects":{"type":"array","items":{"$ref":"#/components/schemas/Project"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"401":{"description":"Unauthorized"}}},"post":{"tags":["Projects"],"summary":"Create a new project","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"templateId":{"type":"string","format":"uuid"}}}}}},"responses":{"201":{"description":"Project created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Project limit reached"}}}},"/api/projects/{projectId}":{"get":{"tags":["Projects"],"summary":"Get project details","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Project details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Project not found"}}},"patch":{"tags":["Projects"],"summary":"Update a project","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"assignedToId":{"type":"string","nullable":true}}}}}},"responses":{"200":{"description":"Project updated"},"404":{"description":"Project not found"}}},"delete":{"tags":["Projects"],"summary":"Delete a project","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Project deleted"},"404":{"description":"Project not found"}}}},"/api/projects/{projectId}/status":{"patch":{"tags":["Projects"],"summary":"Update project status","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["DRAFT","IN_PROGRESS","READY_FOR_PRD","IN_REVIEW","APPROVED","ARCHIVED"]},"notes":{"type":"string"}}}}}},"responses":{"200":{"description":"Status updated"}}}},"/api/projects/{projectId}/assign":{"post":{"tags":["Projects"],"summary":"Assign project to user","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","nullable":true}}}}}},"responses":{"200":{"description":"Project assigned"}}}},"/api/projects/{projectId}/conversation":{"get":{"tags":["Conversation"],"summary":"Get project conversation history","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Conversation history","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object"}}}}}}}}}},"/api/projects/{projectId}/conversation/stream":{"post":{"tags":["Conversation"],"summary":"Send message with streaming response","description":"Send a message to the AI and receive a streaming response for PRD requirements gathering","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"provider":{"type":"string","enum":["openai","anthropic"]},"model":{"type":"string"}}}}}},"responses":{"200":{"description":"Streaming response","content":{"text/event-stream":{"schema":{"type":"string"}}}},"429":{"description":"Rate limit exceeded"}}}},"/api/generate-prd":{"post":{"tags":["PRD Generation"],"summary":"Generate PRD document","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["projectId"],"properties":{"projectId":{"type":"string"},"style":{"type":"string","enum":["comprehensive","technical","lean","agile"]},"provider":{"type":"string","enum":["openai","anthropic"]}}}}}},"responses":{"200":{"description":"PRD generated"}}}},"/api/generate-prd/stream":{"post":{"tags":["PRD Generation"],"summary":"Generate PRD with streaming","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["projectId"],"properties":{"projectId":{"type":"string"},"style":{"type":"string"}}}}}},"responses":{"200":{"description":"Streaming PRD","content":{"text/event-stream":{"schema":{"type":"string"}}}}}}},"/api/prd/{projectId}":{"get":{"tags":["PRD Generation"],"summary":"Get PRD document","description":"Retrieve the PRD document for a project. Returns null if no PRD exists yet.","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"PRD document","content":{"application/json":{"schema":{"type":"object","properties":{"document":{"$ref":"#/components/schemas/PRDDocument","nullable":true}}}}}}}},"post":{"tags":["PRD Generation"],"summary":"Create or replace PRD","description":"Create a new PRD or replace existing one. Creates version history automatically.","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"type":"string","description":"Markdown content"},"style":{"type":"string","enum":["comprehensive","concise","technical","executive"]},"changeType":{"type":"string","enum":["generated","manual","ai_improvement","section"]},"changeSummary":{"type":"string"}}}}}},"responses":{"200":{"description":"PRD created/updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PRDDocument"}}}}}},"patch":{"tags":["PRD Generation"],"summary":"Update PRD content","description":"Update PRD content with optional version creation","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string"},"changeType":{"type":"string","enum":["manual","ai_improvement"]},"changeSummary":{"type":"string"},"createVersion":{"type":"boolean","description":"Whether to create a new version entry"}}}}}},"responses":{"200":{"description":"PRD updated"}}}},"/api/prd/{projectId}/versions":{"get":{"tags":["PRD Generation"],"summary":"Get PRD version history","description":"Get all versions of a PRD document with change types and summaries","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Version history","content":{"application/json":{"schema":{"type":"object","properties":{"versions":{"type":"array","items":{"$ref":"#/components/schemas/PRDVersion"}}}}}}}}}},"/api/ai/coach":{"post":{"tags":["AI Features"],"summary":"Get AI coaching suggestions","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string"},"content":{"type":"string"},"section":{"type":"string"}}}}}},"responses":{"200":{"description":"Coaching suggestions"}}}},"/api/ai/improve":{"post":{"tags":["AI Features"],"summary":"Improve content with AI","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"type":{"type":"string","enum":["clarity","detail","technical","business"]}}}}}},"responses":{"200":{"description":"Improved content"}}}},"/api/ai/roadmap":{"post":{"tags":["AI Features"],"summary":"Generate product roadmap","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["projectId"],"properties":{"projectId":{"type":"string"},"timeframe":{"type":"string","enum":["quarter","half-year","year"]}}}}}},"responses":{"200":{"description":"Roadmap generated"}}}},"/api/ai/user-stories":{"post":{"tags":["AI Features"],"summary":"Generate user stories","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["projectId"],"properties":{"projectId":{"type":"string"},"format":{"type":"string","enum":["agile","detailed"]}}}}}},"responses":{"200":{"description":"User stories generated"}}}},"/api/ai/technical-specs":{"post":{"tags":["AI Features"],"summary":"Generate technical specifications","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["projectId"],"properties":{"projectId":{"type":"string"}}}}}},"responses":{"200":{"description":"Technical specs generated"}}}},"/api/templates":{"get":{"tags":["Templates"],"summary":"List organization templates","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of templates","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Template"}}}}}}},"post":{"tags":["Templates"],"summary":"Create a template","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name","systemPrompt","initialQuestion"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"systemPrompt":{"type":"string"},"initialQuestion":{"type":"string"},"aiProvider":{"type":"string","enum":["openai","anthropic"]},"model":{"type":"string"}}}}}},"responses":{"201":{"description":"Template created"}}}},"/api/templates/{id}":{"get":{"tags":["Templates"],"summary":"Get template details","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Template details"},"404":{"description":"Not found"}}},"patch":{"tags":["Templates"],"summary":"Update a template","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Template updated"}}},"delete":{"tags":["Templates"],"summary":"Delete a template","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Template deleted"}}}},"/api/templates/{id}/versions":{"get":{"tags":["Templates"],"summary":"Get template version history","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Version history"}}}},"/api/templates/{id}/restore":{"post":{"tags":["Templates"],"summary":"Restore template to previous version","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["versionId"],"properties":{"versionId":{"type":"string"}}}}}},"responses":{"200":{"description":"Template restored"}}}},"/api/marketplace-templates":{"get":{"tags":["Marketplace"],"summary":"List marketplace templates","description":"Get templates from the marketplace with plan-based access control","parameters":[{"name":"category","in":"query","schema":{"type":"string"}},{"name":"search","in":"query","schema":{"type":"string"}},{"name":"featured","in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"List of marketplace templates","content":{"application/json":{"schema":{"type":"object","properties":{"templates":{"type":"array","items":{"$ref":"#/components/schemas/MarketplaceTemplate"}}}}}}}}}},"/api/template-submissions":{"get":{"tags":["Marketplace"],"summary":"List user template submissions","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"User submissions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TemplateSubmission"}}}}}}},"post":{"tags":["Marketplace"],"summary":"Submit a template to marketplace","description":"Submit a community template for SuperAdmin review","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name","description","category","systemPrompt","initialQuestion"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"icon":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"systemPrompt":{"type":"string"},"initialQuestion":{"type":"string"},"sampleQuestions":{"type":"array","items":{"type":"string"}},"requestedPricingTier":{"type":"string","enum":["FREE","STARTER","PROFESSIONAL"]}}}}}},"responses":{"201":{"description":"Submission created"},"400":{"description":"Too many pending submissions (max 5)"}}}},"/api/template-submissions/{submissionId}":{"get":{"tags":["Marketplace"],"summary":"Get submission details","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"submissionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Submission details"}}},"patch":{"tags":["Marketplace"],"summary":"Update submission (if pending)","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"submissionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Submission updated"}}},"delete":{"tags":["Marketplace"],"summary":"Delete submission","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"submissionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Submission deleted"}}}},"/api/user/profile":{"get":{"tags":["User"],"summary":"Get user profile","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"User profile"}}},"post":{"tags":["User"],"summary":"Create/update user profile","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string"},"experience":{"type":"string"},"company":{"type":"string"},"companySize":{"type":"string"},"industry":{"type":"string"},"preferences":{"type":"object"}}}}}},"responses":{"200":{"description":"Profile saved"}}}},"/api/user/api-keys":{"get":{"tags":["User"],"summary":"Get API key preferences (BYOK)","description":"Get user API key configuration for Bring Your Own Key feature","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"API key preferences","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserApiKeyPreference"}}}}}},"post":{"tags":["User"],"summary":"Save API key preferences","description":"Configure personal API keys (encrypted with AES-256-GCM)","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"useOrgKeys":{"type":"boolean"},"openaiApiKey":{"type":"string","description":"Use \"***UNCHANGED***\" to keep existing"},"anthropicApiKey":{"type":"string","description":"Use \"***UNCHANGED***\" to keep existing"},"preferredProvider":{"type":"string","enum":["openai","anthropic"]}}}}}},"responses":{"200":{"description":"Preferences saved"},"400":{"description":"Invalid API key"}}},"delete":{"tags":["User"],"summary":"Delete API keys","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"type","in":"query","schema":{"type":"string","enum":["openai","anthropic","all"]}}],"responses":{"200":{"description":"Keys deleted"}}}},"/api/user/onboarding":{"get":{"tags":["User"],"summary":"Get onboarding status","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Onboarding status"}}},"post":{"tags":["User"],"summary":"Complete onboarding","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Onboarding completed"}}}},"/api/organization/members":{"get":{"tags":["Organization"],"summary":"List organization members","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of members","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationMember"}}}}}}}},"/api/organization/members/{memberId}":{"patch":{"tags":["Organization"],"summary":"Update member role","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["owner","admin","member","viewer"]}}}}}},"responses":{"200":{"description":"Role updated"}}},"delete":{"tags":["Organization"],"summary":"Remove member","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Member removed"}}}},"/api/organization/domain":{"get":{"tags":["Organization"],"summary":"Get custom domain settings","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Domain settings"}}},"post":{"tags":["Organization"],"summary":"Configure custom domain","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string"}}}}}},"responses":{"200":{"description":"Domain configured"}}}},"/api/organization/domain/verify":{"post":{"tags":["Organization"],"summary":"Verify custom domain","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Domain verified"},"400":{"description":"Verification failed"}}}},"/api/invitations":{"get":{"tags":["Organization"],"summary":"List pending invitations","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of invitations"}}},"post":{"tags":["Organization"],"summary":"Send invitation","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["email","role"],"properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["ADMIN","MEMBER","VIEWER"]}}}}}},"responses":{"201":{"description":"Invitation sent"}}}},"/api/invitations/{invitationId}":{"delete":{"tags":["Organization"],"summary":"Revoke invitation","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"invitationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Invitation revoked"}}}},"/api/invitations/accept":{"post":{"tags":["Organization"],"summary":"Accept invitation","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["token"],"properties":{"token":{"type":"string"}}}}}},"responses":{"200":{"description":"Invitation accepted"}}}},"/api/billing/checkout":{"post":{"tags":["Billing"],"summary":"Create checkout session","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["tier"],"properties":{"tier":{"type":"string","enum":["STARTER","PROFESSIONAL","ENTERPRISE"]},"interval":{"type":"string","enum":["month","year"]}}}}}},"responses":{"200":{"description":"Checkout URL","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}}}}}}}}},"/api/billing/portal":{"post":{"tags":["Billing"],"summary":"Create billing portal session","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Portal URL","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}}}}}}}}},"/api/billing/info":{"get":{"tags":["Billing"],"summary":"Get billing information","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Billing info"}}}},"/api/pricing/plans":{"get":{"tags":["Billing"],"summary":"Get available pricing plans","responses":{"200":{"description":"List of plans","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionPlan"}}}}}}}},"/api/admin/dashboard":{"get":{"tags":["Admin"],"summary":"Get admin dashboard data","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Dashboard data"}}}},"/api/admin/analytics/usage":{"get":{"tags":["Admin"],"summary":"Get usage analytics","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["7d","30d","90d","1y"]}}],"responses":{"200":{"description":"Usage analytics"}}}},"/api/admin/billing":{"get":{"tags":["Admin"],"summary":"Get organization billing overview","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Billing overview with usage stats"}}}},"/api/admin/feature-access":{"get":{"tags":["Admin"],"summary":"Get feature access for organization","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Feature access list"}}}},"/api/admin/notifications":{"get":{"tags":["Admin"],"summary":"Get platform announcements","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of announcements"}}}},"/api/admin/users":{"get":{"tags":["Admin"],"summary":"List organization users","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of users"}}},"post":{"tags":["Admin"],"summary":"Create user in organization","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"201":{"description":"User created"}}}},"/api/admin/projects":{"get":{"tags":["Admin"],"summary":"List all organization projects","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of projects"}}}},"/api/admin/api-keys":{"get":{"tags":["Admin"],"summary":"List organization API keys","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of API keys"}}},"post":{"tags":["Admin"],"summary":"Create API key","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"201":{"description":"API key created"}}}},"/api/admin/webhooks":{"get":{"tags":["Admin"],"summary":"List webhooks","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of webhooks","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Webhook"}}}}}}},"post":{"tags":["Admin"],"summary":"Create webhook","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name","url","events"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"events":{"type":"string"},"secret":{"type":"string"}}}}}},"responses":{"201":{"description":"Webhook created"}}}},"/api/admin/prompts":{"get":{"tags":["Admin"],"summary":"List system prompts","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of prompts"}}},"post":{"tags":["Admin"],"summary":"Create system prompt","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"201":{"description":"Prompt created"}}}},"/api/admin/prompts/{promptId}":{"get":{"tags":["Admin"],"summary":"Get prompt details","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"promptId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Prompt details"}}},"patch":{"tags":["Admin"],"summary":"Update prompt","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"promptId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Prompt updated"}}},"delete":{"tags":["Admin"],"summary":"Delete prompt","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"promptId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Prompt deleted"}}}},"/api/admin/prompts/improve":{"post":{"tags":["Admin"],"summary":"AI-assisted prompt improvement","description":"Use AI to generate or improve system prompts","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["promptType"],"properties":{"promptType":{"type":"string","enum":["conversation","prd_template"]},"currentContent":{"type":"string","description":"Current prompt content to improve"},"instruction":{"type":"string","description":"Instructions for AI improvement"},"action":{"type":"string","enum":["generate","improve"]}}}}}},"responses":{"200":{"description":"Improved prompt content","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string"},"tokens":{"type":"integer"},"model":{"type":"string"}}}}}}}}},"/api/admin/audit-logs":{"get":{"tags":["Admin"],"summary":"Get audit logs","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"userId","in":"query","schema":{"type":"string"}},{"name":"action","in":"query","schema":{"type":"string"}},{"name":"severity","in":"query","schema":{"type":"string","enum":["info","warning","error","critical"]}},{"name":"page","in":"query","schema":{"type":"integer"}},{"name":"limit","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"Audit logs"}}}},"/api/admin/superadmin/stats":{"get":{"tags":["SuperAdmin"],"summary":"Get platform statistics","description":"Platform-wide stats (SuperAdmin only)","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Platform stats"},"403":{"description":"SuperAdmin access required"}}}},"/api/admin/superadmin/organizations":{"get":{"tags":["SuperAdmin"],"summary":"List all organizations","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"search","in":"query","schema":{"type":"string"}},{"name":"tier","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"List of organizations","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Organization"}}}}}}},"post":{"tags":["SuperAdmin"],"summary":"Create organization","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"201":{"description":"Organization created"}}}},"/api/admin/superadmin/organizations/{orgId}":{"get":{"tags":["SuperAdmin"],"summary":"Get organization details","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization details"}}},"patch":{"tags":["SuperAdmin"],"summary":"Update organization","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization updated"}}},"delete":{"tags":["SuperAdmin"],"summary":"Delete organization","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization deleted"}}}},"/api/admin/superadmin/organizations/{orgId}/status":{"patch":{"tags":["SuperAdmin"],"summary":"Update organization status","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["active","suspended","trial"]}}}}}},"responses":{"200":{"description":"Status updated"}}}},"/api/admin/superadmin/plans":{"get":{"tags":["SuperAdmin"],"summary":"List subscription plans","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of plans","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionPlan"}}}}}}},"post":{"tags":["SuperAdmin"],"summary":"Create subscription plan","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"201":{"description":"Plan created"}}}},"/api/admin/superadmin/plans/{planId}":{"patch":{"tags":["SuperAdmin"],"summary":"Update subscription plan","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Plan updated"}}},"delete":{"tags":["SuperAdmin"],"summary":"Delete subscription plan","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Plan deleted"}}}},"/api/admin/superadmin/features":{"get":{"tags":["SuperAdmin"],"summary":"List feature flags","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of feature flags","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FeatureFlag"}}}}}}},"post":{"tags":["SuperAdmin"],"summary":"Create feature flag","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"201":{"description":"Feature flag created"}}}},"/api/admin/superadmin/features/{featureId}":{"patch":{"tags":["SuperAdmin"],"summary":"Update feature flag","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"featureId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Feature flag updated"}}},"delete":{"tags":["SuperAdmin"],"summary":"Delete feature flag","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"featureId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Feature flag deleted"}}}},"/api/admin/superadmin/api-keys":{"get":{"tags":["SuperAdmin"],"summary":"List platform API keys","description":"List AI provider API keys for the platform","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of platform API keys"}}},"post":{"tags":["SuperAdmin"],"summary":"Create platform API key","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["provider","apiKey"],"properties":{"provider":{"type":"string","enum":["openai","anthropic"]},"apiKey":{"type":"string"},"isDefault":{"type":"boolean"},"isActive":{"type":"boolean"}}}}}},"responses":{"201":{"description":"API key created"}}}},"/api/admin/superadmin/revenue":{"get":{"tags":["SuperAdmin"],"summary":"Get revenue analytics","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["7d","30d","90d","1y"]}}],"responses":{"200":{"description":"Revenue data"}}}},"/api/admin/superadmin/team":{"get":{"tags":["SuperAdmin"],"summary":"List platform team members","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of team members"}}},"post":{"tags":["SuperAdmin"],"summary":"Invite platform team member","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["email","role"],"properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["platform_owner","platform_admin","support","finance"]}}}}}},"responses":{"201":{"description":"Team member invited"}}}},"/api/admin/superadmin/notifications":{"get":{"tags":["SuperAdmin"],"summary":"List platform notifications","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of notifications"}}},"post":{"tags":["SuperAdmin"],"summary":"Create platform notification","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["title","message","type"],"properties":{"title":{"type":"string"},"message":{"type":"string"},"type":{"type":"string","enum":["info","warning","success","error","announcement"]},"targetAudience":{"type":"string","enum":["all","organizations","users","plans"]},"isPinned":{"type":"boolean"},"scheduledFor":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"}}}}}},"responses":{"201":{"description":"Notification created"}}}},"/api/admin/superadmin/marketplace/templates":{"get":{"tags":["SuperAdmin"],"summary":"List all marketplace templates","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of templates"}}},"post":{"tags":["SuperAdmin"],"summary":"Create marketplace template","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"201":{"description":"Template created"}}}},"/api/admin/superadmin/marketplace/submissions":{"get":{"tags":["SuperAdmin"],"summary":"List pending template submissions","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of submissions"}}}},"/api/admin/superadmin/marketplace/submissions/{submissionId}/review":{"post":{"tags":["SuperAdmin"],"summary":"Review template submission","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"submissionId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["approve","reject","revision"]},"reviewNotes":{"type":"string"},"rejectionReason":{"type":"string"},"revisionNotes":{"type":"string"},"pricingTier":{"type":"string","enum":["FREE","STARTER","PROFESSIONAL","ENTERPRISE"]},"addonPrice":{"type":"number"}}}}}},"responses":{"200":{"description":"Submission reviewed"}}}},"/api/admin/superadmin/crm/contacts":{"get":{"tags":["SuperAdmin"],"summary":"List CRM contacts","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of contacts"}}},"post":{"tags":["SuperAdmin"],"summary":"Create CRM contact","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"201":{"description":"Contact created"}}}},"/api/admin/superadmin/crm/deals":{"get":{"tags":["SuperAdmin"],"summary":"List CRM deals","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of deals"}}},"post":{"tags":["SuperAdmin"],"summary":"Create CRM deal","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"201":{"description":"Deal created"}}}},"/api/admin/superadmin/crm/pipelines":{"get":{"tags":["SuperAdmin"],"summary":"List CRM pipelines","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of pipelines"}}}},"/api/admin/superadmin/settings":{"get":{"tags":["SuperAdmin"],"summary":"Get platform settings","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Platform settings"}}},"patch":{"tags":["SuperAdmin"],"summary":"Update platform settings","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Settings updated"}}}},"/api/admin/webhooks/{id}":{"get":{"tags":["Webhooks"],"summary":"Get webhook details","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook details"}}},"patch":{"tags":["Webhooks"],"summary":"Update webhook","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook updated"}}},"delete":{"tags":["Webhooks"],"summary":"Delete webhook","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook deleted"}}}},"/api/feature-flags":{"post":{"tags":["Feature Flags"],"summary":"Evaluate feature flags","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["keys"],"properties":{"keys":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Flag evaluation results"}}}},"/api/feature-flags/enabled":{"get":{"tags":["Feature Flags"],"summary":"Get all enabled flags for user","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Enabled flags"}}}},"/api/notifications":{"get":{"tags":["Notifications"],"summary":"Get user notifications","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"unreadOnly","in":"query","schema":{"type":"boolean"}},{"name":"limit","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"Notifications"}}}},"/api/notifications/{notificationId}":{"patch":{"tags":["Notifications"],"summary":"Mark notification as read/dismissed","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"notificationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Notification updated"}}}},"/api/export/pdf":{"post":{"tags":["Export"],"summary":"Export PRD to PDF","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"type":"string","description":"Markdown content"},"title":{"type":"string"}}}}}},"responses":{"200":{"description":"PDF file","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}}}}},"/api/export/docx":{"post":{"tags":["Export"],"summary":"Export PRD to DOCX","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"title":{"type":"string"}}}}}},"responses":{"200":{"description":"DOCX file","content":{"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"schema":{"type":"string","format":"binary"}}}}}}},"/api/chat":{"post":{"tags":["Conversation"],"summary":"Send chat message","description":"Send a message to AI for PRD requirements gathering (non-streaming)","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"type":"string"}}}},"provider":{"type":"string","enum":["openai","anthropic"]},"projectId":{"type":"string","description":"Optional project ID for usage tracking"}}}}}},"responses":{"200":{"description":"AI response","content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string"},"content":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded"},"503":{"description":"Platform under maintenance"}}}},"/api/usage":{"get":{"tags":["User"],"summary":"Get usage statistics","description":"Get detailed usage statistics including user-wise tracking, hourly trends, and cost metrics","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["24h","7d","30d","90d"]}},{"name":"groupBy","in":"query","schema":{"type":"string","enum":["hour","day","week"]}}],"responses":{"200":{"description":"Usage stats with byUser, hourlyTrend, responseTime, costEfficiency metrics"}}}},"/api/memory":{"get":{"tags":["AI Features"],"summary":"Get conversation memories","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"List of memories"}}}},"/api/memory/extract":{"post":{"tags":["AI Features"],"summary":"Extract memories from conversation","security":[{"bearerAuth":[]},{"sessionAuth":[]}],"responses":{"200":{"description":"Memories extracted"}}}},"/api/example-projects":{"get":{"tags":["Projects"],"summary":"Get example projects","responses":{"200":{"description":"Example projects"}}}}}}