NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3846 most downloaded on PyPI
Async Google API client
Last release 2 months ago
18 Jul 2026
Release timing varies
gaps range from 8 days to 11 months
Most releases are documented
notes for 51 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
78 releases · first in 2018
Preserve HTTPError from v1 discovery failures (#173, fixes #172) — @tamird
HTTPError from v1 discovery failures (#173, fixes #172) — @tamirdAiogoogle.discover() once again raises aiogoogle.excs.HTTPError when a v1 discovery request fails, instead of converting it to ValueError (a regression from #148). The original request/response and traceback are preserved, and the disco_doc_ver=2 hint is kept in the error message. If you added an except ValueError handler around discover() since v5.16, update it to catch HTTPError.
Full Changelog: https://github.com/omarryhan/aiogoogle/compare/v5.18.0...v5.19.0
Removed the unmaintained `tonyg-rfc3339` dependency (#170, fixes #169). Both upstream repos are archived and the package ships no wheel and no pyproje
tonyg-rfc3339 dependency (#170, fixes #169). Both upstream repos are archived and the package ships no wheel and no pyproject.toml, so it would stop installing once pip 25.3 removes the legacy setup.py bdist_wheel build path. The opt-in request validators now parse date/date-time values with the standard library's fromisoformat() (with an RFC 3339 Z-suffix shim for Python < 3.11). Note: date/datetime validation is now slightly stricter than full RFC 3339 on Python < 3.11 (no lowercase t separator; fractional seconds of 3 or 6 digits), matching the documented contract of producing values via datetime.isoformat().google.protobuf.Any discovery-doc format (#171). It is skipped during validation like the other protobuf formats, instead of emitting an unknown-format warning.authorization_response_iss_parameter_supported.Full Changelog: https://github.com/omarryhan/aiogoogle/compare/v5.17.0...v5.18.0
One column per quarter.
& @kdelinx for the filing the issue and fix proposal.
Fix HTTPError signature
@dastier For the fix
& @kdelinx for the filing the issue and fix proposal.
Fix deprecation warning of Aiohttp lib by using composition instead of inheritence.
@Yasu-umi
Aiohttp session now supports proxy
Aiohttp session now supports proxy
To use: set AIOGOOGLE_HTTP_PROXY=$proxy_url
@zyssyz123 !!
forgot to bump version in __version__.py in the previous release.
forgot to bump version in version.py in the previous release.
Remove more deprecation warnings
Remove more deprecation warnings
@npt !
# chores Remove deprecation warnings # thanks to @npt !
Remove deprecation warnings
to @npt !
Suggest using disco_doc_v2 when calling .discover() returns 404
Suggest using disco_doc_v2 when calling .discover() returns 404
@dfguerrerom !
Add type hints throughout the lib: https://github.com/omarryhan/aiogoogle/pull/146
Add type hints throughout the lib: https://github.com/omarryhan/aiogoogle/pull/146
Added additional type annotations to the following functions:
ServiceAccountCreds.init Aiogoogle.init Aiogoogle.discover Aiogoogle. as_service_account Aiogoogle. aenter Aiogoogle. aexit Request.init
To: @TomerYogev !
Fix mypi build error in v5.10.0
Fix mypi build error in v5.10.0
To: @nagibyro !
Please upgrade to 5.11.0 if you face build issues with Mypi. For more info: https://github.com/omarryhan/aiogoogle/pull/145
Add pytyped
to: @Goldziher
Please upgrade to 5.11.0 if you face build issues with Mypi. For more info: https://github.com/omarryhan/aiogoogle/pull/145
# features add types for HTTP response # Thanks to: @wenleix
add types for HTTP response
to: @wenleix
Fix type error in user_creds universe_domain
Fix type error in user_creds universe_domain
to @ryanlewist
fix issue where client doesn't refresh user creds when they expire.
fix issue where client doesn't refresh user creds when they expire.
Fix error where user_creds aren't passed before refresh in next_page iterator
Fix error where user_creds aren't passed before refresh in next_page iterator
Handle unicode decode error when resolving aiohttp request bodies
@lucasweb3
Make sure token is fresh when paginating.
to @neel004
fix a bug with URL escape character.
@KonstantAnxiety
Now you're able to configure safe parameters for URL encoding of path parameters being passed because they differ from one API to the other.
Now you're able to configure safe parameters for URL encoding of path parameters being passed because they differ from one API to the other.
@jignesh-crest
Revert a previous change/bug-fix where path parameters with forward slashes "/" were being URL encoded, when they shouldn't. Now the encoding of forwa
Revert a previous change/bug-fix where path parameters with forward slashes "/" were being URL encoded, when they shouldn't. Now the encoding of forward slashes is optional again.
Add support to discovery doc version 2 APIs
to: @Phil305
Now checking if token is fresh before sending _next_ pagination request
Now checking if token is fresh before sending next pagination request
@neel004 !
Add ability to chunk upload an AsyncIterable object using the pipe_from interface
to: @erangalon !
Add contextvar package in dependencies for py 3.6 or less Thanks to @neel004
Add contextvar package in dependencies for py 3.6 or less Thanks to @neel004
Now escaping forward slashes in path params.
Now escaping forward slashes in path params.
Thanks to pyryjook for the PR @pyryjook
Nothing published for this version
Now managing active_session with a context var
If you were directly using Aiogoogle.active_session, you should reconsider how you use it. Please take a look at client.py for more info.
Same as previous release but forgot to bump version.
# Bug Added missing names in __all__ ## Thanks to @jupiterbjy
Added missing names in all
to @jupiterbjy
Now URL encoding scopes in create_authorization_url method.
Thanks to @jgayfer
Expose the raise_for_status flag in send methods + add an example. Thanks to @Gitznik
Expose the raise_for_status flag in send methods + add an example.
Thanks to @Gitznik
Turned aiogoogle's param validation logic off by default. This shouldn't affect you unless you were relying on ValidationErrors to catch input errors.
Turned aiogoogle's param validation logic off by default.
This shouldn't affect you unless you were relying on ValidationErrors to catch input errors.
Now that it's off by default, a 400 error will be thrown with the details of the bad request printed. The details are returned by Google in the JSON body of the response.
For more context on why this feature got turned off by default please read issue #69
If you want to keep using Aiogoogle's internal validation logic, pass validate=True to either the API method call e.g. youtube.videos.list(validate=False) or to aiogoogle.discover e.g. aiogoogle.discover('youtube', 'v3', validate=True).
# Bugs Fix issue #71 and #72
Fix issue #71 and #72
Add the option to upload bytes object
Add the option to upload bytes object
Andrea Ghensi @sanzoghenzo
Fixed a bug were multipart headers for content-type were incorrectly configured. Also, now adding JSON to all multipart requests even if it's empty.
Now quoting path parameters with urllib.quote instead of urllib.quote_plus
Now quoting path parameters with urllib.quote instead of urllib.quote_plus
Unless you are passing strings as url path parameters in POST requests (which is unlikely), you should upgrade to v2 without a thought. Otherwise, please read this issue for more details: https://github.com/omarryhan/aiogoogle/issues/63#issuecomment-882027006
Now defaulting to chunked file downloads as it's more efficient.
Now defaulting to chunked file downloads as it's more efficient.
Now supports repeated argument. If an URL argument is repeatable, you can pass an array (or a tuple or a set) and Aiogoogle will split them into repea
Now supports repeated argument. If an URL argument is repeatable, you can pass an array (or a tuple or a set) and Aiogoogle will split them into repeated URL args, instead of serializing the whole array as a JSON array.
Fixed an issue were because uri_params reference was only passed and not copied for building the URL (excluding the query), it popped query parameters
Use all valid ISS values during JWT token validation
Now validating discovery doc enum
Convert url-parameters to string before passing them to quote_plus
datetime.datetime.fromisoformat instead of datetime.fromisoformat
datetime.datetime.fromisoformat instead of datetime.fromisoformatAdded py36 alternative for datetime.fromisoformat
datetime.fromisoformatNow URL encoding path parameters and not only query parameters.
Aiogoogle's main class now refreshes if an expires_at property is not present
Added the ability to specify the content-type header
Added the ability to specify the content-type header
Auth managers will now refresh if expires_at isn't present in the user credentials.
Now checking if JSON is empty before appending it to a multipart request
Not including the tests dir in the distribution package.
This release was uploaded manually (instead of via the GH action) because I forgot to bump the version before creating the release.
Added Google Compute Engine, Google Cloud Run and Google Cloud Functions automatic service account credentials detection.
This release is identical to 1.0.0. It's bumped up by one minor version because I wanted to test the Github publish workflow action.
This release is identical to 1.0.0. It's bumped up by one minor version because I wanted to test the Github publish workflow action.
aiogoogle.auth.managers.OpenIDConnectManager.build_user_creds_jwt_grant because it was being used incorrectly. It should've been used for service accounts and not user accounts.verify attribute/kwarg from OAuth2Manager's __init__ method.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →