Create Assignment
POST https://ed.link/api/v2/my/classes/:class_id/assignments
Create a new Assignment in the given Class.
The user must be enrolled as a teacher, ta, designer, administrator, or district-administrator in the class to use this endpoint.
Request Parameters
| Parameter | Type | Description |
|---|---|---|
class_id | string | The UUID of the desired Class. |
Request Body
The request body should contain an Assignment object.
The following fields are allowed: id, title, description, description_plaintext, state, attachments, due_date, display_date, start_date, end_date, assignee_mode, assignee_ids, section_ids, points_possible, grading_type, submission_types, max_attempts, session_id, category_id, module_id, properties, rubric_id, parent_id.
The following fields are required: title, description, due_date, grading_type.
To assign to specific students, pass both "assignee_mode":"individuals" and "assignee_ids":[...].
Conversely, to assign to all students in the class, just pass "assignee_mode":"all".
When creating an assignment with the
assignee_modeofindividuals, if the assignees are no longer enrolled in the class, Edlink will (by default) return an error. However, in rare cases Edlink can fall out of sync with the class's enrollments. If this happens in Schoology, the assignment will still be created but withassignee_modeset toall.
When setting "grading_type":"points", be sure to also pass a valid "points_possible" number.
Example
{
"title": "Assessment Practice",
"due_date": "2025-09-16T04:00:00.000Z",
"end_date": "2025-09-16T04:00:00.000Z",
"session_id": "fd18b815-4118-4bc7-a4cc-1a0497bc5596",
"start_date": "2025-09-09T10:46:56.043Z",
"description": "<a href='https://example.com/assignment/my-assignment-details' target='_blank'>Assessment Practice</a>",
"grading_type": "points",
"assignee_mode": "all",
"points_possible": 5
}
Sample Response
The response contains the newly created Assignment object.
{
"$request": "00000000-0000-0000-0000-000000000000",
"$data": {
"attachments": [],
"assignee_mode": "all",
"grading_type": "points",
"max_attempts": 1,
"title": "Assessment Practice",
"description": "Assessment Practice",
"created_date": "2025-09-10T21:01:56.000Z",
"updated_date": "2025-09-10T21:01:56.000Z",
"due_date": "2025-09-16T04:00:00.000Z",
"state": "open",
"url": "https://app.schoology.com/assignment/123456789",
"submission_types": ["link", "file"],
"points_possible": 5,
"properties": {
"schoology": {
"grading_scale_type": 0,
"grading_scale": null,
"factor": "1",
"is_final": "0",
"show_comments": "0",
"grade_stats": "0",
"allow_dropbox": "1",
"allow_discussion": "1",
"available": 1,
"completed": 0
}
},
"session_id": "00000000-0000-0000-0000-000000000000",
"identifiers": [
{
"type": "schoology_id",
"value": "123456789"
}
],
"rule_ids": [],
"references": {},
"id": "00000000-0000-0000-0000-000000000000"
}
}
Additional Notes
module_id is a POST only field. In order to view modules that include this assignment, you must use the Resource endpoint.
Google Classroom does not allow creating Assignments with a due_date in the past.
If you send a due_date earlier than the start_date, we will throw an error.
Supported Providers
- aeries
- aspen
- blackbaud
- blackboard
- brightspace
- canvas
- classgather
- clever
- facts
- illuminate
- microsoft
- moodle
- oneroster
- powerschool
- schoology
- lti
- skyward
- veracross
- qmlativ
- infinitecampus
- rapididentity
- sapphire
- genesis
- renweb
- synergy
- managebac