---
title: "POST /v1/courses/{courseId}/topics"
method: POST
path: "/v1/courses/{courseId}/topics"
tags: ["courses"]
---

# POST /v1/courses/{courseId}/topics

`POST /v1/courses/{courseId}/topics`

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: * CourseTopicLimitReached * `NOT_FOUND` if the requested course does not exist.

## Path parameters

- `courseId` string, required

## Request body

- Topic — Topic created by a teacher for the course
  - `courseId` string — Identifier of the course. Read-only.
  - `updateTime` string, google-datetime — The time the topic was last updated by the system. Read-only.
  - `topicId` string — Unique identifier for the topic. Read-only.
  - `name` string — The name of the topic, generated by the user. Leading and trailing whitespaces, if any, are trimmed. Also, multiple consecutive whitespaces are collapsed into one inside the name. The result must be a non-empty string. Topic names are case sensitive, and must be no longer than 100 characters.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/classroom.md) · [All operations](https://skmtc.net/google/apis/classroom/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/classroom/versions/1b98f151d40b/schema)
