Overview

Over the past two decades, digital exchange has emerged as an innovative subfield of global education. With that precedence and video being recognized as a primary medium of effective digital communication, it is imperative for academic institutions to enable their students with the right video-collaboration and video-streaming tools for progressive learning.


In this article, we will see how schools and universities can integrate VIDIZMO content within their preferred Learning Management Systems for recorded lecture sessions and provide their students a platform therein to collaborate and learn interactively.


To learn more about what VIDIZMO REST Services have to offer and how to get started with using them, see: VIDIZMO REST API Reference Guide.


Use-Case Scenario

Let's assume you have a digital Learning Management System for your varsity students that maintains their scores, assessments, as well as their class schedules. And the recordings of the digital lectures you hold over a conferencing solution are automatically synced within your VIDIZMO Portal.


After the recordings are made available in VIDIZMO Portal, you include 3 in-video Quizzes at various timestamps in your video with questions related to the content that has already been watched.


Now you want to be able to showcase these lecture videos on the LMS portal and categorize them based on the topics being discussed - which are always used as the title of the lecture e.g. Quantum Physics - Particles. This title is saved as-is for the corresponding recording in VIDIZMO. And you want to fetch the assessment reports for each of the 3 Quizzes. 


There are three ways with which you may include recorded lecture sessions from VIDIZMO on your own LMS site:

  • By generating an embed code of the desired videos and using it to embed videos on your own site.
  • By including VIDIZMO Video Player widget onto your own site with the same look and feel as in your site - but with a lot more control of how you may want to use the various available events within the video player. One such example could be how you can use the player event to show a pop-up when a student has completed watching a video or when a student has passed a Quiz.
  • By using REST APIs to gather all content-related information such as the renditions transcoded by VIDIZMO for multi-device playback, video thumbnails, etc and use them to play video using your own platform/player.


In the next sections, we will walk you through the third option using VIDIZMO REST APIs to get recorded lecture sessions related to a certain topic and be able to gather the assessment results of the Quizzes within.


Acquire Access Token

If the videos you are trying to access have been allowed for anonymous access, then you do not need an authentication token, otherwise you will be required to acquire an access token from VIDIZMO and pass it in the Request Header for fetching media in your portal.


Please note that VIDIZMO associates roles to its users which determine the set of permissions a user is allowed to perform in a Portal. Similarly, while accessing a resource using REST APIs, you will have to consider its user context. This means that if you wish to access or search a video in your Portal's media library such as in this case, you will need to pass the authentication token of a user who has the permission to search and view those videos in the portal.


In order to fetch videos related to a certain Topic, we will be executing a api/v1/mashup/search API call with the following search criteria as a JSON object in the Request Body:

  • The format of the mashup should be video
  • The keyword with which we want to search our lecture video video: Quantum Physics
  • Bring back basicInfo, Content, CustomAttributes, Tags parts to fetch information related to the videos such as its title, description, custom attributes, content renditions information, etc


You can try it out yourself at: https://{your-portal-domain}/api/v1/doc/index.html#/Mashup/SearchMashupsByGet


Here is a sample request and response:


Assemble the Request Message

After you have acquired the authorization token, and have figured out the parameters against which you need to fetch videos from your portal, you can now proceed with sending the request with the following components:


Request Method: POST


Request URL: api/v1/mashup/search

https://{domain}/api/v1/mashup/search


Request Header:

Authorization: Bearer <token-obtained>
Content Type: application/json


Generic

Request Body:

{
    "keyword": "quantum physics",
    "tags": [
        "Standard IX"
    ],
    "mashupFormats": [
        "Video"
    ],
    "customAttributes": "Curriculum:Cambridge IGCSE,Subject:Physics",
    "customAttributeOperator": "AND",
    "mashupSearchParts": [
        "BasicInfo",
        "CustomAttributes",
        "Content",
        "Tags"
    ]
}


Process the Response Message

