---
title: "POST /v1/registrations"
method: POST
path: "/v1/registrations"
tags: ["registrations"]
---

# POST /v1/registrations

`POST /v1/registrations`

Creates a `Registration`, causing Classroom to start sending notifications from the provided `feed` to the destination provided in `cloudPubSubTopic`. Returns the created `Registration`. Currently, this will be the same as the argument, but with server-assigned fields such as `expiry_time` and `id` filled in. Note that any value specified for the `expiry_time` or `id` fields will be ignored. While Classroom may validate the `cloudPubSubTopic` and return errors on a best effort basis, it is the caller's responsibility to ensure that it exists and that Classroom has permission to publish to it. This method may return the following error codes: * `PERMISSION_DENIED` if: * the authenticated user does not have permission to receive notifications from the requested field; or * the current user has not granted access to the current Cloud project with the appropriate scope for the requested feed. Note that domain-wide delegation of authority is not currently supported for this purpose. If the request has the appropriate scope, but no grant exists, a Request Errors is returned. * another access error is encountered. * `INVALID_ARGUMENT` if: * no `cloudPubsubTopic` is specified, or the specified `cloudPubsubTopic` is not valid; or * no `feed` is specified, or the specified `feed` is not valid. * `NOT_FOUND` if: * the specified `feed` cannot be located, or the requesting user does not have permission to determine whether or not it exists; or * the specified `cloudPubsubTopic` cannot be located, or Classroom has not been granted permission to publish to it.

## Request body

- Registration — An instruction to Classroom to send notifications from the `feed` to the provided destination.
  - `feed` Feed — A class of notifications that an application can register to receive. For example: "all roster changes for a domain".
    - `feedType` 'FEED_TYPE_UNSPECIFIED' | 'DOMAIN_ROSTER_CHANGES' | 'COURSE_ROSTER_CHANGES' | 'COURSE_WORK_CHANGES' — The type of feed.
    - `courseWorkChangesInfo` CourseWorkChangesInfo — Information about a `Feed` with a `feed_type` of `COURSE_WORK_CHANGES`.
      - `courseId` string — The `course_id` of the course to subscribe to work changes for.
    - `courseRosterChangesInfo` CourseRosterChangesInfo — Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`.
      - `courseId` string — The `course_id` of the course to subscribe to roster changes for.
  - `registrationId` string — A server-generated unique identifier for this `Registration`. Read-only.
  - `expiryTime` string, google-datetime — The time until which the `Registration` is effective. This is a read-only field assigned by the server.
  - `cloudPubsubTopic` CloudPubsubTopic — A reference to a Cloud Pub/Sub topic. To register for notifications, the owner of the topic must grant `classroom-notifications@system.gserviceaccount.com` the `projects.topics.publish` permission.
    - `topicName` string — The `name` field of a Cloud Pub/Sub [Topic](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics#Topic).

## 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/revisions/1b98f151d40b/schema)
