Google Classroom
by Google
Google's free LMS for Workspace for Education. Full REST API (Google OAuth2), and change notifications delivered via Google Cloud Pub/Sub rather than traditional HTTP webhooks.
Direct integrations
Native integrations you connect from inside the LMS — typically an OAuth "Connect" flow, with no external middleware.
Supported — Deep ties to Google Workspace; third-party tools integrate via LTI and the 'Add-ons' / share-to-Classroom mechanisms.
| Integration | Category | Type | Notes |
|---|---|---|---|
| Google Workspace (Drive, Docs, Meet) | Productivity | oauth |
Native Workspace integration. |
| Classroom Add-ons (LTI-style) | Interoperability | lti |
Embed third-party tools as add-ons. |
| Share to Classroom | Content | oauth |
Browser/button integration to post content. |
| Google SSO (OAuth) | Identity | oauth |
Authentication via Google accounts. |
Middleware support
Third-party automation platforms (iPaaS) that connect this LMS to thousands of other apps without code.
Supported — Native Zapier and Make apps exist (built on the Classroom API + Google OAuth).
API
Programmatic access to the LMS. Endpoints below are a documented subset — always check the vendor's official reference for the complete, current list.
Supported — REST API exposing courses, rosters, coursework, and submissions. Paths below are representative.
| Type | REST |
|---|---|
| Version | v1 |
| Authentication | Google OAuth 2.0 (scoped access tokens) |
| Base URL | https://classroom.googleapis.com/v1 |
| Format | JSON |
| Rate limit | Per-project quotas in Google Cloud Console. |
| Docs | https://developers.google.com/workspace/classroom/reference/rest |
Endpoints
Courses
| Method | Endpoint | Description |
|---|---|---|
| GET | /courses |
List courses |
| POST | /courses |
Create a course |
| GET | /courses/{id} |
Get a course |
Students
| Method | Endpoint | Description |
|---|---|---|
| GET | /courses/{courseId}/students |
List students |
| POST | /courses/{courseId}/students |
Add a student |
Teachers
| Method | Endpoint | Description |
|---|---|---|
| GET | /courses/{courseId}/teachers |
List teachers |
Coursework
| Method | Endpoint | Description |
|---|---|---|
| GET | /courses/{courseId}/courseWork |
List coursework |
| POST | /courses/{courseId}/courseWork |
Create coursework |
Submissions
| Method | Endpoint | Description |
|---|---|---|
| GET | /courses/{courseId}/courseWork/{id}/studentSubmissions |
List student submissions |
Notifications
| Method | Endpoint | Description |
|---|---|---|
| POST | /registrations |
Register a Pub/Sub notification feed |
Profiles
| Method | Endpoint | Description |
|---|---|---|
| GET | /userProfiles/{userId} |
Get a user profile |
Webhooks
Outbound HTTP callbacks the LMS sends to your endpoint when events occur, with their supported event types and security model.
Supported — Not traditional HTTP webhooks. You create a 'registration' for a feed and Classroom publishes change notifications to a Google Cloud Pub/Sub topic; you then receive them on a webhook push subscription or by polling Pub/Sub. Registrations last one week and must be renewed. Feeds expose only data your credentials can view.
Docs: https://developers.google.com/workspace/classroom/best-practices/push-notifications
Security: Google OAuth 2.0 Cloud Pub/Sub IAM permissions on the topic HTTPS push endpoint (verified domain)
| Event | Description |
|---|---|
COURSE_WORK_CHANGES | Coursework or student submissions created/modified in a course |
ROSTER_CHANGES | Students/teachers join or leave courses in a domain |