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.
Method: forms.watches.create
Stay organized with collections
Save and categorize content based on your preferences.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-02-27 UTC.
[null,null,["Last updated 2025-02-27 UTC."],[],["To create a watch, send a POST request to `https://forms.googleapis.com/v1/forms/{formId}/watches`, providing the `formId` in the path. The request body must include a watch object and an optional, unique `watchId` (4-63 characters, lowercase letters, numbers, hyphens). Each project has a limit of one watch per `EventType`, expiring after seven days. Successful requests return the new watch, and a specific authorization scope is required.\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](/workspace/forms/api/reference/rest/v1/forms.watches#EventType). A watch expires seven days after it is created (see [Watch.expire_time](/workspace/forms/api/reference/rest/v1/forms.watches#Watch.FIELDS.expire_time)).\n\n### HTTP request\n\n`POST https://forms.googleapis.com/v1/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 (/workspace/forms/api/reference/rest/v1/forms.watches#Watch) }, \"watchId\": string } ``` |\n\n| Fields ||\n|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `watch` | `object (`[Watch](/workspace/forms/api/reference/rest/v1/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](/workspace/forms/api/reference/rest/v1/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)."]]