To process the response, parse the response header and the response body. In the HTTPS GET request, you used the /mashup/search endpoint to retrieve the list of mashup based on the search criteria provided. Assuming that the response was successful, you should receive response header fields that are similar to the following:


Response Status Code: 200


Response Header:

Generic
content-type: application/json; charset=utf-8
date: Tue, 10 Nov 2020 20:23:57 GMT
server: Kestrel
status: 200
x-powered-by: ASP.NET


And you should receive a response body that contains a list of mashups matching your search-criteria and their individual properties encoded in JSON format, similar to:


Response Body:

{
"mashups": [
{
"id": 266289, //id of the video
"addedBy": { //details of the user who uploaded this video to the portal
"id": 218003
},
"author": { //details of the author name associated with the video
"firstName": "Esther",
"lastName": "Fray",
"id": 0
},
"tenant": { //details of the Portal in which media is uploaded
"id": 18761,
"tenantName": "LexCorp Institute of Science and Technology",
"subDomainUrl": "{your-portal-domain.com}",
"isSSLEnable": false,
"weight": 0
},
"category": { //details of the category to which media has been associated
"id": 25820,
"name": "Management",
"weight": 0
},
"estimatedDuration": 109599, //duration of the video in milli-seconds
"title": "LexCorp CEO shares Lex2020 Vision-Clipped", //title of the video
"version": 12, //current version of the media - everytime the media is updated(title, tags, etc) - its version is updated
"thumbnails": [ //details regarding the 3 thumbnails saved against the video
{
"thumbnailURL": "http://{storage}/cdn/18761/lex/lexcorpceoshareslex2020visionmp4_clip_5439mp4/f078b8dfbd2e43709e6bdd06e1ae7eb1_3072k_1280x720_404.jpg",
"thumbnailSize": 720
},
{
"thumbnailURL": "http://{storage}/cdn/18761/lex/lexcorpceoshareslex2020visionmp4_clip_5439mp4/f078b8dfbd2e43709e6bdd06e1ae7eb1_3072k_1280x720_202.jpg",
"thumbnailSize": 360
},
{
"thumbnailURL": "http://{storage}/cdn/18761/lex/lexcorpceoshareslex2020visionmp4_clip_5439mp4/f078b8dfbd2e43709e6bdd06e1ae7eb1_3072k_1280x720_68.jpg",
"thumbnailSize": 122
}
],
"createdDate": "2020-11-10T13:43:00.397", //UTC date and time for when the video was uploaded in the system
"isDeleted": false, //whether the media resides in the recycle bin
"isFeatured": true, //whether the media has been featured on the portal
"updatedDate": "2020-11-10T20:21:36.167", // Last modified date
"updatedBy": { //id of the user who modified the media last
"id": 218003
},
"size": 12940084, //size of the video in
"showOnChannelLibrary": true, //whether video has been set to be accessible via Portal Library
"parentTenant": { //details of the parent Account to a Portal, if any. In this case, the tenant in which media resides is itself an Account so there is no parent tenant to it.
"id": 0,
"isSSLEnable": false,
"weight": 0
},
"defaultViewingAccess": "Anonymous", //access-rights set on the media
"status": "Published", //whether media is published. Other values could be drafted, pending, rejected
"weight": 39, //The order of the media in the featured media listing that determines its prominence and position on account homepage
"format": "Video", //format of the media. Other values could be audio, image, document, collection, playlist, quiz, survey
"isExpired": false, //has the media expired
"isTranscriptionEnabled": true, //if transcription has been enabled on the media
"isClipping": true, //if media is a clip generated from an original video in the portal. In this case, yes.
"isRedaction": false, //if video has redaction enabled
"isFaceDetection": false, //if video has face detection enabled
//list of system-defined and user-defined custom attributes associated with the video
"mashupCustomAttributes": [
{
"id": 354912,
"customAttributeId": 758,
"customAttributeName": "Quality",
"customAttributeValue": "Original",
"customAttributeFieldTypeId": "MetaData",
"displayable": false,
"searchable": false,
"facetable": false
},
{
"id": 354913,
"customAttributeId": 759,
"customAttributeName": "Size",
"customAttributeValue": "88858625",
"customAttributeFieldTypeId": "MetaData",
"displayable": false,
"searchable": false,
"facetable": false
},
{
"id": 354916,
"customAttributeId": 762,
"customAttributeName": "Duration",
"customAttributeValue": "445312",
"customAttributeFieldTypeId": "MetaData",
"displayable": false,
"searchable": false,
"facetable": false
},
{
"id": 367002,
"customAttributeId": 53176,
"customAttributeName": "Curriculum",
"customAttributeValue": "Cambridge IGCSE",
"customAttributeFieldTypeId": "DropDown",
"displayable": true,
"searchable": true,
"facetable": false
},
{
"id": 367003,
"customAttributeId": 53177,
"customAttributeName": "Subject",
"customAttributeValue": "Physics",
"customAttributeFieldTypeId": "DropDown",
"displayable": true,
"searchable": true,
"facetable": false
}
],
"tagsInfo": [
{
"id": 40269,
"name": "Standard IX",
"usedInMashup": 1,
"weight": 0,
"sequenceId": 0
}
],
//content object defines the various renditions available against the video
"content": [
{
"id": 623998,
"fileName": "Product Launch Press Releasemp4",
"contentStorageId": 29349,
"contentType": "Video",
"contentStatus": "Completed",
"isDeleted": false,
"size": 0,
"contentDetails": {
"contentFiles": [
{
"fileSize": 88858625,
"contentFileAttributes": [
{
"name": "Quality",
"value": "Original"
},
{
"name": "Size",
"value": "88858625"
},
{
"name": "Width",
"value": "1280"
},
{
"name": "Height",
"value": "720"
},
{
"name": "Duration",
"value": "445312"
},
{
"name": "FrameRate",
"value": "29.97"
},
{
"name": "BitRate",
"value": "1401776"
},
{
"name": "AudioBitRate",
"value": "191999"
},
{
"name": "VideoCodec",
"value": "h264"
},
{
"name": "AudioCodec",
"value": "aac"
},
{
"name": "MimeType",
"value": "video/mp4"
}
],
"streamType": "None",
"playbackURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/087df0d08f2d9841a57ced3b27713d2f.mp4",
"downloadURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/087df0d08f2d9841a57ced3b27713d2f.mp4"
},
{
"fileSize": 21325710,
"contentFileAttributes": [
{
"name": "Size",
"value": "21325710"
},
{
"name": "Width",
"value": "426"
},
{
"name": "Height",
"value": "240"
},
{
"name": "Duration",
"value": "445336"
},
{
"name": "FrameRate",
"value": "29.97"
},
{
"name": "BitRate",
"value": "250015"
},
{
"name": "AudioBitRate",
"value": "126292"
},
{
"name": "VideoCodec",
"value": "h264"
},
{
"name": "AudioCodec",
"value": "aac"
},
{
"name": "MimeType",
"value": "video/mp4"
}
],
"streamType": "None",
"playbackURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/b5a19e6812fc4ae9b50f62abcae1c3e1_256k_426x240.mp4",
"downloadURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/b5a19e6812fc4ae9b50f62abcae1c3e1_256k_426x240.mp4"
},
{
"fileSize": 35227284,
"contentFileAttributes": [
{
"name": "Size",
"value": "35227284"
},
{
"name": "Width",
"value": "640"
},
{
"name": "Height",
"value": "360"
},
{
"name": "Duration",
"value": "445336"
},
{
"name": "FrameRate",
"value": "29.97"
},
{
"name": "BitRate",
"value": "499756"
},
{
"name": "AudioBitRate",
"value": "126292"
},
{
"name": "VideoCodec",
"value": "h264"
},
{
"name": "AudioCodec",
"value": "aac"
},
{
"name": "MimeType",
"value": "video/mp4"
}
],
"streamType": "None",
"playbackURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/94c4a3dbb2544f21b777bb547f77d95f_512k_640x360.mp4",
"downloadURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/94c4a3dbb2544f21b777bb547f77d95f_512k_640x360.mp4"
},
{
"fileSize": 49096594,
"contentFileAttributes": [
{
"name": "Size",
"value": "49096594"
},
{
"name": "Width",
"value": "852"
},
{
"name": "Height",
"value": "480"
},
{
"name": "Duration",
"value": "445336"
},
{
"name": "FrameRate",
"value": "29.97"
},
{
"name": "BitRate",
"value": "748917"
},
{
"name": "AudioBitRate",
"value": "126292"
},
{
"name": "VideoCodec",
"value": "h264"
},
{
"name": "AudioCodec",
"value": "aac"
},
{
"name": "MimeType",
"value": "video/mp4"
}
],
"streamType": "None",
"playbackURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/194b5c508ab24b86b0dd5e01b3fa891e_768k_852x480.mp4",
"downloadURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/194b5c508ab24b86b0dd5e01b3fa891e_768k_852x480.mp4"
},
{
"fileSize": 174276588,
"contentFileAttributes": [
{
"name": "Size",
"value": "174276588"
},
{
"name": "Width",
"value": "1280"
},
{
"name": "Height",
"value": "720"
},
{
"name": "Duration",
"value": "445336"
},
{
"name": "FrameRate",
"value": "29.97"
},
{
"name": "BitRate",
"value": "2997770"
},
{
"name": "AudioBitRate",
"value": "126292"
},
{
"name": "VideoCodec",
"value": "h264"
},
{
"name": "AudioCodec",
"value": "aac"
},
{
"name": "MimeType",
"value": "video/mp4"
}
],
"streamType": "None",
"playbackURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/dbf30402e5de48a0847b0cfe4ad1efcf_3072k_1280x720.mp4",
"downloadURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/dbf30402e5de48a0847b0cfe4ad1efcf_3072k_1280x720.mp4"
},
{
"fileSize": 553143144,
"contentFileAttributes": [
{
"name": "FrameRate",
"value": "29.97,29.97,29.97,29.97"
},
{
"name": "AudioBitRate",
"value": "130875,130875,130875,130875"
},
{
"name": "AudioCodec",
"value": "aac"
},
{
"name": "BitRate",
"value": ""
},
{
"name": "Duration"
},
{
"name": "FrameRate"
},
{
"name": "Height",
"value": "720,480,360,240"
},
{
"name": "VideoCodec",
"value": "h264"
},
{
"name": "Width",
"value": "1280,852,640,426"
},
{
"name": "MimeType",
"value": "application/x-mpegURL"
}
],
"streamType": "None",
"playbackURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/699876a85d214a9eb803a05c89a484aa.m3u8",
"downloadURL": "https://{portal-url}/pro/productlaunchpressreleasemp4/699876a85d214a9eb803a05c89a484aa.m3u8"
}
],
"previewThumbnails": [
{
"previewThumbnailUrl": "https://{portal-url}/pro/productlaunchpressreleasemp4/preview/thumb_previews_jwplayer.vtt",
"thumbnailType": "TimeRange"
}
]
}
}
],
"isMyFlaggedMashup": false//if video has been flagged
}
],
"totalCount": 1
}


