Status, transitions, and limitations for submissions in Microsoft Graph
Submissions are an important part of the interaction between teachers' and students' actions. This relates to changes in the submission status during the process flow and which education APIs in Microsoft Graph are involved.
Submission status and transitions
A submission represents the resources that an individual or group turns in for an assignment. Submissions are owned by an assignment and are automatically created when an assignment is published.
The status is a read-only property in the submission. It changes based on the actions of students and teachers.
Status | Description | REST API call |
---|---|---|
Working | Initial status after the submission is created. | POST /education/classes/{id}/assignments POST /education/classes/{id}/assignments/{id}/submissions/{id}/unsubmit |
Submitted | The status after the student turns in the assignment. | POST /education/classes/{id}/assignments/{id}/submissions/{id}/submit |
Returned | The status after the teacher has returned an assignment to the student. | POST /education/classes/{id}/assignments/{id}/submissions/{id}/return |
Reassigned | The status after the teacher has returned the assignment to the student for revision. | POST /education/classes/{id}/assignments/{id}/submissions/{id}/reassign |
Excuse | Teachers can mark a submission as excused to indicate that the submission has no further action for the student. | POST /education/classes/{id}/assignments/{id}/submissions/{id}/excuse |
The following diagram shows the status transition flow.
Submission status transitions based on allowed actions
Current submission status | New action | New status |
---|---|---|
Working | Turn in | Submitted |
Working | Return for revision | Reassigned |
Working | Return | Returned |
Working | Excuse | Excused |
Submitted | Undo Turn in | Working |
Submitted | Return | Returned |
Submitted | Return for revision | Reassigned |
Submitted | Excuse | Excused |
Returned | Turn in | Submitted |
Returned | Return | Returned |
Returned | Return for revision | Reassigned |
Returned | Excuse | Excused |
Reassigned | Turn in | Submitted |
Reassigned | Return | Returned |
Reassigned | Return for revision | Reassigned |
Reassigned | Excuse | Excused |
Excused | Return for revision | Reassigned |
Excused | Return | Returned |
Excused | Turn in | Submitted |
Note
Any action and status transition not listed in the table is not allowed.
Sync vs. async operations over submissions API calls
The following table lists the API calls that affect the submission status and the operation type.
In this case, all the calls are asynchronous, which means the operation starts, and another operation can begin before the first one finishes. The asynchronous operation performs some background activity, and the caller must be polling to get the result.
API | Sync or async | Mechanism to get latest status |
---|---|---|
POST /education/classes/{id}/assignments/{id}/submissions/{id}/submit |
Async | Poll |
POST /education/classes/{id}/assignments/{id}/submissions/{id}/unsubmit |
Async | Poll |
POST /education/classes/{id}/assignments/{id}/submissions/{id}/return |
Async | Poll |
POST /education/classes/{id}/assignments/{id}/submissions/{id}/reassign |
Async | Poll |
POST /education/classes/{id}/assignments/{id}/submissions/{id}/excuse |
Async | Poll |
Limits
The following limits apply to all API calls:
- The maximum number of submission resources are 10 for the student.
- The maximum size allowed for resources is 500 MB.
- Throttling limits apply; for details, see Microsoft Graph throttling guidance.