# Google Forms API API

> Google Forms API API on Apizie: 10 endpoints (Change the form with a batch of updates., Create a new form using the title given in the provided form message in the request. *Important:* Only the…, Get a form., Updates the publish settings of a form. Legacy forms aren't supported because they don't have the…, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/analytics:googleapis-forms/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `analytics:googleapis-forms`
- Category: Analytics
- Status: byok
- Source: https://developers.google.com/workspace/forms/api
- Page: https://apizie.tech/api/analytics/googleapis-forms
- OpenAPI: https://apizie.tech/api/analytics/googleapis-forms/openapi.json

Reads and writes Google Forms and responses.

## Endpoints

### Change the form with a batch of updates.
`POST https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-batch-update` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| formId | string | yes | Required. The form ID. |
| body | object | yes | JSON request body |

### Create a new form using the title given in the provided form message in the request. *Important:* Only the…
`POST https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| unpublished | boolean | no | Optional. Whether the form is unpublished. If set to `true`, the form doesn't accept responses. If set to `false` or unset, the form is… |
| body | object | yes | JSON request body |

### Get a form.
`GET https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-get` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| formId | string | yes | Required. The form ID. |

### Updates the publish settings of a form. Legacy forms aren't supported because they don't have the…
`POST https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-set-publish-settings` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| formId | string | yes | Required. The ID of the form. You can get the id from Form.form_id field. |
| body | object | yes | JSON request body |

### Get one response from the form.
`GET https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-responses-get` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| formId | string | yes | Required. The form ID. |
| responseId | string | yes | Required. The response ID within the form. |

### List a form's responses.
`GET https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-responses-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | no | Which form responses to return. Currently, the only supported filters are: * timestamp > *N* which means to get all form responses… |
| formId | string | yes | Required. ID of the Form whose responses to list. |
| pageSize | integer | no | The maximum number of responses to return. The service may return fewer than this value. If unspecified or zero, at most 5000 responses… |
| pageToken | string | no | A page token returned by a previous list response. If this field is set, the form and the values of the filter must be the same as for the… |

### Return a list of the watches owned by the invoking project. The maximum number of watches is two: For each…
`GET https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-watches-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| formId | string | yes | Required. ID of the Form whose watches to list. |

### Create a new watch. If a watch ID is provided, it must be unused. For each invoking project, the per form…
`POST https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-watches-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| formId | string | yes | Required. ID of the Form to watch. |
| body | object | yes | JSON request body |

### Delete a watch.
`POST https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-watches-delete` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| formId | string | yes | Required. The ID of the Form. |
| watchId | string | yes | Required. The ID of the Watch to delete. |

### Renew an existing watch for seven days. The state of the watch after renewal is `ACTIVE`, and the…
`POST https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-watches-renew` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| formId | string | yes | Required. The ID of the Form. |
| watchId | string | yes | Required. The ID of the Watch to renew. |
| body | object | yes | JSON request body |

## Example
```
curl "https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-batch-update" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Google Forms API API?
Create a free Apizie key, then send POST https://apizie.tech/v1/analytics:googleapis-forms/forms-forms-batch-update with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Google Forms API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Google Forms API itself also needs your own key from googleapis.com.

### Can AI agents use the Google Forms API API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key analytics:googleapis-forms.

### What is the status of the Google Forms API API?
Needs your own provider key (bring your own key)
