MagicBox REST API Documentation

Complete API definitions generated from the Swagger catalog on API Explorer.

Base URL: <BASE-URL> (environment-specific)

Auth: pass ?token=YOUR_API_TOKEN on secured requests.

All Environments API Version 2.0 141 Endpoints 10 Resource Groups 66 JSON Request Bodies JSON / XML 15 Jul 2026

Authentication

Request a token from MagicBox support, or generate one via POST /authenticate/v1.0/generateToken. In the explorer, paste the token and click Update.

Publisher workflow

  1. Provide token
  2. Create school / school admin
  3. Create class
  4. Create license
  5. Add teachers & students
  6. Consume / assign license

Common response codes

200 success · 401 bad token · 402/701 bad input · 403 invalid user type · 500 server error · 771 license exhausted

Environment Base URL

This document is environment-agnostic. Replace <BASE-URL> with your environment service root before calling any API.

  • Example (non-prod): https://mbx-api-staging.getmagicbox.com/services
  • Example (production): https://api.getmagicbox.com/services

Full URL pattern: <BASE-URL>/{endpoint-path}?token=YOUR_API_TOKEN

Tip: set BASE-URL as a config/env variable in your client so the same integration works across environments.

Sample token request

POST <BASE-URL>/authenticate/v1.0/generateToken
Content-Type: application/json

{
  "userName": "teacher1",
  "password": "********",
  "tenant": "your-tenant",
  "device": "web"
}

User-Token

Provides APIs to generate, validate, and manage authentication tokens required for securely accessing MagicBox REST APIs and protected platform resources.

Resource path: /User-Token · 4 endpoints
GET /authenticate/v1.0/validateToken/{userToken}

Definition: Validate user token.

Operation IDvalidateToken
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/authenticate/v1.0/validateToken/{userToken}

Parameters

NameInTypeRequiredDescription
userToken Path string Yes user token
GET /authenticate/v1.0/getUserTokenDetail/{userToken}

Definition: User detail based on token.

Operation IDgetUserTokenDetail
Response typeTokenServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/authenticate/v1.0/getUserTokenDetail/{userToken}

Parameters

NameInTypeRequiredDescription
userToken Path string Yes
POST /authenticate/v1.0/generateToken

Definition: Generate user token.

Operation IDgenerateUserToken
Response typeTokenServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/authenticate/v1.0/generateToken
Request Body (JSON)
Model: TokenServiceRequest
{
  "userName": "teacher1",
  "password": "********",
  "tenant": "your-tenant",
  "key": "string",
  "device": "web"
}

Parameters

NameInTypeRequiredDescription
body Body TokenServiceRequest No
DELETE /authenticate/v1.0/invalidateToken/{userToken}

Definition: Invalidate user token.

Operation IDinvalidateToken
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/authenticate/v1.0/invalidateToken/{userToken}

Parameters

NameInTypeRequiredDescription
userToken Path string Yes Invalidate user token.
Data models (4)

TokenServiceResponseSO

FieldTypeRequiredDescription
token string No
response Response No
userDetail UserDetail No

UserDetail

FieldTypeRequiredDescription
title string No
userName string No
firstName string No
lastName string No
type string No
userStatus string No
tenantId integer No
guid string No
tenant string No
tenantUrl string No
districtId integer No
districtName string No
schoolId integer No
schoolName string No
gradeList array of string No

TokenServiceRequest

FieldTypeRequiredDescription
userName string Yes Username
password string Yes Password
tenant string Yes Tenant name
key string No Username/Password Encryption key
device string Yes Device like web/iPad/Android/Mac/Desktop/iPhone

Response

FieldTypeRequiredDescription
responseCode integer No
message string No
detailexists boolean No
providerusername string No
provideruserpassword string No

User

Provides APIs to create, retrieve, update, and manage users and their profiles, roles, permissions, and account information within the MagicBox platform.

Resource path: /User · 30 endpoints
POST /user/v1.0/publish-scorm-status

Definition: Publish Scorm Status API.

Operation IDpublishScormStatus
Response typeScromUserCompletionDataObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/publish-scorm-status
Request Body (JSON)
Model: ScromUserCompletionDataObject
{
  "guid": "123",
  "productId": 1,
  "completionStatus": "active",
  "isSendEmail": true
}

Parameters

NameInTypeRequiredDescription
body Body ScromUserCompletionDataObject No Input parameters should be a valid json. Please refer to User Schema for more details. Click on Model schema to set the parameter value.
GET /user/v1.1/user/getUserDetails

Definition: To get all the users within tenant

Operation IDgetUserDetails
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.1/user/getUserDetails

Parameters

NameInTypeRequiredDescription
userGuid Query string No userGuid of a specific user
username Query string No username of a specific user
userType Query string No User Type (TEACHER,LEARNER,SCHOOL_ADMIN,IND_TEACHER,IND_LEARNER and DISTRICT_ADMIN)
status Query string No status of user (ACT/INA/ALL), ACT=Active, INA=In-Active, ALL=Active/In-Active, Default Status is ACT
offset Query integer No Offset (Page Number)
limit Query integer No Limit (Records Per Page)
GET /user/v1.0/{username}

Definition: Get a specific user's information.

Operation IDgetUser
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/{username}

Parameters

NameInTypeRequiredDescription
username Path string Yes username of a specific user
status Query string No status of user (ACT/INA/DEL/ALL), ACT=Active, INA=In-Active, DEL=Deleted, ALL=Active/In-Active, Default Status is ACT
GET /user/v1.1/user/{schoolid}

Definition: To get the user list within school

Operation IDgetUserBySchoolId
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.1/user/{schoolid}

Parameters

NameInTypeRequiredDescription
schoolid Path integer Yes School Id
userType Query string No User Type (TEACHER,LEARNER,SCHOOL_ADMIN and DISTRICT_ADMIN)
status Query string No status of user (ACT/INA/ALL), ACT=Active, INA=In-Active, ALL=Active/In-Active, Default Status is ACT
offset Query integer No Offset (Page Number)
limit Query integer No Limit (Records Per Page)
POST /user/v1.1/classes/students

Definition: To get all the users within classs/teacher

Operation IDgetStudentOfClasses
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.1/classes/students
Request Body (JSON)
Model: StudentClassObject
{
  "classIds": [
    1
  ],
  "userGuid": "123",
  "offset": 1,
  "limit": 1
}

Parameters

NameInTypeRequiredDescription
body Body StudentClassObject No
POST /user/v1.0/registeruser

Definition: Register new user.

Operation IDregisteruser
Response typeUserRegisterObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/registeruser
Request Body (JSON)
Model: UserRegisterObject
{
  "firstname": "Jane",
  "userName": "teacher1",
  "lastname": "Doe",
  "guid": "123",
  "password": "********",
  "userType": "string",
  "grade": [
    "string"
  ],
  "g_captcha": "string",
  "emailToUser": true
}

Parameters

NameInTypeRequiredDescription
body Body UserRegisterObject No Input parameters should be a valid json. Please refer to User Schema for more details. Click on Model schema to set the parameter value.
POST /user/v1.1/add

Definition: Add new school user with check license.

Operation IDaddUserV2
Response typeUserObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.1/add
Request Body (JSON)
Model: UserObject
{
  "firstname": "Jane",
  "userName": "teacher1",
  "lastname": "Doe",
  "guid": "123",
  "password": "********",
  "userType": "string",
  "parentemail": "user@example.com",
  "classId": [
    1
  ],
  "grade": [
    "string"
  ],
  "schoolId": 1,
  "creator": "string",
  "emailToUser": true,
  "agebelowthirteen": true,
  "accesscode": "PROD001",
  "classAssociation": true,
  "districtId": 1,
  "status": "active"
}

Parameters

NameInTypeRequiredDescription
body Body UserObject No Input parameters should be a valid json. Please refer to User Schema for more details. Click on Model schema to set the parameter value.
POST /user/v1.0/add

Definition: Add new school user.

Operation IDaddUser
Response typeUserObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/add
Request Body (JSON)
Model: UserObject
{
  "firstname": "Jane",
  "userName": "teacher1",
  "lastname": "Doe",
  "guid": "123",
  "password": "********",
  "userType": "string",
  "parentemail": "user@example.com",
  "classId": [
    1
  ],
  "grade": [
    "string"
  ],
  "schoolId": 1,
  "creator": "string",
  "emailToUser": true,
  "agebelowthirteen": true,
  "accesscode": "PROD001",
  "classAssociation": true,
  "districtId": 1,
  "status": "active"
}

Parameters

NameInTypeRequiredDescription
body Body UserObject No Input parameters should be a valid json. Please refer to User Schema for more details. Click on Model schema to set the parameter value.
POST /user/v1.0/migrateUser

Definition: Migrate school user.

Operation IDmigrateUser
Response typeMigrateUserObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/migrateUser
Request Body (JSON)
Model: MigrateUserObject
{
  "firstname": "Jane",
  "userName": "teacher1",
  "lastname": "Doe",
  "password": "********",
  "userType": "string",
  "schoolId": 1,
  "creator": "string",
  "emailToUser": true,
  "coppaAageBelowThirteen": true,
  "gdprAgeBelowSixteen": true,
  "allowResetpassword": true,
  "guid": "123"
}

Parameters

NameInTypeRequiredDescription
body Body MigrateUserObject No Input parameters should be a valid json. Please refer to User Schema for more details. Click on Model schema to set the parameter value.
POST /user/v1.1/addUserWizardProgress

Definition: To get user wizard progress details

Operation IDaddUserWizardProgress
Response typeResponseDto
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.1/addUserWizardProgress
Request Body (JSON)
Model: UserWizardProgressRequest
{
  "userId": "123",
  "tenantId": 1,
  "nmId": "123",
  "rollNo": "string",
  "courseId": "123",
  "progressStatus": "active",
  "urlParameters": "https://example.com"
}

Parameters

NameInTypeRequiredDescription
body Body UserWizardProgressRequest No Input parameters should be a valid json. Please refer to User Schema for more details. Click on Model schema to set the parameter value.
POST /user/v1.1/addUserLoginUnsuccessful

Definition: To get user wizard progress details

Operation IDaddLoginUnsuccessfulRequest
Response typeResponseDto
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.1/addUserLoginUnsuccessful
Request Body (JSON)
Model: UserLoginUnsuccessfulRequest
{
  "userGuid": "123",
  "tenantId": 1,
  "nmId": "123",
  "rollNo": "string",
  "courseId": "123",
  "errorMessage": "string"
}

Parameters

NameInTypeRequiredDescription
body Body UserLoginUnsuccessfulRequest No Input parameters should be a valid json. Please refer to User Schema for more details. Click on Model schema to set the parameter value.
POST /user/v1.0/update

Definition: Update existing school user.

Operation IDupdateUser
Response typeUserObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/update
Request Body (JSON)
Model: UserObject
{
  "firstname": "Jane",
  "userName": "teacher1",
  "lastname": "Doe",
  "guid": "123",
  "password": "********",
  "userType": "string",
  "parentemail": "user@example.com",
  "classId": [
    1
  ],
  "grade": [
    "string"
  ],
  "schoolId": 1,
  "creator": "string",
  "emailToUser": true,
  "agebelowthirteen": true,
  "accesscode": "PROD001",
  "classAssociation": true,
  "districtId": 1,
  "status": "active"
}

Parameters

NameInTypeRequiredDescription
body Body UserObject No Input parameters should be a valid json. Please refer to User Schema for more details. Click on Model schema to set the parameter value.
POST /user/v1.0/updateregisteruser

Definition: Update registered user info.

Operation IDupdateregisteruser
Response typeUserRegisterObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/updateregisteruser
Request Body (JSON)
Model: UserRegisterObject
{
  "firstname": "Jane",
  "userName": "teacher1",
  "lastname": "Doe",
  "guid": "123",
  "password": "********",
  "userType": "string",
  "grade": [
    "string"
  ],
  "g_captcha": "string",
  "emailToUser": true
}

Parameters

NameInTypeRequiredDescription
body Body UserRegisterObject No Input parameters should be a valid json. Please refer to User Schema for more details. Click on Model schema to set the parameter value.
POST /user/v1.0/addadmin

Definition: Add publisher, district and school admin users.

Operation IDaddAdminUser
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/addadmin
Request Body (JSON)
Model: AdminUserObject
{
  "title": "string",
  "firstName": "Jane",
  "lastName": "Doe",
  "userName": "teacher1",
  "guid": "123",
  "password": "********",
  "userType": "string",
  "telephone": "1234567890",
  "creator": "string",
  "emailToUser": true,
  "schoolId": 1,
  "districtId": 1,
  "primaryAdmin": true,
  "otherSystemId": "123"
}

Parameters

NameInTypeRequiredDescription
body Body AdminUserObject No Input parameters should be a valid json. Please refer to Admin User Schema for more details. Click on Model schema to set the parameter value.
POST /user/v1.0/updateadmin

Definition: Update specific publisher, district and school admin user.

Operation IDupdateAdminUser
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/updateadmin
Request Body (JSON)
Model: AdminUserObject
{
  "title": "string",
  "firstName": "Jane",
  "lastName": "Doe",
  "userName": "teacher1",
  "guid": "123",
  "password": "********",
  "userType": "string",
  "telephone": "1234567890",
  "creator": "string",
  "emailToUser": true,
  "schoolId": 1,
  "districtId": 1,
  "primaryAdmin": true,
  "otherSystemId": "123"
}

