Method: courses.courseWork.create

Creates course work.

The resulting course work (and corresponding student submissions) are associated with the Developer Console project of the OAuth client ID used to make the request. Classroom API requests to modify course work and student submissions must be made with an OAuth client ID from the associated Developer Console project.

This method returns the following error codes:

  • PERMISSION_DENIED if the requesting user is not permitted to access the requested course, create course work in the requested course, share a Drive attachment, or for access errors.
  • INVALID_ARGUMENT if the request is malformed.
  • NOT_FOUND if the requested course does not exist.
  • FAILED_PRECONDITION for the following request error:
    • AttachmentNotVisible

HTTP request


The URL uses gRPC Transcoding syntax.

Path parameters



Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.

Query parameters


enum (PreviewVersion)

Optional. The preview version of the endpoint. This must be set in order to access new API capabilities made available to developers in the Preview Program.

Request body

The request body contains an instance of CourseWork.

Response body

If successful, the response body contains a newly created instance of CourseWork.

Authorization scopes

Requires the following OAuth scope:


For more information, see the Authorization guide.