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

Creates an add-on attachment under a post.

Requires the add-on to have permission to create new attachments on the post.

This method returns the following error codes:

- `PERMISSION_DENIED` for [access errors](https://developers.google.com/workspace/classroom/reference/Access.Errors).
- `INVALID_ARGUMENT` if the request is malformed.
- `NOT_FOUND` if one of the identified resources does not exist.

### HTTP request

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

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

### Path parameters

| Parameters ||
|---|---|
| `courseId` | `string` Required. Identifier of the course. |
| `itemId` | `string` Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which to create the attachment. This field is required, but is not marked as such while we are migrating from postId. |

### Query parameters

| Parameters ||
|---|---|
| `postId (deprecated)` | `string` Optional. Deprecated, use `itemId` instead. |
| `addOnToken` | `string` Optional. Token that authorizes the request. The token is passed as a query parameter when the user is redirected from Classroom to the add-on's URL. This authorization token is required for in-Classroom attachment creation but optional for partner-first attachment creation. Returns an error if not provided for partner-first attachment creation and the developer projects that created the attachment and its parent stream item do not match. |

### Request body

The request body contains an instance of `https://developers.google.com/workspace/classroom/reference/rest/v1/courses.announcements.addOnAttachments#AddOnAttachment`.

### Response body

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

### Authorization scopes

Requires the following OAuth scope:

- `https://www.googleapis.com/auth/classroom.addons.teacher`

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