Parameters

NameInTypeRequiredDescription
body Body AdminUserObject No Input parameters should be a valid json. Please refer to Admin User Schema for more details. Click on Model schema to set the parameter value.
GET /user/v1.0/userdetails/{username}

Definition: Get details of associated users and class information.

Operation IDgetUserDetails
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/userdetails/{username}

Parameters

NameInTypeRequiredDescription
username Path string Yes usename of a specific user
GET /user/v1.0/gradecam/{userGuid}

Definition: Get details of associated users and class information.

Operation IDgetUserDetailsGradecam
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/gradecam/{userGuid}

Parameters

NameInTypeRequiredDescription
userGuid Path string Yes usename of a specific user
offset Query integer No
limit Query integer No
GET /user/v1.0/schools/{schoolid}/teachers

Definition: Get teacher details associated with school and class information.

Operation IDgetSchoolTeacherUserDetails
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/schools/{schoolid}/teachers

Parameters

NameInTypeRequiredDescription
schoolid Path integer Yes School Id
offset Query integer No Offset
limit Query integer No Limit
GET /user/v1.0/schools/{schoolid}/students

Definition: Get student details associated with school and class information.

Operation IDgetSchoolStudentUserDetails
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/schools/{schoolid}/students

Parameters

NameInTypeRequiredDescription
schoolid Path integer Yes School Id
offset Query integer No Offset
limit Query integer No Limit
GET /user/v1.0/teachers/{username}/students

Definition: Get students details associated with teacher.

Operation IDgetStudentDetailsByTeacher
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/teachers/{username}/students

Parameters

NameInTypeRequiredDescription
username Path string Yes User Name
offset Query integer No Offset (Page Number)
limit Query integer No Limit (Records Per Page)
GET /user/v1.0/teachers/getUserListForTeacherByCourseId

Definition: Get students details associated with the course for a teacher.

Operation IDgetUserListForTeacherByCourseId
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/teachers/getUserListForTeacherByCourseId

Parameters

NameInTypeRequiredDescription
startDate Query string Yes Start Date
endDate Query string Yes End Date
courseTypeId Query string Yes Course Type Id
userToken Query string Yes User Token
offset Query integer No Offset
limit Query integer No Limit
GET /user/v1.0/user/{userGuid}

Definition: Get a specific user's information.

Operation IDgetUserByGuid
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/user/{userGuid}

Parameters

NameInTypeRequiredDescription
userGuid Path string Yes userGuid of a specific user
POST /user/v1.0/addUpdateSecondaryRole

Definition: Add/Update secondary role to the User

Operation IDaddUpdateSecondaryRole
Response typeUserSecondaryRoleObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/addUpdateSecondaryRole
Request Body (JSON)
Model: UserSecondaryRoleObject
{
  "userName": "teacher1",
  "userType": "string"
}

Parameters

NameInTypeRequiredDescription
body Body UserSecondaryRoleObject No Input parameters should be a valid json. Please refer to User Schema for more details. Click on Model schema to set the parameter value.
GET /user/v1.0/getfolensuser/{userName}

Definition: Get folens user.

Operation IDgetFolensuser
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/getfolensuser/{userName}

Parameters

NameInTypeRequiredDescription
userName Path string Yes UserName of a specific user
GET /user/v1.0/getMigratedUser/{userName}

Definition: Get migrated user.

Operation IDgetMigratedUser
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/getMigratedUser/{userName}

Parameters

NameInTypeRequiredDescription
userName Path string Yes UserName of a specific user
POST /user/v1.0/registerFolensuser

Definition: Register new Folens user.

Operation IDregisteruseFolensr
Response typeRegisterUserObjectFolens
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/registerFolensuser
Request Body (JSON)
Model: RegisterUserObjectFolens
{
  "firstname": "Jane",
  "userName": "teacher1",
  "lastname": "Doe",
  "guid": "123",
  "password": "********",
  "userType": "string",
  "grade": [
    "string"
  ],
  "g_captcha": "string",
  "emailToUser": true,
  "otherSystemID": "123"
}

Parameters

NameInTypeRequiredDescription
body Body RegisterUserObjectFolens No Input parameters should be a valid json. Please refer to User Schema for more details. Click on Model schema to set the parameter value.
GET /user/v1.0/deactivateUsers/{userName}

Definition: Dectivate school user.

Operation IDdeactivateSchoolUsers
Response typeobject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/deactivateUsers/{userName}

Parameters

NameInTypeRequiredDescription
userName Path string Yes UserName Id
GET /user/v1.0/classes/{id}/students

Definition: Class students.

Operation IDgetClassStudents
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/classes/{id}/students

Parameters

NameInTypeRequiredDescription
id Path integer Yes Class Id
offset Query integer No
limit Query integer No
GET /user/v1.0/teacher/{guid}/classes

Definition: Get Classes

Operation IDgetClassByTeacher
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/teacher/{guid}/classes

Parameters

NameInTypeRequiredDescription
guid Path string Yes teacher Id
offset Query integer No
limit Query integer No
GET /user/v1.0/activateUsers/{userName}

Definition: Activate school user.

Operation IDactivateSchoolUsers
Response typeobject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/user/v1.0/activateUsers/{userName}

Parameters

NameInTypeRequiredDescription
userName Path string Yes UserName Id
Data models (11)

MigrateUserObject

FieldTypeRequiredDescription
firstname string Yes User's First name. Max length 30 characters
userName string Yes Username or Email address of user
lastname string No User's Last name. Max length 30 characters.
password string No Password should be optional while adding user only when user will be accessing the platform via SSO. Password is optional during update user
userType string Yes User type should be TEACHER
schoolId integer Yes System generated School Id. Required in case of TEACHER and LEARNER
creator string Yes Username of publisher/school admin who manage user's account
emailToUser boolean No Send email flag. If set to true, system will send emails to user's account
coppaAageBelowThirteen boolean No Teacher's age if set below 13, system would require parent's intervention for account activation
gdprAgeBelowSixteen boolean No Teacher's age if set below 16, system would require parent's intervention for account activation
allowResetpassword boolean No To allow reset password
guid string No

AdminUserObject

FieldTypeRequiredDescription
title string No Title can contain only Mr.,Mrs.,Ms.,Dr.
firstName string Yes User's First name. Max length 30 characters
lastName string No User's Last name. Max length 30 characters
userName string Yes Email address of user
guid string No System generated user's unique Id.
password string No Password should be optional while adding user only when user will be accessing the platform via SSO. Password is optional during update user
userType string Yes User type should be DISTRICT_ADMIN, SCHOOL_ADMIN and SUP_ADMIN
telephone string Yes User's phone detail. Should contain max 18 and min 8 characters. Only accepts numeral
creator string Yes Username of publisher who manages the user's account
emailToUser boolean No Send email flag. If set to true, system will send emails to user's account
schoolId integer No System generated School Id
districtId integer No System generated District Id. Mandatory in case of DISTRICT_ADMIN
primaryAdmin boolean No Set Primary Admin for district. If set to true, then user will be primary DISTRICT ADMIN
otherSystemId string No Other System Id

ResponseDto

FieldTypeRequiredDescription
data T No
httpstatus HttpStatus No
code integer No
status string No

StudentClassObject

FieldTypeRequiredDescription
classIds array of integer No System generated Class Ids
userGuid string No Guid of teacher
offset integer No offset
limit integer No Limit (Records Per Page)

RegisterUserObjectFolens

FieldTypeRequiredDescription
firstname string Yes User's First name. Max length 30 characters
userName string Yes Username or Email address of user
lastname string No User's Last name. Max length 30 characters
guid string No System generated user's unique Id
password string Yes Password should be optional while adding user only when user will be accessing the platform via SSO. Password is optional during update user
userType string Yes User type should be IND_TEACHER, IND_USER or SUP_ADMIN
grade array of string No Please enter multiple grade seperated by ,.
g_captcha string No Google Api generated unique Captcha
emailToUser boolean No Send email flag. If set to true, system will send emails to user's account
otherSystemID string No Provide other SystemID

UserLoginUnsuccessfulRequest

FieldTypeRequiredDescription
userGuid string No System generated user's unique Id
tenantId integer Yes System generated tenant Id
nmId string Yes Nam Id
rollNo string Yes Student's roll number
courseId string Yes Launch course Id
errorMessage string Yes API's failed message

UserObject

FieldTypeRequiredDescription
firstname string Yes User's First name. Max length 150 characters
userName string Yes Username or Email address of user
lastname string No User's Last name. Max length 150 characters.
guid string No System generated user's unique Id
password string No Password should be optional while adding user only when user will be accessing the platform via SSO. Password is optional during update user
userType string Yes User type should be TEACHER, LEARNER, IND_TEACHER or IND_LEARNER
parentemail string No Student's parent email address. In case COPPA is enabled, system send emails to this address for student account activation/deactivation
classId array of integer Yes System generated Class Id. Required in case of TEACHER and LEARNER
grade array of string No Please enter comma seperated grade name.
schoolId integer Yes System generated School Id. Required in case of TEACHER and LEARNER
creator string Yes Username of publisher/school admin who manage user's account
emailToUser boolean No Send email flag. If set to true, system will send emails to user's account
agebelowthirteen boolean No Student's age if set below 13, system would require parent's intervention for account activation
accesscode string No Required in case of IND_TEACHER registration
classAssociation boolean No If classAssociation is set to true, user will be further associated with the new Class. If set to false, provided class will be disassociated. Default value is false
districtId integer No System generated School Id. Required in case of TEACHER and LEARNER
status string No Required in case of user

UserSecondaryRoleObject

FieldTypeRequiredDescription
userName string Yes Username or Email address of user
userType string Yes User type should be TEACHER and SCHOOL_ADMIN

ScromUserCompletionDataObject

FieldTypeRequiredDescription
guid string Yes User's unique Id
productId integer Yes Product Code
completionStatus string Yes Completion Status
isSendEmail boolean Yes Is Send Email

UserWizardProgressRequest

FieldTypeRequiredDescription
userId string No System generated user's unique Id
tenantId integer Yes System generated tenant Id
nmId string Yes Nam Id
rollNo string Yes Student's roll number
courseId string Yes Launch course Id
progressStatus string Yes User wizard progress status
urlParameters string Yes Url Token

UserRegisterObject

FieldTypeRequiredDescription
firstname string Yes User's First name. Max length 150 characters
userName string Yes Username or Email address of user
lastname string No User's Last name. Max length 150 characters
guid string No System generated user's unique Id
password string Yes Password should be optional while adding user only when user will be accessing the platform via SSO. Password is optional during update user
userType string Yes User type should be IND_TEACHER, IND_USER or SUP_ADMIN
grade array of string No Please enter multiple grade seperated by ,.
g_captcha string No Google Api generated unique Captcha
emailToUser boolean No Send email flag. If set to true, system will send emails to user's account

Districts

Provides APIs to create, retrieve, and manage district information, enabling administration of educational organizations and their associated data within MagicBox..

Resource path: /Districts · 7 endpoints
GET /districts/v1.0/{id}/schools

Definition: Get school list within a district.

Operation IDgetSchoolsByDistrict
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/districts/v1.0/{id}/schools

Parameters

NameInTypeRequiredDescription
id Path integer Yes District Id
offset Query integer No Offset
limit Query integer No Limit
GET /districts/v1.0/district/{id}/schools

Definition: Get school list within a district.

Operation IDgetSchoolsByDistrictGradecam
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/districts/v1.0/district/{id}/schools

Parameters

NameInTypeRequiredDescription
id Path integer Yes District Id
offset Query integer No Offset
limit Query integer No Limit
GET /v2.0/getDistricts

Definition: To get the district list with pagination

Operation IDgetDistricts
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/v2.0/getDistricts

Parameters

NameInTypeRequiredDescription
status Query string No School Status (ACT/INA/ALL), ACT=Active, INA=In-Active, ALL=Active/In-Active, Default Status is ALL
District Code Query string No District Code
offset Query integer No Offset (Page Number)
limit Query integer No Limit (Records Per Page)
POST /district/v2.0/add

Definition: Add new district

Operation IDaddDistrict
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/district/v2.0/add
Request Body (JSON)
Model: DistrictObject
{
  "districtId": 1,
  "creator": "string",
  "districtName": "Sample Name",
  "districtCode": "PROD001",
  "address": "string",
  "province": "string",
  "city": "string",
  "zipCode": "PROD001",
  "country": "string",
  "tagCategory": "string"
}

Parameters

NameInTypeRequiredDescription
body Body DistrictObject No Input parameters should be a valid json. Please refer to the District Schema for more details. Click on the Model schema to set the parameter value.
POST /district/v2.0/update

Definition: Update existing district information.

Operation IDupdateDistrict
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/district/v2.0/update
Request Body (JSON)
Model: DistrictObject
{
  "districtId": 1,
  "creator": "string",
  "districtName": "Sample Name",
  "districtCode": "PROD001",
  "address": "string",
  "province": "string",
  "city": "string",
  "zipCode": "PROD001",
  "country": "string",
  "tagCategory": "string"
}

Parameters

NameInTypeRequiredDescription
body Body DistrictObject No Input parameters should be a valid json. Please refer to District Schema for more details. Click on Model schema to set the parameter value.
GET /districts/v2.0/{code}/schools

