Create a CourseWork assignment in Google Classroom and retrieve its student submissions
domain: education · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Call POST https://classroom.googleapis.com/v1/courses/{courseId}/courseWork (courses.courseWork.create) with a CourseWork body; title and workType (e.g. "ASSIGNMENT") are required, everything else optional; requires scope classroom.coursework.students.
Explicitly set state to "PUBLISHED" if you want it visible right away, since an unspecified state creates the CourseWork in draft state.
Call GET https://classroom.googleapis.com/v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions (courses.courseWork.studentSubmissions.list) to fetch submissions; pass "-" as courseWorkId to pull submissions across every course work item in the course.
Narrow results with query params userId (numeric id, email, or "me"), states[] (SubmissionState), and late (LATE_ONLY/NOT_LATE_ONLY).
Use scope classroom.coursework.students(.readonly) as a teacher/admin, or classroom.coursework.me(.readonly) as the student themself.
Known gotchas
Created CourseWork and its submissions are tied to the Developer Console project of the OAuth client ID that created them; later modify calls to that course work must come from that same client's project.
Students may only view their own submissions; only teachers and domain administrators can view all student submissions in a course.
courses.courseWork.create returns FAILED_PRECONDITION (AttachmentNotVisible) if you attach a Drive file the requester can't share, and PERMISSION_DENIED if the caller can't create course work in that course.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?