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 .

