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.
Return a list of the watches owned by the invoking project. The maximum number of watches is two: For each invoker, the limit is one for each event type per form.
HTTP request
GET https://forms.googleapis.com/v1/forms/{formId}/watches
[[["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-27 UTC."],[],["The core action is listing watches owned by a project via a `GET` request to `https://forms.googleapis.com/v1/forms/{formId}/watches`. The `formId` path parameter is required to specify the target Form. The request body must be empty. The response, in JSON format, contains a list of \"watches\" objects. Authorization requires one of several OAuth scopes related to Drive or Forms access. The maximum number of watches returned is two per invoking project, one for each event type per form.\n"],null,["# Method: forms.watches.list\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n- [Response body](#body.response_body)\n - [JSON representation](#body.ListWatchesResponse.SCHEMA_REPRESENTATION)\n- [Authorization scopes](#body.aspect)\n\nReturn a list of the watches owned by the invoking project. The maximum number of watches is two: For each invoker, the limit is one for each event type per form.\n\n### HTTP request\n\n`GET 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 whose watches to list. |\n\n### Request body\n\nThe request body must be empty.\n\n### Response body\n\nThe response of a ListWatchesRequest.\n\nIf successful, the response body contains data with the following structure:\n\n| JSON representation |\n|----------------------------------------------------------------------------------------------------|\n| ``` { \"watches\": [ { object (/workspace/forms/api/reference/rest/v1/forms.watches#Watch) } ] } ``` |\n\n| Fields ||\n|-------------|--------------------------------------------------------------------------------------------------------|\n| `watches[]` | `object (`[Watch](/workspace/forms/api/reference/rest/v1/forms.watches#Watch)`)` The returned watches. |\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)."]]