To give form creators more control over who can respond, we're introducing granular controls for responders. Forms created with the API after January 31, 2026 will have an unpublished state by default. To learn more, see API changes to Google Forms.
Create a new watch. If a watch ID is provided, it must be unused. For each invoking project, the per form limit is one watch per Watch.EventType. A watch expires seven days after it is created (see Watch.expire_time).
HTTP request
POST https://forms.googleapis.com/v1beta/forms/{formId}/watches
Required. The watch object. No ID should be set on this object; use watchId instead.
watchId
string
The ID to use for the watch. If specified, the ID must not already be in use. If not specified, an ID is generated. This value should be 4-63 characters, and valid characters are /[a-z][0-9]-/.
Response body
If successful, the response body contains a newly created instance of Watch.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-11 UTC."],[],["A new watch is created using a `POST` request to `https://forms.googleapis.com/v1beta/forms/{formId}/watches`, where `formId` is required. The request body must include a `watch` object and an optional `watchId` (4-63 characters, lowercase letters, numbers, or dashes). If no `watchId` is provided, one will be generated. A watch expires after seven days and needs a valid unused `watchId`. Requires authorization scopes for access. The response returns the created watch.\n"],null,["# Method: forms.watches.create\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n- [Authorization Scopes](#body.aspect)\n\nCreate a new watch. If a watch ID is provided, it must be unused. For each invoking project, the per form limit is one watch per [Watch.EventType](/forms/api/reference/rest/v1beta/forms.watches#EventType). A watch expires seven days after it is created (see [Watch.expire_time](/forms/api/reference/rest/v1beta/forms.watches#Watch.FIELDS.expire_time)).\n\n### HTTP request\n\n`POST https://forms.googleapis.com/v1beta/forms/{formId}/watches`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|----------|---------------------------------------------|\n| `formId` | `string` Required. ID of the Form to watch. |\n\n### Request body\n\nThe request body contains data with the following structure:\n\n| JSON representation ||\n|-----------------------------------------------------------------------------------------------------------|---|\n| ``` { \"watch\": { object (/forms/api/reference/rest/v1beta/forms.watches#Watch) }, \"watchId\": string } ``` |\n\n| Fields ||\n|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `watch` | `object (`[Watch](/forms/api/reference/rest/v1beta/forms.watches#Watch)`)` Required. The watch object. No ID should be set on this object; use `watchId` instead. |\n| `watchId` | `string` The ID to use for the watch. If specified, the ID must not already be in use. If not specified, an ID is generated. This value should be 4-63 characters, and valid characters are /\\[a-z\\]\\[0-9\\]-/. |\n\n### Response body\n\nIf successful, the response body contains a newly created instance of [Watch](/forms/api/reference/rest/v1beta/forms.watches#Watch).\n\n### Authorization Scopes\n\nRequires one of the following OAuth scopes:\n\n- `https://www.googleapis.com/auth/drive`\n- `\n https://www.googleapis.com/auth/drive.file`\n- `\n https://www.googleapis.com/auth/drive.readonly`\n- `\n https://www.googleapis.com/auth/forms.body`\n- `\n https://www.googleapis.com/auth/forms.body.readonly`\n- `\n https://www.googleapis.com/auth/forms.responses.readonly`\n\nFor more information, see the [Authorization guide](/workspace/guides/configure-oauth-consent)."]]