Definition: Get school list within a district.

Operation IDgetSchoolsByDistrictCode
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/districts/v2.0/{code}/schools

Parameters

NameInTypeRequiredDescription
code Path string Yes District Code
offset Query integer No Offset
limit Query integer No Limit
GET /districtSchoolAdmin/{id}

Definition: Get school list with school admin userGuid within a district.

Operation IDgetSchoolsWithAdminByDistrict
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/districtSchoolAdmin/{id}

Parameters

NameInTypeRequiredDescription
id Path integer Yes District Id
Data models (1)

DistrictObject

FieldTypeRequiredDescription
districtId integer Yes System generated District Id. Mandatory in case of updating District information
creator string Yes Username of publisher who manages the district account
districtName string Yes District name. Max length 99 characters
districtCode string No District Code Max length 15 characters
address string Yes District address. Max length 99 characters
province string Yes District province name. Max length 30 characters, only accepts alphanumeric
city string Yes District city name. Max length 30 characters, only accepts Alphanumeric and space
zipCode string Yes District zip code. Max length 10, only accepts alphanumeric
country string Yes District country name. Max length 30 characters, only accepts alphabets
tagCategory string No Tag Category

School

Provides APIs to create, retrieve, update, and manage schools, including school information, administrative settings, and organizational relationships within a district.

Resource path: /School · 20 endpoints
GET /school/v1.1/getSchools

Definition: To get the school list with pagination

Operation IDgetSchools
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.1/getSchools

Parameters

NameInTypeRequiredDescription
status Query string No School Status (ACT/INA/ALL), ACT=Active, INA=In-Active, ALL=Active/In-Active, Default Status is ALL
offset Query integer No Offset (Page Number)
limit Query integer No Limit (Records Per Page)
GET /school/v1.1/getSchoolByDomain

Definition: To get the school with respect to Domain

Operation IDgetSchoolByDomain
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.1/getSchoolByDomain

Parameters

NameInTypeRequiredDescription
domainName Query string Yes Domain
GET /school/v1.1/getSchoolById

Definition: To get the school specific information

Operation IDgetSchoolById
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.1/getSchoolById

Parameters

NameInTypeRequiredDescription
id Query integer No School Id
code Query string No School Code
GET /school/v1.0/{id}

Definition: Get school specific information.

Operation IDgetSchool
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/{id}

Parameters

NameInTypeRequiredDescription
id Path integer Yes School Id
GET /school/v1.0/teacher/class/{username}

Definition: Get teacher's class(es).

Operation IDgetTeacherClassess
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/teacher/class/{username}

Parameters

NameInTypeRequiredDescription
username Path string Yes Usename of a specific user
GET /school/v1.0/classes/{id}

Definition: Fetch Class Information.

Operation IDgetClassById
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/classes/{id}

Parameters

NameInTypeRequiredDescription
id Path integer Yes Class ID
POST /school/v1.0/add

Definition: Add new school

Operation IDaddSchool
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/add
Request Body (JSON)
Model: SchoolObject
{
  "schoolId": 1,
  "creator": "string",
  "schoolName": "Sample Name",
  "schoolCode": "PROD001",
  "address": "string",
  "province": "string",
  "city": "string",
  "zipCode": "PROD001",
  "country": "string",
  "type": "string",
  "schoolDomain": [
    "string"
  ],
  "tagCategory": "string",
  "districtId": 1,
  "otherSystemId": "123",
  "studentBundleRequired": true
}

Parameters

NameInTypeRequiredDescription
body Body SchoolObject No Input parameters should be a valid json. Please refer to the School Schema for more details. Click on the Model schema to set the parameter value.
POST /school/v1.1/add

Definition: Add new school with Sync

Operation IDaddSchoolV2
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.1/add
Request Body (JSON)
Model: SchoolObject
{
  "schoolId": 1,
  "creator": "string",
  "schoolName": "Sample Name",
  "schoolCode": "PROD001",
  "address": "string",
  "province": "string",
  "city": "string",
  "zipCode": "PROD001",
  "country": "string",
  "type": "string",
  "schoolDomain": [
    "string"
  ],
  "tagCategory": "string",
  "districtId": 1,
  "otherSystemId": "123",
  "studentBundleRequired": true
}

Parameters

NameInTypeRequiredDescription
body Body SchoolObject No Input parameters should be a valid json. Please refer to the School Schema for more details. Click on the Model schema to set the parameter value.
POST /school/v1.0/update

Definition: Update existing school's information.

Operation IDupdateSchool
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/update
Request Body (JSON)
Model: SchoolObject
{
  "schoolId": 1,
  "creator": "string",
  "schoolName": "Sample Name",
  "schoolCode": "PROD001",
  "address": "string",
  "province": "string",
  "city": "string",
  "zipCode": "PROD001",
  "country": "string",
  "type": "string",
  "schoolDomain": [
    "string"
  ],
  "tagCategory": "string",
  "districtId": 1,
  "otherSystemId": "123",
  "studentBundleRequired": true
}

Parameters

NameInTypeRequiredDescription
body Body SchoolObject No Input parameters should be a valid json. Please refer to School Schema for more details. Click on Model schema to set the parameter value.
GET /school/v1.0/school/{id}/classes

Definition: Fetch School's Class Information.

Operation IDgetClassBySchoolId
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/school/{id}/classes

Parameters

NameInTypeRequiredDescription
id Path integer Yes School ID
POST /school/v1.0/class/add

Definition: Add new Class.

Operation IDaddClass
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/class/add
Request Body (JSON)
Model: ClassObject
{
  "classId": 1,
  "className": "Sample Name",
  "creator": "string",
  "schoolId": 1
}

Parameters

NameInTypeRequiredDescription
body Body ClassObject No Input parameters should be a valid json. Please refer to Class Schema for more details. Click on Model schema to set the parameter value.
POST /school/v1.0/class/update

Definition: Update existing Class's information.

Operation IDupdateClass
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/class/update
Request Body (JSON)
Model: ClassObject
{
  "classId": 1,
  "className": "Sample Name",
  "creator": "string",
  "schoolId": 1
}

Parameters

NameInTypeRequiredDescription
body Body ClassObject No Input parameters should be a valid json. Please refer to Class Schema for more details. Click on Model schema to set the parameter value.
POST /school/v1.0/class/teacher/update

Definition: Assign/Unassign teacher to/from Class.

Operation IDupdateClassTeacherAssociation
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/class/teacher/update
Request Body (JSON)
Model: ClassAssociation
{
  "classAssociation": true,
  "classteacherusername": "teacher1",
  "classid": [
    1
  ],
  "schoolid": 1,
  "creator": "string"
}

Parameters

NameInTypeRequiredDescription
body Body ClassAssociation No Input parameters should be a valid json. Please refer to Class Schema for more details. Click on Model schema to set the parameter value.
POST /school/v1.0/add/schoolLti

Definition: Add new school with LTI

Operation IDaddschoolLti
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/add/schoolLti
Request Body (JSON)
Model: LTISchoolObject
{
  "schoolId": 1,
  "creator": "string",
  "schoolName": "Sample Name",
  "address": "string",
  "province": "string",
  "city": "string",
  "zipCode": "PROD001",
  "country": "string",
  "otherSystemId": "123"
}

Parameters

NameInTypeRequiredDescription
body Body LTISchoolObject No Input parameters should be a valid json. Please refer to the School Schema for more details. Click on the Model schema to set the parameter value.
GET /school/v1.0/school/lti/{otherSystemId}

Definition: Get school lti details.

Operation IDgetschoolLti
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/school/lti/{otherSystemId}

Parameters

NameInTypeRequiredDescription
otherSystemId Path string Yes School other system id for LTI details.
POST /school/v1.0/school/{id}/schoolDomain/update

Definition: Update existing doamin for given school.

Operation IDupdateSchoolDomain
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.0/school/{id}/schoolDomain/update
Request Body (JSON)
Model: SchoolDomainListVO
{
  "schoolDomain": [
    {
      "id": 1,
      "domainName": "Sample Name"
    }
  ]
}

Parameters

NameInTypeRequiredDescription
id Path integer Yes School Id
body Body SchoolDomainListVO No Input parameters should be a valid json. Click on Model schema to set the parameter value.
GET /school/v1/account/health

Definition: Getting the school/district health data

Operation IDgetAccountHealth
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1/account/health

Parameters

NameInTypeRequiredDescription
accountId Query integer Yes Account Id(School/District)
healthDate Query string No Date of the health(yyyy-MM-dd), default value is current date.
startDate Query string No Start date of the health(yyyy-MM-dd)
endDate Query string No End date of the health(yyyy-MM-dd)
GET /school/v1.1/getSchoolByNameAndDistrictId

Definition: To get the school with respect to Name

Operation IDgetSchoolByNameAndDistrictId
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.1/getSchoolByNameAndDistrictId

Parameters

NameInTypeRequiredDescription
name Query string Yes Name
districtId Query integer Yes District ID
GET /school/v1.1/getClassByNameAndSchoolId

Definition: To get the class with respect to Name

Operation IDgetClassByNameAndSchoolId
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.1/getClassByNameAndSchoolId

Parameters

NameInTypeRequiredDescription
className Query string Yes Name
schoolId Query integer Yes School ID
GET /school/v1.1/teacher/class/{userguid}

Definition: Get teacher's class(es) by userguid.

Operation IDgetTeacherClassessByUserGuid
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/school/v1.1/teacher/class/{userguid}

Parameters

NameInTypeRequiredDescription
userguid Path string Yes Useguid of a specific user
Data models (6)

SchoolDomainVO

FieldTypeRequiredDescription
id integer Yes School Domain ID.
domainName string Yes School Domain Name.

SchoolObject

FieldTypeRequiredDescription
schoolId integer Yes System generated School Id. Mandatory in case of updating school information
creator string Yes Username of publisher/district admin who manages the user's account
schoolName string Yes School name. Max length 255 characters
schoolCode string No School Code Max length 15 characters
address string Yes School address. Max length 99 characters
province string Yes School province name. Max length 30 characters, only accepts alphanumeric
city string Yes School city name. Max length 30 characters, only accepts Alphanumeric and space
zipCode string Yes School zip code. Max length 10, only accepts alphanumeric
country string Yes School country name. Max length 30 characters, only accepts alphabets
type string No School type code. Max length 10, only accepts alphanumeric
schoolDomain array of string No School domain list, Must be unique domain name
tagCategory string No Tag Category
districtId integer No System generated District Id. Mandatory in case of DISTRICT_ADMIN
otherSystemId string No Other System Id
studentBundleRequired boolean No

SchoolDomainListVO

FieldTypeRequiredDescription
schoolDomain array of SchoolDomainVO Yes School Domain List to be updated.

ClassAssociation

FieldTypeRequiredDescription
classAssociation boolean No If classAssociation is set to true, user will be further associated with the new Class. If set to false, provided class will be disassociated. Default value is false
classteacherusername string Yes Username of teacher who manages the user's account
classid array of integer Yes System generated Class Id
schoolid integer Yes System generated School Id
creator string Yes Username of publisher/school admin who manages the user's account

LTISchoolObject

FieldTypeRequiredDescription
schoolId integer Yes System generated School Id. Mandatory in case of updating school information
creator string No Username of publisher/school admin who manages the user's account
schoolName string Yes School name. Max length 99 characters
address string Yes School address. Max length 99 characters
province string No School province name. Max length 30 characters, only accepts alphanumeric
city string No School city name. Max length 30 characters, only accepts alphabets and space
zipCode string No School zip code. Max length 10, only accepts alphanumeric
country string Yes School country name. Max length 30 characters, only accepts alphabets
otherSystemId string No System save other system Id, It can be other system primary key.

ClassObject

FieldTypeRequiredDescription
classId integer No System generated Class Id
className string Yes Class name. Max length 50 characters
creator string Yes Username of publisher/school admin who manages the user's account
schoolId integer No System generated School Id

Product

Provides APIs to manage educational products, digital content, and product-related configurations available to institutions and users on the MagicBox platform.

Resource path: /Product · 18 endpoints
GET /product/v1.1/getAllProductList

Definition: To get all the products within tenant

Operation IDgetAllProductList
Response typeProductSoMetaDetaList
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.1/getAllProductList

Parameters

NameInTypeRequiredDescription
offset Query integer No Offset (Page Number)
limit Query integer No Limit (Records Per Page)
productId Query integer No Productid of a specific product
productCode Query string No Productcode of a specific product
type Query string No Filter By Products Type, Default is ALL
status Query string No Filter By Products Publish Status, Default is PUBLISHED
avlForSelling Query boolean No Filter By Products Available for Selling
sortBy Query string No Product Sorting By MODIFIED_DATE|TITLE, Default is TITLE
orderBy Query string No Sorting Order By ASC|DESC, Default is ASC
GET /product/v1.0/getproducts

Definition: To get product details using product code as input.

Operation IDgetProductDetail
Response typeProductServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/getproducts

Parameters

NameInTypeRequiredDescription
productcode Query string No
GET /product/v1.0/getUserFreeBookList

Definition: To get user free book access list using username as input.

Operation IDgetUserFreeBookList
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/getUserFreeBookList

Parameters

NameInTypeRequiredDescription
username Query string Yes usename of a specific user
GET /product/v1.0/getCollectionList

Definition: To get all the collection within tenant