The response will help you retrieve video Ids, thumbnails, titles, descriptions, renditions and other relevant information to pass it to your own HTML player within your LMS site. Let's look further into how you may obtain Quiz IDs and their Assessment Reports based on the video IDs you have obtained in the response.


Obtain Quiz IDs using Videos

Now using the IDs you have obtained above, we will be querying the timedData within those videos to get IDs of Quizzes within them with the following search criteria as a JSON object in the Request Body:

  • Id of the media we are requesting the timedData for
  • Bring back basicInfo, timedData parts to fetch information related to the videos such as its title, description, custom attributes, content renditions information, etc


Assemble the Request Message

Here is how you can send the request to obtain Quizzes within the lecture video:


Request Method: POST


Request URL: api/v1/mashup/search

https://{domain}/api/v1/mashup/search


Request Header:

Authorization: Bearer <token-obtained>
Content Type: application/json


GenericRequest Header:
Generic

Request Body:

{
"mashupIds": [ 151253 ],
"mashupSearchParts": [
"BasicInfo", "TimedData"
]
}


Process the Response Message

To process the response, parse the response header and the response body. In the HTTPS POST request, you used the /mashup/search endpoint to retrieve the list of mashup based on the search criteria provided. Assuming that the response was successful, you should receive response header fields that are similar to the following:


