The latest version of the Google Drive API is v3. The performance in v3 is
better because searches only return a subset of fields. Use the current version
unless you need the
Apps collection. If you're
using v2 and your app doesn't use the
Apps collection, consider migrating to
v3. To migrate, see Migrate to Drive API v3. For
a complete list of version differences, see the
Drive API v2 & v3 comparison reference.
To learn more about the improvements to Drive API v3, you can watch the following video of Google engineers discussing the new API design.
To optimize performance and reduce API behavior complexity, v3 provides these improvements over the previous API version:
- Searches for files and shared drives don't return full resources by default,
only a subset of commonly used fields gets returned. For more details about
- Almost all methods that return a response now require the
fieldsparameter. For a list of all methods that require
fields, see the API reference.
- Resources that have duplicate capabilities were removed. Some examples:
files.listmethod accomplishes the same functionality as the
Parentscollections, so they're gone from v3.
Realtime.*methods have been removed.
- App Data isn't returned by default in searches. In v2, you can set the
drive.appdatascope, and it returns application data from
changes.list, but it slows performance. In v3, you set the
drive.appdatascope, and also set the query parameter
spaces=appDataFolderto request application data.
- All update operations use PATCH instead of PUT.
- To export Google Documents, use
changes.listbehavior is different. Instead of change ids, use opaque page tokens. To poll the change collection, first call
changes.getStartPageTokenfor the initial value. For subsequent queries,
- Update methods now reject requests that specify non-writable fields.
- The v2
Aboutare lists of allowable import or export formats. In v3, they're MIME type maps of possible targets to all supported imports or exports.
- The v2
appfolderaliases are now
Propertiescollection is removed from v3. The
Filesresource has the
propertiesfield that contains true key-value pairs. The
propertiesfield contains public properties, and
appPropertiescontain private properties, so the visibility field isn't needed.
modifiedTimefield updates the last time anyone modified the file. In v2, the
modifiedDatefield was only mutable on update if you set the
viewedByMeTimefield doesn't automatically update.
- To import Google Docs formats, you set the appropriate target
mimeTypein the resource body. In v2, you set
- Import operations return a 400 error if the format isn't supported.
- Readers and commenters can't view permissions.
mealias for permissions is gone.
- Some functionality was available as part of the request resource, to instead
be available as a request parameter. For example:
- In v2, you can use
children.deleteto remove a child file from a parent folder.
- In v3, you use
files.updateon the child with
?removeParents=parent_idin the URL.
- In v2, you can use
Fields and parameter names are different in v3. See tables below for all v2 to v3 changes. Some examples include:
Timeis the suffix for all date and time fields instead of
- List operations don't use the
itemsfield to contain the result set. The resource type provides a field for the results (such as