For Developers

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

ParameterTypeDescription
class_idstringThe 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 of individuals, 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 with assignee_mode set to all.

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
  • google
  • illuminate
  • microsoft
  • moodle
  • oneroster
  • powerschool
  • schoology
  • lti
  • skyward
  • veracross
  • qmlativ
  • infinitecampus
  • rapididentity
  • sapphire
  • genesis
  • rediker
  • renweb
  • synergy
  • managebac
  • tyler
  • banner
  • frontline
  • ascender