API Routes - Parameters and Body Requests
1. Achievements API (/achievements)
POST /achievements - Create achievement (admin only)
Body:
PATCH /achievements - Update achievement (admin only)
Body:
DELETE /achievements/:achievementId - Delete achievement (admin only)
Params: achievementId (string)
GET /achievements/user/:userId - Get user’s achievements
Params: userId (string)
GET /achievements/user/:userId/active - Get active achievements
Params: userId (string)
GET /achievements/user/:userId/type/:type - Get achievements by type
Params: userId (string), type (string)
GET /achievements/user/:userId/metadata - Get achievements by metadata
Params: userId (string)
Query:
GET /achievements/list - Get all achievements (admin only)
No params/body
GET /achievements/:achievementId - Get specific achievement (admin only)
Params: achievementId (string)
GET /achievements/showcase/:userId - Get showcase achievements
Params: userId (string)
PUT /achievements/showcase/:userId - Update showcase achievements
Params: userId (string)
Body:
DELETE /achievements/showcase/:userId - Delete showcase achievements
Params: userId (string)
GET /achievements/badges/active/:userId - Get active badges
Params: userId (string)
GET /achievements/badges/:userId - Get all badges
Params: userId (string)
POST /achievements/test/monthly-badges - Test monthly badge calculation
No params/body
2. Admin API (/admin)
PATCH /admin - Update admin (admin only)
Body:
POST /admin - Create admin (admin only)
Body:
DELETE /admin/:userSub - Delete admin (admin only)
Params: userSub (string)
GET /admin/list - Get all admins (admin only)
No params/body
GET /admin/:userId - Get admin by ID (admin only)
Params: userId (string)
GET /admin - Get current admin
No params/body
3. Combined Data API (/combined-data)
GET /combined-data/forRepo/allIntakes/:repoDataId
Params: repoDataId (string)
GET /combined-data/forTeam/allIntakes/:teamDataId
Params: teamDataId (string)
GET /combined-data/forRepo/allPushes/:repoDataId
Params: repoDataId (string)
GET /combined-data/forRepo/allWorkflows/:repoDataId
Params: repoDataId (string)
GET /combined-data/forRepo/allIssues/:repoDataId
Params: repoDataId (string)
GET /combined-data/forTeam/allPushes/:teamDataId
Params: teamDataId (string)
GET /combined-data/forTeam/allWorkflows/:teamDataId
Params: teamDataId (string)
GET /combined-data/forTeam/allIssues/:teamDataId
Params: teamDataId (string)
GET /combined-data/forUser/repoAndTeamData
No params/body
GET /combined-data/forUser/allIntakes
No params/body
GET /combined-data/paginated/forRepo/allIntakes/:repoDataId
Params: repoDataId (string)
Query:
GET /combined-data/paginated/forTeam/allIntakes/:teamDataId
Params: teamDataId (string)
Query: Same as above
GET /combined-data/git-api/orgMembers/forTeam/:teamDataId
Params: teamDataId (string)
GET /combined-data/git-api/repoActivity/:repoDataId
Params: repoDataId (string)
GET /combined-data/git-api/repoActivity/forTeam/:teamDataId
Params: teamDataId (string)
GET /combined-data/git-api/repoContributors/forTeam/:teamDataId
Params: teamDataId (string)
GET /combined-data/git-api/repoContributors/forRepo/:repoDataId
Params: repoDataId (string)
GET /combined-data/git-api/repoStats/allTime/:repoDataId
Params: repoDataId (string)
GET /combined-data/git-api/repoStats/statSelection/:repoDataId
Params: repoDataId (string)
GET /combined-data/git-api/repoStats/statSelection/:teamDataId
Params: teamDataId (string)
GET /combined-data/git-api/issueTiming/forRepo/:repoDataId
Params: repoDataId (string)
GET /combined-data/git-api/issueTiming/forTeam/:teamDataId
Params: teamDataId (string)
GET /combined-data/git-api/issueSummary/forTeam/:teamDataId
Params: teamDataId (string)
GET /combined-data/git-api/weekIssue/forTeam/:teamDataId
Params: teamDataId (string)
GET /combined-data/git-api/pulls/forTeam/:teamDataId
Params: teamDataId (string)
GET /combined-data/git-api/pulls/forRepo/:repoDataId
Params: repoDataId (string)
GET /combined-data/git-api/pulls/forRepo/:repoDataId/:pullNumber
Params: repoDataId (string), pullNumber (string)
GET /combined-data/git-api/branches/forRepo/:repoDataId
Params: repoDataId (string)
GET /combined-data/git-api/pullTiming/forRepo/:repoDataId
Params: repoDataId (string)
GET /combined-data/test/testingStats/forRepo/:repoDataId
Params: repoDataId (string)
4. Company Data API (/company-data)
POST /company-data - Create company
Body:
PATCH /company-data - Update company
Body:
DELETE /company-data/:companyDataId - Delete company
Params: companyDataId (string)
DELETE /company-data/removeTeam/:companyDataId - Remove team
Params: companyDataId (string)
Body:
GET /company-data/list - Get all companies
No params/body
GET /company-data/:companyDataId - Get company by ID
Params: companyDataId (string)
POST /company-data/addTeam - Add team to company
Body:
GET /company-data/getAllMembers/:companyDataId - Get all members
Params: companyDataId (string)
POST /company-data/addAdmin/:companyDataId - Add admin
Params: companyDataId (string)
Body:
POST /company-data/removeAdmin/:companyDataId - Remove admin
Params: companyDataId (string)
Body:
POST /company-data/updateCompanyName/:companyDataId - Update name
Params: companyDataId (string)
Body:
POST /company-data/inviteUsers/:companyDataId - Invite users
Params: companyDataId (string)
Body:
POST /company-data/acceptInvite/:companyDataId - Accept invite
Params: companyDataId (string)
Body:
POST /company-data/setApprovedDomains/:companyDataId - Set domains
Params: companyDataId (string)
Body:
POST /company-data/create-new-team/:companyDataId - Create team
Params: companyDataId (string)
Body:
5. GitHub API (/github-api)
GET /github-api/userTest/:user/:teamDataId - Test user API
Params: user (string), teamDataId (string)
GET /github-api/repoIssues/:teamDataId - Get repo issues
Params: teamDataId (string)
Body:
GET /github-api/getCommitData/:intakeDataId - Get commit data
Params: intakeDataId (string)
6. GitHub Intake API (/github-intake)
POST /github-intake/:repoDataId - Webhook handler
Params: repoDataId (string)
Body: GitHub webhook payload (varies by event type)
GET /github-intake/summarisePush/:githubIntakeId - Summarize push
Params: githubIntakeId (string)
GET /github-intake/getGeneralIntake/:githubIntakeId - Get intake data
Params: githubIntakeId (string)
GET /github-intake/testBedrock - Test Bedrock
No params/body
GET /github-intake/deleteSpecificIntakeTypes - Delete intake types
No params/body
POST /github-intake/testKnowledge/:teamDataId - Test knowledge base
Params: teamDataId (string)
Body:
POST /github-intake/knowledge_base_team/:teamDataId - Query knowledge base
Params: teamDataId (string)
Body:
7. Notification Data API (/notifications)
POST /notifications - Create notification (admin only)
Body:
PATCH /notifications - Update notification
Body:
DELETE /notifications/:notificationId - Delete notification
Params: notificationId (string)
GET /notifications/user/:userId - Get user notifications
Params: userId (string)
GET /notifications/user/:userId/unread - Get unread notifications
Params: userId (string)
PATCH /notifications/user/:userId/mark-all-read - Mark all as read
Params: userId (string)
GET /notifications/user/:userId/type/:type - Get by type
Params: userId (string), type (string)
GET /notifications/user/:userId/metadata - Get by metadata
Params: userId (string)
Query:
GET /notifications/list - Get all notifications (admin only)
No params/body
GET /notifications/:notificationId - Get specific notification (admin only)
Params: notificationId (string)
8. Repo Data API (/repo-data)
POST /repo-data/newRepo - Create repository
Body:
GET /repo-data/getTeamDataId/:repoDataId - Get team ID
Params: repoDataId (string)
PATCH /repo-data - Update repository
Body:
DELETE /repo-data/:repoDataId - Delete repository
Params: repoDataId (string)
GET /repo-data/list - Get all repositories
No params/body
GET /repo-data/:repoDataId - Get repository by ID
Params: repoDataId (string)
GET /repo-data/getRepoMembers/:repoDataId - Get repository members
Params: repoDataId (string)
GET /repo-data/getRepoData/:repoDataId - Get repository data
Params: repoDataId (string)
POST /repo-data/updateRepoName/:repoDataId - Update repository name
Params: repoDataId (string)
Body:
POST /repo-data/updateRepoDescription/:repoDataId - Update description
Params: repoDataId (string)
Body:
POST /repo-data/inviteUsers/:repoDataId - Invite users
Params: repoDataId (string)
Body:
POST /repo-data/acceptInvite/:teamDataId - Accept invite
Params: teamDataId (string)
POST /repo-data/removeInvite/:repoDataId - Remove invite
Params: repoDataId (string)
Body:
DELETE /repo-data/remove-user/:repoDataId - Remove user
Params: repoDataId (string)
Body:
9. Team Data API (/team-data)
PATCH /team-data - Update team
Body:
GET /team-data/list - Get all teams
No params/body
GET /team-data/:teamDataId - Get team by ID
Params: teamDataId (string)
POST /team-data/create-new-repo/:teamDataId - Create repository
Params: teamDataId (string)
Body:
POST /team-data/addRepo/:teamDataId - Add repository
Params: teamDataId (string)
Body:
GET /team-data/repos/:teamDataId - Get team repositories
Params: teamDataId (string)
POST /team-data/removeRepo/:teamDataId - Remove repository
Params: teamDataId (string)
Body:
GET /team-data/getTeamMembers/:teamDataId - Get team members
Params: teamDataId (string)
POST /team-data/updateUserRole/:teamDataId - Update user role
Params: teamDataId (string)
Body:
POST /team-data/removeUserFromTeam/:teamDataId - Remove user
Params: teamDataId (string)
Body:
POST /team-data/removeUser/:teamDataId - Remove user
Params: teamDataId (string)
Body:
POST /team-data/inviteUsers/:teamDataId - Invite users
Params: teamDataId (string)
Body:
POST /team-data/acceptInvite/:teamDataId - Accept invite
Params: teamDataId (string)
Body:
POST /team-data/setAIPrompt/:teamDataId - Set AI prompt
Params: teamDataId (string)
Body:
POST /team-data/removeInvite/:teamDataId - Remove invite
Params: teamDataId (string)
Body:
10. User Auth API (/user-auth)
GET /user-auth/getByUserSub - Get user auth
No params/body
11. User Data API (/user-data)
POST /user-data - Create user
Body:
PATCH /user-data/:userDataId - Update user
Params: userDataId (string)
Body:
PATCH /user-data/:userDataId/notification-preferences - Update preferences
Params: userDataId (string)
Body:
DELETE /user-data/deleteUserData/:userDataId - Delete user
Params: userDataId (string)
GET /user-data/list - Get all users
No params/body
GET /user-data/findUserInTeams/:userDataId - Find user in teams
Params: userDataId (string)
GET /user-data/getByUserSub/:userSub - Get user by sub
Params: userSub (string)
GET /user-data/getCurrentUser - Get current user
No params/body
POST /user-data/addUserSub/:userDataId - Add user sub
Params: userDataId (string)
POST /user-data/changeProfilePicture - Change profile picture
Body:
DELETE /user-data/deleteProfilePicture - Delete profile picture
No params/body
GET /user-data/doesUserExist - Check if user exists
No params/body
GET /user-data/getUserData/:userDataId - Get user data
Params: userDataId (string)
POST /user-data/updateBio - Update bio
Body:
POST /user-data/updateUserConfig - Update config
Body:
POST /user-data/setDefaultConfig - Set default config
No params/body
GET /user-data/searchUserByEmail/:teamDataId - Search by email
Params: teamDataId (string)
Body:
GET /user-data/searchUserByName/:teamDataId - Search by name
Params: teamDataId (string)
Body: