Google Classroom add-ons are now generally available to developers! Please see the
add-ons documentation for more information.
Method: courses.topics.create
Stay organized with collections
Save and categorize content based on your preferences.
Creates a topic.
This method returns the following error codes:
PERMISSION_DENIED
if the requesting user is not permitted to access the requested course, create a topic in the requested course, or for access errors.
INVALID_ARGUMENT
if the request is malformed.
ALREADY_EXISTS
if there exists a topic in the course with the same name.
FAILED_PRECONDITION
for the following request error:
NOT_FOUND
if the requested course does not exist.
HTTP request
POST https://classroom.googleapis.com/v1/courses/{courseId}/topics
The URL uses gRPC Transcoding syntax.
Path parameters
Parameters |
courseId |
string
Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias .
|
Request body
The request body contains an instance of Topic
.
Response body
If successful, the response body contains a newly created instance of Topic
.
Authorization scopes
Requires the following OAuth scope:
https://www.googleapis.com/auth/classroom.topics
For more information, see the Authorization guide.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-04-17 UTC.
[null,null,["Last updated 2025-04-17 UTC."],[],[],null,["# Method: courses.topics.create\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\nCreates a topic.\n\nThis method returns the following error codes:\n\n- `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course, create a topic in the requested course, or for [access errors](/workspace/classroom/reference/Access.Errors).\n- `INVALID_ARGUMENT` if the request is malformed.\n- `ALREADY_EXISTS` if there exists a topic in the course with the same name.\n- `FAILED_PRECONDITION` for the following [request error](/workspace/classroom/reference/Request.Errors):\n - CourseTopicLimitReached\n- `NOT_FOUND` if the requested course does not exist.\n\n### HTTP request\n\n`POST https://classroom.googleapis.com/v1/courses/{courseId}/topics`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `courseId` | `string` Identifier of the course. This identifier can be either the Classroom-assigned identifier or an [alias](/workspace/classroom/reference/rest/v1/courses.aliases#CourseAlias). |\n\n### Request body\n\nThe request body contains an instance of [Topic](/workspace/classroom/reference/rest/v1/courses.topics#Topic).\n\n### Response body\n\nIf successful, the response body contains a newly created instance of [Topic](/workspace/classroom/reference/rest/v1/courses.topics#Topic).\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/classroom.topics`\n\nFor more information, see the [Authorization guide](/workspace/guides/configure-oauth-consent)."]]