Operation IDgetCollectionList
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/getCollectionList

Parameters

NameInTypeRequiredDescription
pageNumber Query integer Yes Page Number
maxRecordCount Query integer Yes Per Page Record
dateModified Query string No Retrieve the list of collections modified from date passed in this parameter to the current date
GET /product/v1.0/getProductFilterDetails

Definition: To get filter of the tenant.

Operation IDlibraryFilterDetails
Response typeuserAccSrvRes
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/getProductFilterDetails

Parameters

No parameters.

GET /product/v1.0/getProductDetails/{productid}

Definition: To get product details using product id as input.

Operation IDgetProductDetails
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/getProductDetails/{productid}

Parameters

NameInTypeRequiredDescription
productid Path integer Yes productid of a specific product
POST /product/v1.0/addUpdateFreeBookUserAccess

Definition: To add/update free book access to user.

Operation IDaddUpdateFreeBookUserAccess
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/addUpdateFreeBookUserAccess
Request Body (JSON)
Model: ProductServiceRequest
{
  "username": "teacher1",
  "productid": 1
}

Parameters

NameInTypeRequiredDescription
body Body ProductServiceRequest No
POST /product/v1.0/getProductList

Definition: To get product list with pagination.

Operation IDgetProductList
Response typeProductSoList
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/getProductList
Request Body (JSON)
Model: ProductSearchRequest
{
  "pageNumber": 1,
  "maxRecordCount": 1,
  "searchText": [
    "string"
  ],
  "filteredSubjectsList": [
    1
  ],
  "filteredGradesList": [
    "string"
  ],
  "filteredThemeList": [
    1
  ],
  "filteredDRALevelList": [
    1
  ],
  "filteredReadingLevelList": [
    "string"
  ],
  "filteredEarlyInterventionLevelList": [
    "string"
  ],
  "filteredGuidedReadingLevelList": [
    "string"
  ],
  "filterContentGroupList": [
    1
  ],
  "filterProductTypeList": [
    1
  ],
  "mode": "string",
  "sorting": "string",
  "monthDuration": 1,
  "filteredGenreList": [
    1
  ],
  "filteredBookTypeList": [
    1
  ]
}

Parameters

NameInTypeRequiredDescription
body Body ProductSearchRequest No
POST /product/v1.0/es/searchProducts

Definition: To get product list from elastic search

Operation IDsearchProducts
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/es/searchProducts
Request Body (JSON)
Model: ProductESSearchRequest
{
  "offset": 1,
  "limit": 1,
  "searchText": "string",
  "searchTab": "string",
  "subTab": "string",
  "userToken": "YOUR_API_TOKEN",
  "userFilters": [
    {
      "categoryid": "123",
      "range": [
        "string"
      ]
    }
  ],
  "isDevice": true,
  "orderBy": "string",
  "productIds": [
    1
  ],
  "notPersistUserFilter": true,
  "isGradeKto5": true,
  "fromDate": "2026-07-15",
  "isCompletedCheck": true,
  "sortBy": "string",
  "prodIdSav": [
    1
  ],
  "gradeKto2": true
}

Parameters

NameInTypeRequiredDescription
body Body ProductESSearchRequest No
GET /product/v1.0/es/getUserProductFilter/{userToken}

Definition: To get user product filter data from elastic search

Operation IDgetUserProductFilter
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/es/getUserProductFilter/{userToken}

Parameters

NameInTypeRequiredDescription
userToken Path string Yes
POST /product/v1.0/es/addUpdateUserProductGradeFilter/{userGuid}

Definition: To add update user product default filter data on elastic search

Operation IDaddUpdateUserProductGradeFilter
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/es/addUpdateUserProductGradeFilter/{userGuid}
Request Body (JSON)
Model: String, Object
{
  "key": "value"
}

Parameters

NameInTypeRequiredDescription
userGuid Path string Yes
body Body String, Object No
POST /product/v1.0/es/addUpdateUserProductFilter

Definition: To add update user product filter data on elastic search

Operation IDaddUpdateUserProductFilter
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/es/addUpdateUserProductFilter
Request Body (JSON)
Model: ProductESUserProductFilterRequest
{
  "userToken": "YOUR_API_TOKEN",
  "userFilters": [
    {
      "categoryid": "123",
      "range": [
        "string"
      ]
    }
  ]
}

Parameters

NameInTypeRequiredDescription
body Body ProductESUserProductFilterRequest No
POST /product/v1.0/es/addUpdateUserProductActivities

Definition: To add/update/remove user product activity data on elastic search

Operation IDaddUpdateUserProductActivities
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/es/addUpdateUserProductActivities
Request Body (JSON)
Model: ProductESUserProductRequest
{
  "userToken": "YOUR_API_TOKEN",
  "userProductActivities": [
    {
      "productId": 1,
      "action": "2026-07-15",
      "actionValue": true,
      "activityDate": 1
    }
  ]
}

Parameters

NameInTypeRequiredDescription
body Body ProductESUserProductRequest No
POST /product/v1.0/es/searchFavOrAssignedProducts

Definition: To get favourite or assigned product list from elastic search

Operation IDsearchFavOrAssignedProducts
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/es/searchFavOrAssignedProducts
Request Body (JSON)
Model: ProductESSearchFavOrAssignedRequest
{
  "userToken": "YOUR_API_TOKEN",
  "isDevice": true,
  "showOnlyProductIds": true
}

Parameters

NameInTypeRequiredDescription
body Body ProductESSearchFavOrAssignedRequest No
GET /product/v1.0/purchaseOrderList/username/{username}/productcode/{productcode}

Definition: Purchase order details

Operation IDgetPurchaseOrderList
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/purchaseOrderList/username/{username}/productcode/{productcode}

Parameters

NameInTypeRequiredDescription
username Path string Yes
productcode Path string Yes
POST /product/v1.0/updateProductMetaData

Definition: Update the product information.

Operation IDUpdateProductMetaData
Response typeMap
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/updateProductMetaData
Request Body (JSON)
Model: ProductMetaData
{
  "productCode": "PROD001",
  "description": "2026-07-15",
  "author": "string",
  "price": "string",
  "availableforSelling": true,
  "availableOnContentStore": true,
  "availableOnlyToteacher": true,
  "search": "string",
  "contentGroup": "string",
  "theme": "string",
  "readerTheme1": "string",
  "readerTheme2": "string",
  "primarySubject": "string",
  "secondarySubject": "string",
  "genre": "string",
  "bookType": "string",
  "ageFrom": "string",
  "ageTo": "string",
  "gradeFrom": "string",
  "gradeTo": "string",
  "readingLevelLexile": "string",
  "guidedReadingLevel": "123",
  "readingLevelEarly": "string",
  "dRALevel": "string",
  "accessCodeRequired": true,
  "accessThroughAssignment": true,
  "availableForFree": true
}

Parameters

NameInTypeRequiredDescription
body Body ProductMetaData No
POST /product/v1.0/getAssignedProduct

Definition: Get assigned product

Operation IDassignedProduct
Response typeObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/getAssignedProduct
Request Body (JSON)
Model: AssignedProductRequest
{
  "userGuid": "123",
  "userName": "teacher1",
  "offset": 1,
  "limit": 1
}

Parameters

NameInTypeRequiredDescription
body Body AssignedProductRequest No
POST /product/v1.0/getAssignedProductIds

Definition: Get assigned product Ids

Operation IDassignedProductIds
Response typeObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/product/v1.0/getAssignedProductIds
Request Body (JSON)
Model: AssignedProductIdsRequest
{
  "userGuid": "123",
  "userName": "teacher1"
}

Parameters

NameInTypeRequiredDescription
body Body AssignedProductIdsRequest No
Data models (22)

UserProductActivityData

FieldTypeRequiredDescription
productId integer No
action string No
actionValue boolean No
activityDate integer No

ProductESSearchRequest

FieldTypeRequiredDescription
offset integer No Offset data
limit integer No Limit to fetch data
searchText string No Product Search On Title, Author, Description, ISBN, Keywords
searchTab string No Data based on Tab By EXPLORE|LIBRARY. By default EXPLORE
subTab string No Data based on Sub Tab By all|favourite|assigned. By default all
userToken string Yes User token
userFilters array of UserFilter No User filters data
isDevice boolean No Is device
orderBy string No Product Search Order By
productIds array of integer No Meta Data of productIds
notPersistUserFilter boolean No Do not Persist user filter. By default persist user filter.
isGradeKto5 boolean No By default user filter for all grades
fromDate string No Applied for completed section
isCompletedCheck boolean No Applied for completed section
sortBy string No
prodIdSav array of integer No
gradeKto2 boolean No

ProductSoList

FieldTypeRequiredDescription
productSoList array of ProductSo No
maxPageIndex integer No
detailexists boolean No
providerusername string No
provideruserpassword string No
responseCode integer No
message string No

AssignedProductIdsRequest

FieldTypeRequiredDescription
userGuid string No userGuid
userName string No userName

UserFilter

FieldTypeRequiredDescription
categoryid string No
range array of string No

AssignedProductRequest

FieldTypeRequiredDescription
userGuid string No userGuid
userName string No userName
offset integer No offset
limit integer No limit

GroupSO

FieldTypeRequiredDescription
id integer No
name string No
from string No
to string No
range string No
displayOrder integer No

ProductESUserProductFilterRequest

FieldTypeRequiredDescription
userToken string Yes User token
userFilters array of UserFilter Yes User filters data

Map

FieldTypeRequiredDescription
empty boolean No

object

FieldTypeRequiredDescription
filterList array of GroupSO No
title string No
id string No

ProductServiceRequest

FieldTypeRequiredDescription
username string Yes Username
productid integer Yes Product id

ProductESSearchFavOrAssignedRequest

FieldTypeRequiredDescription
userToken string Yes User token
isDevice boolean No Is device
showOnlyProductIds boolean No Show Only ProductIds

ProductDataDTO

FieldTypeRequiredDescription
productId integer No
title string No
productTypeTitle string No
description string No
free boolean No
enabled boolean No
author string No
thumbnail string No
isbn string No
productCode string No
price number No
createdDate string No
modifiedDate string No
tenantId integer No
productVersion string No
metaData ProductMetaDataDTO No

ProductSoMetaDetaList

FieldTypeRequiredDescription
productSoList array of ProductDataDTO No
x_Total_Count integer No
detailexists boolean No
providerusername string No
provideruserpassword string No
responseCode integer No
message string No

ProductSearchRequest

FieldTypeRequiredDescription
pageNumber integer Yes Page Number
maxRecordCount integer Yes Per Page Record
searchText array of string No Product Search On Title, Author, Description, Keywords
filteredSubjectsList array of integer No Filter By Subjects
filteredGradesList array of string No Filter By Grades
filteredThemeList array of integer No Filter By Themes
filteredDRALevelList array of integer No Filter By DRA Level
filteredReadingLevelList array of string No Filter By Reading Level
filteredEarlyInterventionLevelList array of string No Filter By Early Intervention
filteredGuidedReadingLevelList array of string No Filter By Guided Reading Level
filterContentGroupList array of integer No Filter By Content Group
filterProductTypeList array of integer No Filter By Product Type
mode string No Search BY ALL|LATEST
sorting string No Sorting Order By ASC|DESC
monthDuration integer No Month Duration for Latest
filteredGenreList array of integer No Filter By Genre
filteredBookTypeList array of integer No Filter By Book Type

ProductSo

FieldTypeRequiredDescription
productId integer No
title string No
productTypeTitle string No
description string No
free boolean No
author string No
thumbnail string No
bigCoverImage string No
productGroupId integer No
gradeFrom string No
gradeTo string No
productcode string No

ProductMetaData

