{"openapi":"3.1.0","info":{"title":"NEXORA API","version":"1","description":"The NEXORA REST API. JSON in and out. Browsers authenticate with the HttpOnly session cookie set by POST /auth/login; mutating requests from browsers must come from NEXORA's own origin. Lists return items, page, pageSize, total and totalPages. Content that is private or hidden answers 404 exactly like content that does not exist."},"servers":[{"url":"/api/v1"}],"tags":[{"name":"Search"},{"name":"Authentication"},{"name":"Waitlist and legal"},{"name":"Developers"},{"name":"Your account"},{"name":"Projects"},{"name":"Teams"},{"name":"Team finder"},{"name":"Workspaces"},{"name":"Community"},{"name":"Notifications"},{"name":"Messages"},{"name":"NEXORA AI"},{"name":"Challenges"},{"name":"Reputation"},{"name":"Analytics"},{"name":"Moderation"},{"name":"Administration"},{"name":"Reference data"},{"name":"Media"},{"name":"Service"}],"security":[{"session":[]}],"components":{"securitySchemes":{"session":{"type":"apiKey","in":"cookie","name":"nexora_session","description":"Set by POST /auth/login. Named __Host-nexora_session when NEXORA runs on https."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["BAD_REQUEST","VALIDATION_FAILED","UNAUTHENTICATED","EMAIL_NOT_VERIFIED","FORBIDDEN","NOT_FOUND","CONFLICT","PAYLOAD_TOO_LARGE","RATE_LIMITED","INVALID_CREDENTIALS","INVALID_TOKEN","ACCOUNT_SUSPENDED","SERVICE_UNAVAILABLE","AI_NOT_CONFIGURED","NOT_LAUNCHED","TWO_FACTOR_REQUIRED","TWO_FACTOR_SETUP_REQUIRED","INTERNAL_ERROR"]},"message":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}}}}}},"verifyEmailSchema":{"type":"object","properties":{"token":{"type":"string","pattern":"^[A-Za-z0-9_-]{32,128}$"}},"required":["token"]},"changePasswordSchema":{"type":"object","properties":{"currentPassword":{"type":"string","minLength":1,"maxLength":128},"newPassword":{"type":"string","minLength":10,"maxLength":128}},"required":["currentPassword","newPassword"]},"emailOnlySchema":{"type":"object","properties":{"email":{"type":"string","maxLength":254}},"required":["email"]},"loginSchema":{"type":"object","properties":{"email":{"type":"string","maxLength":254},"password":{"type":"string","minLength":1,"maxLength":128},"code":{"anyOf":[{"type":"string"},{"type":"string","const":""}]}},"required":["email","password"]},"githubTwoFactorSchema":{"type":"object","properties":{"ticket":{"type":"string","pattern":"^[A-Za-z0-9_-]{20,100}$"},"code":{"type":"string"}},"required":["ticket","code"]},"registerSchema":{"type":"object","properties":{"email":{"type":"string","maxLength":254},"username":{"type":"string","minLength":3,"maxLength":32,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"displayName":{"type":"string","minLength":1,"maxLength":60},"password":{"type":"string","minLength":10,"maxLength":128},"invitation":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9_-]{32,128}$"},{"type":"string","const":""}]}},"required":["email","username","displayName","password"]},"waitlistSignupSchema":{"type":"object","properties":{"email":{"type":"string","maxLength":254},"desiredUsername":{"anyOf":[{"type":"string","minLength":3,"maxLength":32,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},{"type":"string","const":""}]},"buildIntent":{"anyOf":[{"type":"string","maxLength":280},{"type":"string","const":""}]},"consent":{"type":"boolean","const":true}},"required":["email","consent"]},"waitlistTokenSchema":{"type":"object","properties":{"token":{"type":"string","pattern":"^[A-Za-z0-9_-]{32,128}$"}},"required":["token"]},"resetPasswordSchema":{"type":"object","properties":{"token":{"type":"string","pattern":"^[A-Za-z0-9_-]{32,128}$"},"password":{"type":"string","minLength":10,"maxLength":128}},"required":["token","password"]},"privacyUpdateSchema":{"type":"object","properties":{"isDiscoverable":{"type":"boolean"},"showLocation":{"type":"boolean"},"showLinks":{"type":"boolean"},"showSkills":{"type":"boolean"},"showActivity":{"type":"boolean"},"showFollowers":{"type":"boolean"},"messagesFrom":{"type":"string","enum":["EVERYONE","FOLLOWING","NOBODY"]}},"required":["isDiscoverable","showLocation","showLinks","showSkills","showActivity","showFollowers","messagesFrom"]},"accountDeletionSchema":{"type":"object","properties":{"password":{"type":"string","minLength":1,"maxLength":128},"username":{"type":"string","minLength":1,"maxLength":64},"code":{"anyOf":[{"type":"string"},{"type":"string","const":""}]}},"required":["password","username"]},"emailChangeSchema":{"type":"object","properties":{"newEmail":{"type":"string","maxLength":254},"password":{"type":"string","minLength":1,"maxLength":128}},"required":["newEmail","password"]},"twoFactorEnableSchema":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"]},"twoFactorDisableSchema":{"type":"object","properties":{"password":{"type":"string","minLength":1,"maxLength":128},"code":{"type":"string"}},"required":["password","code"]},"recoveryCodesSchema":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"]},"profileUpdateSchema":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":60},"bio":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"location":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"websiteUrl":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","maxLength":200}]},"githubUrl":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","maxLength":200}]},"socialLinks":{"default":[],"maxItems":5,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":30},"url":{"type":"string","maxLength":200}},"required":["label","url"]}},"interests":{"maxItems":10,"type":"array","items":{"type":"string","minLength":2,"maxLength":30}},"experienceLevel":{"default":null,"anyOf":[{"type":"string","enum":["LEARNING","JUNIOR","MID","SENIOR","LEAD"]},{"type":"null"}]},"availability":{"type":"string","enum":["OPEN","LIMITED","UNAVAILABLE"]}},"required":["displayName","availability"]},"skillsUpdateSchema":{"type":"object","properties":{"skills":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}}},"required":["skills"]},"projectInputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":80},"tagline":{"anyOf":[{"type":"string","maxLength":140},{"type":"null"}]},"description":{"type":"string","minLength":20,"maxLength":10000},"technologies":{"type":"array","items":{"type":"string","maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"categories":{"type":"array","items":{"type":"string","maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"repositoryUrl":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","maxLength":200}]},"websiteUrl":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","maxLength":200}]},"documentationUrl":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","maxLength":200}]},"status":{"type":"string","enum":["IDEA","IN_DEVELOPMENT","BETA","RELEASED","MAINTAINED","ARCHIVED"]},"visibility":{"type":"string","enum":["PUBLIC","PRIVATE"]},"isOpenSource":{"type":"boolean"},"lookingForContributors":{"type":"boolean"},"published":{"type":"boolean"}},"required":["name","description","categories","status","visibility","isOpenSource","lookingForContributors","published"]},"commentInputSchema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":2000},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["body"]},"commentEditSchema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":2000}},"required":["body"]},"memberInviteSchema":{"type":"object","properties":{"username":{"type":"string","minLength":3,"maxLength":32,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"role":{"type":"string","enum":["MAINTAINER","MEMBER"]},"title":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]}},"required":["username","role"]},"ownershipTransferSchema":{"type":"object","properties":{"username":{"type":"string","minLength":3,"maxLength":32,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"confirm":{"type":"string","minLength":1,"maxLength":200}},"required":["username","confirm"]},"memberUpdateSchema":{"type":"object","properties":{"role":{"type":"string","enum":["MAINTAINER","MEMBER"]},"title":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]}},"required":["role"]},"screenshotCaptionSchema":{"type":"object","properties":{"caption":{"anyOf":[{"type":"string","maxLength":140},{"type":"null"}]}}},"projectUpdateInputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":120},"body":{"type":"string","minLength":10,"maxLength":5000}},"required":["title","body"]},"teamInputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":80},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"visibility":{"type":"string","enum":["PUBLIC","PRIVATE"]}},"required":["name","visibility"]},"teamInviteSchema":{"type":"object","properties":{"username":{"type":"string","minLength":3,"maxLength":32,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"role":{"type":"string","enum":["ADMIN","MEMBER"]},"title":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]}},"required":["username","role"]},"teamMemberUpdateSchema":{"type":"object","properties":{"role":{"type":"string","enum":["ADMIN","MEMBER"]},"title":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]}},"required":["role"]},"applicationDecisionSchema":{"type":"object","properties":{"status":{"type":"string","enum":["ACCEPTED","REJECTED","WITHDRAWN"]}},"required":["status"]},"requestCreateSchema":{"type":"object","properties":{"title":{"type":"string","minLength":5,"maxLength":120},"description":{"type":"string","minLength":20,"maxLength":5000},"skills":{"type":"array","items":{"type":"string","maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"role":{"type":"string","enum":["FRONTEND","BACKEND","FULL_STACK","MOBILE","GAME","DESIGN","DEVOPS","DATA","SECURITY","QA","DOCUMENTATION","CONTRIBUTOR","OTHER"]},"type":{"type":"string","enum":["OPEN_SOURCE","HOBBY","STARTUP","PAID","HACKATHON"]},"teamSize":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"number"}]},"contactMethod":{"type":"string","enum":["APPLICATION","DIRECT_MESSAGE","EXTERNAL_LINK"]},"contactUrl":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","maxLength":200}]},"projectSlug":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}]},"projectInfo":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"teamSlug":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"required":["title","description","role","type","contactMethod","teamSlug"]},"requestUpdateSchema":{"type":"object","properties":{"title":{"type":"string","minLength":5,"maxLength":120},"description":{"type":"string","minLength":20,"maxLength":5000},"skills":{"type":"array","items":{"type":"string","maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"role":{"type":"string","enum":["FRONTEND","BACKEND","FULL_STACK","MOBILE","GAME","DESIGN","DEVOPS","DATA","SECURITY","QA","DOCUMENTATION","CONTRIBUTOR","OTHER"]},"type":{"type":"string","enum":["OPEN_SOURCE","HOBBY","STARTUP","PAID","HACKATHON"]},"teamSize":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"number"}]},"contactMethod":{"type":"string","enum":["APPLICATION","DIRECT_MESSAGE","EXTERNAL_LINK"]},"contactUrl":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","maxLength":200}]},"projectSlug":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}]},"projectInfo":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"status":{"type":"string","enum":["OPEN","PAUSED","FILLED","CLOSED"]}},"required":["title","description","role","type","contactMethod","status"]},"applicationInputSchema":{"type":"object","properties":{"message":{"type":"string","minLength":20,"maxLength":2000}},"required":["message"]},"workspaceUpdateSchema":{"type":"object","properties":{"description":{"anyOf":[{"type":"null"},{"type":"string","maxLength":2000}]},"projectSlug":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}]}}},"discussionInputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":160},"body":{"type":"string","minLength":1,"maxLength":10000}},"required":["title","body"]},"replyInputSchema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":5000}},"required":["body"]},"documentInputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":2,"maxLength":160},"body":{"type":"string","minLength":1,"maxLength":50000}},"required":["title","body"]},"milestoneInputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":2,"maxLength":120},"description":{"anyOf":[{"type":"null"},{"type":"string","maxLength":2000}]},"dueAt":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}]},"completed":{"default":false,"type":"boolean"}},"required":["title"]},"taskCreateSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"description":{"anyOf":[{"type":"null"},{"type":"string","maxLength":10000}]},"status":{"default":"BACKLOG","type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","COMPLETED"]},"assignee":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","minLength":3,"maxLength":32,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"}]},"milestoneId":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}]},"dueAt":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}]}},"required":["title"]},"taskUpdateSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"description":{"anyOf":[{"type":"null"},{"type":"string","maxLength":10000}]},"status":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","COMPLETED"]},"assignee":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","minLength":3,"maxLength":32,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"}]},"milestoneId":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}]},"dueAt":{"anyOf":[{"type":"string","const":""},{"type":"null"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}]}}},"workspaceCommentSchema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":2000}},"required":["body"]},"taskMoveSchema":{"type":"object","properties":{"status":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","COMPLETED"]},"index":{"type":"integer","minimum":0,"maximum":2000}},"required":["status","index"]},"postInputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["TEXT","ANNOUNCEMENT","QUESTION","TUTORIAL","SNIPPET","UPDATE","SCREENSHOT"]},"title":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"body":{"type":"string","minLength":1,"maxLength":5000},"code":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}]},"codeLanguage":{"anyOf":[{"type":"string","maxLength":30,"pattern":"^[a-z0-9+#.\\- ]*$"},{"type":"null"}]},"projectSlug":{"anyOf":[{"anyOf":[{"type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},{"type":"string","const":""}]},{"type":"null"}]}},"required":["kind","body"]},"postCommentInputSchema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":2000},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["body"]},"postCommentEditSchema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":2000}},"required":["body"]},"postImageCaptionSchema":{"type":"object","properties":{"caption":{"anyOf":[{"type":"string","maxLength":140},{"type":"null"}]}}},"notificationPreferencesSchema":{"type":"object","properties":{"preferences":{"type":"object","properties":{"NEW_FOLLOWER":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"NEW_MESSAGE":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"MENTION":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"POST_LIKE":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"POST_COMMENT":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"COMMENT_REPLY":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"PROJECT_LIKE":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"PROJECT_COMMENT":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"PROJECT_UPDATE":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"PROJECT_INVITATION":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"COLLABORATION_REQUEST":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"APPLICATION_UPDATE":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"TEAM_INVITATION":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"WORKSPACE_ACTIVITY":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"ACHIEVEMENT_EARNED":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"CONTENT_REMOVED":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"OWNERSHIP_TRANSFERRED":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]},"CONVERSATION_ADDED":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"inApp":{"type":"boolean"},"email":{"default":"OFF","type":"string","enum":["OFF","INSTANT","DAILY"]}},"required":["inApp"]}]}},"required":["NEW_FOLLOWER","NEW_MESSAGE","MENTION","POST_LIKE","POST_COMMENT","COMMENT_REPLY","PROJECT_LIKE","PROJECT_COMMENT","PROJECT_UPDATE","PROJECT_INVITATION","COLLABORATION_REQUEST","APPLICATION_UPDATE","TEAM_INVITATION","WORKSPACE_ACTIVITY","ACHIEVEMENT_EARNED","CONTENT_REMOVED","OWNERSHIP_TRANSFERRED","CONVERSATION_ADDED"]}},"required":["preferences"]},"notificationReadSchema":{"type":"object","properties":{"ids":{"maxItems":100,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"all":{"type":"boolean","const":true},"read":{"default":true,"type":"boolean"}}},"conversationStartSchema":{"type":"object","properties":{"username":{"type":"string","minLength":3,"maxLength":32,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"}},"required":["username"]},"groupCreateSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":80},"usernames":{"minItems":1,"maxItems":19,"type":"array","items":{"type":"string","minLength":3,"maxLength":32,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"}}},"required":["title","usernames"]},"groupUpdateSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":80}},"required":["title"]},"groupMembersAddSchema":{"type":"object","properties":{"usernames":{"minItems":1,"maxItems":19,"type":"array","items":{"type":"string","minLength":3,"maxLength":32,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"}}},"required":["usernames"]},"messageInputSchema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":4000}},"required":["body"]},"aiConversationCreateSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":80},"projectSlug":{"anyOf":[{"type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},{"type":"null"}]}}},"aiConversationUpdateSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":80},"projectSlug":{"anyOf":[{"type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},{"type":"null"}]}}},"aiMessageInputSchema":{"type":"object","properties":{"content":{"type":"string","minLength":1,"maxLength":8000}},"required":["content"]},"submissionInputSchema":{"type":"object","properties":{"language":{"type":"string","enum":["javascript","python"]},"code":{"type":"string","maxLength":20000}},"required":["language","code"]},"pageViewInputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["PROFILE","PROJECT"]},"id":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z0-9-]+$"}},"required":["type","id"]},"reportInputSchema":{"type":"object","properties":{"targetType":{"type":"string","enum":["USER","PROJECT","PROJECT_COMMENT","TEAM","COLLABORATION_REQUEST","POST","POST_COMMENT","MESSAGE"]},"targetId":{"type":"string","minLength":1,"maxLength":100},"reason":{"type":"string","enum":["SPAM","HARASSMENT","INAPPROPRIATE","MALWARE","IMPERSONATION","OTHER"]},"details":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]}},"required":["targetType","targetId","reason"]},"contentRemovalSchema":{"type":"object","properties":{"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["reason"]},"reportDecisionSchema":{"type":"object","properties":{"decision":{"type":"string","enum":["REVIEW","RESOLVE","DISMISS"]},"note":{"default":"","type":"string","maxLength":500},"removeContent":{"default":false,"type":"boolean"},"suspendAuthor":{"default":false,"type":"boolean"}},"required":["decision"]},"operatorSettingsSchema":{"type":"object","properties":{"operatorName":{"type":"string","maxLength":200},"operatorAddress":{"type":"string","maxLength":600},"operatorEmail":{"anyOf":[{"type":"string","const":""},{"type":"string","maxLength":254}]},"operatorPhone":{"type":"string","maxLength":60},"vatId":{"type":"string","maxLength":40},"vatIdNotApplicable":{"type":"boolean"},"supervisoryAuthority":{"type":"string","maxLength":600},"hostingProvider":{"type":"string","maxLength":600}},"required":["operatorName","operatorAddress","operatorEmail","operatorPhone","vatId","vatIdNotApplicable","supervisoryAuthority","hostingProvider"]},"waitlistInviteSchema":{"type":"object","properties":{"count":{"type":"integer","minimum":1,"maximum":200}},"required":["count"]},"adminChallengeCreateSchema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":100},"summary":{"type":"string","minLength":1,"maxLength":200},"statement":{"type":"string","minLength":1,"maxLength":20000},"difficulty":{"type":"string","enum":["EASY","MEDIUM","HARD","EXPERT"]},"points":{"type":"integer","minimum":1,"maximum":100},"languages":{"minItems":1,"type":"array","items":{"type":"string","enum":["javascript","python"]}},"functionName":{"default":"solve","type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,39}$"},"timeLimitMs":{"type":"integer","minimum":100,"maximum":10000},"starterCode":{"default":{},"type":"object","properties":{"javascript":{"type":"string","maxLength":5000},"python":{"type":"string","maxLength":5000}}},"referenceSolutions":{"default":{},"type":"object","properties":{"javascript":{"type":"string","maxLength":20000},"python":{"type":"string","maxLength":20000}}},"tests":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"args":{"maxItems":10,"type":"array","items":{}},"expected":{},"isSample":{"default":false,"type":"boolean"}},"required":["args","expected"]}},"slug":{"type":"string","pattern":"^[a-z0-9](?:[a-z0-9-]{0,78}[a-z0-9])?$"}},"required":["title","summary","statement","difficulty","points","languages","timeLimitMs","tests"]},"adminChallengeSchema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":100},"summary":{"type":"string","minLength":1,"maxLength":200},"statement":{"type":"string","minLength":1,"maxLength":20000},"difficulty":{"type":"string","enum":["EASY","MEDIUM","HARD","EXPERT"]},"points":{"type":"integer","minimum":1,"maximum":100},"languages":{"minItems":1,"type":"array","items":{"type":"string","enum":["javascript","python"]}},"functionName":{"default":"solve","type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,39}$"},"timeLimitMs":{"type":"integer","minimum":100,"maximum":10000},"starterCode":{"default":{},"type":"object","properties":{"javascript":{"type":"string","maxLength":5000},"python":{"type":"string","maxLength":5000}}},"referenceSolutions":{"default":{},"type":"object","properties":{"javascript":{"type":"string","maxLength":20000},"python":{"type":"string","maxLength":20000}}},"tests":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"args":{"maxItems":10,"type":"array","items":{}},"expected":{},"isSample":{"default":false,"type":"boolean"}},"required":["args","expected"]}}},"required":["title","summary","statement","difficulty","points","languages","timeLimitMs","tests"]},"platformSettingsSchema":{"type":"object","properties":{"launchMode":{"type":"string","enum":["waitlist","open"]},"showWaitlistCount":{"type":"boolean"},"registrationOpen":{"type":"boolean"},"communityPostingOpen":{"type":"boolean"},"challengeSubmissionsOpen":{"type":"boolean"},"announcement":{"type":"string","maxLength":280},"aiDailyRequestLimit":{"anyOf":[{"type":"integer","minimum":1,"maximum":10000},{"type":"null"}]},"aiDailyTokenLimit":{"anyOf":[{"type":"integer","minimum":1000,"maximum":100000000},{"type":"null"}]}},"required":["launchMode","showWaitlistCount","registrationOpen","communityPostingOpen","challengeSubmissionsOpen","announcement","aiDailyRequestLimit","aiDailyTokenLimit"]},"roleInputSchema":{"type":"object","properties":{"role":{"type":"string","enum":["USER","MODERATOR","ADMIN"]}},"required":["role"]},"suspensionInputSchema":{"type":"object","properties":{"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["reason"]}}},"paths":{"/auth/confirm-email-change":{"post":{"operationId":"postAuthConfirmEmailChange","tags":["Authentication"],"summary":"Confirm a new email address with the token from the mail sent to it","description":"Access: Public.","x-nexora-access":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/verifyEmailSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/auth/change-password":{"post":{"operationId":"postAuthChangePassword","tags":["Authentication"],"summary":"Change the password while signed in","description":"Access: Signed in.","x-nexora-access":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/changePasswordSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/forgot-password":{"post":{"operationId":"postAuthForgotPassword","tags":["Authentication"],"summary":"Send a password reset mail","description":"Access: Public.","x-nexora-access":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/emailOnlySchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/auth/login":{"post":{"operationId":"postAuthLogin","tags":["Authentication"],"summary":"Start a session. With two-factor authentication on, send code too; without it the answer is TWO_FACTOR_REQUIRED. Before launch only staff and invited accounts sign in","description":"Access: Public.","x-nexora-access":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/loginSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/auth/logout":{"post":{"operationId":"postAuthLogout","tags":["Authentication"],"summary":"End the current session","description":"Access: Public, more when signed in.","x-nexora-access":"optional","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]}},"/search":{"get":{"operationId":"getSearch","tags":["Search"],"summary":"Search developers, projects, teams, posts and challenges (q, type=all|developers|projects|teams|posts|challenges, page, and each area's own filters)","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"type","in":"query","required":false,"schema":{"default":"all","type":"string","enum":["all","developers","projects","teams","posts","challenges"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[{},{"session":[]}]}},"/search/suggestions":{"get":{"operationId":"getSearchSuggestions","tags":["Search"],"summary":"Up to three names per area for a search box (q, at least two characters)","description":"Access: Public.","x-nexora-access":"public","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/auth/me":{"get":{"operationId":"getAuthMe","tags":["Authentication"],"summary":"The signed-in user","description":"Access: Signed in.","x-nexora-access":"user","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/providers":{"get":{"operationId":"getAuthProviders","tags":["Authentication"],"summary":"External sign-ins this installation offers ({ github })","description":"Access: Public.","x-nexora-access":"public","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/auth/github/start":{"get":{"operationId":"getAuthGithubStart","tags":["Authentication"],"summary":"Redirect to GitHub to sign in or sign up (intent=login) or to link it to your account (intent=link); next= an internal path","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"intent","in":"query","required":false,"schema":{"default":"login","type":"string","enum":["login","link"]}},{"name":"next","in":"query","required":false,"schema":{"type":"string","maxLength":2048}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[{},{"session":[]}]}},"/auth/github/callback":{"get":{"operationId":"getAuthGithubCallback","tags":["Authentication"],"summary":"GitHub redirects back here (code, state); signs in, creates the account or links it, then redirects","description":"Access: Public, more when signed in.","x-nexora-access":"optional","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[{},{"session":[]}]}},"/auth/github/two-factor":{"post":{"operationId":"postAuthGithubTwoFactor","tags":["Authentication"],"summary":"Finish a GitHub sign-in with a two-factor code ({ ticket, code })","description":"Access: Public.","x-nexora-access":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/githubTwoFactorSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/me/linked-accounts":{"get":{"operationId":"getMeLinkedAccounts","tags":["Your account"],"summary":"Your external sign-ins (GitHub) and whether GitHub sign-in is set up","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/linked-accounts/github":{"delete":{"operationId":"deleteMeLinkedAccountsGithub","tags":["Your account"],"summary":"Unlink GitHub; refused while you have no password","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/register":{"post":{"operationId":"postAuthRegister","tags":["Authentication"],"summary":"Create an account and send a verification mail. Before launch only with an invitation token from the waitlist (status ready: verified at once)","description":"Access: Public.","x-nexora-access":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/registerSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/waitlist":{"post":{"operationId":"postWaitlist","tags":["Waitlist and legal"],"summary":"Join the waitlist (email, optional desired username and answer, consent). A confirmation mail follows (double opt-in)","description":"Access: Public.","x-nexora-access":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitlistSignupSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/waitlist/confirm":{"post":{"operationId":"postWaitlistConfirm","tags":["Waitlist and legal"],"summary":"Confirm a waitlist entry with the token from the mail","description":"Access: Public.","x-nexora-access":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitlistTokenSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/waitlist/unsubscribe":{"post":{"operationId":"postWaitlistUnsubscribe","tags":["Waitlist and legal"],"summary":"Leave the waitlist (?token= from any waitlist mail). Also the RFC 8058 one-click target of List-Unsubscribe","description":"Access: Public.","x-nexora-access":"public","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{32,128}$"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/legal":{"get":{"operationId":"getLegal","tags":["Waitlist and legal"],"summary":"The operator details for the imprint and the privacy policy, and which are still missing","description":"Access: Public.","x-nexora-access":"public","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/auth/resend-verification":{"post":{"operationId":"postAuthResendVerification","tags":["Authentication"],"summary":"Send a new verification mail","description":"Access: Public.","x-nexora-access":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/emailOnlySchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/auth/reset-password":{"post":{"operationId":"postAuthResetPassword","tags":["Authentication"],"summary":"Set a new password with a token","description":"Access: Public.","x-nexora-access":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/resetPasswordSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/auth/sessions":{"get":{"operationId":"getAuthSessions","tags":["Authentication"],"summary":"List your active sessions","description":"Access: Signed in.","x-nexora-access":"user","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteAuthSessions","tags":["Authentication"],"summary":"Sign out all other sessions","description":"Access: Signed in.","x-nexora-access":"user","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/sessions/{id}":{"delete":{"operationId":"deleteAuthSessionsId","tags":["Authentication"],"summary":"Sign out one session","description":"Access: Signed in.","x-nexora-access":"user","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/verify-email":{"post":{"operationId":"postAuthVerifyEmail","tags":["Authentication"],"summary":"Confirm an email address with a token","description":"Access: Public.","x-nexora-access":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/verifyEmailSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/users":{"get":{"operationId":"getUsers","tags":["Developers"],"summary":"Search discoverable developers: q, skill, availability, level, page","description":"Access: Public.","x-nexora-access":"public","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":60}},{"name":"skill","in":"query","required":false,"schema":{"type":"string","maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},{"name":"availability","in":"query","required":false,"schema":{"type":"string","enum":["OPEN","LIMITED","UNAVAILABLE"]}},{"name":"level","in":"query","required":false,"schema":{"type":"string","enum":["LEARNING","JUNIOR","MID","SENIOR","LEAD"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/users/{username}":{"get":{"operationId":"getUsersUsername","tags":["Developers"],"summary":"A public profile, with the owner's privacy settings applied","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]}},"/users/{username}/follow":{"post":{"operationId":"postUsersUsernameFollow","tags":["Developers"],"summary":"Follow a developer (idempotent)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteUsersUsernameFollow","tags":["Developers"],"summary":"Unfollow a developer (idempotent)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/{username}/followers":{"get":{"operationId":"getUsersUsernameFollowers","tags":["Developers"],"summary":"People following a developer, if they show it (page)","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]}},"/users/{username}/following":{"get":{"operationId":"getUsersUsernameFollowing","tags":["Developers"],"summary":"People a developer follows, if they show it (page)","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]}},"/me/avatar":{"post":{"operationId":"postMeAvatar","tags":["Your account"],"summary":"Upload a profile photo (multipart field file; JPEG, PNG or WebP, 5 MB)","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","contentEncoding":"binary"}},"additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteMeAvatar","tags":["Your account"],"summary":"Remove your profile photo","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/bookmarks":{"get":{"operationId":"getMeBookmarks","tags":["Your account"],"summary":"Your saved projects (page). Only you can list them","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/cover":{"post":{"operationId":"postMeCover","tags":["Your account"],"summary":"Upload a cover image (multipart field file; JPEG, PNG or WebP, 8 MB)","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","contentEncoding":"binary"}},"additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteMeCover","tags":["Your account"],"summary":"Remove your cover image","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/privacy":{"get":{"operationId":"getMePrivacy","tags":["Your account"],"summary":"Your privacy settings","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"putMePrivacy","tags":["Your account"],"summary":"Replace your privacy settings","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/privacyUpdateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/account":{"get":{"operationId":"getMeAccount","tags":["Your account"],"summary":"What deleting your account would do: handovers, deletions and what is removed","description":"Access: Signed in.","x-nexora-access":"user","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteMeAccount","tags":["Your account"],"summary":"Delete your account at once (password, username typed out, and a code when two-factor is on)","description":"Access: Signed in.","x-nexora-access":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accountDeletionSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/email":{"post":{"operationId":"postMeEmail","tags":["Your account"],"summary":"Change your email address: a link goes to the new one, a notice to the current one","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/emailChangeSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/export":{"get":{"operationId":"getMeExport","tags":["Your account"],"summary":"Everything stored about you as one JSON file (three per hour)","description":"Access: Signed in.","x-nexora-access":"user","responses":{"200":{"description":"The file.","content":{"application/octet-stream":{"schema":{"type":"string","contentEncoding":"binary"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/two-factor":{"get":{"operationId":"getMeTwoFactor","tags":["Your account"],"summary":"Whether two-factor authentication is on and how many recovery codes are left","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postMeTwoFactor","tags":["Your account"],"summary":"Turn two-factor authentication on with a code from the app; returns recovery codes once","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/twoFactorEnableSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteMeTwoFactor","tags":["Your account"],"summary":"Turn two-factor authentication off (password and code)","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/twoFactorDisableSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/two-factor/recovery-codes":{"post":{"operationId":"postMeTwoFactorRecoveryCodes","tags":["Your account"],"summary":"Replace all recovery codes (a code from the app)","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/recoveryCodesSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/two-factor/setup":{"post":{"operationId":"postMeTwoFactorSetup","tags":["Your account"],"summary":"A new authenticator secret with its QR code; nothing changes until it is confirmed","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/profile":{"get":{"operationId":"getMeProfile","tags":["Your account"],"summary":"Your full profile, including private fields","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"putMeProfile","tags":["Your account"],"summary":"Replace your profile fields","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/profileUpdateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/project-invitations":{"get":{"operationId":"getMeProjectInvitations","tags":["Your account"],"summary":"Your open invitations to project teams","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/projects":{"get":{"operationId":"getMeProjects","tags":["Your account"],"summary":"Projects you are a member of, including drafts and private ones (page)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/skills":{"get":{"operationId":"getMeSkills","tags":["Your account"],"summary":"Your skills","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"putMeSkills","tags":["Your account"],"summary":"Replace your skills with a list of skill slugs (at most 20)","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/skillsUpdateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/categories":{"get":{"operationId":"getCategories","tags":["Projects"],"summary":"All project categories","description":"Access: Public.","x-nexora-access":"public","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/projects":{"get":{"operationId":"getProjects","tags":["Projects"],"summary":"Search public projects: q, category, tech, status, openSource, contributors, featured, sort, page","description":"Access: Public.","x-nexora-access":"public","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"category","in":"query","required":false,"schema":{"type":"string","maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},{"name":"tech","in":"query","required":false,"schema":{"type":"string","maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["IDEA","IN_DEVELOPMENT","BETA","RELEASED","MAINTAINED","ARCHIVED"]}},{"name":"openSource","in":"query","required":false,"schema":{"type":["string","boolean"]}},{"name":"contributors","in":"query","required":false,"schema":{"type":["string","boolean"]}},{"name":"featured","in":"query","required":false,"schema":{"type":["string","boolean"]}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["relevance","trending","newest","popular"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]},"post":{"operationId":"postProjects","tags":["Projects"],"summary":"Create a project (published or as a draft)","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/projectInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}":{"get":{"operationId":"getProjectsSlug","tags":["Projects"],"summary":"A project, if you may see it. Private projects and drafts answer 404 outside the team","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]},"put":{"operationId":"putProjectsSlug","tags":["Projects"],"summary":"Replace a project's fields (owner and maintainers; visibility and publishing: owner)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/projectInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjectsSlug","tags":["Projects"],"summary":"Delete a project (owner)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/bookmark":{"post":{"operationId":"postProjectsSlugBookmark","tags":["Projects"],"summary":"Save a project (idempotent)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjectsSlugBookmark","tags":["Projects"],"summary":"Remove it from your saved projects (idempotent)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/comments":{"get":{"operationId":"getProjectsSlugComments","tags":["Projects"],"summary":"Comment threads, newest first, with replies (page)","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]},"post":{"operationId":"postProjectsSlugComments","tags":["Projects"],"summary":"Comment, or reply with parentId","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/commentInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/comments/{id}":{"patch":{"operationId":"patchProjectsSlugCommentsId","tags":["Projects"],"summary":"Edit your comment","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/commentEditSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjectsSlugCommentsId","tags":["Projects"],"summary":"Delete your comment; the team and moderators can delete any","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/cover":{"post":{"operationId":"postProjectsSlugCover","tags":["Projects"],"summary":"Upload a cover image (multipart field file; 8 MB)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","contentEncoding":"binary"}},"additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjectsSlugCover","tags":["Projects"],"summary":"Remove the cover image","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/featured":{"post":{"operationId":"postProjectsSlugFeatured","tags":["Projects"],"summary":"Feature a public project (moderators and admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjectsSlugFeatured","tags":["Projects"],"summary":"Stop featuring a project (moderators and admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/follow":{"post":{"operationId":"postProjectsSlugFollow","tags":["Projects"],"summary":"Follow a project's updates (idempotent)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjectsSlugFollow","tags":["Projects"],"summary":"Stop following a project's updates (idempotent)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/invitation":{"post":{"operationId":"postProjectsSlugInvitation","tags":["Projects"],"summary":"Accept your invitation to the team","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjectsSlugInvitation","tags":["Projects"],"summary":"Decline your invitation","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/like":{"post":{"operationId":"postProjectsSlugLike","tags":["Projects"],"summary":"Like a project (idempotent, returns the new count)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjectsSlugLike","tags":["Projects"],"summary":"Remove your like (idempotent)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/logo":{"post":{"operationId":"postProjectsSlugLogo","tags":["Projects"],"summary":"Upload a logo (multipart field file; JPEG, PNG or WebP, 5 MB)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","contentEncoding":"binary"}},"additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjectsSlugLogo","tags":["Projects"],"summary":"Remove the logo","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/members":{"get":{"operationId":"getProjectsSlugMembers","tags":["Projects"],"summary":"The team including open invitations (owner)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postProjectsSlugMembers","tags":["Projects"],"summary":"Invite a developer by username (owner)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/memberInviteSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/transfer":{"post":{"operationId":"postProjectsSlugTransfer","tags":["Projects"],"summary":"Hand the project to an accepted member ({ username, confirm: the project's name }); you stay as maintainer (owner)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ownershipTransferSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/members/{username}":{"patch":{"operationId":"patchProjectsSlugMembersUsername","tags":["Projects"],"summary":"Change a member's role or title (owner)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/memberUpdateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjectsSlugMembersUsername","tags":["Projects"],"summary":"Remove a member or withdraw an invitation (owner), or leave with your own username","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/screenshots":{"post":{"operationId":"postProjectsSlugScreenshots","tags":["Projects"],"summary":"Add a screenshot (multipart field file; 8 MB, at most 8)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","contentEncoding":"binary"}},"additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/screenshots/{id}":{"patch":{"operationId":"patchProjectsSlugScreenshotsId","tags":["Projects"],"summary":"Set a screenshot's caption, used as alt text","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/screenshotCaptionSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjectsSlugScreenshotsId","tags":["Projects"],"summary":"Remove a screenshot","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/updates":{"get":{"operationId":"getProjectsSlugUpdates","tags":["Projects"],"summary":"The project's updates, newest first (page)","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]},"post":{"operationId":"postProjectsSlugUpdates","tags":["Projects"],"summary":"Post an update and notify followers (owner and maintainers)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/projectUpdateInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{slug}/updates/{id}":{"delete":{"operationId":"deleteProjectsSlugUpdatesId","tags":["Projects"],"summary":"Delete an update (owner and maintainers)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/suggestions":{"get":{"operationId":"getProjectsSuggestions","tags":["Projects"],"summary":"Search suggestions for projects, technologies and categories (q)","description":"Access: Public.","x-nexora-access":"public","parameters":[{"name":"q","in":"query","required":false,"schema":{"default":"","type":"string","minLength":1,"maxLength":100}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/me/team-invitations":{"get":{"operationId":"getMeTeamInvitations","tags":["Teams"],"summary":"Your open invitations to teams","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/teams":{"get":{"operationId":"getMeTeams","tags":["Teams"],"summary":"Teams you belong to, including private teams, with open task counts","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/teams":{"post":{"operationId":"postTeams","tags":["Teams"],"summary":"Create a team and its workspace (you become the owner)","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teamInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/teams/{slug}":{"get":{"operationId":"getTeamsSlug","tags":["Teams"],"summary":"A team, if you may see it. Private teams answer 404 outside the team","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]},"put":{"operationId":"putTeamsSlug","tags":["Teams"],"summary":"Replace name, description and visibility (owner and admins; visibility: owner)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teamInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteTeamsSlug","tags":["Teams"],"summary":"Delete a team, its requests and its workspace (owner)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/teams/{slug}/invitation":{"post":{"operationId":"postTeamsSlugInvitation","tags":["Teams"],"summary":"Accept your invitation to the team","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteTeamsSlugInvitation","tags":["Teams"],"summary":"Decline your invitation","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/teams/{slug}/members":{"get":{"operationId":"getTeamsSlugMembers","tags":["Teams"],"summary":"The team including open invitations (owner and admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postTeamsSlugMembers","tags":["Teams"],"summary":"Invite a developer by username (owner and admins; admins only as member)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teamInviteSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/teams/{slug}/transfer":{"post":{"operationId":"postTeamsSlugTransfer","tags":["Teams"],"summary":"Hand the team to an accepted member ({ username, confirm: the team's name }); you stay as admin (owner)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ownershipTransferSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/teams/{slug}/members/{username}":{"patch":{"operationId":"patchTeamsSlugMembersUsername","tags":["Teams"],"summary":"Change a member's role or title (admins manage members, the owner manages admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teamMemberUpdateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteTeamsSlugMembersUsername","tags":["Teams"],"summary":"Remove a member or withdraw an invitation, or leave with your own username","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/applications/{id}":{"patch":{"operationId":"patchApplicationsId","tags":["Team finder"],"summary":"status ACCEPTED or REJECTED (the team's managers) or WITHDRAWN (the applicant)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/applicationDecisionSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/collaboration-requests":{"get":{"operationId":"getCollaborationRequests","tags":["Team finder"],"summary":"The team finder: q, tech, role, type, status (default OPEN), page","description":"Access: Public.","x-nexora-access":"public","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"tech","in":"query","required":false,"schema":{"type":"string","maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},{"name":"role","in":"query","required":false,"schema":{"type":"string","enum":["FRONTEND","BACKEND","FULL_STACK","MOBILE","GAME","DESIGN","DEVOPS","DATA","SECURITY","QA","DOCUMENTATION","CONTRIBUTOR","OTHER"]}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["OPEN_SOURCE","HOBBY","STARTUP","PAID","HACKATHON"]}},{"name":"status","in":"query","required":false,"schema":{"default":"OPEN","type":"string","enum":["OPEN","PAUSED","FILLED","CLOSED"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]},"post":{"operationId":"postCollaborationRequests","tags":["Team finder"],"summary":"Post a request for a team you own or administer","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/requestCreateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/collaboration-requests/{id}":{"get":{"operationId":"getCollaborationRequestsId","tags":["Team finder"],"summary":"A request, if its team is visible to you","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]},"put":{"operationId":"putCollaborationRequestsId","tags":["Team finder"],"summary":"Replace a request's fields and status (the team's owner and admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/requestUpdateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteCollaborationRequestsId","tags":["Team finder"],"summary":"Delete a request; pending applications are answered as not accepted","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/collaboration-requests/{id}/applications":{"get":{"operationId":"getCollaborationRequestsIdApplications","tags":["Team finder"],"summary":"Applications to a request (the team's owner and admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postCollaborationRequestsIdApplications","tags":["Team finder"],"summary":"Apply with a message","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/applicationInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/applications":{"get":{"operationId":"getMeApplications","tags":["Team finder"],"summary":"Your applications to collaboration requests and their status","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/tasks":{"get":{"operationId":"getMeTasks","tags":["Workspaces"],"summary":"Open tasks assigned to you across your teams","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}":{"get":{"operationId":"getWorkspacesSlug","tags":["Workspaces"],"summary":"A team's workspace overview: task counts, members, linked project (members only)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"putWorkspacesSlug","tags":["Workspaces"],"summary":"Overview text and linked project (owner and admins; you must own the project)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workspaceUpdateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/activity":{"get":{"operationId":"getWorkspacesSlugActivity","tags":["Workspaces"],"summary":"The activity feed, newest first (page)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/discussions":{"get":{"operationId":"getWorkspacesSlugDiscussions","tags":["Workspaces"],"summary":"Discussions, most recently active first (page)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postWorkspacesSlugDiscussions","tags":["Workspaces"],"summary":"Start a discussion","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/discussionInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/discussions/{id}":{"get":{"operationId":"getWorkspacesSlugDiscussionsId","tags":["Workspaces"],"summary":"A discussion with its replies","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteWorkspacesSlugDiscussionsId","tags":["Workspaces"],"summary":"Delete a discussion (its author and the team's admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/discussions/{id}/replies":{"post":{"operationId":"postWorkspacesSlugDiscussionsIdReplies","tags":["Workspaces"],"summary":"Reply to a discussion","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/replyInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/discussions/{id}/replies/{replyId}":{"delete":{"operationId":"deleteWorkspacesSlugDiscussionsIdRepliesReplyId","tags":["Workspaces"],"summary":"Delete a reply (its author and the team's admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"replyId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/docs":{"get":{"operationId":"getWorkspacesSlugDocs","tags":["Workspaces"],"summary":"Documentation pages, recently edited first","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postWorkspacesSlugDocs","tags":["Workspaces"],"summary":"Write a page","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/documentInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/docs/{id}":{"get":{"operationId":"getWorkspacesSlugDocsId","tags":["Workspaces"],"summary":"A page","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"putWorkspacesSlugDocsId","tags":["Workspaces"],"summary":"Replace a page's title and text","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/documentInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteWorkspacesSlugDocsId","tags":["Workspaces"],"summary":"Delete a page (its author and the team's admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/files":{"get":{"operationId":"getWorkspacesSlugFiles","tags":["Workspaces"],"summary":"Every file in the workspace","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postWorkspacesSlugFiles","tags":["Workspaces"],"summary":"Upload a file (multipart fields file and optional taskId; 10 MB; images, PDF, ZIP, text)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","contentEncoding":"binary"}},"additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/files/{id}":{"get":{"operationId":"getWorkspacesSlugFilesId","tags":["Workspaces"],"summary":"Download a file (members only, always as an attachment)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The file.","content":{"application/octet-stream":{"schema":{"type":"string","contentEncoding":"binary"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteWorkspacesSlugFilesId","tags":["Workspaces"],"summary":"Delete a file (its uploader and the team's admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/milestones":{"get":{"operationId":"getWorkspacesSlugMilestones","tags":["Workspaces"],"summary":"Milestones with task progress","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postWorkspacesSlugMilestones","tags":["Workspaces"],"summary":"Create a milestone (owner and admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/milestoneInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/milestones/{id}":{"put":{"operationId":"putWorkspacesSlugMilestonesId","tags":["Workspaces"],"summary":"Replace a milestone, including completed (owner and admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/milestoneInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteWorkspacesSlugMilestonesId","tags":["Workspaces"],"summary":"Delete a milestone; its tasks stay (owner and admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/tasks":{"get":{"operationId":"getWorkspacesSlugTasks","tags":["Workspaces"],"summary":"Every task on the board","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postWorkspacesSlugTasks","tags":["Workspaces"],"summary":"Create a task: title, description, status, assignee, milestoneId, dueAt","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/taskCreateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/tasks/{id}":{"get":{"operationId":"getWorkspacesSlugTasksId","tags":["Workspaces"],"summary":"A task with its files","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"patchWorkspacesSlugTasksId","tags":["Workspaces"],"summary":"Change only the fields you send","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/taskUpdateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteWorkspacesSlugTasksId","tags":["Workspaces"],"summary":"Delete a task (its creator and the team's admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/tasks/{id}/comments":{"get":{"operationId":"getWorkspacesSlugTasksIdComments","tags":["Workspaces"],"summary":"Comments on a task, oldest first","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postWorkspacesSlugTasksIdComments","tags":["Workspaces"],"summary":"Comment on a task","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workspaceCommentSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/tasks/{id}/comments/{commentId}":{"patch":{"operationId":"patchWorkspacesSlugTasksIdCommentsCommentId","tags":["Workspaces"],"summary":"Edit your comment","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workspaceCommentSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteWorkspacesSlugTasksIdCommentsCommentId","tags":["Workspaces"],"summary":"Delete a comment (its author and the team's admins)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{slug}/tasks/{id}/move":{"post":{"operationId":"postWorkspacesSlugTasksIdMove","tags":["Workspaces"],"summary":"Move a task to a column and position: status, index","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/taskMoveSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/hashtags/trending":{"get":{"operationId":"getHashtagsTrending","tags":["Community"],"summary":"Hashtags used by the most different people in the last 7 days","description":"Access: Public.","x-nexora-access":"public","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/me/saved-posts":{"get":{"operationId":"getMeSavedPosts","tags":["Community"],"summary":"Your saved posts (page). Only you can list them","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/posts":{"get":{"operationId":"getPosts","tags":["Community"],"summary":"Community feeds: feed (discover or following), q, tag, kind, author, sort (newest or top), page","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"feed","in":"query","required":false,"schema":{"default":"discover","type":"string","enum":["discover","following"]}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"tag","in":"query","required":false,"schema":{"type":"string"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["TEXT","ANNOUNCEMENT","QUESTION","TUTORIAL","SNIPPET","UPDATE","SCREENSHOT"]}},{"name":"author","in":"query","required":false,"schema":{"type":"string","minLength":3,"maxLength":32,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"}},{"name":"sort","in":"query","required":false,"schema":{"default":"newest","type":"string","enum":["newest","top"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[{},{"session":[]}]},"post":{"operationId":"postPosts","tags":["Community"],"summary":"Publish a post: kind, title, body, code, codeLanguage, projectSlug. Hashtags and mentions come from the text","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/postInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/posts/{id}":{"get":{"operationId":"getPostsId","tags":["Community"],"summary":"A post","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]},"put":{"operationId":"putPostsId","tags":["Community"],"summary":"Replace a post's fields (its author)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/postInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deletePostsId","tags":["Community"],"summary":"Delete a post (its author; moderators and admins can remove any)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/posts/{id}/bookmark":{"post":{"operationId":"postPostsIdBookmark","tags":["Community"],"summary":"Save a post (idempotent)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deletePostsIdBookmark","tags":["Community"],"summary":"Remove it from your saved posts (idempotent)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/posts/{id}/comments":{"get":{"operationId":"getPostsIdComments","tags":["Community"],"summary":"Comment threads, oldest first, with replies (page)","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]},"post":{"operationId":"postPostsIdComments","tags":["Community"],"summary":"Comment, or reply with parentId","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/postCommentInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/posts/{id}/comments/{commentId}":{"patch":{"operationId":"patchPostsIdCommentsCommentId","tags":["Community"],"summary":"Edit your comment","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/postCommentEditSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deletePostsIdCommentsCommentId","tags":["Community"],"summary":"Delete your comment; the post's author and moderators can delete any","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/posts/{id}/images":{"post":{"operationId":"postPostsIdImages","tags":["Community"],"summary":"Add an image to your post (multipart fields file and caption; JPEG, PNG or WebP, 8 MB, at most 4)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","contentEncoding":"binary"}},"additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/posts/{id}/images/{imageId}":{"patch":{"operationId":"patchPostsIdImagesImageId","tags":["Community"],"summary":"Set an image's caption, used as alt text (the author)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"imageId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/postImageCaptionSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deletePostsIdImagesImageId","tags":["Community"],"summary":"Remove an image (the author)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"imageId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/posts/{id}/like":{"post":{"operationId":"postPostsIdLike","tags":["Community"],"summary":"Like a post (idempotent, returns the new count)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deletePostsIdLike","tags":["Community"],"summary":"Remove your like (idempotent)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/notification-preferences":{"get":{"operationId":"getMeNotificationPreferences","tags":["Notifications"],"summary":"Which notification types are on","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"putMeNotificationPreferences","tags":["Notifications"],"summary":"Replace every preference: { preferences: { TYPE: { inApp, email: OFF | INSTANT | DAILY } } } (a boolean sets the app alone)","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/notificationPreferencesSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notifications/unsubscribe":{"post":{"operationId":"postNotificationsUnsubscribe","tags":["Notifications"],"summary":"One-click unsubscribe from notification mails (?token=&type=; RFC 8058). Without type, all mails stop","description":"Access: Public.","x-nexora-access":"public","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{20,100}$"}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["NEW_FOLLOWER","NEW_MESSAGE","MENTION","POST_LIKE","POST_COMMENT","COMMENT_REPLY","PROJECT_LIKE","PROJECT_COMMENT","PROJECT_UPDATE","PROJECT_INVITATION","COLLABORATION_REQUEST","APPLICATION_UPDATE","TEAM_INVITATION","WORKSPACE_ACTIVITY","ACHIEVEMENT_EARNED","CONTENT_REMOVED","OWNERSHIP_TRANSFERRED","CONVERSATION_ADDED"]}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[]}},"/me/unread":{"get":{"operationId":"getMeUnread","tags":["Notifications"],"summary":"Unread notifications and unread messages, for badges","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notifications":{"get":{"operationId":"getNotifications","tags":["Notifications"],"summary":"Your notifications, newest first (page, unread=1), with unreadCount","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}},{"name":"unread","in":"query","required":false,"schema":{"type":["string","boolean"]}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notifications/read":{"post":{"operationId":"postNotificationsRead","tags":["Notifications"],"summary":"Mark notifications read ({ ids } or { all: true }), or unread with read: false","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/notificationReadSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/conversations":{"get":{"operationId":"getConversations","tags":["Messages"],"summary":"Your conversations with messages, most recent first, with unread counts (page)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postConversations","tags":["Messages"],"summary":"Open your direct conversation with someone ({ username }); their privacy settings decide who may","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationStartSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/conversations/groups":{"post":{"operationId":"postConversationsGroups","tags":["Messages"],"summary":"Start a group conversation ({ title, usernames }); up to 20 people, their message settings decide who can be added","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/groupCreateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/conversations/{id}":{"get":{"operationId":"getConversationsId","tags":["Messages"],"summary":"A conversation with its members, members only; everyone else gets 404","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"patchConversationsId","tags":["Messages"],"summary":"Rename a group ({ title }); the person who manages it","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/groupUpdateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/conversations/{id}/members":{"post":{"operationId":"postConversationsIdMembers","tags":["Messages"],"summary":"Add people to a group ({ usernames }); the person who manages it","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/groupMembersAddSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/conversations/{id}/members/{username}":{"delete":{"operationId":"deleteConversationsIdMembersUsername","tags":["Messages"],"summary":"Leave a group (your username) or remove someone (the person who manages it)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/conversations/{id}/attachments":{"post":{"operationId":"postConversationsIdAttachments","tags":["Messages"],"summary":"Send a file as a message (multipart fields file and optional body; 10 MB; images, PDF, ZIP, text)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","contentEncoding":"binary"}},"additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/conversations/{id}/attachments/{attachmentId}":{"get":{"operationId":"getConversationsIdAttachmentsAttachmentId","tags":["Messages"],"summary":"Download a file (members only, always as an attachment)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"attachmentId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The file.","content":{"application/octet-stream":{"schema":{"type":"string","contentEncoding":"binary"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/conversations/{id}/messages":{"get":{"operationId":"getConversationsIdMessages","tags":["Messages"],"summary":"History, oldest first: the latest page, ?before=<id> for older, ?after=<id> for newer","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"before","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"after","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postConversationsIdMessages","tags":["Messages"],"summary":"Send a message ({ body })","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/messageInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/conversations/{id}/messages/{messageId}":{"get":{"operationId":"getConversationsIdMessagesMessageId","tags":["Messages"],"summary":"One message","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"messageId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteConversationsIdMessagesMessageId","tags":["Messages"],"summary":"Delete your own message and its files","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"messageId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/conversations/{id}/read":{"post":{"operationId":"postConversationsIdRead","tags":["Messages"],"summary":"Mark the conversation read; the other person sees a read receipt","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/messages/search":{"get":{"operationId":"getMessagesSearch","tags":["Messages"],"summary":"Search your own messages (q, at least 2 characters)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"q","in":"query","required":false,"schema":{"default":"","type":"string","maxLength":100}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/{username}/messaging":{"get":{"operationId":"getUsersUsernameMessaging","tags":["Messages"],"summary":"Whether you may message a developer, and your existing conversation","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ai/conversations":{"get":{"operationId":"getAiConversations","tags":["NEXORA AI"],"summary":"Your AI conversations, most recent first (page). Nobody else can list or open them","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postAiConversations","tags":["NEXORA AI"],"summary":"Start a conversation ({ title?, projectSlug? }); a project must be shared with NEXORA AI first","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aiConversationCreateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ai/conversations/{id}":{"get":{"operationId":"getAiConversationsId","tags":["NEXORA AI"],"summary":"One of your conversations with all messages","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"patchAiConversationsId","tags":["NEXORA AI"],"summary":"Rename ({ title }) or attach and detach a shared project ({ projectSlug }, null detaches)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aiConversationUpdateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteAiConversationsId","tags":["NEXORA AI"],"summary":"Delete a conversation and its messages","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ai/conversations/{id}/messages":{"post":{"operationId":"postAiConversationsIdMessages","tags":["NEXORA AI"],"summary":"Send a message ({ content }); the answer streams back as NDJSON","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aiMessageInputSchema"}}}},"responses":{"200":{"description":"A stream of JSON lines: user, delta…, then done or error.","content":{"application/x-ndjson":{"schema":{"type":"string"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ai/status":{"get":{"operationId":"getAiStatus","tags":["NEXORA AI"],"summary":"Whether NEXORA AI is configured on this server, and your usage today against the limits","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/ai/project-access":{"get":{"operationId":"getMeAiProjectAccess","tags":["NEXORA AI"],"summary":"Projects you own or maintain and whether NEXORA AI may read each one","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/ai/project-access/{slug}":{"get":{"operationId":"getMeAiProjectAccessSlug","tags":["NEXORA AI"],"summary":"Exactly the text NEXORA AI receives about a project","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"putMeAiProjectAccessSlug","tags":["NEXORA AI"],"summary":"Allow NEXORA AI to read a project (owner and maintainers)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteMeAiProjectAccessSlug","tags":["NEXORA AI"],"summary":"Stop sharing a project; it is detached from all your conversations","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/challenges":{"get":{"operationId":"getChallenges","tags":["Challenges"],"summary":"Coding challenges: q, difficulty, language, status (solved or unsolved), sort (difficulty, newest, popular), page","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"q","in":"query","required":false,"schema":{"default":"","type":"string","maxLength":100}},{"name":"difficulty","in":"query","required":false,"schema":{"type":"string","enum":["EASY","MEDIUM","HARD","EXPERT"]}},{"name":"language","in":"query","required":false,"schema":{"type":"string","enum":["javascript","python"]}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["solved","unsolved"]}},{"name":"sort","in":"query","required":false,"schema":{"default":"difficulty","type":"string","enum":["difficulty","newest","popular"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[{},{"session":[]}]}},"/challenges/{slug}":{"get":{"operationId":"getChallengesSlug","tags":["Challenges"],"summary":"A challenge with statement, starter code and sample tests; hidden tests are only counted","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]}},"/challenges/{slug}/submissions":{"get":{"operationId":"getChallengesSlugSubmissions","tags":["Challenges"],"summary":"Your submissions to a challenge, newest first (page)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postChallengesSlugSubmissions","tags":["Challenges"],"summary":"Submit a solution ({ language, code }); it is queued for the sandbox","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/submissionInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/challenges/leaderboard":{"get":{"operationId":"getChallengesLeaderboard","tags":["Challenges"],"summary":"Challenge points per person (period: all or 30d, page) and your own standing","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"period","in":"query","required":false,"schema":{"default":"all","type":"string","enum":["all","30d"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[{},{"session":[]}]}},"/submissions/{id}":{"get":{"operationId":"getSubmissionsId","tags":["Challenges"],"summary":"One of your submissions with code and per-test results; others answer 404","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/achievements":{"get":{"operationId":"getAchievements","tags":["Reputation"],"summary":"Every achievement with its rule, how many people earned it and whether you did","description":"Access: Public, more when signed in.","x-nexora-access":"optional","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[{},{"session":[]}]}},"/me/reputation":{"get":{"operationId":"getMeReputation","tags":["Reputation"],"summary":"Your reputation, its breakdown and your achievements","description":"Access: Verified account.","x-nexora-access":"verified","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/{username}/reputation":{"get":{"operationId":"getUsersUsernameReputation","tags":["Reputation"],"summary":"A developer's reputation and achievements; null when they hide their activity","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]}},"/analytics/views":{"post":{"operationId":"postAnalyticsViews","tags":["Analytics"],"summary":"Count a view of a public profile ({ type: PROFILE, id: username }) or project ({ type: PROJECT, id: slug }), once per viewer and day","description":"Access: Public, more when signed in.","x-nexora-access":"optional","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pageViewInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]}},"/me/analytics":{"get":{"operationId":"getMeAnalytics","tags":["Analytics"],"summary":"Your developer analytics for the last 7, 30 or 90 days (days): views, followers, project interactions. Only counts, never who","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"days","in":"query","required":false,"schema":{"default":30,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/analytics/projects/{slug}":{"get":{"operationId":"getMeAnalyticsProjectsSlug","tags":["Analytics"],"summary":"One project's numbers per day (owners and maintainers; days: 7, 30 or 90)","description":"Access: Verified account.","x-nexora-access":"verified","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"days","in":"query","required":false,"schema":{"default":30,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reports":{"post":{"operationId":"postReports","tags":["Moderation"],"summary":"Report a project or team (targetId: slug), or a project comment, collaboration request, post, post comment or received message (targetId: id)","description":"Access: Verified account.","x-nexora-access":"verified","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/reportInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The email address is not verified, or this is not yours to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/abuse":{"get":{"operationId":"getAdminAbuse","tags":["Administration"],"summary":"Abuse signals from recorded events: failed sign-ins, registrations per address, refused requests, reports and writing volume. window: 24h or 7d (admins)","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"window","in":"query","required":false,"schema":{"default":"24h","type":"string","enum":["24h","7d"]}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/audit-log":{"get":{"operationId":"getAdminAuditLog","tags":["Administration"],"summary":"The audit log, newest first: action (prefix), actor (username), targetId, page (admins)","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"action","in":"query","required":false,"schema":{"type":"string","maxLength":60,"pattern":"^[a-z_.]*$"}},{"name":"actor","in":"query","required":false,"schema":{"type":"string","maxLength":40,"pattern":"^[a-z0-9-]*$"}},{"name":"targetId","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/content/{type}/{id}/removal":{"post":{"operationId":"postAdminContentTypeIdRemoval","tags":["Administration"],"summary":"Remove content as a moderator ({ reason }). type: project, post, team, request, project-comment, post-comment, message. The author is told why","description":"Access: Moderators and admins.","x-nexora-access":"staff","parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/contentRemovalSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteAdminContentTypeIdRemoval","tags":["Administration"],"summary":"Restore a project, post, team or request a moderator removed","description":"Access: Moderators and admins.","x-nexora-access":"staff","parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/overview":{"get":{"operationId":"getAdminOverview","tags":["Administration"],"summary":"Live counts for the admin start page and what you may do in the admin area (moderators and admins)","description":"Access: Moderators and admins.","x-nexora-access":"staff","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/posts":{"get":{"operationId":"getAdminPosts","tags":["Administration"],"summary":"Community posts for moderation: q, state (public, removed), page","description":"Access: Moderators and admins.","x-nexora-access":"staff","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"state","in":"query","required":false,"schema":{"default":"public","type":"string","enum":["public","removed","featured"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/projects":{"get":{"operationId":"getAdminProjects","tags":["Administration"],"summary":"Projects for moderation: q, state (public, featured, removed), page. Private projects are never listed","description":"Access: Moderators and admins.","x-nexora-access":"staff","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"state","in":"query","required":false,"schema":{"default":"public","type":"string","enum":["public","removed","featured"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/reports":{"get":{"operationId":"getAdminReports","tags":["Administration"],"summary":"Reports grouped by what they are about: queue (open or closed), type, page","description":"Access: Moderators and admins.","x-nexora-access":"staff","parameters":[{"name":"queue","in":"query","required":false,"schema":{"default":"open","type":"string","enum":["open","closed"]}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["USER","PROJECT","PROJECT_COMMENT","POST","POST_COMMENT","TEAM","COLLABORATION_REQUEST","MESSAGE"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/reports/{type}/{id}":{"get":{"operationId":"getAdminReportsTypeId","tags":["Administration"],"summary":"Every report about one target, the reported content as stored, and earlier decisions. type: user, project, project-comment, post, post-comment, team, collaboration-request, message","description":"Access: Moderators and admins.","x-nexora-access":"staff","parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postAdminReportsTypeId","tags":["Administration"],"summary":"Decide every unfinished report about the target: REVIEW, RESOLVE (optionally removeContent and suspendAuthor, with a note) or DISMISS","description":"Access: Moderators and admins.","x-nexora-access":"staff","parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/reportDecisionSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/legal":{"get":{"operationId":"getAdminLegal","tags":["Administration"],"summary":"The operator details for the legal pages and which are missing (admins)","description":"Access: Admins.","x-nexora-access":"admin","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"putAdminLegal","tags":["Administration"],"summary":"Replace the operator details (admins). Every changed field is audit-logged","description":"Access: Admins.","x-nexora-access":"admin","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/operatorSettingsSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/waitlist":{"get":{"operationId":"getAdminWaitlist","tags":["Administration"],"summary":"Waitlist counts (confirmed, unconfirmed, invited, registered) and confirmations per day for 30 days (admins)","description":"Access: Admins.","x-nexora-access":"admin","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/waitlist/answers":{"get":{"operationId":"getAdminWaitlistAnswers","tags":["Administration"],"summary":"Confirmed entries with their answers, newest first: q, page (admins)","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/waitlist/export":{"get":{"operationId":"getAdminWaitlistExport","tags":["Administration"],"summary":"Every confirmed entry with its proof of consent as CSV (admins, audit-logged)","description":"Access: Admins.","x-nexora-access":"admin","responses":{"200":{"description":"The file.","content":{"application/octet-stream":{"schema":{"type":"string","contentEncoding":"binary"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/waitlist/invitations":{"post":{"operationId":"postAdminWaitlistInvitations","tags":["Administration"],"summary":"Invite the next { count } confirmed people in the order they confirmed; existing accounts are let in (admins)","description":"Access: Admins.","x-nexora-access":"admin","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitlistInviteSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/challenges":{"get":{"operationId":"getAdminChallenges","tags":["Administration"],"summary":"Every challenge with its state (draft, published, reference) and whether it is verified (admins)","description":"Access: Admins.","x-nexora-access":"admin","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postAdminChallenges","tags":["Administration"],"summary":"Write a new challenge with tests and reference solutions; it starts as a draft (admins)","description":"Access: Admins.","x-nexora-access":"admin","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/adminChallengeCreateSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/challenges/{slug}":{"get":{"operationId":"getAdminChallengesSlug","tags":["Administration"],"summary":"A challenge with all tests, reference solutions and the latest sandbox runs (admins)","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"putAdminChallengesSlug","tags":["Administration"],"summary":"Replace a challenge; while published only text and starter code may change (admins)","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/adminChallengeSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteAdminChallengesSlug","tags":["Administration"],"summary":"Delete a draft nobody submitted to (admins)","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/challenges/{slug}/verify":{"post":{"operationId":"postAdminChallengesSlugVerify","tags":["Administration"],"summary":"Run the reference solutions against the saved tests in the sandbox (admins)","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/challenges/{slug}/publish":{"post":{"operationId":"postAdminChallengesSlugPublish","tags":["Administration"],"summary":"Publish; refused until every language's reference solution passed exactly the saved tests (admins)","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteAdminChallengesSlugPublish","tags":["Administration"],"summary":"Unpublish; solves and submissions stay (admins)","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/settings":{"get":{"operationId":"getAdminSettings","tags":["Administration"],"summary":"The platform configuration and the server's own AI limits (admins)","description":"Access: Admins.","x-nexora-access":"admin","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"putAdminSettings","tags":["Administration"],"summary":"Replace the platform configuration (admins). Every changed setting is audit-logged","description":"Access: Admins.","x-nexora-access":"admin","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/platformSettingsSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/users":{"get":{"operationId":"getAdminUsers","tags":["Administration"],"summary":"Every account, newest first: q, role, status, page. Email addresses are shown and searchable for admins only","description":"Access: Moderators and admins.","x-nexora-access":"staff","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"role","in":"query","required":false,"schema":{"type":"string","enum":["USER","MODERATOR","ADMIN"]}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["ACTIVE","SUSPENDED","DELETED"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/users/{id}/early-access":{"put":{"operationId":"putAdminUsersIdEarlyAccess","tags":["Administration"],"summary":"Let a member in while the platform is in waitlist mode (admins)","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteAdminUsersIdEarlyAccess","tags":["Administration"],"summary":"Take a member's early access back (admins)","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/users/{id}":{"get":{"operationId":"getAdminUsersId","tags":["Administration"],"summary":"One account with its counts, moderation history and the actions you may take","description":"Access: Moderators and admins.","x-nexora-access":"staff","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/users/{id}/role":{"put":{"operationId":"putAdminUsersIdRole","tags":["Administration"],"summary":"Change someone's role ({ role }: USER, MODERATOR or ADMIN). Admins only, never their own","description":"Access: Admins.","x-nexora-access":"admin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/roleInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/users/{id}/suspension":{"post":{"operationId":"postAdminUsersIdSuspension","tags":["Administration"],"summary":"Suspend an account ({ reason }). Ends all its sessions and hides its content. Moderators suspend members, admins also moderators","description":"Access: Moderators and admins.","x-nexora-access":"staff","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/suspensionInputSchema"}}}},"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The input is invalid; error.fields names the fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteAdminUsersIdSuspension","tags":["Administration"],"summary":"Lift a suspension","description":"Access: Moderators and admins.","x-nexora-access":"staff","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Not signed in.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Your role does not allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited. See the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/skills":{"get":{"operationId":"getSkills","tags":["Reference data"],"summary":"All skills: languages, frameworks, tools and disciplines","description":"Access: Public.","x-nexora-access":"public","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/media/{key}":{"get":{"operationId":"getMediaKey","tags":["Media"],"summary":"An uploaded image","description":"Access: Public, more when signed in.","x-nexora-access":"optional","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The file.","content":{"application/octet-stream":{"schema":{"type":"string","contentEncoding":"binary"}}}},"404":{"description":"Does not exist, or is not visible to you.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{},{"session":[]}]}},"/health":{"get":{"operationId":"getHealth","tags":["Service"],"summary":"Service health","description":"Access: Public.","x-nexora-access":"public","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/openapi.json":{"get":{"operationId":"getOpenapi","tags":["Service"],"summary":"This API as an OpenAPI 3.1 document","description":"Access: Public.","x-nexora-access":"public","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/platform":{"get":{"operationId":"getPlatform","tags":["Service"],"summary":"Whether registration, community posting and challenge submissions are open, and the site announcement","description":"Access: Public.","x-nexora-access":"public","responses":{"200":{"description":"Success. The body is JSON.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}}}}