Client Libraries for Google Maps Web Services
Stay organized with collections
Save and categorize content based on your preferences.
The Java Client, Python Client, Go Client and
Node.js Client for Google Maps Services are community supported client libraries, open sourced under the
Apache 2.0 License. They are
available for download and contributions on GitHub, where you will also find installation
instructions and sample code:
Why use the client libraries?
The Java Client, Python Client, Go Client
and Node.js Client for Google Maps Services enable you to work with Google Maps web services on your server.
They wrap the functionality of the following APIs:
In addition to the functionality provided by these APIs, the client libraries
make some common tasks a little easier.
- Automatic Rate Limiting By default, requests are sent at the expected
rate limit for each web service. You can provide custom QPM limits with
new GeoApiContext().setQueryRateLimit(qpm)
.
- Retry on Failure The client libraries will automatically retry any
request if the API sends a
5xx
error. Retries use exponential back-off,
which helps in the event of intermittent failures.
- Easy Authentication The client libraries make it easy to authenticate
with your freely available API Key. Google Maps Platform Premium Plan
customers can use their client ID and secret.
- POJOs The Java libraries return native objects for each of the API
responses. The Python libraries return the structure as it is received from the API.
- Asynchronous or synchronous All requests support synchronous or
asynchronous calling style.
Terms and conditions
The client libraries for the Google Maps web services are licensed under the
Apache 2.0 License.
The client libraries are wrappers for the Google Maps web services. The Google Maps
web services are governed by the Google Maps Platform Terms of Service.
Important: These libraries are not covered
by the standard Google deprecation policy or support agreement.
API keys and client IDs
Each Google Maps web service requires an API key or client ID. For a guide on
when to use an API key, when to use a client ID, and how to get hold of your
API key or client ID, see the authentication guide for the API you're using:
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-28 UTC.
[null,null,["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eCommunity-supported client libraries for Google Maps Services are available in Java, Python, Go, and Node.js, enabling server-side interaction with various Google Maps APIs like Directions, Geocoding, and Places.\u003c/p\u003e\n"],["\u003cp\u003eThese open-source libraries, under the Apache 2.0 License, offer benefits such as automatic rate limiting, request retries, simplified authentication, and support for both synchronous and asynchronous calls.\u003c/p\u003e\n"],["\u003cp\u003eWhile providing convenient wrappers for Google Maps web services, these client libraries are not covered by standard Google support or deprecation policies and are subject to the Google Maps Platform Terms of Service.\u003c/p\u003e\n"],["\u003cp\u003eAccessing Google Maps web services requires an API key or client ID; refer to the authentication guide for your specific API for details on obtaining and using these credentials.\u003c/p\u003e\n"]]],["Community-supported Java, Python, Go, and Node.js client libraries for Google Maps Services are available on GitHub under the Apache 2.0 License. These clients wrap APIs like Address Validation, Directions, and Places, offering features such as automatic rate limiting, retry on failure, and easy authentication via API keys or client IDs. They facilitate server-side interaction with Google Maps web services. The libraries support both synchronous and asynchronous requests.\n"],null,["The Java Client, Python Client, Go Client and\nNode.js Client for Google Maps Services are community supported client libraries, open sourced under the\n[Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0). They are\navailable for download and contributions on GitHub, where you will also find installation\ninstructions and sample code: \n\n- [Java Client for Google Maps Services](https://github.com/googlemaps/google-maps-services-java)\n- [Python Client for Google Maps Services](https://github.com/googlemaps/google-maps-services-python)\n- [Go Client for Google Maps Services](https://github.com/googlemaps/google-maps-services-go)\n- [Node.js Client for Google Maps Services](https://github.com/googlemaps/google-maps-services-js)\n\nWhy use the client libraries?\n\nThe Java Client, Python Client, Go Client\nand Node.js Client for Google Maps Services enable you to work with Google Maps web services on your server.\nThey wrap the functionality of the following APIs:\n\n- [Address Validation API](/maps/documentation/address-validation/overview)\n- [Directions API (Legacy)](/maps/documentation/directions/start)\n- [Distance Matrix API (Legacy)](/maps/documentation/distancematrix/start)\n- [Elevation API](/maps/documentation/elevation/start)\n- [Geocoding API](/maps/documentation/geocoding/start)\n- [Places API](/maps/documentation/places/web-service/overview)\n- [Roads API](/maps/documentation/roads/overview)\n- [Time Zone API](/maps/documentation/timezone/start)\n\nIn addition to the functionality provided by these APIs, the client libraries\nmake some common tasks a little easier.\n\n- **Automatic Rate Limiting** By default, requests are sent at the expected rate limit for each web service. You can provide custom QPM limits with `new GeoApiContext().setQueryRateLimit(qpm)`.\n- **Retry on Failure** The client libraries will automatically retry any request if the API sends a `5xx` error. Retries use exponential back-off, which helps in the event of intermittent failures.\n- **Easy Authentication** The client libraries make it easy to authenticate with your freely available API Key. [Google Maps Platform Premium Plan](/maps/premium) customers can use their [client ID and secret](/maps/premium/overview#client-id).\n- **POJOs** The Java libraries return native objects for each of the API responses. The Python libraries return the structure as it is received from the API.\n- **Asynchronous or synchronous** All requests support synchronous or asynchronous calling style.\n\nTerms and conditions\n\nThe client libraries for the Google Maps web services are licensed under the\n[Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0).\n\nThe client libraries are wrappers for the Google Maps web services. The Google Maps\nweb services are governed by the [Google Maps Platform Terms of Service](https://cloud.google.com/maps-platform/terms).\n\n**Important** : These libraries are **not covered**\nby the standard Google deprecation policy or support agreement.\n\nAPI keys and client IDs\n\nEach Google Maps web service requires an API key or client ID. For a guide on\nwhen to use an API key, when to use a client ID, and how to get hold of your\nAPI key or client ID, see the authentication guide for the API you're using:\n\n- [Address Validation API](/maps/documentation/address-validation/get-api-key)\n- [Directions API (Legacy)](/maps/documentation/directions/get-api-key)\n- [Distance Matrix API (Legacy)](/maps/documentation/distancematrix/get-api-key)\n- [Elevation API](/maps/documentation/elevation/get-api-key)\n- [Geocoding API](/maps/documentation/geocoding/get-api-key)\n- [Places API](/maps/documentation/places/web-service/get-api-key)\n- [Roads API](/maps/documentation/roads/get-api-key)\n- [Time Zone API](/maps/documentation/timezone/get-api-key)"]]