Individual Learner, Individual Course All Entities of a Specify Entity Type Progress

This API provides the progress of all entities of a specfic type (eg. online test) in a course for a individual learner. 

Request URL:

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

Possible Operation Types:

READ - Only to read data

Request Parameters

ParametersValues AllowedDefault ValueDescriptionMandatory
entityType0|1|2|3|4|5|6|7|8|900 - Offline Tests
1 - Online Tests 
2 - Assignments
3 - Files
4 - Contents
5 - Sessions
6 - Links
7 - Pre-learning tests
8 - Post-learning tests
9 - Feedbacks
Yes
startIndexInteger0starting indexNo

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/learners/100002000000041342/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/learners/100002000000041342/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/learners/100002000000041342/progress" \
  -H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN"
Copiedurl = "https://people.zoho.com/api/v1/courses/100002000000039001/batches/100002000000041383/learners/100002000000041342/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/learners/100002000000041342/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/<courseId>/(batches/<batchId>)/learners/<learnerId>/progress

SAMPLE RESPONSE

Copied{
  "code": 200,
  "learnerId": 100002000000032143,
  "entityType": 0,
  "learnerProgress": [
    {
      "duration": "10 minutes",
      "userMark": 20,
      "testId": 100002000000040111,
      "testMark": 100,
      "isMandatory": false,
      "testName": "Offline test 1",
      "status": "completed"
    },
    {
      "duration": "20 minutes",
      "userMark": 87,
      "maximumAttemptsAllowed": 1,
      "testId": 100002000000052061,
      "testMark": 100,
      "isMandatory": true,
      "testName": "Offline 2",
      "status": "completed"
    }
  ],
  "message": "success",
  "hasMoreRecords": false
}