Files

2.6 KiB

Google Classroom Routing Reference

App name: google-classroom Base URL proxied: classroom.googleapis.com

API Path Pattern

/google-classroom/v1/{resource}

Common Endpoints

Courses

List Courses

GET /google-classroom/v1/courses
GET /google-classroom/v1/courses?courseStates=ACTIVE
GET /google-classroom/v1/courses?teacherId=me

Get Course

GET /google-classroom/v1/courses/{courseId}

Create Course

POST /google-classroom/v1/courses
Content-Type: application/json

{
  "name": "Course Name",
  "ownerId": "me"
}

Update Course

PATCH /google-classroom/v1/courses/{courseId}?updateMask=name
Content-Type: application/json

{
  "name": "Updated Name"
}

Delete Course

DELETE /google-classroom/v1/courses/{courseId}

Course Work

List Course Work

GET /google-classroom/v1/courses/{courseId}/courseWork

Create Course Work

POST /google-classroom/v1/courses/{courseId}/courseWork
Content-Type: application/json

{
  "title": "Assignment Title",
  "workType": "ASSIGNMENT",
  "state": "PUBLISHED",
  "maxPoints": 100
}

Student Submissions

List Submissions

GET /google-classroom/v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions

Teachers & Students

List Teachers

GET /google-classroom/v1/courses/{courseId}/teachers

List Students

GET /google-classroom/v1/courses/{courseId}/students

Announcements

List Announcements

GET /google-classroom/v1/courses/{courseId}/announcements

Create Announcement

POST /google-classroom/v1/courses/{courseId}/announcements
Content-Type: application/json

{
  "text": "Announcement text",
  "state": "PUBLISHED"
}

Topics

List Topics

GET /google-classroom/v1/courses/{courseId}/topics

User Profiles

Get Current User

GET /google-classroom/v1/userProfiles/me

Invitations

List Invitations

GET /google-classroom/v1/invitations?courseId={courseId}

Notes

  • PATCH requests require updateMask query parameter
  • Courses must be archived before deletion
  • Student submissions require course work to be in PUBLISHED state
  • Use me for current user ID
  • Pagination uses pageToken parameter

Resources