- [HTTP request](https://developers.google.com/workspace/classroom/reference/rest/v1/courses.courseWorkMaterials/create#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/workspace/classroom/reference/rest/v1/courses.courseWorkMaterials/create#body.PATH_PARAMETERS)
- [Query parameters](https://developers.google.com/workspace/classroom/reference/rest/v1/courses.courseWorkMaterials/create#body.QUERY_PARAMETERS)
- [Request body](https://developers.google.com/workspace/classroom/reference/rest/v1/courses.courseWorkMaterials/create#body.request_body)
- [Response body](https://developers.google.com/workspace/classroom/reference/rest/v1/courses.courseWorkMaterials/create#body.response_body)
- [Authorization scopes](https://developers.google.com/workspace/classroom/reference/rest/v1/courses.courseWorkMaterials/create#body.aspect)
- [Try it!](https://developers.google.com/workspace/classroom/reference/rest/v1/courses.courseWorkMaterials/create#try-it)

Creates a course work material.

This method returns the following error codes:

- `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course, create course work material in the requested course, share a Drive attachment, or for [access errors](https://developers.google.com/workspace/classroom/reference/Access.Errors).
- `INVALID_ARGUMENT` if the request is malformed or if more than 20
- materials are provided.
- `NOT_FOUND` if the requested course does not exist.
- `FAILED_PRECONDITION` for the following [request error](https://developers.google.com/workspace/classroom/reference/Request.Errors):
  - AttachmentNotVisible

### HTTP request

`POST https://classroom.googleapis.com/v1/courses/{courseId}/courseWorkMaterials`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `courseId` | `string` Identifier of the course. This identifier can be either the Classroom-assigned identifier or an `https://developers.google.com/workspace/classroom/reference/rest/v1/courses.aliases#CourseAlias`. |

### Query parameters

| Parameters ||
|---|---|
| `previewVersion` | ``enum (`https://developers.google.com/workspace/classroom/reference/rest/v1/PreviewVersion`)`` Optional. The preview version of the API. 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 `https://developers.google.com/workspace/classroom/reference/rest/v1/courses.courseWorkMaterials#CourseWorkMaterial`.

### Response body

If successful, the response body contains a newly created instance of `https://developers.google.com/workspace/classroom/reference/rest/v1/courses.courseWorkMaterials#CourseWorkMaterial`.

### Authorization scopes

Requires the following OAuth scope:

- `https://www.googleapis.com/auth/classroom.courseworkmaterials`

For more information, see the [Authorization guide](https://developers.google.com/workspace/guides/configure-oauth-consent).