For Developers

Create Assignment

POST https://ed.link/api/v2/graph/classes/:class_id/assignments

Create a new Assignment in the given Class.

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: title, description, description_plaintext, attachments, due_date, display_date, start_date, end_date, assignee_mode, assignee_ids, points_possible, grading_type, submission_types, max_attempts, session_id, category_id, module_id.

The following fields are required: title, description, due_date, grading_type.

If you set grading_type to rubric then you must pass the rubric_id of the rubric that you wish to use.

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.

{
    "title": "Week 12 Homework",
    "description": "This is the description of the assignment",
    "due_date": "2022-01-28T18:00:24.573Z",
    "grading_type": "points",
    "points_possible": 10,
    "category_id": "00000000-0000-0000-0000-000000000000" // homework category
}

Sample Request

axios.post('https://ed.link/api/v2/graph/classes/00000000-0000-0000-0000-000000000000/assignments', {
    headers: {
        authorization: `Bearer ${integration_access_token}`
    },
    data: {
        category_id: '00000000-0000-0000-0000-000000000000',
        assignee_mode: 'all',
        grading_type: 'points',
        max_attempts: 1,
        title: 'Week 12 Homework',
        submission_types: ['link'],
        state: 'open',
        due_date: '2022-01-28T18:00:24.573Z'
    }
});

Sample Response

The response contains the newly created Assignment object.

{
    "$data": {
        "attachments": [],
        "assignee_mode": "all",
        "grading_type": "points",
        "max_attempts": 1,
        "title": "Week 12 Homework",
        "submission_types": ["link"],
        "state": "open",
        "points_possible": 10,
        "created_date": "2021-12-23T22:24:39.934Z",
        "updated_date": "2022-01-03T20:49:09.233Z",
        "due_date": "2022-01-28T18:00:24.573Z",
        "id": "00000000-0000-0000-0000-000000000000",
        "category_id": "00000000-0000-0000-0000-000000000000"
    },
    "$request": "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.

Canvas Assignments

For Canvas integrations you can set the assignment's position within the module you are creating the assignment for (set by module_id) by adding properties.canvas.module_item.position to the assignment creation payload:

properties: {
  canvas: {
    module_item: {
      position: 2
    }
  }
}