Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time
1358 lines (979 sloc) 142 KB


2.22.0 (2021-09-21)


2.21.0 (2021-09-14)


2.20.0 (2021-09-07)


Bug Fixes

2.19.1 (2021-09-02)

Bug Fixes

  • remove repeated calls to self._get_reason (#1513) (d5cf4e0)

2.19.0 (2021-08-31)


2.18.0 (2021-08-24)


2.17.0 (2021-08-17)


2.16.0 (2021-08-10)


Bug Fixes

2.15.0 (2021-07-27)



  • update license to be Apache-2.0 compliant (#1461) (882844c)

2.14.1 (2021-07-25)

Bug Fixes

2.14.0 (2021-07-20)


Bug Fixes

  • deps: pin 'google-{api,cloud}-core', 'google-auth' to allow 2.x versions (#1449) (96d2bb0)

2.13.0 (2021-07-13)


Bug Fixes


  • add recommendation to use v2.x and static discovery artifacts (#1434) (ca7328c)

2.12.0 (2021-07-06)


2.11.0 (2021-06-29)


2.10.0 (2021-06-22)


Bug Fixes

2.9.0 (2021-06-12)


Bug Fixes

2.8.0 (2021-06-08)


2.7.0 (2021-06-01)


Bug Fixes

  • resolve issue where certain artifacts would not be updated (#1385) (31bbe51)

2.6.0 (2021-05-26)


2.5.0 (2021-05-20)


2.4.0 (2021-05-11)


  • alertcenter: update the api (cbf5364)
  • analyticsadmin: update the api (bfa2f1c)
  • androidenterprise: update the api (44a6719)
  • androidpublisher: update the api (44a6719)
  • artifactregistry: update the api (44a6719)
  • bigquery: update the api (bfa2f1c)
  • chromepolicy: update the api (44a6719)
  • content: update the api (c0b883a)
  • datacatalog: update the api (e58efe8)
  • dataproc: update the api (cbf5364)
  • dialogflow: update the api (44a6719)
  • dns: update the api (c0b883a)
  • documentai: update the api (bfa2f1c)
  • file: update the api (cbf5364)
  • file: update the api (44a6719)
  • firebasestorage: update the api (27f691d)
  • gameservices: update the api (bfa2f1c)
  • gkehub: update the api (44a6719)
  • lifesciences: update the api (44a6719)
  • monitoring: update the api (bfa2f1c)
  • mybusinessaccountmanagement: update the api (bfa2f1c)
  • networkmanagement: update the api (bfa2f1c)
  • oslogin: update the api (bfa2f1c)
  • pubsublite: update the api (bfa2f1c)
  • recommender: update the api (bfa2f1c)
  • retail: update the api (cbf5364)
  • servicedirectory: update the api (44a6719)
  • servicemanagement: update the api (c0b883a)
  • servicenetworking: update the api (bfa2f1c)
  • translate: update the api (c0b883a)

Bug Fixes

  • preventing accessing predefined discovery URLs when override is provided (#1324) (1c4d199)

2.3.0 (2021-04-28)


  • apigee: update the api (3fd11cb)
  • dataflow: update the api (3fd11cb)
  • dialogflow: update the api (3fd11cb)
  • documentai: update the api (3fd11cb)
  • healthcare: update the api (3fd11cb)
  • osconfig: update the api (afea316)
  • sqladmin: update the api (cec4393)

2.2.0 (2021-04-13)


  • Adds support for to also use 'errors' for error_details (#1281) (a5d2081)

2.1.0 (2021-03-31)


  • add status_code property on http error handling (#1185) (db2a766)

Bug Fixes

  • Change default of static_discovery when discoveryServiceUrl set (#1261) (3b4f2e2)
  • correct api version in (#1258) (d1a255f)
  • fix .close() (#1231) (a9583f7)
  • Resolve issue where num_retries would have no effect (#1244) (c518472)


  • Distinguish between public/private docs in 2.0 guide (#1226) (a6f1706)
  • Update README to promote cloud client libraries (#1252) (22807c9)

2.0.2 (2021-03-04)

Bug Fixes

  • Include discovery artifacts in published package (#1221) (ad618d0)

2.0.1 (2021-03-04)

Bug Fixes


  • add a link to the migration guide in the changelog (#1213) (b85da5b)

2.0.0 (2021-03-03)


The 2.0 release of google-api-python-client is a significant upgrade compared to v1. Please see the Migration Guide for more information.

  • deps: require 3.6+. (#961)


  • Add support for using static discovery documents (#1109) (32d1c59)
  • Update to copy discovery files from discovery-artifact-manager (#1104) (af918e8)

Bug Fixes

  • Catch ECONNRESET and other errors more reliably (#1147) (ae9cd99)
  • deps: add upper-bound google-auth dependency (#1180) (c687f42)
  • handle error on service not enabled (#1117) (c691283)
  • Improve support for error_details (#1126) (e6a1da3)
  • MediaFileUpload error if file does not exist (#1127) (2c6d029)
  • replace deprecated socket.error with OSError (#1161) (b7b9986)
  • Use logging level info when file_cache is not available (#1125) (0b32e69)

Miscellaneous Chores


1.12.8 (2020-11-18)


1.12.7 (2020-11-17)


1.12.6 (2020-11-16)


  • Change error parsing to check for 'message' (#1083) (a341c5a), closes #1082
  • Update oauth docs to include snippet to get email address of authenticated user (#1088) (25fba64), closes #1071

1.12.5 (2020-10-22)

Bug Fixes

  • don't raise when downloading zero byte files (#1074) (86d8788)

1.12.4 (2020-10-20)

Bug Fixes

  • don't set content-range on empty uploads (#1070) (af6035f)


1.12.3 (2020-09-29)

Bug Fixes

  • deps: update to install httplib2>=0.15.0 (#1050) (c00f70d)

1.12.2 (2020-09-23)

Bug Fixes

1.12.1 (2020-09-14)

Bug Fixes

1.12.0 (2020-09-12)


  • add quota_project, credentials_file, and scopes support (#1022) (790e702)


1.11.0 (2020-08-27)


1.10.1 (2020-08-03)

Bug Fixes


  • fix deprecation warnings due to invalid escape sequences. (#996) (0f60eda), closes #995
  • fix link to service accounts documentation (#986) (edb2516)
  • update generated docs (#981) (d059ad8)

1.10.0 (2020-07-15)


  • allow to use 'six.moves.collections_abc.Mapping' in 'client_options.from_dict()' (#943) (21af37b)
  • Build universal wheels (#948) (3e28a1e)
  • discovery supports retries (#967) (f3348f9), closes #848


  • consolidating and updating the Contribution Guide (#964) (63f97f3), closes #963

1.9.3 (2020-06-10)

Bug Fixes

1.9.2 (2020-06-04)

Bug Fixes

1.9.1 (2020-06-02)

Bug Fixes

  • fix python-api-core dependency issue (#931) (42028ed)

1.9.0 (2020-06-02)


1.8.4 (2020-05-20)

Bug Fixes

  • don't try to import GAE API in other environments (#903) (09e6447)
  • the turn down date for global batch uri (#901) (6ddadd7)

1.8.3 (2020-05-01)

Bug Fixes

  • downgrade repetitive logging calls to debug (#885) (3bf2781), closes #781

1.8.2 (2020-04-21)

Bug Fixes

1.8.1 (2020-04-20)

Bug Fixes


Version 1.8.0

Release to support API endpoint override.

New Features

  • Add api endpoint override. (#829)

Implementation Changes

  • Don't set http.redirect_codes if the attr doesn't exist and allow more httplib2 versions. (#841)


Version 1.7.12

Bugfix release

Implementation Changes

  • Look for field 'detail' in error message. (#739)
  • Exclude 308s from httplib2 redirect codes list (#813)


  • Remove oauth2client from docs (#738)

  • Fix typo. (#745)

  • Remove compatibility badges. (#746)

  • Fix TypeError: #732 (#742)

  • Correct response access (#750)

  • Fix link to API explorer (#760)

  • Fix argument typo in oauth2 code example (#763)

  • Recommend install with virtualenv (#768)

  • Fix capitalization in docs/ (#770)

  • Remove compatibility badges (#796)

  • Remove mentions of pycrypto (#799)

  • Fix typo in

  • Add note about Google Ads llibrary (#814)

Internal / Testing Changes

  • Blacken (#772)
  • Move kokoro configs (#832)


Version 1.7.11

Bugfix release

Implementation Changes

  • Pass library and Python version in x-goog-api-client header (#734)


  • Fix typo in filename used in 'docs/' (#736)


Version 1.7.10

Bugfix release

Implementation Changes

  • Decode service to utf-8 (#723)
  • Use print() function in both Python2 and Python 3 (#722)
  • Make http.MediaFileUpload close its file descriptor (#600)
  • Never make 'body' required (#718)


  • Add compatability check badges to README (#691)
  • Regenerate docs (#696, #700)
  • Create index file for dynamically generated docs (#702)
  • Add docs folder with guides from (#706, #710)

Internal / Testing Changes

  • Fix, lint errors, unit test (#724)
  • tox.ini: Look for Python syntax errors and undefined names (#721)


Version 1.7.9

Bugfix release

  • Remove Django Samples. (#657)
  • Call request_orig with kwargs (#658)


Version 1.7.8

Bugfix release

  • Convert '$' in method name to '_' (#616)
  • Alias unitest2 import as unittest in (#613)


Version 1.7.7

Bugfix release
- Change xrange to range ([#601](
- Typo in exception message. ([#602](

- Announce deprecation of Python 2.7 ([#603](
- Updates documentation for stopping channel subscriptions ([#598](
- Adding example for searchAppearance ([#414](

- Add badges ([#455](


Version 1.7.6

Bugfix release

  • Add client-side limit for batch requests (#585)


Version 1.7.5

Bugfix release

  • Fix the client to respect the passed in developerKey and credentials


Version 1.7.4

Bugfix release

  • Catch ServerNotFoundError to retry the request (#532)


Version 1.7.3

Bugfix release

  • Make apiclient.sample_tools gracefully fail to import (#525).


Version 1.7.2

Bugfix release

  • Remove unnecessary check in apiclient/ (#522).


Version 1.7.1

Bugfix release

  • Remove unnecessary check in (#518).


Version 1.7.0

This release drops the hard requirement on oauth2client and installs google-auth by default instead. oauth2client is still supported but will need to be explicitly installed.

  • Drop oauth2client dependency (#499)
  • Include tests in source distribution (#514)


Version 1.6.7

Bugfix release

Note: The next release of this library will no longer directly depend on oauth2client. If you need to use oauth2client, you'll need to explicitly install it.

  • Make body optional for requests with no parameters. (#446)
  • Fix retying on socket.timeout. (#495)
  • Match travis matrix with tox testenv. (#498)
  • Remove oauth2client._helpers dependency. (#493)
  • Remove unused keyring test dependency. (#496)
  • remove unused oauth2client import. (#492)
  • Update README to reference GCP API client libraries. (#490)


Version 1.6.6

Bugfix release

  • Warn when constructing BatchHttpRequest using the legacy batch URI (#488)
  • Increase the default media chunksize to 100MB. (#482)
  • Remove unnecessary parsing of mime headers in HttpRequest.init (#467)


Version 1.6.5

Bugfix release

  • Proactively refresh credentials when applying and treat a missing access_token as invalid. Note: This change reveals surprising behavior between default credentials and batches. If you allow to use default credentials and specify different credentials by providing batch.execut() with an explicit http argument, your individual requests will use the default credentials and not the credentials specified to the batch http. To avoid this, tell build explicitly not to use default credentials by specifying build(..., http=httplib2.Http(). (#469)
  • Remove mutual exclusivity check for developerKey and credentials (#465)
  • Handle unknown media length. (#406)
  • Handle variant error format gracefully. (#459)
  • Avoid testing against Django >= 2.0.0 on Python 2. (#460)


Version 1.6.4

Bugfix release

  • Warn when google-auth credentials are used but google-auth-httplib2 isn't available. (#443)


Version 1.6.3

Bugfix release

  • Add notification of maintenance mode to README. (#410)
  • Fix generation of methods with abnormal page token conventions. (#338)
  • Raise ValueError is credentials and developerKey are both specified. (#358)
  • Re-generate documentation. (#364, #373, #401)
  • Fix method signature documentation for multiline required parameters. (#374)
  • Fix ZeroDivisionError in MediaDownloadProgress.progress. (#377)
  • Fix dead link to WebTest in README. (#378)
  • Fix details missing in googleapiclient.errors.HttpError. (#412)
  • Don't treat httplib2.Credentials as oauth credentials. (#425)
  • Various fixes to the Django sample. (#413)


Version 1.6.2

Bugfix release

  • Fixed a bug where application default credentials would still be used even when a developerKey was specified. (#347)
  • Official support for Python 3.5 and 3.6. (#341)


Version 1.6.1

Bugfix release

  • Fixed a bug where using google-auth with scoped credentials would fail. (#328)


Version 1.6.0

Release to drop support for Python 2.6 and add support for google-auth.

  • Support for Python 2.6 has been dropped. (#319)
  • The credentials argument to and discovery.build_from_document can be either oauth2client credentials or google-auth credentials. (#319)
  • and discovery.build_from_document now unambiguously use the http argument to make all requests, including the request for the discovery document. (#319)
  • The http and credentials arguments to and discovery.build_from_document are now mutually exclusive, eliminating a buggy edge case. (#319)
  • If neither http or credentials is specified to and discovery.build_from_document, then Application Default Credentials will be used. The library prefers google-auth for this if it is available, but can also use oauth2client's implementation. (#319)
  • Fixed resumable upload failure when receiving a 308 response. (#312)
  • Clarified the support versions of Python 3. (#316)


Version 1.5.5

Bugfix release

  • Allow explicit MIME type specification with media_mime_type keyword argument.
  • Fix unprintable representation of BatchError with default constructor. (#165)
  • Refresh all discovery docs, not just the preferred ones. (#298)
  • Update minimum httplib2 dependency to >=0.9.2.


Version 1.5.4

Bugfix release

  • Properly handle errors when the API returns a mapping or sequence. (#289)
  • Upgrade to unified uritemplate 3.0.0. (#293)
  • Allow oauth2client 4.0.0, with the caveat that file-based discovery caching is disabled.


Version 1.5.3

Bugfix release

  • Fixed import error with oauth2client >= 3.0.0. (#270)


Version 1.5.2

Bugfix release

  • Allow using oauth2client >= 1.5.0, < 4.0.0. (#265)
  • Fix project_id argument description. (#257)
  • Retry chunk uploaded on rate limit exceeded errors. (#255)
  • Obtain access token if necessary in BatchHttpRequest.execute(). (#232)
  • Warn when running tests using HttpMock without having a cache. (#261)


Version 1.5.1

Bugfix release

  • Allow using versions of oauth2client < 2.0.0. (#197)
  • Check both current and new API discovery URL. (#202)
  • Retry http requests on connection errors and timeouts. (#218)
  • Retry http requests on rate limit responses. (#201)
  • Import guards for ssl (for Google App Engine). (#220)
  • Use named loggers instead of the root logger. (#206)
  • New search console example. (#212)


Version 1.5.0

Release to support oauth2client >= 2.0.0.

  • Fix file stream recognition in Python 3 (#141)
  • Fix non-resumable binary uploads in Python 3 (#147)
  • Default to 'octet-stream' if mimetype detection fails (#157)
  • Handle SSL errors with retries (#160)
  • Fix incompatibility with oauth2client v2.0.0 (#182)


Version 1.4.2

Add automatic caching for the discovery docs.


Version 1.4.1

Add the googleapiclient.discovery.Resource.new_batch_http_request method.


Version 1.4.0

Python 3 support.


Version 1.3.2

Small bugfix release.

  • Fix an infinite loop for downloading small files.
  • Fix a unicode error in error encoding.
  • Better handling of content-length in media requests.
  • Add support for methodPath entries containing colon.


Version 1.3.1

Quick release for a fix around aliasing in v1.3.


Version 1.3

Add support for the Google Application Default Credentials. Require python 2.6 as a minimum version. Update several API samples. Finish splitting out oauth2client repo and update tests. Various doc cleanup and bugfixes.

Two important notes: * We've added googleapiclient as the primary suggested import name, and kept apiclient as an alias, in order to have a more appropriate import name. At some point, we will remove apiclient as an alias. * Due to an issue around in-place upgrades for Python packages, it's not possible to do an upgrade from version 1.2 to 1.3. Instead, attempts to detect this and prevents it. Simply remove the previous version and reinstall to fix this.


Version 1.2

The use of the gflags library is now deprecated, and is no longer a dependency. If you are still using the function then include gflags as a dependency of your application or switch to Samples have been updated to use the new apiclient.sample_tools, and no longer use gflags. Added support for the experimental Object Change Notification, as found in the Cloud Storage API. The oauth2client App Engine decorators are now threadsafe.

  • Use the following redirects feature of httplib2 where it returns the ultimate URL after a series of redirects to avoid multiple hops for every resumable media upload request.
  • Updated AdSense Management API samples to V1.3
  • Add option to automatically retry requests.
  • Ability to list registered keys in multistore_file.
  • User-agent must contain (gzip).
  • The 'method' parameter for httplib2 is not positional. This would cause spurious warnings in the logging.
  • Making OAuth2Decorator more extensible. Fixes Issue 256.
  • Update AdExchange Buyer API examples to version v1.2.


Version 1.1

Add PEM support to SignedJWTAssertionCredentials (used to only support PKCS12 formatted keys). Note that if you use PEM formatted keys you can use PyCrypto 2.6 or later instead of OpenSSL.

Allow deserialized discovery docs to be passed to build_from_document().

  • Make ResumableUploadError derive from HttpError.
  • Many changes to move all the closures in apiclient.discovery into real
  • classes and objects.
  • Make from_json behavior inheritable.
  • Expose the full token response in OAuth2Client and OAuth2Decorator.
  • Handle reasons that are None.
  • Added support for NDB based storing of oauth2client objects.
  • Update grant_type for AssertionCredentials.
  • Adding a .revoke() to Credentials. Closes issue 98.
  • Modify oauth2client.multistore_file to store and retrieve credentials using an arbitrary key.
  • Don't accept 403 challenges by default for auth challenges.
  • Set httplib2.RETRIES to 1.
  • Consolidate handling of scopes.
  • Upgrade to httplib2 version 0.8.
  • Allow setting the response_type in OAuth2WebServerFlow.
  • Ensure that dataWrapper feature is checked before using the 'data' value.
  • HMAC verification does not use a constant time algorithm.


Version 1.0

  • Changes to the code for running tests and building releases.


Version 1.0 Release Candidate 3

  • In samples and oauth2 decorator, escape untrusted content before displaying it.
  • Do not allow credentials files to be symlinks.
  • Add XSRF protection to oauth2decorator callback 'state'.
  • Handle uploading chunked media by stream.
  • Handle passing streams directly to httplib2.
  • Add support for Google Compute Engine service accounts.
  • Flows no longer need to be saved between uses.
  • Change GET to POST if URI is too long. Fixes issue #96.
  • Add a keyring based Storage.
  • More robust picking up JSON error responses.
  • Make batch errors align with normal errors.
  • Add a Google Compute sample.
  • Token refresh to work with 'old' GData API
  • Loading of client_secrets JSON file backed by a cache.
  • Switch to new discovery path parameters.
  • Add support for additionalProperties when printing schema'd objects.
  • Fix media upload parameter names. Reviewed in
  • oauth2client support for URL-encoded format of exchange token response (e.g. Facebook)
  • Build cleaner and easier to read docs for dynamic surfaces.


Version 1.0 Release Candidate 2

  • Parameter values of None should be treated as missing. Fixes issue #144.
  • Distribute the samples separately from the library source. Fixes issue #155.
  • Move all remaining samples over to client_secrets.json. Fixes issue #156.
  • Make understand win32file primitives for better awesomeness.


Version 1.0 Release Candidate 1

  • Documentation for the library has switched to epydoc:
  • Many improvements for media support:
    • Added media download support, including resumable downloads.
    • Better handling of streams that report their size as 0.
    • Update Media Upload to include io.Base and also fix some bugs.
  • OAuth bug fixes and improvements.
    • Remove OAuth 1.0 support.
    • Added credentials_from_code and credentials_from_clientsecrets_and_code.
    • Make oauth2client support Windows-friendly locking.
    • Fix bug in StorageByKeyName.
    • Fix None handling in Django fields. Reviewed in Fixes issue #128.
  • Add epydoc generated docs. Reviewed in
  • Move to PEP386 compliant version numbers.
  • New and updated samples
    • Ad Exchange Buyer API v1 code samples.
    • Automatically generate Samples wiki page from README files.
    • Update Google Prediction samples.
    • Add a Tasks sample that demonstrates Service accounts.
    • new analytics api samples. Reviewed here:
  • Convert all inline samples to the Farm API for consistency.


  • Updated meda upload support.
  • Many fixes for batch requests.
  • Better handling for requests that don't require a body.
  • Fix issues with Google App Engine Python 2.7 runtime.
  • Better support for proxies.
  • All Storages now have a .delete() method.
  • Important changes which might break your code:
    • apiclient.anyjson has moved to oauth2client.anyjson.
    • Some calls, for example, taskqueue().lease() used to require a parameter named body. In this new release only methods that really need to send a body require a body parameter, and so you may get errors about an unknown 'body' parameter in your call. The solution is to remove the unneeded body={} parameter.


  • Support for batch requests.
  • Support for media upload.
  • Better handling for APIs that return something other than JSON.
  • Major cleanup and consolidation of the samples.
  • Bug fixes and other enhancements: 72 Defect Appengine OAuth2Decorator: Convert redirect address to string 22 Defect Better error handling for unknown service name or version 48 Defect StorageByKeyName().get() has side effects 50 Defect Need sample client code for Admin Audit API 28 Defect better comments for app engine sample Nov 9 63 Enhancement Let OAuth2Decorator take a list of scope