For Agents
Manage Google Classroom courses, rosters, coursework, announcements, and submissions across teacher and student flows.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Google Classroom API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Google Classroom API.
Create and update Classroom courses and manage course aliases for SIS sync
Enroll, list, and remove students and teachers in a course
Post announcements and coursework with attached materials and due dates
GET STARTED
Use for: Create a new Google Classroom course, List all students in a Classroom course, Post an announcement to a Classroom course, Create a Classroom assignment with a due date
Not supported: Does not host video meetings, manage Workspace user accounts, or store attachment file contents — use for Google Classroom course, roster, coursework, and submission operations only.
The Google Classroom API gives schools, education-tech vendors, and content publishers programmatic access to courses, rosters, coursework, announcements, submissions, grades, and add-on attachments inside Google Classroom. It supports both teacher and student perspectives via OAuth, manages course aliases for SIS sync, and exposes coursework state transitions including turn-in, return, and reclaim. It is the backbone for SIS-Classroom integrations and add-ons that embed inside the Classroom stream.
Read and grade student submissions and return assignments to students
Manage add-on attachments that surface third-party content inside the Classroom stream
List, mark, and reclaim coursework on behalf of students
Patterns agents use Google Classroom API for, with concrete tasks.
★ SIS-to-Classroom Roster Sync
School districts sync rosters from a Student Information System into Google Classroom by creating courses with stable course aliases and reconciling student and teacher membership nightly. The aliases endpoints let the SIS use its own ids while keeping Classroom in sync. Most integrations use a service account with domain-wide delegation to act on behalf of teachers.
Create a course with id stub via POST /v1/courses, then POST /v1/courses/{courseId}/aliases with alias=d:district_id_12345 and add a teacher via /v1/courses/{courseId}/teachers.
Curriculum Publishing
Education-tech vendors push pre-built lessons, quizzes, and reading assignments into a teacher's Classroom course as coursework with attached Drive resources or YouTube links. The API supports scheduled publication and per-student materials. This eliminates teachers re-creating content manually each term.
POST /v1/courses/{courseId}/courseWork with title="Week 3 Reading", workType=ASSIGNMENT, dueDate, and a Drive attachment.
Grading and Feedback Loops
Schools build grading dashboards that read student submissions, set assigned grades, and return work to students at scale. The submissions endpoints expose state transitions (TURNED_IN, RETURNED, RECLAIMED) and allow updates to draftGrade and assignedGrade with patch masks. Teachers see results immediately in their Classroom UI.
PATCH /v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id} with assignedGrade=85 then POST :return.
AI Agent Teaching Assistant via Jentic
An AI agent through Jentic acts as a teaching assistant — listing pending submissions, suggesting feedback drafts for the teacher to review, posting announcements, and creating follow-up assignments. Jentic isolates the Workspace OAuth credentials so the agent never holds the teacher's refresh token directly.
Through Jentic, search classroom_courses_announcements_create, load schema, and execute it for course 12345 with text "Reminder: project due Friday".
95 endpoints — the google classroom api gives schools, education-tech vendors, and content publishers programmatic access to courses, rosters, coursework, announcements, submissions, grades, and add-on attachments inside google classroom.
METHOD
PATH
DESCRIPTION
/v1/courses
Create a Classroom course
/v1/courses
List courses for the caller
/v1/courses/{courseId}/aliases
Create an external alias for a course
/v1/courses/{courseId}/announcements
Post an announcement to a course
/v1/courses/{courseId}/courseWork
Create coursework (assignment, material, or question)
/v1/courses/{courseId}/announcements
List announcements in a course
/v1/courses
Create a Classroom course
/v1/courses
List courses for the caller
/v1/courses/{courseId}/aliases
Create an external alias for a course
/v1/courses/{courseId}/announcements
Post an announcement to a course
/v1/courses/{courseId}/courseWork
Create coursework (assignment, material, or question)
Three things that make agents converge on Jentic-routed access.
Credential isolation
Google Workspace OAuth credentials and service account keys with classroom.* scopes are stored encrypted in the Jentic vault (MAXsystem). Agents receive short-lived access tokens — refresh tokens and service account JSON never enter the agent context.
Intent-based discovery
Agents search Jentic by intent (e.g. 'create a Classroom assignment') and Jentic returns the courses.courseWork.create operation with its parameter schema, including workType and submissionModificationMode enums.
Time to first call
Direct integration: 3-5 days for OAuth setup, scope review, admin approval, and pagination handling across courses and submissions. Through Jentic: under 1 hour — search, load, execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using Google Classroom API through Jentic.
What authentication does the Google Classroom API use?
It uses OAuth 2.0 with one or more classroom.* scopes, scoped per resource (courses, rosters, coursework, announcements). Service accounts with domain-wide delegation are common for SIS sync. Through Jentic, the credential is stored encrypted in the Jentic vault and the agent receives only short-lived scoped access tokens.
Can I create a Classroom course via the API?
Yes. POST /v1/courses with name, ownerId, and optionally description and section. Add a stable external id by POSTing /v1/courses/{courseId}/aliases with an alias starting with d: for domain-scoped aliases or p: for project-scoped aliases.
What are the rate limits for the Google Classroom API?
Google enforces per-project quotas (typically thousands of read requests per minute and hundreds of writes) and per-user limits to prevent abuse. Coursework creation and submission patch operations sit under the lower per-user quota, so batch where possible and back off on 429.
How do I post an announcement through Jentic?
Use the Jentic search query "post announcement to Google Classroom" to discover the courses.announcements.create operation, load its schema, and execute it with the courseId and the text body. Run pip install jentic to get started.
Can the API grade and return assignments?
Yes. PATCH a studentSubmission with assignedGrade and an updateMask, then POST :return on the submission to push the grade and feedback back to the student. The student sees the result in the Classroom UI immediately.
Is the Google Classroom API free?
It is free for Google Workspace for Education customers. There is no per-call charge from Google, though some scopes require admin approval before they can be used by third-party apps.
/v1/courses/{courseId}/announcements
List announcements in a course