Response Status Code: 200


Response Header:

content-type: application/json; charset=utf-8
date: Tue, 10 Nov 2020 20:23:57 GMT
server: Kestrel
status: 200
x-powered-by: ASP.NET


Generic


And you should receive a response body that contains a list of mashups matching your search-criteria and their individual properties encoded in JSON format, similar to:


Response Body:

{
"mashups": [ //all redundant objects returned same as the previous search result have been ommitted in this example
{
//timedData contains the details of the content that is inserted at a timestamp within a video such as annotations/quizzes/surveys/handouts, etc
//here we can see there are 2 annotations and 2 Quizzes added in the video at varying timestamp
"timedData": [
{
"id": 2407946,
"culture": "en-us",
"startTime": 41968,
"endTime": 41999,
"data": [
{
"x": 0.77412109375,
"y": 0.345746527777778,
"width": 0.109375,
"height": 0.188888888888889,
"name": "Elizabeth Jones",
"addedDate": "2020-11-18T08:39:03.465Z",
"fillColor": "rgba(206,248,49,0.5)"
}
],
"dataType": "Annotation",
"userProfileId": 575371
},
{
"id": 2407947,
"culture": "en-us",
"startTime": 42000,
"endTime": 42999,
"text": "hello world",
"data": [
{
"x": 0.15927734375,
"y": 0.256857638888889,
"width": 0.171875,
"height": 0.181944444444444,
"name": "Elizabeth Jones",
"addedDate": "2020-11-18T08:40:55.945Z",
"fillColor": "rgba(206,248,49,0.5)"
}
],
"dataType": "Annotation",
"userProfileId": 575371
},
{
//this is the first Quiz within the video
"id": 2407949, //id of the timedData
"culture": "en-us",
"startTime": 122000, //start time of when the Quiz shows up in a video
"endTime": 211000, //end time of when a Quiz renders itself forcibly if not opted for
"data": {
"guid": "00b26c2f-5520-9a0b-8e18-2078a8ea9f9b",
"objectId": "152530", //id of the Quiz
"objectTitle": "Quantum Physics Quiz I", //title of the Quiz
"playerState": [
"Pause",
"Disable"
],
"canSkip": true, //can an end-user skip the Quiz and continue with the video anyway?
"continuationCriteria": "Success", //can the user continue watching video only when they pass the Quiz or even after completing the Quiz - 2 values are Completion/Success
"isHidden": false
},
"dataType": "Quiz", //the type of timedData associated in this timestamp
"userProfileId": 102000//the ID of the user who created this timedData
},
{
//this is the second Quiz within the video with the same attributes as the first one
"id": 2407950,
"culture": "en-us",
"startTime": 400000,
"endTime": 0,
"data": {
"guid": "53d3beca-c9d9-c166-f46e-3ffdebaa25ca",
"objectId": "152531",
"objectTitle": "Quantum Physics Quiz II",
"playerState": [
"Pause",
"Disable"
],
"canSkip": true,
"continuationCriteria": "Completion",
"isHidden": false
},
"dataType": "Quiz",
"userProfileId": 102000
}
]
}
],
"totalCount": 1
}

