Print

Import Google Classroom Data to Google Sheets

In this guide, we’ll walk through how to pull Google Classroom API data data directly into Google Sheets, using the API Connector add-on for Sheets.

Contents

Before You Begin

Click here to install the API Connector add-on from the Google Marketplace.

Part 1: Pull Google Classroom API Data into Sheets

For this example, we'll pull in a list of the courses you have access to.

  1. Open up Google Sheets and click Extensions > API Connector > Open > Create request.
  2. In the request form enter the following:
    • ApplicationCustom
    • MethodGET
    • Request URLhttps://classroom.googleapis.com/v1/courses
    • OAuth: Google Classroom
  3. When you select Google Classroom from the OAuth menu, you'll see a blue Connect button if you haven't already authorized the connection. Click through to enable.
  4. Create a new tab and click Set current to use that tab as your data destination.
  5. Name your request and click Run. A moment later you’ll see a list of your courses populate your sheet.
    google-classroom-results1

Part 2: More Example API Requests

For the full set of endpoints check the API documentation here. If you want to get an idea how it works, you can also check these examples:

  • List course announcements (get your courseId value from the previous request):
https://classroom.googleapis.com/v1/courses/{courseId}/announcements
  • List class coursework
https://classroom.googleapis.com/v1/courses/{courseId}/courseWork

Part 3: Handle Pagination

By default, Google will limit records to 30 unless the pageSize parameter is used.
googleclassroom-pagination

To cycle through additional pages of data, set up pagination handling like this:

  • Pagination: cursor
  • Next token parameter: pageToken
  • Next token path: nextPageToken
    googleclassroom-pagination-cursor

Part 4: API Documentation

Official API documentation: https://developers.google.com/classroom/reference/rest

8 thoughts on “Import Google Classroom Data to Google Sheets”

  1. Hello,
    Could you help me please, where should I put "https://www.googleapis.com/auth/classroom.profile.emails" in my API Connector to get emails to user profile (https://classroom.googleapis.com/v1/userProfiles/{userId} ) ?
    Thank you in advance,
    Anastasiya

    Reply
    • Hey Anastasiya, sorry, API Connector doesn't provide access to this scope. Just for context, the /auth/classroom.profile.emails scope is used to view the email addresses of people in your classes. Emails are considered sensitive information, so Google requires that any apps requesting this scope need to apply for access first, and we opted to instead provide access to non-sensitive data only. That means API Connector doesn't support queries to view email addresses. Maybe we'll apply for access in the future (now that I know at least one person is looking for this information), but for now you'd need to use a different tool or create your own custom OAuth connection and apply for access yourself. Sorry for the inconvenience but I hope that clarifies.

      Reply
  2. Hello Ana,
    I have one more question.
    Do you know if there is a way to add a new student to Google Classroom thru API Connector?
    Thank you in advance,
    Anastasiya

    Reply
  3. I'm getting Completed with errors
    - We received an error from googleapis.com (403) show response
    { "error": { "code": 403, "message": "Request had insufficient authentication scopes.", "status": "PERMISSION_DENIED", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT", "domain": "googleapis.com", "metadata": { "method": "google.classroom.v1.Courses.ListCourses", "service": "classroom.googleapis.com" } } ] } }

    Reply
    • Generally that means you need to disconnect and reconnect, making sure to enable all requested permissions. Please see here for more info, or let me know if you’re still having issues after that.

      Reply

Leave a Comment

Jump To