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_mode
ofindividuals
, 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_mode
set 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
- rediker
- renweb
- synergy
- managebac
- tyler
- banner
- frontline
- ascender