For Developers

Submit Submission

POST https://ed.link/api/v2/my/classes/:class_id/assignments/:assignment_id/submit

As a student, submit an attempt for your Submission. This will add it to the attempts array seen when retrieving a submission. It also will update the state of the submission to submitted.

Request Parameters

ParameterTypeDescription
class_idstringThe UUID of the desired Class.
assignment_idstringThe UUID of the desired Assignment.

Request Body

The request body should contain an Attempt object, including one or more attachments. You can see a list of all possible attachment types here. LMS support for attachment types is not uniform.

Sample Request

axios.post(`https://ed.link/api/v2/my/classes/${class_id}/assignments/${assignment_id}/submit`, {
    headers: {
        authorization: `Bearer ${person_access_token}`
    },
    data: {
        attachments: [
            {
                type: 'file',
                title: 'overwritten.txt',
                size: 6,
                data: [104, 101, 108, 108, 111, 10]
            }
        ]
    }
});

Sample Response

The response contains the updated Submission object.

{
    "$request": "00000000-0000-0000-0000-000000000000",
    "$data": {
        "flags": [],
        "created_date": "2025-08-05T23:05:25Z",
        "updated_date": "2025-08-13T15:19:23Z",
        "attempts": [
            {
                "created_date": "2025-08-05T23:05:25Z",
                "attachments": [
                    {
                        "type": "file",
                        "title": "overwritten.txt",
                        "url": "https://ed.link/api/v2/my/classes/00000000-0000-0000-0000-000000000000/assignments/00000000-0000-0000-0000-000000000000/submissions/00000000-0000-0000-0000-000000000000/files/00000000-0000-0000-0000-000000000000/download",
                        "share_mode": "view",
                        "identifiers": [],
                        "rule_ids": [],
                        "references": {},
                        "id": "00000000-0000-0000-0000-000000000000"
                    }
                ],
                "rule_ids": [],
                "references": {}
            }
        ],
        "state": "submitted",
        "grade_points": 22,
        "grade": "22",
        "grade_comment": "Good job!",
        "extra_attempts": 0,
        "properties": {
            "canvas": {
                "attempt": 4
            }
        },
        "assignment_id": "00000000-0000-0000-0000-000000000000",
        "person_id": "00000000-0000-0000-0000-000000000000",
        "identifiers": [
            {
                "type": "canvas_id",
                "value": "55"
            }
        ],
        "rule_ids": [],
        "references": {},
        "id": "00000000-0000-0000-0000-000000000000"
    }
}

Supported Providers

  • blackboard
  • brightspace
  • canvas
  • clever
  • google
  • microsoft
  • moodle
  • schoology
  • lti
  • veracross