Stay organized with collections
Save and categorize content based on your preferences.
The Google Classroom API provides a programming interface for software developers,
administrators, and school leaders to manage Google Classroom resources. You
can build software that creates, retrieves, and modifies
Classroom courses and their content.
Some typical use cases include:
Managing courses, rosters, and guardians
Adding assignments, announcements, and course materials
Assigning grades and modifying grading settings
Generating data for analysis
Making content or tools from an outside provider discoverable and accessible
within Classroom
Is the Classroom API the right solution for me?
Google provides several products to help you interact with
Classroom. The following are some common scenarios and
recommendations for products that might best fit your needs.
Modify Google Classroom resources
Scenario
Recommended solutions
I want to regularly manage a high volume
of courses, users, or other
Classroom resources. I am
comfortable writing code and maintaining
software infrastructure.
Write applications that use
Classroom API.
I want to occasionally manage a small
volume of Classroom
resources. I am comfortable writing small
amounts of code with little overhead.
To begin developing, ensure that you have completed the prerequisite steps.
Choose the appropriate Classroom API scopes for your needs, then set up your
environment and begin making requests by following one of the quickstarts:
To experiment calling methods on live data, try using the Google APIs
Explorer. You don't have to write any code to get started, but be aware that
actions you perform using the APIs Explorer can modify existing data.
One way to start calling the methods is to call the courses.list()
method. This method does not require any request parameters and you can retrieve
an id from the returned list of courses to use as the request parameter for
other API calls. If you don't have any courses, you can create one using the
courses.create() method.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-04 UTC."],[],[],null,["The Google Classroom API provides a programming interface for software developers,\nadministrators, and school leaders to manage Google Classroom resources. You\ncan build software that creates, retrieves, and modifies\nClassroom courses and their content.\n\nSome typical use cases include:\n\n- Managing courses, rosters, and guardians\n- Adding assignments, announcements, and course materials\n- Assigning grades and modifying grading settings\n- Generating data for analysis\n- Making content or tools from an outside provider discoverable and accessible within Classroom\n\n| **Note:** Some Classroom API features are only available to users with particular Google Workspace for Education [license types](//edu.google.com/intl/ALL_us/workspace-for-education/editions/compare-editions/). See the [user eligibility](/workspace/classroom/guides/key-concepts/user-eligibility) guide for more information.\n\nIs the Classroom API the right solution for me?\n\nGoogle provides several products to help you interact with\nClassroom. The following are some common scenarios and\nrecommendations for products that might best fit your needs.\n\nModify Google Classroom resources\n\n| Scenario | Recommended solutions |\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|\n| I want to regularly manage a high volume of courses, users, or other Classroom resources. I am comfortable writing code and maintaining software infrastructure. | Write applications that use Classroom API. |\n| I want to occasionally manage a small volume of Classroom resources. I am comfortable writing small amounts of code with little overhead. | Use Classroom API with [Google Apps Script](https://developers.google.com/apps-script). |\n| I want to occasionally make changes to individual Classroom resources. I am comfortable working with terminal commands. | Use [Google Apps Manager](//github.com/GAM-team/GAM). |\n| I want a large volume of reports with details about events in Classroom. | Use BigQuery [Data Transfer Service](//cloud.google.com/bigquery/docs/dts-introduction). |\n| I want to conduct an investigation into my users' activity. | Generate reports in the [Admin console](//admin.google.com/ac/reporting/home) or use the [Reports API](/admin-sdk/reports/v1/get-start/overview). |\n\nIntegrate with Google Classroom\n\n| Scenario | Recommended solutions |\n|--------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| I want teachers and students to see and launch my content in Classroom. | Build a [Classroom add-on](/workspace/classroom/add-ons). |\n| I want teachers to click a button on my website or app that embeds my content in Classroom. | Build a [Classroom add-on](/workspace/classroom/add-ons) and [create attachments](/workspace/classroom/add-ons/developer-guides/third-party-first-journey) programmatically. |\n| I want teachers to click a button on my website or app to link to my content in Classroom. | [Create coursework](/workspace/classroom/guides/coursework-integration) using Classroom API or embed [Share to Classroom](/workspace/classroom/guides/sharebutton) buttons. |\n| I want Classroom teachers to sync with or import information from my Student Information System. | Implement [OneRoster for SIS](/workspace/classroom/sis-integrations/getting-started) or create and access resources using Classroom API. |\n\nGetting started\n\nNew developers are encouraged to do the following before starting a new project:\n\n- Read our guide on [Classroom API structure](/workspace/classroom/guides/key-concepts/api-structure).\n- Read about [grades](/workspace/classroom/guides/key-concepts/grades), [user types](/workspace/classroom/guides/key-concepts/user-types), [user eligibility](/workspace/classroom/guides/key-concepts/user-eligibility), and [administrator\n actions](/workspace/classroom/guides/key-concepts/admin-actions). These guides explain concepts unique to Google Classroom and Classroom API.\n- Understand [how Classroom API requests work](/workspace/classroom/guides/onboarding/how-requests-work).\n\nTo begin developing, ensure that you have completed the [prerequisite steps](/workspace/classroom/guides/onboarding/prerequisites).\nChoose the appropriate [Classroom API scopes](/workspace/classroom/guides/auth) for your needs, then set up your\nenvironment and begin making requests by following one of the quickstarts:\n\n- [Go](/workspace/classroom/quickstart/go)\n- [Google Apps Script](/workspace/classroom/quickstart/apps-script)\n- [Java](/workspace/classroom/quickstart/java)\n- [JavaScript](/workspace/classroom/quickstart/js)\n- [Node.js](/workspace/classroom/quickstart/nodejs)\n- [Python](/workspace/classroom/quickstart/python)\n\nExperiment with the Google APIs Explorer\n\nTo experiment calling methods on live data, try using the [Google APIs\nExplorer](/workspace/explore?filter=&discoveryUrl=https%3A%2F%2Fclassroom.googleapis.com%2F%24discovery%2Frest%3Fversion%3Dv1&discoveryRef=). You don't have to write any code to get started, but be aware that\nactions you perform using the APIs Explorer can modify existing data.\n\nOne way to start calling the methods is to call the [`courses.list()`](/workspace/explore?filter=&discoveryUrl=https%3A%2F%2Fclassroom.googleapis.com%2F%24discovery%2Frest%3Fversion%3Dv1&discoveryRef=resources.courses.methods.list&operationId=classroom.courses.list)\nmethod. This method does not require any request parameters and you can retrieve\nan `id` from the returned list of courses to use as the request parameter for\nother API calls. If you don't have any courses, you can create one using the\n[`courses.create()`](/workspace/explore?filter=&discoveryUrl=https%3A%2F%2Fclassroom.googleapis.com%2F%24discovery%2Frest%3Fversion%3Dv1&discoveryRef=resources.courses.methods.create&operationId=classroom.courses.create) method.\n\nYou can also explore the [Classroom API reference](/workspace/classroom/reference/rest)."]]