Single Course Single Learner Module-wise All Entity Progress

This API provides the progress of a learner in a module in a specific course

Request URL:

https://people.zoho.com/api/v1/courses/<courseId>/(batches/<batchId>/)modules/<moduleId>/learners/<learnerId>/progress

Possible Operation Types:

READ - Only to read data

View complete list of LMS API error codes

Threshold Limit: 30 requests | Lock period: 5 minutes

Threshold Limit - Number of API calls allowed within a minute.
Lock Period - Wait time before consecutive API requests.

REQUESTS

Copiedimport okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class Main {
    public static void main(String[] args) throws Exception {
        OkHttpClient client = new OkHttpClient();

        String url = "https://people.zoho.com/api/v1/courses/100002000000039001/batches/100002000000041383/modules/1000020123441383/learners/100002000000032145/progress";

        Request request = new Request.Builder()
            .url(url)
            .get()
            .addHeader("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN")
            .build();

        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());
    }
}
Copiedconst url = "https://people.zoho.com/api/v1/courses/100002000000039001/batches/100002000000041383/modules/1000020123441383/learners/100002000000032145/progress";

fetch(url, {
  method: "GET",
  headers: {
    "Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN"
  }
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error("Error:", error));
Copiedcurl -X GET "https://people.zoho.com/api/v1/courses/100002000000039001/batches/100002000000041383/modules/1000020123441383/learners/100002000000032145/progress" \
  -H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN"
Copiedurl = "https://people.zoho.com/api/v1/courses/100002000000039001/batches/100002000000041383/modules/1000020123441383/learners/100002000000032145/progress";
headers = map();
headers.put("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN");
response = getUrl(url, headers);
info response;
Copiedimport requests

url = "https://people.zoho.com/api/v1/courses/100002000000039001/batches/100002000000041383/modules/1000020123441383/learners/100002000000032145/progress"
headers = {
    "Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN"
}

response = requests.get(url, headers=headers)
print(response.json())

HEADER

CopiedAuthorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxx9be93.9b8xxxxxxf

SAMPLE REQUEST

Copiedhttps://people.zoho.com/api/v1/courses/100002000000039001/batches/100002000000041383/modules/1000020123441383/learners/100002000000032145/progress

SAMPLE RESPONSE (Self Paced)

Copied{
    "code": 200,
    "isLocked": false,
    "moduleName": "M1",
    "moduleProgress": [
        {
            "duration": "0 minutes",
            "userMark": "",
            "numberOfAttemptsTaken": 0,
            "entityName": "Test 1",
            "maximumAttemptsAllowed": 1,
            "entityId": 100004000000038041,
            "type": "onlineTest",
            "testMark": 1,
            "isMandatory": true,
            "attempts": []
        },
        {
            "entityName": "Link",
            "entityId": 100004000000048005,
            "type": "embedLink",
            "isMandatory": true,
            "status": "Pending"
        }

    ],
    "moduleId": 100004000000038033,
    "message": "success",
    "hasMoreRecords": false
}

SAMPLE RESPONSE (Blended Learning)

Copied{
    "code": 200,
    "isLocked": false,
    "moduleName": "M1",
    "moduleProgress": [
        {
            "duration": "0 minutes",
            "userMark": "",
            "numberOfAttemptsTaken": 0,
            "entityName": "Test 1",
            "maximumAttemptsAllowed": 1,
            "entityId": 100004000000045021,
            "type": "onlineTest",
            "testMark": 1,
            "isMandatory": true,
            "attempts": []
        },
        {
            "duration": "30 minutes",
            "sessionStartDate": "2023-08-03",
            "entityName": "Sess",
            "sessionEndTime": "2:30 PM",
            "sessionStartTime": "2:00 PM",
            "entityId": 100004000000045088,
            "type": "session",
            "isMandatory": true,
            "sessionAttendance": ""
        },
        {
            "duration": "2 minutes",
            "userMark": "",
            "entityName": "sample pff",
            "entityId": 100004000000049001,
            "type": "offlineTest",
            "testMark": 2,
            "isMandatory": true,
            "status": "Pending"
        },
        {
            "assignMark": 10,
            "submissionType": "No Submission",
            "userMark": "",
            "submissionStatus": "",
            "entityName": "Assn",
            "submittedOn": "",
            "entityId": 100004000000049013,
            "type": "assignment",
            "isMandatory": true
        }
    ],
    "moduleId": 100004000000045017,
    "message": "success",
    "hasMoreRecords": false
}

SAMPLE RESPONSE (Module is Locked)

Copied{
    "code": 200,
    "isLocked": true,
    "moduleName": "M1",
    "moduleProgress": [],
    "moduleId": 100004000000038033,
    "message": "success",
    "hasMoreRecords": false
}