Manage file revisions

This guide explains how to use the revisions resource to manage file revisions, such as getting a file revision and publishing a Google Workspace revision. The Google Drive API also lets you download revisions. For more details about revision terminology, see Changes and revisions overview.

To access the revision history, a user must have the role of owner, organizer, fileOrganizer, or writer.

To specify the fields to return in the response, you can set the fields system parameter with any method of the revisions resource. If you omit the parameter, the server returns a default set of fields. For example, the revisions.list method only returns the id, mimeType, kind, and modifiedTime fields. To return different fields, see Return specific fields.

Specify revisions to save from auto delete

Google Drive automatically deletes older revisions that are no longer of interest to the user.

A blob file revision can be set to "Keep Forever" meaning the revision cannot be automatically purged. Up to 200 revisions can be set to "Keep Forever" and they count towards your storage limit. The head revision is never auto-purged.

Any blob file revision, other than the head revision, that's not designated as "Keep Forever" is purgeable. Purgeable revisions are typically preserved for 30 days, but can be purged earlier if a file has 100 revisions that aren't designated as "Keep Forever" and a new revision is uploaded.

You can set the boolean keepForever field of the revisions resource to true to mark revisions that you don't want Drive to purge. Once a blob file revision is set to "Keep Forever", it can only be downloaded or deleted. For more information, see Download a revision or Delete a revision.

If you're using the older Drive API v2, use the pinned field of the revisions resource instead of keepForever.

Get a file revision

To get a file revision's metadata or content, use the get method on the revisions resource with the fileId and revisionId path parameters. If you don't know the revision ID, you can list all revisions on a file using the list method.

The method returns the revision's metadata as an instance of a revisions resource.

To acknowledge the risk of downloading known malware or other abusive files, set the acknowledgeAbuse query parameter to true. This field is only applicable when the alt=media parameter is set and the user is either the file owner or an organizer of the shared drive in which the file resides.

List a file's revisions

To list a file's revisions, use the list method on the revisions resource with the fileId path parameter. The method returns a list of file revisions.

Pass the following query parameters to customize pagination of, or filter, revisions:

  • pageSize: The maximum number of revisions to return per page.

  • pageToken: A page token, received from a previous list call. Provide this token to retrieve the subsequent page.

Update a file revision

To update a revision on a file, use the update method on the revisions resource with the fileId and revisionId path parameters.

The method returns an instance of a revisions resource.

Download a revision

You can only download blob file content revisions marked as "Keep Forever". If you want to download a revision, make sure to set it to "Keep Forever" first. For more information, see Specify revisions to save from auto delete.

To download a blob file content revision or to export a Google Workspace document content revision, see Download and export files.

Delete a file revision

To permanently delete a file revision, use the delete method on the revisions resource with the fileId and revisionId path parameters.

You can only delete revisions for blob files with binary content in Drive, such as images, videos, and PDFs. You can delete a blob file revision when it's marked as "Keep Forever." Revisions for other files, such as a Google Docs or Sheets, and the last remaining revision of the binary file, can't be deleted.

Publish a revision

To publish a Google Docs, Google Sheets, and Google Slides revision, set the published property for that file in the revisions resource. This property can't be set for Google Sites revisions using Drive API.

Published revisions don't reflect changes made to a file unless the publishAuto property is set. If the property is set to true, newer revisions of a file are automatically published, overwriting the previous ones. Slides and Drawings only support automatic re-publishing and require the publishAuto property to be set to true. For Sites files, publishAuto is always false.

If the file is created in a Google Workspace domain, the publishedOutsideDomain property indicates whether the revision is accessible by anyone or if it's restricted to users of the domain. For Sites files, this property indicates whether a type=anyone permission exists. For more information, see the type field on the permissions resource.

Automatic publishing is also controlled by the "Automatically republish when changes are made" checkbox in the UI of Docs and Sheets. For more information, see Make Google Docs, Sheets, Slides & Forms public.