# Method: files.update

- [HTTP request](https://developers.google.com/workspace/drive/api/reference/rest/v2/files/update#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/workspace/drive/api/reference/rest/v2/files/update#body.PATH_PARAMETERS)
- [Query parameters](https://developers.google.com/workspace/drive/api/reference/rest/v2/files/update#body.QUERY_PARAMETERS)
- [Request body](https://developers.google.com/workspace/drive/api/reference/rest/v2/files/update#body.request_body)
- [Response body](https://developers.google.com/workspace/drive/api/reference/rest/v2/files/update#body.response_body)
- [Authorization scopes](https://developers.google.com/workspace/drive/api/reference/rest/v2/files/update#body.aspect)
- [Try it!](https://developers.google.com/workspace/drive/api/reference/rest/v2/files/update#try-it)

<br />

Updates a file's metadata, content, or both.

When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as `modifiedDate`. This method supports patch semantics.

This method supports an **/upload** URI and accepts uploaded media with the following characteristics:

- **Maximum file size:** 5,120 GB
- **Accepted Media MIME types:** `*/*`

  (Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information, see [Google Workspace and Google Drive supported MIME types](https://developers.google.com/workspace/drive/api/guides/mime-types).)

For more information on uploading files, see [Upload file data](https://developers.google.com/workspace/drive/api/guides/manage-uploads).

### HTTP request

- Upload URI, for media upload requests:  
  `PUT https://www.googleapis.com/upload/drive/v2/files/{fileId}`
- Metadata URI, for metadata-only requests:  
  `PUT https://www.googleapis.com/drive/v2/files/{fileId}`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `fileId` | `string` The ID of the file to update. |

### Query parameters

| Parameters ||
|---|---|
| `addParents` | `string` Comma-separated list of parent IDs to add. |
| `convert (deprecated)` | `boolean` Deprecated: This parameter has no function. |
| `enforceSingleParent (deprecated)` | `boolean` Deprecated: Adding files to multiple folders is no longer supported. Use `shortcuts` instead. |
| `modifiedDateBehavior` | ``enum (`https://developers.google.com/workspace/drive/api/reference/rest/v2/ModifiedDateBehavior`)`` Determines the behavior in which `modifiedDate` is updated. This overrides `setModifiedDate`. |
| `newRevision` | `boolean` Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If true or not set, a new blob is created as head revision, and previous unpinned revisions are preserved for a short period of time. Pinned revisions are stored indefinitely, using additional storage quota, up to a maximum of 200 revisions. For details on how revisions are retained, see the [Drive Help Center](https://support.google.com/drive/answer/2409045). |
| `ocr` | `boolean` Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. |
| `ocrLanguage` | `string` If ocr is true, hints at the language to use. Valid values are BCP 47 codes. |
| `pinned` | `boolean` Whether to pin the new revision. A file can have a maximum of 200 pinned revisions. |
| `removeParents` | `string` Comma-separated list of parent IDs to remove. |
| `setModifiedDate` | `boolean` Whether to set the modified date using the value supplied in the request body. Setting this field to `true` is equivalent to `modifiedDateBehavior=fromBodyOrNow`, and `false` is equivalent to `modifiedDateBehavior=now`. To prevent any changes to the modified date set `modifiedDateBehavior=noChange`. |
| `supportsAllDrives` | `boolean` Whether the requesting application supports both My Drives and shared drives. |
| `supportsTeamDrives (deprecated)` | `boolean` Deprecated: Use `supportsAllDrives` instead. |
| `timedTextLanguage` | `string` The language of the timed text. |
| `timedTextTrackName` | `string` The timed text track name. |
| `updateViewedDate` | `boolean` Whether to update the view date after successfully updating the file. |
| `uploadType` | `string` The type of upload request to the `/upload` URI. If you are uploading data with an `/upload` URI, this field is required. If you are creating a metadata-only file, this field isn't required. Additionally, this field isn't shown in the "Try this method" widget because the widget doesn't support data uploads. Acceptable values are: - `media` - [Simple upload](https://developers.google.com/drive/api/guides/manage-uploads#simple). Upload the media only, without any metadata. - `multipart` - [Multipart upload](https://developers.google.com/drive/api/guides/manage-uploads#multipart). Upload both the media and its metadata, in a single request. - `resumable` - [Resumable upload](https://developers.google.com/drive/api/guides/manage-uploads#resumable). Upload the file in a resumable fashion, using a series of at least two requests where the first request includes the metadata. |
| `useContentAsIndexableText` | `boolean` Whether to use the content as indexable text. |
| `includePermissionsForView` | `string` Specifies which additional view's permissions to include in the response. Only `published` is supported. |
| `includeLabels` | `string` A comma-separated list of IDs of labels to include in the `labelInfo` part of the response. |

### Request body

The request body contains an instance of `https://developers.google.com/workspace/drive/api/reference/rest/v2/files#File`.

### Response body

If successful, the response body contains an instance of `https://developers.google.com/workspace/drive/api/reference/rest/v2/files#File`.

### Authorization scopes

Requires one of the following OAuth scopes:

- `https://www.googleapis.com/auth/docs`
- `
  https://www.googleapis.com/auth/drive`
- `
  https://www.googleapis.com/auth/drive.appdata`
- `
  https://www.googleapis.com/auth/drive.apps.readonly`
- `
  https://www.googleapis.com/auth/drive.file`
- `
  https://www.googleapis.com/auth/drive.metadata`
- `
  https://www.googleapis.com/auth/drive.scripts`

Some scopes are restricted and require a security assessment for your app to use them. For more information, see the [Authorization guide](https://developers.google.com/workspace/guides/configure-oauth-consent).