The response will help you retrieve video Ids, thumbnails, titles, descriptions, renditions and other relevant information to pass it to your own HTML player within your LMS site. Let's look further into how you may obtain Assessment Reports for the in-video Quizzes based on the IDs we have obtained in the response.


Obtain Quiz Submissions using Quiz IDs

In order to get assessment reports for the Quizzes we have obtained above, we will have to get the Quiz Questions/Answers and scores using api/v1/analytics/search-form-submission API call.


Assemble the Request Message

Here is how you can send the request to obtain Quiz Submissions using Quiz IDs


Request Method: POST


Request URL:

http://{portal}/api/v1/analytics/search-form-submission


Request Header:

Authorization: Bearer <token-obtained>
Content Type: application/json


Request Body:

{
"mashupIds": [
152530,152531
],
"submittedFormParts":[
"Basic","FormInfo","Questions","Answers"
]
}


Process the Response Message

To process the response, parse the response header and the response body. In the HTTPS POST request, you used the /analytics/search-form-submission endpoint to retrieve the list of submissions. Assuming that the response was successful, you should receive response header fields that are similar to the following:


Response Status Code: 200


Response Header:

content-type: application/json; charset=utf-8
date: Tue, 10 Nov 2020 20:23:57 GMT
server: Kestrel
status: 200
x-powered-by: ASP.NET