FieldTypeRequiredDescription
productCode string Yes productCode
description string No description
author string No author
price string No price
availableforSelling boolean No Book available for selling
availableOnContentStore boolean No Available On ContentStore
availableOnlyToteacher boolean No Available Only To teacher
search string No search
contentGroup string No contentGroup
theme string No theme
readerTheme1 string No readerTheme1
readerTheme2 string No readerTheme2
primarySubject string No primarySubject
secondarySubject string No secondarySubject
genre string No genre
bookType string No bookType
ageFrom string No ageFrom (range in [3-20]) and should be less than ageTo
ageTo string No ageTo (range in [3-20])
gradeFrom string No gradeFrom (Should be less than GradeTo
gradeTo string No gradeTo
readingLevelLexile string No readingLevelLexile Should be in range [0-2020]
guidedReadingLevel string No guidedReadingLevel
readingLevelEarly string No readingLevelEarly
dRALevel string No dRALevel
accessCodeRequired boolean No accessCodeRequired
accessThroughAssignment boolean No accessThroughAssignment
availableForFree boolean No

Response

FieldTypeRequiredDescription
responseCode integer No
message string No
detailexists boolean No
providerusername string No
provideruserpassword string No

ProductESUserProductRequest

FieldTypeRequiredDescription
userToken string No User token
userProductActivities array of UserProductActivityData No User product action WEBREAD/FAVOURITE activity

userAccSrvRes

FieldTypeRequiredDescription
contentFilter array of object No

ProductMetaDataDTO

FieldTypeRequiredDescription
searchText array of string No
contentGroup string No
theme string No
primarySubject string No
secondarySubject string No
genre array of string No
bookType string No
gradeFrom string No
gradeTo string No
readingLevel string No
guidedReadingLevel string No
earlyInterventionLevel string No
dRALevel string No
productType string No
availableforSelling boolean No
availableOnContentStore boolean No
availableOnlyToteacher boolean No
readerTheme1 string No
readerTheme2 string No

ProductServiceResponseSO

FieldTypeRequiredDescription
response Response No
title string No
description string No
productid integer No
author string No
isbn string No
productcode string No
price number No

Product-Details

Provides APIs to retrieve detailed information about products, including metadata, editions, configurations, and associated resources available in MagicBox.

Resource path: /Product-Details · 9 endpoints
POST /licensing/v1.0/accesscode/activation/{userToken}

Definition: Product details.

Operation IDaccessCodeActivation
Response typeProductDetailsResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/licensing/v1.0/accesscode/activation/{userToken}
Request Body (JSON)
Model: activation
{
  "userName": "teacher1",
  "deviceType": "string",
  "uuid": "123",
  "appId": "123",
  "tenant": "your-tenant",
  "deviceName": "Sample Name",
  "osVersion": "2026-07-15",
  "appVersion": "2026-07-15",
  "readerVersion": "2026-07-15"
}

Parameters

NameInTypeRequiredDescription
body Body activation No
userToken Path string Yes user token
GET /licensing/v1.0/accesscode/activation/{userToken}

Definition: Product details.

Operation IDaccessCodeWebActivation
Response typeProductDetailsResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/licensing/v1.0/accesscode/activation/{userToken}

Parameters

NameInTypeRequiredDescription
userToken Path string Yes user token
GET /licensing/v1.0/getResourceList

Definition: View platform usability for a specific date

Operation IDgetResourceList
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/licensing/v1.0/getResourceList

Parameters

NameInTypeRequiredDescription
date Query string Yes Date (single date in yyyy-MM-dd format)
userGuid Query string No UserGuid of a specific user
productId Query integer No Product Id of a specific product
offset Query integer No Offset (Page Number)
limit Query integer No Limit (Records Per Page)
GET /licensing/v1.0/kea/tincan/getResourceList

Definition: View platform usability for a specific date

Operation IDgetResourceListForKeaTincanCourse
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/licensing/v1.0/kea/tincan/getResourceList

Parameters

NameInTypeRequiredDescription
date Query string Yes Date (single date in yyyy-MM-dd format)
userId Query string No UserId of a specific user
productId Query integer No Porduct Id of a specific course
offset Query integer No Offset (Page Number)
limit Query integer No Limit (Records Per Page Max (100))
GET /licensing/v1.0/getCourseDetailsById/{courseid}

Definition: View course-toc-details for a specific courseid

Operation IDgetCourseDetailsById
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/licensing/v1.0/getCourseDetailsById/{courseid}

Parameters

NameInTypeRequiredDescription
courseid Path string Yes Course Id
GET /licensing/v1.0/kea/tincan/getInitializedList

Definition: View platform usability for a specific date

Operation IDgetInitializedList
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/licensing/v1.0/kea/tincan/getInitializedList

Parameters

NameInTypeRequiredDescription
date Query string Yes Date (single date in yyyy-MM-dd format)
userId Query string No UserId of a specific user
productId Query integer No Porduct Id of a specific course
offset Query integer No Offset (Page Number)
limit Query integer No Limit (Records Per Page Max (100))
GET /licensing/v1.0/kea/tincan/getAssessmentStatus

Definition: User assessment status

Operation IDgetUserAssessmentStatus
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/licensing/v1.0/kea/tincan/getAssessmentStatus

Parameters

NameInTypeRequiredDescription
userId Query string No UserId of a specific user
offset Query integer No Offset (Page Number)
limit Query integer No Limit (Records Per Page Max (100))
GET /licensing/v1.0/accesscode/getAllProductBySchoolId

Definition: Product details for a School.

Operation IDgetAllProductBySchoolId
Response typeMap
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/licensing/v1.0/accesscode/getAllProductBySchoolId

Parameters

NameInTypeRequiredDescription
userToken Query string Yes user token
startDate Query string Yes Start Date
endDate Query string Yes End Date
courseTypeName Query string Yes CourseType Name
offset Query integer No Offset
limit Query integer No Limit
GET /licensing/v1.0/accesscode/getlrsData/{tenantID}

Definition: LRS details.

Operation IDgetLRSDetails
Response typeobject
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/licensing/v1.0/accesscode/getlrsData/{tenantID}

Parameters

NameInTypeRequiredDescription
tenantID Path string Yes Tenant ID
Data models (5)

productdetail

FieldTypeRequiredDescription
productId integer No
title string No
description string No
subject string No
subjectId integer No
gradeTo integer No
gradeFrom integer No
price number No
demoLink string No
readingLevel string No
coverImage string No
coverHeight integer No
coverWidth integer No
cartImage string No
demoImgHgt integer No
demoImgWdt integer No
thumbnailImgHgt integer No
thumnailImage string No
releaseTime integer No
author string No
isbn string No
isbn10 string No
isbn13 string No
enabled boolean No
orientation string No
releaseDate string No
thumbnailImgWdt integer No
totalContent integer No
productType string No
productTypeId integer No
version string No
renderMetadata string No
tcmReadingLevel string No
guidedReadingLevel string No
earlyInterventionLevel string No
draReadingLevel string No
ageTo integer No
ageFrom integer No
subject2 string No
subject2Id integer No
downloadPath string No
launcherType string No
tenantId integer No
source string No
listTagName array of string No
contentAesKey string No
sysDate string No
subStartDate string No
subExpiryDate string No
currencySymbol string No
dra integer No
theme integer No
contentGroup integer No
productOrder integer No
isAvlToTeachers boolean No
productCode string No
forceUpdate string No
contentVersion string No
readerThemeId integer No
readerThemeVersion integer No
isAvlFreeOnContentStore boolean No
thumbnailVersion integer No
languageId integer No
launchToolId integer No
launchToolType string No
assignmentModifiedDate string No
publisher integer No
contentModifiedDate string No
noOfDaysToExpire integer No
readerThemeIdV2 integer No
readerThemeV2Version integer No
viewable boolean No

activation

FieldTypeRequiredDescription
userName string Yes User Name
deviceType string Yes Device Type
uuid string Yes UUID
appId string Yes App Id
tenant string Yes Tenant
deviceName string Yes Device Name
osVersion string Yes OS Version
appVersion string Yes App Version
readerVersion string Yes Reader Version

ProductDetailsResponseSO

FieldTypeRequiredDescription
response Response No
productDetails array of productdetail No

Map

FieldTypeRequiredDescription
empty boolean No

Response

FieldTypeRequiredDescription
responseCode integer No
message string No
detailexists boolean No
providerusername string No
provideruserpassword string No

License

Allow publishers to generate and assign license to school admin. School Admin can further distribute the license to teachers and students to enable the product access.

Resource path: /License · 21 endpoints
POST /license/v1.0/manageaccesscodes

Definition: Manage access codes/purchase order for individual teacher or user.

Operation IDmanageAccessCodes
Response typeLicenseServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/manageaccesscodes
Request Body (JSON)
Model: LicenseServiceRequest
{
  "ponumber": "string",
  "username": "teacher1",
  "ordername": "Sample Name",
  "productcode": [
    "string"
  ],
  "nooflicense": 1,
  "startdate": "2026-07-15",
  "expirydate": "2026-07-15",
  "price": 1,
  "usertype": "string",
  "creatorusername": "teacher1",
  "noofaccesscode": 1,
  "duration": 1,
  "emailToUser": true,
  "enableAccountProvisioning": true,
  "autoAssignPO": true,
  "autoAssignStudentPO": true,
  "teacherBundle": true,
  "ecomPortalRequest": true
}

Parameters

NameInTypeRequiredDescription
body Body LicenseServiceRequest No
POST /license/v1.0/getaccesscodelistbypo

Definition: Return the list of access code against a purchase order.

Operation IDgetaccesscodelistbypo
Response typeLicenseServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/getaccesscodelistbypo
Request Body (JSON)
Model: POServiceRequest
{
  "ponumber": "string"
}

Parameters

NameInTypeRequiredDescription
body Body POServiceRequest No
POST /license/v1.0/assignaccesscode

Definition: Assign access code to individual teacher and individual user.

Operation IDassignaccesscode
Response typeLicenseServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/assignaccesscode
Request Body (JSON)
Model: AssignAccesscodeRequest
{
  "accesscode": "PROD001",
  "username": "teacher1",
  "emailToUser": true
}

Parameters

NameInTypeRequiredDescription
body Body AssignAccesscodeRequest No
POST /license/v1.1/createlicense

Definition: Create new purchase order for school for CUPA only.

Operation IDcreateLicenseV2
Response typeLicenseServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.1/createlicense
Request Body (JSON)
Model: LicenseServiceRequest
{
  "ponumber": "string",
  "username": "teacher1",
  "ordername": "Sample Name",
  "productcode": [
    "string"
  ],
  "nooflicense": 1,
  "startdate": "2026-07-15",
  "expirydate": "2026-07-15",
  "price": 1,
  "usertype": "string",
  "creatorusername": "teacher1",
  "noofaccesscode": 1,
  "duration": 1,
  "emailToUser": true,
  "enableAccountProvisioning": true,
  "autoAssignPO": true,
  "autoAssignStudentPO": true,
  "teacherBundle": true,
  "ecomPortalRequest": true
}

Parameters

NameInTypeRequiredDescription
body Body LicenseServiceRequest No
POST /license/v1.0/createlicenseLTI

Definition: Create new purchase order for LTI school.

Operation IDcreateLicenseLTI
Response typeLicenseServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/createlicenseLTI
Request Body (JSON)
Model: LicenseServiceRequestLti
{
  "ponumber": "string",
  "username": "teacher1",
  "ordername": "Sample Name",
  "productcode": [
    "string"
  ],
  "concurrency": [
    {
      "productCode": "PROD001",
      "onlineConcurrency": 1,
      "offLineConcurrency": 1,
      "numberOfDays": 1
    }
  ],
  "nooflicense": 1,
  "startdate": "2026-07-15",
  "expirydate": "2026-07-15",
  "price": 1,
  "usertype": "string",
  "creatorusername": "teacher1",
  "noofaccesscode": 1,
  "emailToUser": true
}

Parameters

NameInTypeRequiredDescription
body Body LicenseServiceRequestLti No
POST /license/v1.0/createlicense

Definition: Create new purchase order for school.

Operation IDcreateLicense
Response typeLicenseServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/createlicense
Request Body (JSON)
Model: LicenseServiceRequest
{
  "ponumber": "string",
  "username": "teacher1",
  "ordername": "Sample Name",
  "productcode": [
    "string"
  ],
  "nooflicense": 1,
  "startdate": "2026-07-15",
  "expirydate": "2026-07-15",
  "price": 1,
  "usertype": "string",
  "creatorusername": "teacher1",
  "noofaccesscode": 1,
  "duration": 1,
  "emailToUser": true,
  "enableAccountProvisioning": true,
  "autoAssignPO": true,
  "autoAssignStudentPO": true,
  "teacherBundle": true,
  "ecomPortalRequest": true
}

Parameters

NameInTypeRequiredDescription
body Body LicenseServiceRequest No
POST /license/v1.0/consumelicense

Definition: Assign purchase order to school user. This will allow school admin, teacher and student to get access to the products.

Operation IDconsumeLicense
Response typeLicenseServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/consumelicense
Request Body (JSON)
Model: AssignPOServiceRequest
{
  "ponumber": "string",
  "username": "teacher1",
  "emailToUser": true,
  "enableAccountProvisioning": true
}

Parameters

NameInTypeRequiredDescription
body Body AssignPOServiceRequest No
POST /license/v1.0/editlicense

Definition: Update existing purchase order.

Operation IDeditLicense
Response typeLicenseServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/editlicense
Request Body (JSON)
Model: LicenseServiceRequest
{
  "ponumber": "string",
  "username": "teacher1",
  "ordername": "Sample Name",
  "productcode": [
    "string"
  ],
  "nooflicense": 1,
  "startdate": "2026-07-15",
  "expirydate": "2026-07-15",
  "price": 1,
  "usertype": "string",
  "creatorusername": "teacher1",
  "noofaccesscode": 1,
  "duration": 1,
  "emailToUser": true,
  "enableAccountProvisioning": true,
  "autoAssignPO": true,
  "autoAssignStudentPO": true,
  "teacherBundle": true,
  "ecomPortalRequest": true
}

Parameters

NameInTypeRequiredDescription
body Body LicenseServiceRequest No
POST /license/v1.0/generateaccesscodes

Definition: Generate access codes for individual users.

Operation IDgenerateAccessCodes
Response typeLicenseServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/generateaccesscodes
Request Body (JSON)
Model: LicenseServiceRequest
{
  "ponumber": "string",
  "username": "teacher1",
  "ordername": "Sample Name",
  "productcode": [
    "string"
  ],
  "nooflicense": 1,
  "startdate": "2026-07-15",
  "expirydate": "2026-07-15",
  "price": 1,
  "usertype": "string",
  "creatorusername": "teacher1",
  "noofaccesscode": 1,
  "duration": 1,
  "emailToUser": true,
  "enableAccountProvisioning": true,
  "autoAssignPO": true,
  "autoAssignStudentPO": true,
  "teacherBundle": true,
  "ecomPortalRequest": true
}

Parameters

NameInTypeRequiredDescription
body Body LicenseServiceRequest No
POST /license/v1.0/consumedistrictLicense

Definition: Assign purchase order to district school user. This will allow district school admin, district teacher and district student to get access to products.

Operation IDconsumedistrictLicense
Response typeLicenseServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/consumedistrictLicense
Request Body (JSON)
Model: AssignPODistrictServiceRequest
{
  "ponumber": "string",
  "userName": "teacher1",
  "emailToUser": true,
  "assignedteacherUserNames": [
    "string"
  ],
  "unAssignedTeacherUserNames": [
    "string"
  ],
  "licenseCount": 1
}

Parameters

NameInTypeRequiredDescription
body Body AssignPODistrictServiceRequest No
GET /license/v1.0/poListBySchoolId/{schoolId}

Definition: Get school active purchase order list.

Operation IDgetPoListBySchoolId
Response typeString, Object
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/poListBySchoolId/{schoolId}

Parameters

NameInTypeRequiredDescription
schoolId Path integer Yes School Id
GET /license/v1.0/productListBySchoolId

Definition: Get school active product order list.

Operation IDgetproductListBySchoolId
Response typeSchoolProductResponseSO
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/productListBySchoolId

Parameters

NameInTypeRequiredDescription
schoolId Query integer No School Id
schoolCode Query string No School Code
isEcomerce Query boolean No Only Ecomerce books (Default False)
offset Query integer No Offset (Page Number)
limit Query integer No Limit (Records Per Page)
GET /license/v1.0/licensedata/{poNumber}

Definition: Get the license data of the active purchase order of a school or district only.

Operation IDgetLicenseDataByPONumber
Response typeObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/licensedata/{poNumber}

Parameters

NameInTypeRequiredDescription
poNumber Path string Yes PO Number
lastSyncDate Query string No Date of last sync must be as yyyy-MM-dd HH:mm:ss
GET /license/v1.0/ind/licensedata/{poNumber}

Definition: Get the license data of the active purchase order of the individual account.

Operation IDgetIndLicenseDataByPONumber
Response typeObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/ind/licensedata/{poNumber}

Parameters

NameInTypeRequiredDescription
poNumber Path string Yes PO Number
lastSyncDate Query string No Date of last sync must be as yyyy-MM-dd HH:mm:ss
GET /license/v1.0/ind/license/accesscodes/{poNumber}

Definition: Get the license data with access codes of the active purchase order of the individual account.

Operation IDgetIndLicenseAccesscodesByPONumber
Response typeObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/ind/license/accesscodes/{poNumber}

Parameters

NameInTypeRequiredDescription
poNumber Path string Yes PO Number
offset Query integer No Offset
limit Query integer No Limit
POST /license/v1.0/poListBySchoolAndProducts/

Definition: Get school active purchase order list as per products

Operation IDpoListBySchoolAndProduct
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/poListBySchoolAndProducts/
Request Body (JSON)
Model: SchoolProductRequest
{
  "schoolCode": "PROD001",
  "schoolId": 1,
  "productId": [
    1
  ],
  "productCode": [
    "string"
  ]
}

Parameters

NameInTypeRequiredDescription
body Body SchoolProductRequest No
GET /license/v1.0/user/devicedetails/{userdetails}

Definition: Get the user device activation data based on username/userguid.

Operation IDgetUserDeviceInfoBasedOnUserGuidName
Response typeObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/user/devicedetails/{userdetails}

Parameters

NameInTypeRequiredDescription
userdetails Path string Yes User Name/ UserGuid
offset Query integer No Offset
limit Query integer No Limit
GET /license/v1.0/consumedata/{poNumber}

Definition: Get the license consume data of the given active purchase order number.

Operation IDgetLicenseConsumeDataByPONumber
Response typeObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/consumedata/{poNumber}

Parameters

NameInTypeRequiredDescription
poNumber Path string Yes PO Number
isTitleRequired Query boolean No If product titles is required, please pass this parameter value is true.
offset Query integer No Offset
limit Query integer No Limit
GET /license/v1.0/sku/consumedata/{poNumber}

Definition: Get the license consume data of the given active purchase order number.

Operation IDgetLicenseConsumeDataBySKUSchool
Response typeObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/sku/consumedata/{poNumber}

Parameters

NameInTypeRequiredDescription
poNumber Path string Yes Purchase order Number
isTitleRequired Query boolean No If product titles is required, please pass this parameter value is true.
isStudent Query boolean No This flag for getting students only, in case of BJU it is true.
offset Query integer No Offset
limit Query integer No Limit
GET /license/v1.0/sku/consumedata/student/{poNumber}

Definition: Get the license consume data of the given active purchase order number.

Operation IDgetLicenseConsumeDataBySKUStudent
Response typeObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/sku/consumedata/student/{poNumber}

Parameters

NameInTypeRequiredDescription
poNumber Path string Yes Purchase order Number
isTitleRequired Query boolean No If product titles is required, please pass this parameter value is true.
offset Query integer No Offset
limit Query integer No Limit
GET /license/v1.0/consumedata

Definition: Get the PO list consume data of the given collection and school.

Operation IDgetLicenseByCollection
Response typeObject
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/license/v1.0/consumedata

Parameters

NameInTypeRequiredDescription
collectionSKU Query string Yes Collection SKU Number
schoolcode Query string Yes schoolcode
Data models (12)

productdetail

FieldTypeRequiredDescription
productId integer No
title string No
description string No
thumbnailImgHgt integer No
thumnailImage string No
thumbnailImgWdt integer No
productTypeTitle string No
tenantId integer No
productCode string No

LicenseServiceRequest

FieldTypeRequiredDescription
ponumber string Yes Purchase order number
username string Yes Username of school admin
ordername string No Purchase order name
productcode array of string Yes Array of product codes
nooflicense integer Yes No. of licenses to be created. This field is optional for edit license and mandatory for create license api
startdate string Yes Start date of the purchase order (mm/dd/yyyy)
expirydate string No Expiry date of the purchase order (mm/dd/yyyy)
price number No Price for the purchase order. If not specified, price will be calculated based on the total prices of the contents purchased
usertype string No User type for which accesscode is to be generated. Possible values are TEACHER and USER (mandatory only for generate accesscode api)
creatorusername string Yes Username of the publisher who is creating the purchase order
noofaccesscode integer No No. of accesscodes to be generated (mandatory only for generate accesscode api)
duration integer No duration for the purchase order
emailToUser boolean No Flag to send email to user
enableAccountProvisioning boolean No flag to process the external resource's users
autoAssignPO boolean No Auto assign license to all School Admins and Teachers
autoAssignStudentPO boolean No Auto assign license to all existing and newly added Students
teacherBundle boolean No
ecomPortalRequest boolean No

LicenseServiceRequestLti

FieldTypeRequiredDescription
ponumber string Yes Purchase order number
username string Yes Username of school admin
ordername string No Purchase order name
productcode array of string Yes Array of product codes
concurrency array of productConcurrencyDto No Array of product codes with concurrency
nooflicense integer Yes No. of licenses to be created. This field is optional for edit license and mandatory for create license api
startdate string Yes Start date of the purchase order (mm/dd/yyyy)
expirydate string Yes Expiry date of the purchase order (mm/dd/yyyy)
price number No Price for the purchase order. If not specified, price will be calculated based on the total prices of the contents purchased
usertype string No User type for which accesscode is to be generated. Possible values are TEACHER and USER (mandatory only for generate accesscode api)
creatorusername string Yes Username of the publisher who is creating the purchase order
noofaccesscode integer No No. of accesscodes to be generated (mandatory only for generate accesscode api)
emailToUser boolean No Flag to send email to user

productConcurrencyDto

FieldTypeRequiredDescription
productCode string No
onlineConcurrency integer No
offLineConcurrency integer No
numberOfDays integer No

POServiceRequest

FieldTypeRequiredDescription
ponumber string Yes Unique purchase order number.

LicenseServiceResponseSO

FieldTypeRequiredDescription
accessCodes array of string No
response Response No

AssignPOServiceRequest

FieldTypeRequiredDescription
ponumber string Yes Purchase order number
username string Yes Username of a user to whom PO to be assigned
emailToUser boolean No flag to send email to user
enableAccountProvisioning boolean No flag to process the external resource's users

AssignAccesscodeRequest

FieldTypeRequiredDescription
accesscode string Yes Accesscode
username string Yes Username of a user to whom po to be assigned
emailToUser boolean No flag to send email to user

Response

FieldTypeRequiredDescription
responseCode integer No
message string No
detailexists boolean No
providerusername string No
provideruserpassword string No

SchoolProductRequest

FieldTypeRequiredDescription
schoolCode string No Unique school code
schoolId integer No Unique school Id
productId array of integer No Unique product Ids
productCode array of string No Unique product codes

AssignPODistrictServiceRequest

FieldTypeRequiredDescription
ponumber string Yes Purchase order number
userName string Yes Username of a school admin/student to whom purchase order is to be assigned
emailToUser boolean No Flag to send email to user
assignedteacherUserNames array of string No Usernames of a teacher(comma separated) to whom purchase order is to be assigned
unAssignedTeacherUserNames array of string No Usernames of a teacher(comma separated) from whom purchase order is to be unassigned
licenseCount integer No No. of licenses to be assigned

SchoolProductResponseSO

FieldTypeRequiredDescription
response Response No
productDetails array of productdetail No
xTotalCount integer No

Assessment

Provides APIs to create, retrieve, manage, and monitor assessments, assessment attempts, results, and related academic data within the MagicBox platform.

Resource path: /Assessment · 21 endpoints
GET /assessment/v1.0/assessment/{assessmentId}

Definition: Get assessment by Id (Not for Student users).

Operation IDgetAssessment
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/assessment/{assessmentId}

Parameters

NameInTypeRequiredDescription
assessmentId Path integer Yes Assessment Id
userToken Query string Yes User Token
GET /assessment/v1.0/self/assignment/{assessmentId}

Definition: Get Self assignment by assessment Id (Not for Publisher/Student users).

Operation IDgetSelfAssignment
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/self/assignment/{assessmentId}

Parameters

NameInTypeRequiredDescription
assessmentId Path integer Yes Assessment Id
userToken Query string Yes User Token
GET /assessment/v1.0/fetch-assignment-score/{assignmentId}

Definition: Fetch own assignment score.

Operation IDfetchScore
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/fetch-assignment-score/{assignmentId}

Parameters

NameInTypeRequiredDescription
assignmentId Path integer Yes Assignment Id
userToken Query string Yes User Token
GET /assessment/v1.0/fetch-assessment/{classId}

Definition: Get list of assigned assessment to the class.

Operation IDfetchAssessmentByClassId
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/fetch-assessment/{classId}

Parameters

NameInTypeRequiredDescription
classId Path string Yes Class Id
languageId Query integer No Language Id
teacherGuid Query string No teacherGuid
studentId Query string No studentId
assessmentType Query string No assessmentType
contentFilter Query string No contentType for report
assignmentStatusType Query string No assignmentStatusType for report
isGradebook Query boolean No assignmentStatusType for report
POST /assessment/v1.0/fetch-assessment/{classId}

Definition: Get list of assigned assessment to the class.

Operation IDfetchAssessmentsByClassId
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/fetch-assessment/{classId}
Request Body (JSON)
Model: AssessmentSearchRequestDTO
{
  "classIds": [
    1
  ],
  "languageId": 1,
  "teacherGuid": "123",
  "assessmentType": "string",
  "contentType": "string",
  "studentId": "123",
  "assignmentStatusType": "string",
  "isGradebook": true,
  "tenantId": 1,
  "userType": "string",
  "asmtAssessmentCategoriesIds": [
    1
  ],
  "schoolId": 1
}

Parameters

NameInTypeRequiredDescription
classId Path string Yes Class Id
body Body AssessmentSearchRequestDTO No
POST /assessment/v1.0/inBook/assignment/{assessmentId}

Definition: Get assessment inBook assignment by assessment Id and product Id (Not for Student users).

Operation IDgetHotSpotAssignment
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/inBook/assignment/{assessmentId}
Request Body (JSON)
Model: InBookAssignmentRequest
{
  "pageNo": "string",
  "productId": 1,
  "transactionId": "123",
  "xCoorinate": "string",
  "yCoorinate": "string",
  "href": "string"
}

Parameters

NameInTypeRequiredDescription
assessmentId Path integer Yes Assessment Id
body Body InBookAssignmentRequest No
userToken Query string Yes User Token
POST /assessment/v1.0/search-assessment

Definition: Search Assessment (Not for Student users).

Operation IDsearchAssessment
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/search-assessment
Request Body (JSON)
Model: AssessmentSearchRequest
{
  "pageNumber": 1,
  "maxRecordCount": 1,
  "gradeId": 1,
  "subjectId": 1,
  "searchString": "string"
}

Parameters

NameInTypeRequiredDescription
body Body AssessmentSearchRequest No
userToken Query string Yes User Token
POST /assessment/v1.0/assign-assessment

Definition: Assign Assessment (Only for Teacher Users).

Operation IDassignAssessments
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/assign-assessment
Request Body (JSON)
Model: AssessmentAssignmentRequest
{
  "assessmentIds": [
    1
  ],
  "userNameOrUserIds": [
    "string"
  ],
  "userField": "string",
  "groupName": "Sample Name",
  "classGroupId": 1
}

Parameters

NameInTypeRequiredDescription
body Body AssessmentAssignmentRequest No
userToken Query string Yes User Token
POST /assessment/v1.0/assignment-user-status

Definition: Assignment user assignment status (Only for Teacher users)

Operation IDassignmentUserStatus
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/assignment-user-status
Request Body (JSON)
Model: AssignmentUserRequest
{
  "assignmentIds": [
    1
  ],
  "userNameOrUserIds": [
    "string"
  ],
  "userField": "string"
}

Parameters

NameInTypeRequiredDescription
body Body AssignmentUserRequest No
userToken Query string Yes User Token
POST /assessment/v1.0/assignment-user-score

Definition: Assignment users assignment scores (Only for Teacher users)

Operation IDassignmentUserScore
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/assignment-user-score
Request Body (JSON)
Model: AssignmentUserRequest
{
  "assignmentIds": [
    1
  ],
  "userNameOrUserIds": [
    "string"
  ],
  "userField": "string"
}

Parameters

NameInTypeRequiredDescription
body Body AssignmentUserRequest No
userToken Query string Yes User Token
GET /assessment/v1.0/assignment-user-detail

Definition: Assignment users assignment scores and count

Operation IDassignmentUserDetailLeap
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/assignment-user-detail

Parameters

NameInTypeRequiredDescription
userNames Query string No
startDate Query string No
endDate Query string No
offset Query integer No Offset
limit Query integer No Limit
GET /assessment/v1.0/fetch-student-assessment-report

Definition: Fetch Student Assessment Report

Operation IDfetchStudentPerformanceReport
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/fetch-student-assessment-report

Parameters

NameInTypeRequiredDescription
assignmentId Query integer No
tagId Query string No
startDate Query string No
endDate Query string No
offset Query integer No Offset
limit Query integer No Limit
classId Query string No
teacherGuid Query string No teacherGuid
rangeFilter Query string No rangeFilter
POST /assessment/v2.0/student-assessment-graph-report

Definition: Fetch Student Assessment Report

Operation IDassessmentPerformanceGraphReport
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v2.0/student-assessment-graph-report
Request Body (JSON)
Model: AssessmentPerfromanceReportDTO
{
  "tagId": "123",
  "startDate": "2026-07-15",
  "endDate": "2026-07-15",
  "offset": 1,
  "limit": 1,
  "classIds": [
    1
  ],
  "teacherGuid": "123",
  "rangeFilter": "string",
  "noTagFilter": true,
  "assignmentId": 1
}

Parameters

NameInTypeRequiredDescription
body Body AssessmentPerfromanceReportDTO No
isNewUIUX Query boolean No New UIUX
GET /assessment/v1.0/fetch-student-assessment-graph-report

Definition: Fetch Student Assessment Report

Operation IDassessmentPerformanceGraphReport
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/fetch-student-assessment-graph-report

Parameters

NameInTypeRequiredDescription
assignmentId Query integer No
tagId Query string No
startDate Query string No
endDate Query string No
offset Query integer No Offset
limit Query integer No Limit
classId Query string No
teacherGuid Query string No teacherGuid
GET /assessment/v1.0/fetch-student-assessment-tag-bar-graph-report

Definition: Fetch Tags Bar Graph Report

Operation IDassessmentPerformanceTagBarGraphReport
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/fetch-student-assessment-tag-bar-graph-report

Parameters

NameInTypeRequiredDescription
assignmentId Query integer No
tagId Query string No
startDate Query string No
endDate Query string No
classId Query string No
teacherGuid Query string No teacherGuid
POST /assessment/v2.0/student-assessment-tag-bar-graph-report

Definition: Fetch Tags Bar Graph Report

Operation IDassessmentPerformanceTagBarGraphReport
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v2.0/student-assessment-tag-bar-graph-report
Request Body (JSON)
Model: AssessmentPerfromanceReportDTO
{
  "tagId": "123",
  "startDate": "2026-07-15",
  "endDate": "2026-07-15",
  "offset": 1,
  "limit": 1,
  "classIds": [
    1
  ],
  "teacherGuid": "123",
  "rangeFilter": "string",
  "noTagFilter": true,
  "assignmentId": 1
}

Parameters

NameInTypeRequiredDescription
body Body AssessmentPerfromanceReportDTO No
isNewUIUX Query boolean No New UIUX
GET /assessment/v1.0/fetch-student-assessment-average-report

Definition: Fetch Student Assessment Average Report

Operation IDassessmentPerformanceAverageReport
Response typeAverageResponseDto
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/fetch-student-assessment-average-report

Parameters

NameInTypeRequiredDescription
assignmentId Query integer No
tagId Query string No
startDate Query string No
endDate Query string No
offset Query integer No Offset
limit Query integer No Limit
classId Query string No
teacherGuid Query string No teacherGuid
rangeFilter Query string No rangeFilter
POST /assessment/v2.0/student-assessment-average-report

Definition: Fetch Student Assessment Average Report

Operation IDassessmentPerformanceAverageReport
Response typeAverageResponseDto
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v2.0/student-assessment-average-report
Request Body (JSON)
Model: AssessmentPerfromanceReportDTO
{
  "tagId": "123",
  "startDate": "2026-07-15",
  "endDate": "2026-07-15",
  "offset": 1,
  "limit": 1,
  "classIds": [
    1
  ],
  "teacherGuid": "123",
  "rangeFilter": "string",
  "noTagFilter": true,
  "assignmentId": 1
}

Parameters

NameInTypeRequiredDescription
body Body AssessmentPerfromanceReportDTO No
GET /assessment/v2.0/assignment-user-detail

Definition: Assignment users assignment scores and count

Operation IDassignmentUserDetailLeapV2
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v2.0/assignment-user-detail

Parameters

NameInTypeRequiredDescription
userNames Query string No
startDate Query string No
endDate Query string No
courseId Query string No courseId
status Query string No status
offset Query integer No Offset
limit Query integer No Limit
POST /assessment/v1.0/assignment/student/questionScore

Definition: student question score for Assessment

Operation IDassessmentReport
Response typeAssessmentPerformanceReport
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/assignment/student/questionScore
Request Body (JSON)
Model: TagReportRequestDto
{
  "from": 1,
  "size": 1,
  "tenantId": 1,
  "schoolId": 1,
  "districtId": 1,
  "tagHierarchyId": "123",
  "userType": "string",
  "parent": {
    "id": "123",
    "name": "Sample Name",
    "value": 1,
    "details": {
      "catId": "123",
      "catName": "Sample Name",
      "graphicalData": {
        "total": 1,
        "categories": [
          {
            "name": "Sample Name",
            "value": 1,
            "color": "string"
          }
        ]
      }
    },
    "parent": {
      "Object": "value"
    }
  },
  "root": {
    "id": "123",
    "name": "Sample Name",
    "value": "string",
    "details": {
      "catId": "123",
      "catName": "Sample Name",
      "graphicalData": {
        "total": 1,
        "categories": [
          {
            "name": "Sample Name",
            "value": 1,
            "color": "string"
          }
        ]
      }
    },
    "parent": "string"
  },
  "classId": 1,
  "children": [
    {
      "id": "123",
      "name": "Sample Name",
      "value": {
        "StringBuilder": "value"
      },
      "details": {
        "catId": "123",
        "catName": "Sample Name",
        "graphicalData": {
          "total": 1,
          "categories": [
            {
              "name": "Sample Name",
              "value": 1,
              "color": "string"
            }
          ]
        }
      },
      "childrenExist": true,
      "attempted": true
    }
  ],
  "guid": "123",
  "reportType": "string",
  "categoryId": "123",
  "assignmentId": 1,
  "tagId": "123",
  "rangeFilter": "string",
  "assessmentType": "string",
  "searchText": "string",
  "languageId": 1,
  "isGradebook": true
}

Parameters

NameInTypeRequiredDescription
body Body TagReportRequestDto No
POST /assessment/v1.0/fetch-assessment

Definition: Get list of assigned assessment to the classes.

Operation IDfetchAssessmentBySearchCriteria
Response typeString, Object
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/assessment/v1.0/fetch-assessment
Request Body (JSON)
Model: AssessmentSearchRequestDTO
{
  "classIds": [
    1
  ],
  "languageId": 1,
  "teacherGuid": "123",
  "assessmentType": "string",
  "contentType": "string",
  "studentId": "123",
  "assignmentStatusType": "string",
  "isGradebook": true,
  "tenantId": 1,
  "userType": "string",
  "asmtAssessmentCategoriesIds": [
    1
  ],
  "schoolId": 1
}

Parameters

NameInTypeRequiredDescription
body Body AssessmentSearchRequestDTO No
Data models (18)

AverageResponseDto

FieldTypeRequiredDescription
data Object No
tenantId integer No

AssessmentReport

FieldTypeRequiredDescription
studentId string No
firstName string No
lastName string No
totalPoints number No
userScore number No
questionAssessments array of QuestionAssessment No

Root

FieldTypeRequiredDescription
id string No
name string No
value string No
details Details No
parent string No

AssessmentSearchRequest

FieldTypeRequiredDescription
pageNumber integer Yes Page Number
maxRecordCount integer Yes Per Page Record
gradeId integer No Grade id
subjectId integer No Subject id
searchString string No Search text

Child

FieldTypeRequiredDescription
id string No
name string No
value StringBuilder No
details Details No
childrenExist boolean No
attempted boolean No

Parent

FieldTypeRequiredDescription
id string No
name string No
value integer No
details Details No
parent Object No

CategoryDetails

FieldTypeRequiredDescription
name string No
value integer No
color string No

AssessmentSearchRequestDTO

FieldTypeRequiredDescription
classIds array of integer No Class Ids
languageId integer No Language Id
teacherGuid string No User Unique Id
assessmentType string No assessmen type
contentType string No contentType for report
studentId string No studentId for report
assignmentStatusType string No assignment status type for report
isGradebook boolean No grade book for report
tenantId integer No Tenant Id
userType string No User Type
asmtAssessmentCategoriesIds array of integer No Assignment Category Ids
schoolId integer No School Id

QuestionAssessment

FieldTypeRequiredDescription
questId integer No
question string No
questType string No
qstScore number No
answerAssessments array of AnswerAssessment No

GraphicalData

FieldTypeRequiredDescription
total integer No
categories array of CategoryDetails No

AssessmentPerfromanceReportDTO

FieldTypeRequiredDescription
tagId string No tagId
startDate string No startDate
endDate string No endDate
offset integer No Offset
limit integer No Limit
classIds array of integer No classIds
teacherGuid string No teacherGuid
rangeFilter string No rangeFilter
noTagFilter boolean No No Tag Filter
assignmentId integer Yes Assessment Ids

Details

FieldTypeRequiredDescription
catId string No
catName string No
graphicalData GraphicalData No

AssessmentAssignmentRequest

FieldTypeRequiredDescription
assessmentIds array of integer Yes Assessment Ids
userNameOrUserIds array of string Yes List of User Ids
userField string Yes User field like UserName or UserId
groupName string Yes Group name
classGroupId integer No Class or Group Id

AnswerAssessment

FieldTypeRequiredDescription
ansId integer No
userAnswer boolean No
correct boolean No
answer string No

InBookAssignmentRequest

FieldTypeRequiredDescription
pageNo string Yes Page Number
productId integer Yes Product Id
transactionId string No Transaction Id
xCoorinate string Yes X Coordinate
yCoorinate string Yes Y Coordinate
href string No Page URL

AssignmentUserRequest

FieldTypeRequiredDescription
assignmentIds array of integer Yes Assignment Ids
userNameOrUserIds array of string Yes List of User Ids
userField string Yes User field like UserName or UserId

AssessmentPerformanceReport

FieldTypeRequiredDescription
assessmentReports array of AssessmentReport No
qstCountAndScore Map[Object,int] No

TagReportRequestDto

FieldTypeRequiredDescription
from integer No
size integer No
tenantId integer No
schoolId integer No
districtId integer No
tagHierarchyId string No
userType string No
parent Parent No
root Root No
classId integer No
children array of Child No
guid string No
reportType string No
categoryId string No
assignmentId integer No
tagId string No
rangeFilter string No
assessmentType string No
searchText string No
languageId integer No
isGradebook boolean No

Sis-Roster

Provides APIs for integrating with Student Information Systems (SIS) to synchronize districts, schools, classes, teachers, students, and roster data with MagicBox.

Resource path: /Sis-Roster · 6 endpoints
POST /sisroster/v1.0/registerSisProvider

Definition: Register new SIS provider.

Operation IDregisterSisProvider
Response typeRegisterSisServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/sisroster/v1.0/registerSisProvider
Request Body (JSON)
Model: RegisterSisProviderRequest
{
  "sisServerType": "string",
  "authCreds": {
    "clientId": "123",
    "clientSecret": "string",
    "refreshToken": "YOUR_API_TOKEN",
    "accessToken": "YOUR_API_TOKEN",
    "endpointURL": "https://example.com",
    "redirectURI": "string",
    "methodType": "string",
    "authURL": "https://example.com"
  }
}

Parameters

NameInTypeRequiredDescription
body Body RegisterSisProviderRequest No
GET /sisroster/district/v1.0/{magicBoxOrganizationId}/users

Definition: Get Users by magicBoxOrganizationId

Operation IDgetUsers
Response typeUserDetailsResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/sisroster/district/v1.0/{magicBoxOrganizationId}/users

Parameters

NameInTypeRequiredDescription
magicBoxOrganizationId Path integer Yes District Id
roles Query string No Roles
offset Query integer No Offset
limit Query integer No Limit
POST /sisroster/v1.0/initiateSync

Definition: Initiate Sync.

Operation IDinitiateSync
Response typeInitiateSyncServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/sisroster/v1.0/initiateSync
Request Body (JSON)
Model: InitiateSyncRequest
{
  "magicBoxSisServerId": "123",
  "sisOrganizationId": "123",
  "groupKey": "string",
  "roles": [
    "string"
  ],
  "notification": {
    "notificationChannel": "string",
    "toEmail": "user@example.com",
    "pushEndpoint": "string"
  },
  "authCreds": {
    "clientId": "123",
    "clientSecret": "string",
    "refreshToken": "YOUR_API_TOKEN",
    "accessToken": "YOUR_API_TOKEN",
    "endpointURL": "https://example.com",
    "redirectURI": "string",
    "methodType": "string",
    "authURL": "https://example.com"
  },
  "forceUpdate": true,
  "sisTenantId": "123"
}

Parameters

NameInTypeRequiredDescription
body Body InitiateSyncRequest No
POST /sisroster/v1.0/stopSync

Definition: Stop Sync.

Operation IDstopSync
Response typeStopDeleteSyncServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/sisroster/v1.0/stopSync
Request Body (JSON)
Model: StopDeleteSyncRequest
{
  "magicBoxSisServerId": "123",
  "magicBoxOrganizationId": "123"
}

Parameters

NameInTypeRequiredDescription
body Body StopDeleteSyncRequest No
POST /sisroster/v1.0/deleteDistrictSync

Definition: Delete District Sync Data.

Operation IDdeleteDistrictSync
Response typeStopDeleteSyncServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/sisroster/v1.0/deleteDistrictSync
Request Body (JSON)
Model: StopDeleteSyncRequest
{
  "magicBoxSisServerId": "123",
  "magicBoxOrganizationId": "123"
}

Parameters

NameInTypeRequiredDescription
body Body StopDeleteSyncRequest No
GET /sisroster/v1.0/districtSyncError/{magicBoxOrganizationId}

Definition: District Sync Error

Operation IDdistrictSyncError
Response typeDistrictSyncErrorServiceResponseSO
Producesapplication/json, application/xml
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/sisroster/v1.0/districtSyncError/{magicBoxOrganizationId}

Parameters

NameInTypeRequiredDescription
magicBoxOrganizationId Path integer Yes
Data models (14)

Notification

FieldTypeRequiredDescription
notificationChannel string No Notification Channel
toEmail string No toEmail
pushEndpoint string No Push Endpoint

RegisterSisServiceResponseSO

FieldTypeRequiredDescription
magicBoxSisServerId string No
response Response No

StopDeleteSyncRequest

FieldTypeRequiredDescription
magicBoxSisServerId string Yes MagicBox Sis ServerId
magicBoxOrganizationId string Yes MagicBox OrganizationId

AuthCredential

FieldTypeRequiredDescription
clientId string No ClientId
clientSecret string No Client Secret
refreshToken string No Refresh Token
accessToken string No Access Token
endpointURL string No Endpoint URL
redirectURI string No Redirect URI
methodType string No Method Type OAUTH1/OAUTH2
authURL string No Authorization URL

InitiateSyncServiceResponseSO

FieldTypeRequiredDescription
magicBoxOrganizationId string No
response Response No
currentSyncStatus string No
lastSyncDate string No
lastSyncDateString string No

RegisterSisProviderRequest

FieldTypeRequiredDescription
sisServerType string Yes Sis Server Type
authCreds AuthCredential Yes Auth Credential

SchoolObj

FieldTypeRequiredDescription
schoolId integer No
schoolName string No

StopDeleteSyncServiceResponseSO

FieldTypeRequiredDescription
magicBoxOrganizationId string No
response Response No

DistrictSyncErrorServiceResponseSO

FieldTypeRequiredDescription
magicBoxOrganizationId string No
data Map[string,Object] No
response Response No

InitiateSyncRequest

FieldTypeRequiredDescription
magicBoxSisServerId string Yes MagicBox Sis ServerId
sisOrganizationId string No Sis OrganizationId
groupKey string No Group Key
roles array of string No Roles
notification Notification No Notification
authCreds AuthCredential No Auth Credential
forceUpdate boolean No Force update
sisTenantId string No Sis TenantId

Response

FieldTypeRequiredDescription
responseCode integer No
message string No
detailexists boolean No
providerusername string No
provideruserpassword string No

User

FieldTypeRequiredDescription
magicboxUserId string No
sisUserId string No
firstName string No
userName string No
lastName string No
userType string No
email string No
schools array of SchoolObj No
classes array of ClassObj No

UserDetailsResponseSO

FieldTypeRequiredDescription
magicBoxOrganizationId string No
sisOrganizationId string No
districtName string No
magicBoxSisServerId string No
count integer No
users array of User No
response Response No
totalPage integer No
currentPage integer No
currentSyncStatus string No
lastSyncDate string No
lastSyncDateString string No

ClassObj

FieldTypeRequiredDescription
classId integer No
className string No

ShopifyWebHook

Provides webhook APIs to receive and process Shopify events, enabling automated synchronization of orders, customers, products, and related commerce data with the MagicBox platform.

Resource path: /ShopifyWebHook · 5 endpoints
GET /webhooks/shopify/health

Definition: Check health of Webhook Service.

Operation IDhealthCheck
Response typeWebhookResponseDto
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/webhooks/shopify/health

Parameters

No parameters.

POST /webhooks/shopify/products/update

Definition: Update an existing product.

Operation IDhandleProductUpdate
Response typeWebhookResponseDto
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/webhooks/shopify/products/update
Request Body (JSON)
Model: ShopifyProductWebhookDto
{
  "id": 1,
  "title": "string",
  "vendor": "string",
  "status": "active",
  "tags": "string",
  "variants": {
    "List[VariantDto": "value"
  },
  "options": {
    "List[OptionDto": "value"
  },
  "images": {
    "List[ImageDto": "value"
  },
  "handle": "string",
  "published_scope": "string",
  "admin_graphql_api_id": "123",
  "product_type": "string",
  "body_html": "string",
  "template_suffix": "string",
  "updated_at": "2026-07-15",
  "published_at": "string",
  "created_at": "string"
}

Parameters

NameInTypeRequiredDescription
body Body ShopifyProductWebhookDto No
POST /webhooks/shopify/orders/process

Definition: Process Shopify Orders.

Operation IDhandleOrderCreation
Response typeWebhookResponseDto
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/webhooks/shopify/orders/process
Request Body (JSON)
Model: ShopifyOrderWebhookDto
{
  "id": 1,
  "cancelReason": "2026-07-15",
  "cancelledAt": "string",
  "cartToken": {
    "Object": "value"
  },
  "checkoutId": {
    "Object": "value"
  },
  "clientDetails": {
    "Object": "value"
  },
  "confirmationNumber": {
    "Object": "value"
  },
  "confirmed": true,
  "contactEmail": "user@example.com",
  "createdAt": "string",
  "currency": "string",
  "currentTotalPrice": "string",
  "currentTotalTax": "string",
  "customerLocale": "string",
  "discountCodes": [
    {
      "Object": "value"
    }
  ],
  "email": "user@example.com",
  "estimatedTaxes": true,
  "financialStatus": "active",
  "fulfillmentStatus": {
    "Object": "value"
  },
  "name": "Sample Name",
  "orderNumber": 1,
  "paymentGatewayNames": [
    "string"
  ],
  "phone": {
    "Object": "value"
  },
  "poNumber": {
    "Object": "value"
  },
  "totalDiscounts": "string",
  "totalOutstanding": "string",
  "totalPrice": "string",
  "billingAddress": {
    "firstName": "Jane",
    "address1": "string",
    "phone": "1234567890",
    "city": "string",
    "zip": "string",
    "province": "string",
    "country": "string",
    "lastName": "Doe",
    "address2": {
      "Object": "value"
    },
    "company": "string",
    "name": "Sample Name",
    "countryCode": "PROD001",
    "provinceCode": "PROD001"
  },
  "customer": {
    "id": 1,
    "createdAt": {
      "Object": "value"
    },
    "updatedAt": {
      "Object": "value"
    },
    "firstName": "Jane",
    "lastName": "Doe",
    "state": "string",
    "email": "user@example.com",
    "phone": {
      "Object": "value"
    },
    "defaultAddress": {
      "id": 1,
      "customerId": 1,
      "firstName": "Jane",
      "lastName": "Doe",
      "company": {
        "Object": "value"
      },
      "address1": "string",
      "address2": {
        "Object": "value"
      },
      "city": "string",
      "province": "string",
      "country": "string",
      "zip": "string",
      "phone": "1234567890",
      "name": "Sample Name",
      "provinceCode": "PROD001",
      "countryCode": "PROD001",
      "countryName": "Sample Name"
    }
  },
  "fulfillments": [
    {
      "Object": "value"
    }
  ],
  "lineItems": {
    "List[LineItem": "value"
  },
  "paymentTerms": {
    "Object": "value"
  },
  "refunds": [
    {
      "Object": "value"
    }
  ],
  "shippingAddress": {
    "firstName": "Jane",
    "address1": "string",
    "phone": "1234567890",
    "city": "string",
    "zip": "string",
    "province": "string",
    "country": "string",
    "lastName": "Doe",
    "address2": {
      "Object": "value"
    },
    "company": "string",
    "name": "Sample Name",
    "countryCode": "PROD001",
    "provinceCode": "PROD001"
  }
}

Parameters

NameInTypeRequiredDescription
body Body ShopifyOrderWebhookDto No
POST /webhooks/shopify/test

Definition: Test endpoint called with payload.

Operation IDtestEndpoint
Response typeWebhookResponseDto
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/webhooks/shopify/test
Request Body (JSON)
Model: string
"string"

Parameters

NameInTypeRequiredDescription
body Body string No
POST /webhooks/shopify/products/create

Definition: Create a new product.

Operation IDhandleProductCreation
Response typeWebhookResponseDto
Producesapplication/json
Content-Typeapplication/json
Full URL Pattern<BASE-URL>/webhooks/shopify/products/create
Request Body (JSON)
Model: ShopifyProductWebhookDto
{
  "id": 1,
  "title": "string",
  "vendor": "string",
  "status": "active",
  "tags": "string",
  "variants": {
    "List[VariantDto": "value"
  },
  "options": {
    "List[OptionDto": "value"
  },
  "images": {
    "List[ImageDto": "value"
  },
  "handle": "string",
  "published_scope": "string",
  "admin_graphql_api_id": "123",
  "product_type": "string",
  "body_html": "string",
  "template_suffix": "string",
  "updated_at": "2026-07-15",
  "published_at": "string",
  "created_at": "string"
}

Parameters

NameInTypeRequiredDescription
body Body ShopifyProductWebhookDto No
Data models (7)

WebhookResponseDto

FieldTypeRequiredDescription
message string No
productId integer No
status string No
processedAt string No
error string No

ShippingAddress

FieldTypeRequiredDescription
firstName string No
address1 string No
phone string No
city string No
zip string No
province string No
country string No
lastName string No
address2 Object No
company string No
name string No
countryCode string No
provinceCode string No

ShopifyOrderWebhookDto

FieldTypeRequiredDescription
id integer No
cancelReason string No
cancelledAt string No
cartToken Object No
checkoutId Object No
clientDetails Object No
confirmationNumber Object No
confirmed boolean No
contactEmail string No
createdAt string No
currency string No
currentTotalPrice string No
currentTotalTax string No
customerLocale string No
discountCodes array of Object No
email string No
estimatedTaxes boolean No
financialStatus string No
fulfillmentStatus Object No
name string No
orderNumber integer No
paymentGatewayNames array of string No
phone Object No
poNumber Object No
totalDiscounts string No
totalOutstanding string No
totalPrice string No
billingAddress BillingAddress No
customer Customer No
fulfillments array of Object No
lineItems List[LineItem] No
paymentTerms Object No
refunds array of Object No
shippingAddress ShippingAddress No

ShopifyProductWebhookDto

FieldTypeRequiredDescription
id integer No
title string No
vendor string No
status string No
tags string No
variants List[VariantDto] No
options List[OptionDto] No
images List[ImageDto] No
handle string No
published_scope string No
admin_graphql_api_id string No
product_type string No
body_html string No
template_suffix string No
updated_at string No
published_at string No
created_at string No

BillingAddress

FieldTypeRequiredDescription
firstName string No
address1 string No
phone string No
city string No
zip string No
province string No
country string No
lastName string No
address2 Object No
company string No
name string No
countryCode string No
provinceCode string No

DefaultAddress

FieldTypeRequiredDescription
id integer No
customerId integer No
firstName string No
lastName string No
company Object No
address1 string No
address2 Object No
city string No
province string No
country string No
zip string No
phone string No
name string No
provinceCode string No
countryCode string No
countryName string No

Customer

FieldTypeRequiredDescription
id integer No
createdAt Object No
updatedAt Object No
firstName string No
lastName string No
state string No
email string No
phone Object No
defaultAddress DefaultAddress No