{"openapi":"3.0.3","info":{"title":"Kognitika API","version":"1.0.0","description":"Privacy-safe HTTP contract for Kognitika. Raw identity, tokens, and private telemetry are never response fields."},"servers":[{"url":"https://kognitika.ru"}],"tags":[{"name":"System"},{"name":"Auth"},{"name":"Identity"},{"name":"Game"},{"name":"Dashboard"},{"name":"Analytics"},{"name":"Leaderboard"},{"name":"Feedback"},{"name":"Ideas"},{"name":"Chat"}],"paths":{"/api/health":{"get":{"operationId":"getHealth","summary":"Read service health and build ID","tags":["System"],"responses":{"200":{"description":"Successful response"}}}},"/api/auth/brain":{"post":{"operationId":"createBrainSession","summary":"Create an anonymous Brain ID session","tags":["Auth"],"responses":{"200":{"description":"Successful response"},"400":{"description":"Validation error"}}}},"/api/auth/restore":{"post":{"operationId":"restoreBrainSession","summary":"Restore an anonymous Brain ID session","tags":["Auth"],"responses":{"200":{"description":"Successful response"},"400":{"description":"Validation error"}}}},"/api/me":{"get":{"operationId":"getMe","summary":"Read safe authenticated profile fields","tags":["Identity"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"}}}},"/api/game/attempts":{"post":{"operationId":"createGameAttempt","summary":"Issue server-bound game credentials","tags":["Game"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"400":{"description":"Validation error"},"401":{"description":"Authentication required"}}}},"/api/game/save":{"post":{"operationId":"saveGameSession","summary":"Persist a completed game session","tags":["Game"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"400":{"description":"Validation error"},"401":{"description":"Authentication required"},"500":{"description":"Sanitized persistence failure"}}}},"/api/game/progress":{"get":{"operationId":"getGameProgress","summary":"Read authenticated progress","tags":["Game"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"}}}},"/api/dashboard/status":{"get":{"operationId":"getDashboardStatus","summary":"Read dashboard status","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"}}}},"/api/analytics/profile":{"get":{"operationId":"getAnalyticsProfile","summary":"Read privacy-safe analytics profile","tags":["Analytics"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"}}}},"/api/analytics/export":{"get":{"operationId":"exportAnalytics","summary":"Export allowed analytics data","tags":["Analytics"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"}}}},"/api/analytics/summaries":{"get":{"operationId":"getAnalyticsSummaries","summary":"Read session summaries","tags":["Analytics"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"}}}},"/api/analytics/summaries/trend":{"get":{"operationId":"getSummaryTrend","summary":"Read summary trends","tags":["Analytics"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"}}}},"/api/analytics/cognitive-trend":{"get":{"operationId":"getCognitiveTrend","summary":"Read cognitive trend data","tags":["Analytics"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"}}}},"/api/analytics/practice-flow":{"post":{"operationId":"recordPracticeFlow","summary":"Record explicitly enabled privacy-safe practice flow","tags":["Analytics"],"responses":{"200":{"description":"Successful response"}}}},"/api/leaderboard":{"get":{"operationId":"getLeaderboard","summary":"Read the public leaderboard","tags":["Leaderboard"],"responses":{"200":{"description":"Successful response"}}}},"/api/feedback":{"post":{"operationId":"submitFeedback","summary":"Submit product feedback","tags":["Feedback"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"}}}},"/api/ideas":{"get":{"operationId":"getIdeas","summary":"Read public idea summaries","tags":["Ideas"],"responses":{"200":{"description":"Successful response"}}},"post":{"operationId":"createIdea","summary":"Submit an idea","tags":["Ideas"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"}}}},"/api/ideas/{id}/vote":{"post":{"operationId":"voteIdea","summary":"Vote on an idea","tags":["Ideas"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"}}}},"/api/chat/stream":{"get":{"operationId":"streamChat","summary":"Open the bounded chat SSE stream","tags":["Chat"],"responses":{"200":{"description":"Successful response"}}}},"/api/chat/messages":{"post":{"operationId":"sendChatMessage","summary":"Send a validated chat message","tags":["Chat"],"responses":{"200":{"description":"Successful response"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}}}