Generic

And you should receive a response body that contains a list of mashups matching your search-criteria and their individual properties encoded in JSON format, similar to:


Response Body:

{
"submittedForms": [
{
"id": 13509,
"trackingGuid": "86b03950-0aa0-88f5-99e8-2a4ff6114766",
"mashupId": 152531, //id of the Quiz submitted by the user
"mashupFormat": "Quiz",
"formInfo": {
"passingCriteria": 60,
"pages": [ //details about different pages in the quiz
{
"pageId": 1, //id of the page
"name": "Page 1", //name of the page
"title": "Page 1", //title of the page
"visible": true,
"questions": [
{
"choicesOrder": "None", //if you have a default order choice
"choices": [
{
"text": "Wave-Particle Duality", //1st option
"value": "213c6f16-e21e-6992-5351-e051baccec46",
"isAnswer": true//boolean to specify if this is the correct option
},
{
"text": "Entaglement",
"value": "e0696f7e-9a59-7bef-1f90-a32c17b9167f",
"isAnswer": false//boolean to specify if this is the correct option
},
{
"text": "Confusion",
"value": "24c996ce-5e9b-caf2-d06b-27f069fdce88",
"isAnswer": false//boolean to specify if this is the correct option
}
],
"questionId": "3b9fd484-5a39-b328-e30e-ef217ed4304b", //id of the question within quiz
"name": "3b9fd484-5a39-b328-e30e-ef217ed4304b",
"title": "That radiation and matter have properties both of particles and of waves is called what?", //the title of the question
"type": "Radiogroup", //the type of question this is - Single-Choice, Multiple-Choice, etc
"startWithNewLine": true, //whether the options should start from the new line or not
"score": 5//marks associated with this question
},
{
"choicesOrder": "None", //if you have a default order choice
"choices": [
{
"text": "Gamma Rays", //1st option
"value": "799465ce-8f92-6d7b-dc1f-870e8bcbe21b",
"isAnswer": false//boolean to specify if this is the correct option
},
{
"text": "Quanta",
"value": "986851c4-21f5-e94d-ce9f-7f7cf57731ad",
"isAnswer": true//boolean to specify if this is the correct option
},
{
"text": "Wave Functions",
"value": "6df91181-f876-642f-aa0e-7a5b3c2753ba",
"isAnswer": false//boolean to specify if this is the correct option
},
{
"text": "Photons",
"value": "afa2ecba-5836-1e1e-d385-a18dfbce26b6",
"isAnswer": false//boolean to specify if this is the correct option
}
],
"questionId": "1b42300b-a7b3-8a9d-3ec7-02215a3e74a7",//id of the question within quiz
"name": "1b42300b-a7b3-8a9d-3ec7-02215a3e74a7",
"title": "Max Planck’s great discovery was that radiation energy is emitted in packets that he called what?",//the title of the question
"type": "Radiogroup",//the type of question this is - Single-Choice, Multiple-Choice, etc
"startWithNewLine": true, //whether the options should start from the new line or not
"score": 5//marks associated with this question
}
]
}
],
"mode": "edit",
"questionsOrder": "Initial",//how do you want to order the questions appearing in a Quiz
"showPageTitles": false, //show titles of the pages within a Quiz
"showPrevButton": false, //whether to allow user to go back to the previous page within the Quiz
"showTimerPanel": "none", //whether or not to show the remaining time to finish the Quiz, if applicable
"showTimerPanelMode": "all",
"title": "Quantum Physics - Quiz II"//title of the Quiz
},
"userProfileId": 102000, //user profile ID of the user who submitted the Quiz
"tenantId": 5975,//portal in which the Quiz was published
"totalTimeSpent": 188, //time spent in seconds on completing the Quiz
"isPass": true, //whether or not the Quiz was passed
"totalScore": 10, //total score of the Quiz
"passingCriteria": 60, //minimum % required to pass the Quiz
"totalScoreEarned": 10, //score earned by the candidate after submission
"totalPercentageEarned": 100, //total % of the Quiz
"submittedQuestionInfo": [ //This object contains details of questions and their responses within one submission - this helps in consolidating key insights to understand which questions have been correctly answered etc
{
"questionId": "3b9fd484-5a39-b328-e30e-ef217ed4304b",
"questionTitle": "That radiation and matter have properties both of particles and of waves is called what?", //title of the question
"submittedAnswerInfo": [
{
"answerId": "213c6f16-e21e-6992-5351-e051baccec46",
"answerText": "Wave-Particle Duality"//answer provided by the candidate
}
],
"isCorrect": true, //whether the answer is correct
"earnedScore": 5//score earned in this question
},
{
"questionId": "1b42300b-a7b3-8a9d-3ec7-02215a3e74a7",
"questionTitle": "Max Planck’s great discovery was that radiation energy is emitted in packets that he called what?",
"submittedAnswerInfo": [
{
"answerId": "986851c4-21f5-e94d-ce9f-7f7cf57731ad",
"answerText": "Quanta"//answer provided by the candidate
}
],
"isCorrect": true, //whether the answer is correct
"earnedScore": 5//score earned in this question
}
],
"addedDateTime": "2020-11-20T11:11:00.943",//timestamp at which the Quiz was taken/submitted
"uniqueViewerId": "f6ed840d-b10e-3b25-0194-f3e59a5d2124"//unique id of the user who attempted the Quiz, this helps in identifying the unique number of participants who attempted the Quiz, even if they accessed it anonymously
},
{
//here is another submission object that contains the details of a candidate's response on the second Quiz, the structure of which is the same as above
"id": 13508,
"trackingGuid": "45137dfb-216e-7703-1002-be445beec15f",
"mashupId": 152530,
"mashupFormat": "Quiz",
"formInfo": {
"passingCriteria": 75,
"pages": [
{
"name": "Page 1",
"title": "Page 1",
"visible": true,
"questions": [
{
"choicesOrder": "None",
"choices": [
{
"text": "Atom",
"value": "c6ee28cb-ee9f-542c-853d-17fe27899fac",
"isAnswer": true
},
{
"text": "Element",
"value": "42d84328-5c22-c7d0-5529-142444f4feba",
"isAnswer": true
},
{
"text": "Molecule",
"value": "1adecf15-a26a-c952-c59f-ac56defdeb2f",
"isAnswer": true
}
],
"questionId": "a9762f7c-4f8e-cb23-85f5-fafb8a796d5e",
"name": "a9762f7c-4f8e-cb23-85f5-fafb8a796d5e",
"title": "What is a particle?",
"type": "Checkbox",
"startWithNewLine": true,
"score": 3
},
{
"choicesOrder": "None",
"choices": [
{
"text": "Minimum Amount",
"value": "d8d2b50a-a7a8-e704-c3ff-ca84a04da0ad",
"isAnswer": true
},
{
"text": "Phenomenon of light",
"value": "284334b4-3479-4ec0-eaf0-7a5038c6088f",
"isAnswer": false
}
],
"questionId": "3cdc29f0-e738-e702-eb10-b110252fde80",
"name": "3cdc29f0-e738-e702-eb10-b110252fde80",
"title": "Quantum means?",
"type": "Radiogroup",
"startWithNewLine": true,
"score": 1
},
{
"choicesOrder": "None",
"choices": [
{
"text": "Quantized Properties, Particles of Light, Waves of Matter",
"value": "9628d3dd-5135-a904-f2da-065a37b9b507",
"isAnswer": true
},
{
"text": "Dual Theory, Velocity of Light, Particle Physics",
"value": "bec8518b-4bf9-6937-c542-8bd0017b81d2",
"isAnswer": false
},
{
"text": "Polarization, Wave of Light, Theory of Relativity",
"value": "4bcd264a-7b54-8668-cabd-3f86fdb89ca8",
"isAnswer": false
}
],
"questionId": "4a0e2705-e999-b542-2b7e-5b7745972d1b",
"name": "4a0e2705-e999-b542-2b7e-5b7745972d1b",
"title": "Choose the three properties of Quantum Physics",
"type": "Radiogroup",
"startWithNewLine": true,
"score": 1
}
]
}
],
"mode": "edit",
"questionsOrder": "Initial",
"showPageTitles": false,
"showPrevButton": false,
"showTimerPanel": "none",
"showTimerPanelMode": "all",
"title": "Quantum Physics - Quiz I"
},
"userProfileId": 102000,
"tenantId": 5975,
"totalTimeSpent": 184,
"isPass": false,
"totalScore": 5,
"passingCriteria": 75,
"totalScoreEarned": 2,
"totalPercentageEarned": 40,
"submittedQuestionInfo": [
{
"questionId": "a9762f7c-4f8e-cb23-85f5-fafb8a796d5e",
"questionTitle": "What is a particle?",
"submittedAnswerInfo": [
{
"answerId": "c6ee28cb-ee9f-542c-853d-17fe27899fac",
"answerText": "Atom"
}
],
"isCorrect": false
},
{
"questionId": "3cdc29f0-e738-e702-eb10-b110252fde80",
"questionTitle": "Quantum means?",
"submittedAnswerInfo": [
{
"answerId": "d8d2b50a-a7a8-e704-c3ff-ca84a04da0ad",
"answerText": "Minimum Amount"
}
],
"isCorrect": true,
"earnedScore": 1
},
{
"questionId": "4a0e2705-e999-b542-2b7e-5b7745972d1b",
"questionTitle": "Choose the three properties of Quantum Physics",
"submittedAnswerInfo": [
{
"answerId": "9628d3dd-5135-a904-f2da-065a37b9b507",
"answerText": "Quantized Properties, Particles of Light, Waves of Matter"
}
],
"isCorrect": true,
"earnedScore": 1
}
],
"addedDateTime": "2020-11-20T11:10:53.923",
"uniqueViewerId": "f6ed840d-b10e-3b25-0194-f3e59a5d2124"
}

],
"count": 2//there are 2 submissions made - 1 on each Quiz
}

Read Next