Skip to main content

Create Assignment API

This API is used to create assignments in module of course or batch in LMS 

Request URL: (Self Paced Learning Course)

https://people.zoho.com/api/v1/courses/<courseId>/modules/<moduleId>/assignments?assignmentData={"name" : <name>, "maximumMarks" : <maximumMarks>, "submissionType" : <submissionType>, "lateSubmission" : <lateSubmission>, "submissionFrom" : <submissionFrom>, "submissionTo" : <submissionTo>, "description" : <description>, "isMandatory" : <isMandatory>, "lockUntil" : <lockUntil>, "gradeCategoryId":<GradeCategoryId>}

Request URL: (Blended Learning Course)

https://people.zoho.com/api/v1/courses/<courseId>/batches/<batchId>/modules/<moduleId>/assignments?assignmentData={"name" : <name>, "maximumMarks" : <maximumMarks>, "submissionType" : <submissionType>, "lateSubmission" : <lateSubmission>, "submissionFrom" : <submissionFrom>, "submissionTo" : <submissionTo>, "description" : <description>, "isMandatory" : <isMandatory>, "lockUntil" : <lockUntil>, "gradeCategoryId":<GradeCategoryId>}

Scope:

ZOHOPEOPLE.training.ALL
OR
ZOHOPEOPLE.training.CREATE

Possible Operation Types:

ALL - Complete access to data
CREATE - Only to create data

Method:

POST

Request Parameters

ParametersValues AllowedDefault ValueDescription
*assignmentData <parameters in JSON Object> JSON Input

 

ParametersValues AllowedDefault ValueDescription
*name<Batch name><Mandatory>Specify the batch name
*maximumMarks<Marks in integer format><Mandatory>Specify the assignment marks
*submissionTypefileAttachment|text|noSubmission<Mandatory>Specify the submission type
*submissionFrom<submissionFrom date in DD-MM-YYYY format><Mandatory for blended learning courses>Specify the submission from date
*submissionTo<submisssionTo date in DD-MM-YYYY format><Mandatory for blended learning courses>Specify the submissionTo
lateSubmissionallow|doNotAllow-Specify if late submissions is allowed or not
description<description>-Specify the description
isMandatorytrue|false-Specify if the file is mandatory
lcokUntil<lockUntil date in DD-MM-YYYY format>-Specify the lockUntil date
gradeCategoryId<gradeCategoryId>-Specify the Grade category Id
resources<files>-Specify resources

*mandatory parameters

Error Codes and Descriptions

Status CodesDescription
400Invalid parameter value/input parameter missing
403Sorry! You are not authorized to do this operation
404Not found
422Maximum limit exceeded
500Sorry! Server error occured

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.

Request

Copiedimport okhttp3.*;

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

        MediaType mediaType = MediaType.parse("application/json");
        String jsonBody = "{"
            + "\"name\": \"api test Assignment API testing\","
            + "\"maximumMarks\": 65,"
            + "\"submissionType\": \"text\","
            + "\"lateSubmission\": \"doNotAllow\","
            + "\"submissionFrom\": \"03-01-2022\","
            + "\"submissionTo\": \"01-07-2021\","
            + "\"description\": \"API testing\","
            + "\"isMandatory\": true,"
            + "\"gradeCategoryId\": 478346000019553053"
            + "}";

        RequestBody body = RequestBody.create(mediaType, jsonBody);

        Request request = new Request.Builder()
            .url("https://people.zoho.com/api/v1/courses/478346000019479001/modules/478346000019479013/assignments")
            .post(body)
            .addHeader("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN")
            .addHeader("Content-Type", "application/json")
            .build();

        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());
    }
}
Copiedconst url = "https://people.zoho.com/api/v1/courses/478346000019479001/modules/478346000019479013/assignments";

const data = {
    name: "api test Assignment API testing",
    maximumMarks: 65,
    submissionType: "text",
    lateSubmission: "doNotAllow",
    submissionFrom: "03-01-2022",
    submissionTo: "01-07-2021",
    description: "API testing",
    isMandatory: true,
    gradeCategoryId: 478346000019553053
};

fetch(url, {
    method: "POST",
    headers: {
        "Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN",
        "Content-Type": "application/json"
    },
    body: JSON.stringify(data)
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error("Error:", error));
Copiedcurl -X POST "https://people.zoho.com/api/v1/courses/478346000019479001/modules/478346000019479013/assignments" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
    "name": "api test Assignment API testing",
    "maximumMarks": 65,
    "submissionType": "text",
    "lateSubmission": "doNotAllow",
    "submissionFrom": "03-01-2022",
    "submissionTo": "01-07-2021",
    "description": "API testing",
    "isMandatory": true,
    "gradeCategoryId": 478346000019553053
}'
Copiedurl = "https://people.zoho.com/api/v1/courses/478346000019479001/modules/478346000019479013/assignments";

headers = map();
headers.put("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN");
headers.put("Content-Type", "application/json");

data = map();
data.put("name", "api test Assignment API testing");
data.put("maximumMarks", 65);
data.put("submissionType", "text");
data.put("lateSubmission", "doNotAllow");
data.put("submissionFrom", "03-01-2022");
data.put("submissionTo", "01-07-2021");
data.put("description", "API testing");
data.put("isMandatory", true);
data.put("gradeCategoryId", 478346000019553053);

response = invokeurl
[
    url : url
    type : POST
    headers: headers
    parameters: data.toString()
];

info response;
Copiedimport requests

url = "https://people.zoho.com/api/v1/courses/478346000019479001/modules/478346000019479013/assignments"

headers = {
    "Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN",
    "Content-Type": "application/json"
}

data = {
    "name": "api test Assignment API testing",
    "maximumMarks": 65,
    "submissionType": "text",
    "lateSubmission": "doNotAllow",
    "submissionFrom": "03-01-2022",
    "submissionTo": "01-07-2021",
    "description": "API testing",
    "isMandatory": True,
    "gradeCategoryId": 478346000019553053
}

response = requests.post(url, json=data, headers=headers)

print(response.text)

Show full

Show less

Header

CopiedAuthorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxx9be93.9b8xxxxxxf

Response

Copied{
    "code": 200,
    "assignment": {
        "assignMark": "65",
        "totalLearnersCount": 0,
        "description": "Description for Assignment",
        "resources": [],
        "assignmentId": "219225000000648093",
        "canUserDelete": true,
        "lockUntil": "26-12-2021",
        "gradeCategoryName": "",
        "isLocked": true,
        "gradeCategoryId": "",
        "canUserEdit": true,
        "moduleId": "219225000000648001",
        "marksUpdatedLearnersCount": "0/0",
        "assignmentName": "Assignment One"
    },
    "message": "success"
}

Show full

Show less