This reference describes the HTTP surface exposed by Identity Manager (LoopBack). The behaviors and implementations live in the api-models package, loaded as common/models in the API server—see Backend API and api-models. For auth headers, roles, and org context, see Authentication and access control.
Package versions: the api-models npm package carries its own semver (for example 2.x); Identity Manager pins a git submodule commit. When in doubt, trust the deployed API’s Swagger/explorer output over a static copy of this page.
Base URL: /api
Spec version: Swagger 2.0
Consumes: application/json, application/x-www-form-urlencoded, application/xml
Produces: application/json, application/xml, text/javascript
The API exposes 20 resource models. Each supports standard CRUD operations
via LoopBack plus custom remote methods.
| Resource | Description |
|---|
| Setting | App settings, error messages, WEPC integration, templates |
| SystemUser | Users, auth, enrollment, progress, billing, SSO |
| Organization | Organizations, members, courses, cloud config |
| Project | Projects (courses), modules, content, invitations, grading |
| ProjectModule | Modules within a project |
| ProjectModuleGroup | Module grouping |
| ProjectModuleContent | Content within modules |
| File | File uploads, downloads, management |
| SeatTransactions | Seat purchases and Stripe integration |
| SystemUserAccount | User account/seat balances |
| ProjectAccount | Project seat balances |
| SystemUserInvitation | Project invitations |
| SystemUserData | User-specific data records |
| SystemAccess | Principal-to-role mappings |
| ProjectStatistics | Project analytics data |
| Syllabus | Course syllabus |
| AuthProvider | SSO / auth provider configs |
| AuthProviderConnection | User-to-provider links |
| CloudConfig | Organization cloud/domain config |
| CloudTheme | Organization themes |
| Worker | Background jobs and scheduled tasks |
Most resources support these standard endpoints (replace {Model} with
the plural resource name, e.g. /settings, /SystemUsers, /Projects):
| Method | Path | Description |
|---|
POST | /{Model} | Create |
GET | /{Model} | Find all (with filter) |
GET | /{Model}/{id} | Find by ID |
PUT | /{Model}/{id} | Update attributes |
PATCH | /{Model}/{id} | Update attributes |
DELETE | /{Model}/{id} | Delete by ID |
GET | /{Model}/{id}/exists | Check existence |
HEAD | /{Model}/{id} | Check existence |
POST | /{Model}/{id}/replace | Replace instance |
PUT | /{Model} | Upsert |
PATCH | /{Model} | Upsert |
POST | /{Model}/replaceOrCreate | Replace or create |
POST | /{Model}/upsertWithWhere | Upsert with where |
GET | /{Model}/findOne | Find first match |
POST | /{Model}/update | Update all matching |
GET | /{Model}/count | Count matching |
POST | /{Model}/change-stream | Create change stream |
GET | /{Model}/change-stream | Create change stream |
Filter parameter: Most GET endpoints accept a filter query
parameter as a JSON-encoded string:
{"where":{"name":"foo"},"include":"relation","limit":10,"offset":0}
Base path: /settings
| Method | Path | Summary |
|---|
GET | /settings/status | Get API status |
GET | /settings/changelog | Get API changelog (?complete=true for full) |
GET | /settings/key/{key} | Get settings by key pattern (regex) |
GET | /settings/getErrorMessages | Get error messages from Webflow (?update=true) |
GET | /settings/fetchAuthProvider/{id} | Fetch auth provider public details |
GET | /settings/getTemplates | Get project templates across all organizations |
GET | /settings/viewPermissions | View all app permissions from JSON files |
GET | /settings/wepc/fetch | CORS-enabled fetch from WEPC (?url=...) |
GET | /settings/wepc/status | Check WEPC status |
GET | /settings/downloadTEMPfolder | Download temp folder archive |
POST | /settings/wepc/create | Create cloud object from Mathematica code |
POST | /settings/failedEmails | Email failure webhook (SendGrid) |
POST | /settings/deleteTestStudents | Delete test student accounts |
| Property | Type | Required |
|---|
id | ObjectID | auto |
key | string | no |
Base path: /SystemUsers
| Method | Path | Summary |
|---|
POST | /SystemUsers/login | Login with email/password |
POST | /SystemUsers/logout | Logout (invalidate token) |
GET | /SystemUsers/confirm | Confirm email verification |
POST | /SystemUsers/reset | Reset password |
POST | /SystemUsers/register | User registration |
GET | /SystemUsers/confirm-signup/{jwt} | Confirm signup via JWT |
POST | /SystemUsers/newDemoUser | Create demo user |
GET | /SystemUsers/currentUser | Get current logged-in user |
GET | /SystemUsers/firebaseToken | Get Firebase auth token |
GET | /SystemUsers/{id}/ssoToken/{app} | Get SSO token for 3rd party app |
GET | /SystemUsers/{id}/getUpdatePasswordUrl | Get password update URL |
POST | /SystemUsers/invite | Find or invite a user by email |
GET | /SystemUsers/emailExists/{email} | Check if email exists |
| Method | Path | Summary |
|---|
GET | /SystemUsers/{id}/createTempSession | Create temporary session |
GET | /SystemUsers/{id}/userSessions | Get user sessions |
GET | /SystemUsers/currentSession | Get current session |
GET | /SystemUsers/{id}/setTempSession | Set temp session |
GET | /SystemUsers/{id}/geolocation | Get user geolocation |
GET | /SystemUsers/{id}/redirect/{to} | Redirect with valid token |
| Method | Path | Summary |
|---|
POST | /SystemUsers/{id}/updateProfile | Update user profile |
POST | /SystemUsers/{id}/uploadProfileImage | Upload profile image |
POST | /SystemUsers/{id}/uploadPublicFile | Upload a public file |
| Method | Path | Summary |
|---|
POST | /SystemUsers/{id}/enrollToProject/{projectId} | Enroll to project |
POST | /SystemUsers/{id}/saveProgress/{projectId} | Save user progress |
POST | /SystemUsers/{id}/saveProgressGuest/{projectId} | Save guest progress |
POST | /SystemUsers/{id}/saveModuleProgress/{projectId}/{moduleId} | Save module progress |
GET | /SystemUsers/{id}/fetchEnrollmentProgress/{projectId} | Get enrollment progress |
POST | /SystemUsers/{id}/updateEnrollmentCurrentModule/{projectId} | Update current module |
| Method | Path | Summary |
|---|
POST | /SystemUsers/{id}/save-answer/{projectId}/{moduleId} | Save answers |
POST | /SystemUsers/{id}/archive-answer/{projectId}/{moduleId}/{contentId}/{questionId} | Archive an answer |
GET | /SystemUsers/{id}/archive-answers/{moduleId}/{questionId} | Get archived answers |
POST | /SystemUsers/{id}/submitModule/{projectId}/{moduleId}/{contentId} | Submit assessment module |
POST | /SystemUsers/{id}/submitSurvey/{projectId}/{moduleId}/{contentId} | Submit survey |
POST | /SystemUsers/{id}/calculateAssessmentResult/{projectId}/{moduleId}/{contentId} | Calculate assessment result |
GET | /SystemUsers/{id}/getModuleRemainingTime/{projectId}/{moduleId} | Get remaining time |
GET | /SystemUsers/{id}/getQuestionResult/{projectId}/{moduleId}/{questionId}/{answerId} | Get question result |
POST | /SystemUsers/{id}/retryQuestion/{projectId}/{moduleId}/{contentId}/{questionId} | Retry a question |
POST | /SystemUsers/{id}/unlock-module-group/{projectId}/{groupId}/{unlock} | Unlock module group |
| Method | Path | Summary |
|---|
POST | /SystemUsers/{id}/fetchReportCardData/{projectId}/{moduleId} | Fetch report card (user) |
POST | /SystemUsers/{guestId}/fetchReportCardDataGuest/{projectId}/{moduleId} | Fetch report card (guest) |
POST | /SystemUsers/{id}/save-test-report | Save test report |
GET | /SystemUsers/{id}/fetchPdfReport/{projectId}/{moduleId}/{contentId}/{cardId} | Fetch PDF report |
POST | /SystemUsers/{id}/fetchPdfReportGuest/{projectId}/{moduleId}/{contentId}/{cardId} | Fetch PDF report (guest) |
| Method | Path | Summary |
|---|
POST | /SystemUsers/{id}/upload-project-file/{projectId}/{type} | Upload project file |
POST | /SystemUsers/{id}/delete-project-file/{projectId} | Delete project file |
| Method | Path | Summary |
|---|
POST | /SystemUsers/{id}/updateBilling | Update billing info |
POST | /SystemUsers/{id}/createStripeOrderSession | Create Stripe order session |
POST | /SystemUsers/{id}/createStripeInvoiceSessionForUser/{projectId} | Buy course |
POST | /SystemUsers/{id}/createStripeInvoiceSessionForOrg | Order seats for org |
POST | /SystemUsers/updateSeatsForUser/{id} | Buy seats |
POST | /SystemUsers/{id}/transferSeatsToProject/{projectId} | Transfer seats to project |
POST | /SystemUsers/{id}/withdrawSeatsFromProject/{projectId} | Withdraw seats |
GET | /SystemUsers/{id}/getPaymentHistory | Get payment history |
GET | /SystemUsers/{id}/getInvoice/{paymentIntent} | Get invoice |
| Method | Path | Summary |
|---|
GET | /SystemUsers/{id}/getProjectInvitation/{projectId} | Get invitation status |
POST | /SystemUsers/{id}/acceptProjectInvitation/{projectId} | Accept invitation |
| Method | Path | Summary |
|---|
GET | /SystemUsers/{id}/linkedProjects | Get user’s linked projects |
GET | /SystemUsers/{id}/projectRoles | Get project roles |
GET | /SystemUsers/{id}/orgRoles | Get org roles |
GET | /SystemUsers/{id}/systemRoles | Get system roles |
GET | /SystemUsers/{id}/organizations | Get organizations |
GET | /SystemUsers/{id}/projects | Get projects |
POST | /SystemUsers/{id}/fbAuthToken/{organizationId} | Get Firebase token for org |
GET | /SystemUsers/{id}/checkOrgAccess/{organizationId} | Check org access |
POST | /SystemUsers/{id}/sendSupportMessage | Send support message |
POST | /SystemUsers/deleteBulk | Bulk delete users |
| Property | Type | Required |
|---|
id | ObjectID | auto |
firstName | string | yes |
lastName | string | no |
email | string | yes |
billing | object | no |
stripeCustomerId | string | no |
profile | object | no |
company | string | no |
type | string | no |
preferences | object | no |
phone | string | no |
secondaryEmails | string[] | no |
v2 | boolean | no |
demo | boolean | no |
selfRegistration | boolean | no |
invitation | object | no |
status | string | no |
lastAccess | date-time | no |
emailVerified | boolean | no |
createdAt | date-time | yes |
updatedAt | date-time | yes |
Base path: /Organizations
| Method | Path | Summary |
|---|
POST | /Organizations/{id}/cloneCourse/{projectId} | Clone a course |
GET | /Organizations/{id}/getTemplates | Get project templates |
GET | /Organizations/{id}/fetch-org-courses | Get organization courses |
GET | /Organizations/{id}/fetch-org-members | Fetch org members |
GET | /Organizations/{id}/relatedUsers | Get all related users |
POST | /Organizations/{id}/inviteUsers | Invite admin users |
POST | /Organizations/{id}/deleteAdminUsers | Delete admin users |
POST | /Organizations/{id}/sendInvitationEmail/{userId} | Send invitation email |
POST | /Organizations/{id}/setUserAccess/{userId}/{type} | Set user access level |
GET | /Organizations/{id}/validateEmail/{email} | Validate email |
POST | /Organizations/{id}/updateBilling | Update billing |
POST | /Organizations/{id}/updateCloudConfig | Update cloud config |
POST | /Organizations/{id}/databins/{databinId}/evaluate | Evaluate databin |
GET | /Organizations/{id}/{componentModel}/files | Get files by type |
POST | /Organizations/{id}/{componentModel}/uploadFile | Upload file |
POST | /Organizations/{id}/{componentModel}/updateFile/{fileId} | Update file |
| Relation | Type | Model |
|---|
systemUsers | hasMany (through) | SystemUser |
projects | hasMany | Project |
files | hasMany | File |
cloudConfig | hasOne | CloudConfig |
cloudThemes | hasMany | CloudTheme |
| Property | Type | Required |
|---|
id | ObjectID | auto |
name | string | yes |
shortName | string | no |
logo | object | no |
description | string | no |
styleDefinitions | string | no |
orgType | string | no |
website | string | no |
allowedEmails | string[] | no |
Base path: /Projects
| Method | Path | Summary |
|---|
POST | /Projects/{id}/content/{moduleId}/publish | Publish project content |
POST | /Projects/{id}/modules/{moduleId}/publish | Publish module content |
POST | /Projects/{id}/modules/{moduleId}/clone | Clone a module |
POST | /Projects/{id}/updateModuleOrder | Update module order |
POST | /Projects/{id}/createModuleNestedContent/{moduleId} | Create nested content |
POST | /Projects/{id}/updateModuleNestedContent/{moduleId}/{contentId}/{cardId} | Update nested content |
POST | /Projects/{id}/createCustomView | Create custom view |
GET | /Projects/{id}/listPublishedContentVersions/{moduleId} | List published versions |
POST | /Projects/{id}/restoreContentFromPublishedVersion/{moduleId}/{publishedContentId} | Restore version |
| Method | Path | Summary |
|---|
GET | /Projects/{id}/fetch-module-data/{moduleId} | Fetch module data |
GET | /Projects/{id}/fetchModuleContent/{moduleId}/{contentId} | Fetch module content |
GET | /Projects/{id}/fetchPollConfig/{moduleId}/{contentId} | Fetch poll config |
GET | /Projects/{id}/fetchPollContent/{moduleId}/{contentId} | Fetch poll content |
GET | /Projects/{id}/fetchPublicModuleData/{moduleId} | Public module data |
GET | /Projects/{id}/fetchPublicPollData/{moduleId} | Public poll data |
GET | /Projects/{id}/fetchPublicNestedPolls/{moduleId} | Public nested polls |
GET | /Projects/{id}/fetchPublicNestedCard/{moduleId}/{cardId} | Public nested card |
POST | /Projects/{id}/saveModuleInstance/{moduleId} | Save module instance |
POST | /Projects/{id}/setModuleRuntime/{moduleId} | Set module runtime |
POST | /Projects/{id}/update-module-status/{moduleId}/{status} | Update module status |
POST | /Projects/{id}/setModuleUserAssignment/{moduleId}/{userId} | Set user assignment |
| Method | Path | Summary |
|---|
POST | /Projects/{id}/publish-grades/{moduleId} | Publish grades |
POST | /Projects/{id}/schedule-publish-grades/{moduleId} | Schedule grade publish |
POST | /Projects/{id}/publish-final-grades | Publish final grades |
GET | /Projects/{id}/grading-scheme | Get grading scheme |
POST | /Projects/{id}/gradeQuestionAnswer/{moduleId}/{questionId}/{userId} | Grade a question |
POST | /Projects/{id}/assign-grader/{moduleId}/{userId} | Assign grader |
POST | /Projects/{id}/override-gradebook/{moduleId}/{userId} | Override gradebook |
POST | /Projects/{id}/calculate-re-grading/{moduleId}/{contentId}/{questionId} | Re-grade |
POST | /Projects/{id}/restore-module-grades/{moduleId}/{historyId} | Restore draft grades |
POST | /Projects/{id}/createQuestionSpecimen/{moduleId}/{contentId}/{questionId}/{userId} | Create question specimen |
| Method | Path | Summary |
|---|
GET | /Projects/{id}/fetch-project-statistics | Get project statistics |
GET | /Projects/{id}/fetch-results-overview | Get results overview |
GET | /Projects/{id}/fetch-assessment-statistics/{moduleId} | Assessment stats |
GET | /Projects/{id}/fetch-survey-statistics/{moduleId} | Survey stats |
GET | /Projects/{id}/fetch-poll-statistics/{moduleId} | Poll stats |
GET | /Projects/{id}/fetch-module-statistics/{moduleId} | Module stats |
POST | /Projects/{id}/calculate-project-statistics | Calculate statistics |
POST | /Projects/{id}/calculate-poll-computed-values/{moduleId} | Calculate poll values |
GET | /Projects/{id}/handleAnalyticsProcessing | Schedule analytics |
POST | /Projects/{id}/update-project-stats | Update project stats |
| Method | Path | Summary |
|---|
GET | /Projects/{id}/fetch-project-members | Fetch project members |
GET | /Projects/{id}/getUsers/{role} | Get users by role |
GET | /Projects/{id}/getStaffDetails | Get staff details |
GET | /Projects/{id}/usersWithRoles | Users with roles |
GET | /Projects/{id}/userRoles | Current user’s roles |
POST | /Projects/{id}/inviteStudents | Invite students |
POST | /Projects/{id}/inviteUsers | Invite users with roles |
POST | /Projects/{id}/cloudTaskInvites | Invite via Cloud Tasks |
POST | /Projects/{id}/resendInvitation/{userId} | Resend invitation |
POST | /Projects/{id}/sendInvitationReminder/{userId} | Send reminder |
POST | /Projects/{id}/scheduledInvitation/{userId} | Scheduled invitation |
POST | /Projects/{id}/retryUserInvitation/{userId} | Retry invitation |
GET | /Projects/{id}/getInvitations | Get all invitations |
POST | /Projects/{id}/deleteUsers | Delete users |
POST | /Projects/{id}/v2/deleteUsers | Delete users (v2) |
POST | /Projects/{id}/v2/setUserAccess/{userId}/{type} | Set user access (v2) |
GET | /Projects/{id}/v2/validateEmail/{email} | Validate email (v2) |
POST | /Projects/{id}/resetUserEnrollment/{userId}/{moduleId} | Reset enrollment |
| Method | Path | Summary |
|---|
POST | /Projects/{id}/fetchReportCardData/{moduleId} | Fetch report card data |
POST | /Projects/{id}/send-participant-report/{moduleId}/{userId} | Send participant report |
POST | /Projects/{id}/scheduleParticipantReports/{moduleId} | Schedule reports |
GET | /Projects/{id}/export-to-word/{moduleId} | Export to Word |
POST | /Projects/{id}/sendBulkEmail | Send bulk emails |
POST | /Projects/{id}/send-scheduled-email/{fn} | Send scheduled email |
POST | /Projects/{id}/module-notification/{moduleId} | Module notification |
| Method | Path | Summary |
|---|
POST | /Projects/{id}/file-manager/upload | Upload file |
GET | /Projects/{id}/file-manager/download/{fileId} | Download file |
GET | /Projects/{id}/file-manager/search | Search files |
POST | /Projects/{id}/file-manager/set-file-permissions/{fileId}/{state} | Set permissions |
GET | /Projects/{id}/{componentModel}/files | Get files by type |
POST | /Projects/{id}/{componentModel}/uploadFile | Upload file by type |
POST | /Projects/{id}/{componentModel}/updateFile/{fileId} | Update file |
POST | /Projects/{id}/copy-files/{targetProjectId} | Copy files |
GET | /Projects/{id}/downloadFileFromSource | Download from GCP |
| Method | Path | Summary |
|---|
POST | /Projects/{id}/signup | Course signup |
GET | /Projects/{id}/signup/sso | SSO signup |
GET | /Projects/{id}/publicInfo | Public course info |
POST | /Projects/{id}/firestoreAccess | Firestore access |
POST | /Projects/{id}/clone | Clone project |
POST | /Projects/{id}/createShortUrl | Create short URL |
POST | /Projects/{id}/deleteShortUrl | Delete short URL |
GET | /Projects/{id}/getSeatTransferHistory | Seat transfer history |
POST | /Projects/cleanExpiredTokens | Clean expired tokens |
POST | /Projects/{id}/event-actions/{moduleId}/store-to-databin | Store to databin |
GET | /Projects/{id}/migrate-no-submission-enrollments/{moduleId} | Migrate enrollments |
| Property | Type | Required |
|---|
id | ObjectID | auto |
name | string | yes |
externalId | string | no |
archive | boolean | no (default: false) |
noSequence | boolean | no |
payableInvitations | boolean | no |
seatPrice | number | no |
shortName | string | no |
moduleNumber | string | no |
styleDefinitions | string | no |
sylvaStyleDefinitions | string | no |
images | object | no |
modules | array | no |
semester | string | no |
organizationId | ObjectID | yes |
endDate | date-time | no |
createdAt | date-time | yes |
updatedAt | date-time | yes |
The role field in project access accepts:
student, owner, projectadmin, contentmanager, lecturer,
teachingassistant, reviewer, grader
Base path: /Files
| Method | Path | Summary |
|---|
GET | /Files/{id}/download | Download file (?type=stream|cdnUrl|cdnRedirect) |
GET | /Files/{componentModel}/files | Get files by type/subfolder |
POST | /Files/{componentModel}/uploadFile | Upload file |
POST | /Files/{componentModel}/updateFile/{fileId} | Update file |
POST | /Files/{id}/uploadFileAddon/{fileExt} | Upload addon format |
POST | /Files/parseBulkImportCSV | Parse bulk import CSV |
| Property | Type | Required |
|---|
id | ObjectID | auto |
name | string | no |
datatype | string | no |
size | number | no |
source | string | yes |
publicUrl | string | no |
status | number | no |
projectId | ObjectID | no |
componentId | ObjectID | no |
organizationId | ObjectID | no |
systemuserId | ObjectID | no |
componentModel | string | no |
container | string | no |
createdAt | date-time | yes |
updatedAt | date-time | yes |
Base path: /SeatTransactions
| Method | Path | Summary |
|---|
POST | /SeatTransactions/stripeSeatsOrderfulfilment | Stripe webhook for seat fulfilment |
GET | /SeatTransactions/createInvoice | Create PDF invoice |
| Property | Type | Required |
|---|
id | ObjectID | auto |
systemuserId | ObjectID | yes |
type | string | yes |
quantity | number | yes |
user_email | string | no |
projectId | ObjectID | no |
stripeSessionId | string | no |
stripeInvoiceId | string | no |
stripeInvoiceAmount | number | no |
stripeInvoiceCurrency | number | no |
createdAt | date-time | yes |
updatedAt | date-time | yes |
Base path: /Worker
Background processing and scheduled tasks. No CRUD — only remote methods.
| Method | Path | Summary |
|---|
POST | /Worker/processWebhookAnalytics | Process webhook analytics |
POST | /Worker/scheduled-cleanup | Run scheduled cleanup |
POST | /Worker/cleanupExpiredTokens | Clean expired tokens |
POST | /Worker/cleanupOrphanProjects | Clean orphan Firestore projects |
Base path: /ProjectModules
| Property | Type | Required |
|---|
id | ObjectID | auto |
name | string | yes |
description | string | no |
groupId | ObjectID | no |
externalId | string | no |
type | string | no |
draft | string | no |
content | array | no |
published | boolean | no (default: false) |
publishedContent | object | no |
projectId | ObjectID | yes |
ownerId | ObjectID | yes |
createdAt | date-time | yes |
updatedAt | date-time | yes |
Base path: /ProjectModuleGroups
| Property | Type | Required |
|---|
id | ObjectID | auto |
name | string | yes |
externalId | string | no |
projectId | ObjectID | no |
createdAt | date-time | yes |
updatedAt | date-time | yes |
Base path: /ProjectModuleContents
| Property | Type | Required |
|---|
id | ObjectID | auto |
projectId | ObjectID | yes |
moduleId | ObjectID | yes |
ownerId | ObjectID | no |
publishedBy | ObjectID | no |
globalAssets | array | no |
config | object | no |
data | array | no |
hash | string | no (default: “0”) |
createdAt | date-time | yes |
updatedAt | date-time | yes |
| Property | Type | Required |
|---|
id | ObjectID | auto |
systemuserId | ObjectID | yes |
seats | number | yes |
| Property | Type | Required |
|---|
id | ObjectID | auto |
projectId | ObjectID | yes |
seats | number | yes |
| Property | Type | Required |
|---|
id | ObjectID | auto |
systemuserId | ObjectID | yes |
projectId | ObjectID | no |
accepted | boolean | no |
payable | boolean | no |
paid | boolean | no |
price | number | no |
invoiceId | string | no |
| Property | Type | Required |
|---|
id | ObjectID | auto |
entityId | ObjectID | yes |
type | string | yes |
assessmentId | string | no |
lectureId | string | no |
projectId | ObjectID | no |
Maps principals (users, apps) to roles.
| Property | Type | Required |
|---|
id | ObjectID | auto |
roleId | string | no |
principalType | string | no |
principalId | ObjectID | no |
| Property | Type | Required |
|---|
id | ObjectID | auto |
type | string | yes |
data | object | yes |
status | string | no |
projectId | ObjectID | yes |
ownerId | ObjectID | no |
| Property | Type | Required |
|---|
id | ObjectID | auto |
name | string | yes |
projectId | ObjectID | yes |
description | string | no |
website | string | no |
teachingStaff | array | no |
learningObjectives | array | no |
requirements | array | no |
assessment | array | no |
gradingPolicy | string | no |
gradingScheme | string | no |
schedule | array | no |
| Property | Type | Required |
|---|
id | ObjectID | auto |
label | string | yes |
strategy | string | yes |
| Property | Type | Required |
|---|
id | ObjectID | auto |
systemuserId | ObjectID | yes |
email | string | yes |
authproviderId | ObjectID | yes |
| Property | Type | Required |
|---|
id | ObjectID | auto |
domain | string | yes |
organizationId | ObjectID | yes |
allowedAuthProviders | array | no |
auth_provider | string | no |
options | object | no |
theme | object | no |
css | string | no |
| Property | Type | Required |
|---|
id | ObjectID | auto |
organizationId | ObjectID | yes |
label | string | no |
data | object | no |
Most endpoints require an access token obtained via POST /SystemUsers/login.
Pass the token as the Authorization header or access_token query parameter.
Public endpoints (no auth required):
GET /settings/status
GET /settings/fetchAuthProvider/{id}
GET /Projects/{id}/publicInfo
GET /Projects/{id}/fetchPublicPollData/{moduleId}
GET /Projects/{id}/fetchPublicModuleData/{moduleId}
POST /Projects/{id}/signup
POST /SystemUsers/register
GET /SystemUsers/confirm