All Google Static Maps API applications require authentication.
- Standard API users:
If you're using the API under the standard plan, you
must use an API key set up in a project of your choice.
Including a key in your request allows you to monitor your application's
API usage in the Google Developers Console, enables per-key instead of
per-IP-address quota limits, and ensures that Google can contact
you about your application if necessary.
In addition to the API key, we recommend that you include a unique digital signature in the request URL. The unique signature allows our servers to verify that any site generating requests using your API key is authorized to do so.
See more about API keys for the standard API.
- Premium Plan users:
If you're using the API under the Google Maps APIs Premium Plan
you have two authentication options:
- Use an API key set up in the Google Developers Console under
the Google Maps APIs Premium Plan project (created for you when you purchased
the Premium Plan), along with a
digital signature.
or - Instead of an API key, include your client ID and a digital signature.
See the Google Maps APIs Premium Plan section below for information on choosing the best authentication method.
- Use an API key set up in the Google Developers Console under
the Google Maps APIs Premium Plan project (created for you when you purchased
the Premium Plan), along with a
digital signature.
Authentication for the standard API — API keys and digital signatures
- For the standard API, the recommended method of authentication is to include a browser key (API key) and a digital signature in all requests to the Google Static Maps API. The browser key is required. The digital signature is required if you enable pay-as-you-go billing.
- If you use the standard API without enabling pay-as-you-go billing, you need a browser key. The digital signature is recommended but optional.
Get an API key
To get started using the Google Static Maps API, click the button below, which takes you to the Google Developers Console, guides you through the process, and activates the Google Static Maps API automatically.
Get a KeyAlternatively, follow these steps to get an API key:
- Go to the Google Developers Console.
- Create or select a project.
- Click Continue to Enable the API.
- On the Credentials page, get a Browser key (and set the API Credentials).
Note: If you have an existing Browser key, you may use that key. - To prevent quota theft, secure your API key following these best practices.
- (Optional) Enable billing. See Usage Limits for more information.
You can also
look up an existing key in the Google Developers Console.
For more information on using the Google Developers Console, see Developers Console Help.
Types of API keys
Google Maps APIs are available for Android or iOS apps, Web browsers, and via HTTP web services. APIs in each platform require a specific type of key. The Google Static Maps API will only work with a Browser or Server key. APIs of the same platform can use the same key.
Digital signatures, for the standard API
Requests to the Google Static Maps API should include a signature
parameter, containing a digital signature which you must generate using a
shared URL signing secret. Your shared secret is available on
the Google Developers Console.
Note: If you have enabled pay-as-you-go billing, the digital signature is required. If you use the standard API without enabling pay-as-you-go billing, the digital signature is recommended but optional.
The signing process uses an encryption algorithm to combine the URL and your shared secret. The resulting unique signature allows our servers to verify that any site generating requests using your API key is authorized to do so.
Get your URL signing secret
Your cryptographic URL signing secret is available on the Google Developers Console. The secret, also known as a private key, is encoded in a modified Base64 for URLs. This secret is shared between you and Google, and is unique to your API key. Please keep your URL signing secret secure. Do not pass it any requests, store it on any websites, or post it to any public forum. Anyone obtaining this URL signing secret could spoof requests using your identity.
You can click this link to go directly to the Developers Console page containing your URL signing secret.
Alternatively, follow these steps to see your URL signing secret:
- Go to the Google Developers Console.
- Select a project, or create a new one.
- On the Api Manager Overview page, select the Enabled APIs tab.
- Check that the Google Static Maps API is enabled, and enable it if necessary.
- Click the name of the Google Static Maps API. The API details are diplayed, with the Overview tab open.
- Click the URL signing secret tab.
To get a new URL signing secret, click Regenerate secret. The previous secret expires 24 hours after you've generated a new one. After the 24 hours have passed, requests containing the old secret no longer work.
Generate a digital signature, for use with API keys
To create a digital signature for your request, follow the steps outlined below.
Authentication for Google Maps APIs Premium Plan customers
The information in this section applies only to the new Google Maps APIs Premium Plan, which became available on January 6, 2016.
Have a previous Maps API for Work or
Maps API for Business license?
See our Maps API for Work Licenses
guide. To determine whether you have a previous license: In the
Google for Work Support Portal,
click Maps: Usage Report on the left. If the ID at the top of the report
is in the following format, you have the new Premium Plan:
gme-[company] & proj-[number] ([type])
Otherwise, you have a previous license.
When using the Google Static Maps API with a Google Maps APIs Premium Plan license, you must authenticate your application with either an API key or your client ID. In addition, a digital signature is also required. Note: If you have a previous Maps API for Business license, you must use a client ID, not an API key.
When deciding on which authentication method to use, consider the following:
- API key (available to Google Maps APIs Premium Plan
customers but not to holders of a previous Maps API
for Business license) — By using an API key to authenticate requests,
you can:
- Manage all of your APIs in the Google Developers Console
- Access real-time usage data and 30 days of historical usage data for your application in the Google Developers Console
- View usage reports with more than 30 days of data in the Google for Work Support Portal
- Client ID — By using your client ID (instead of an API key)
to authenticate requests, you can:
- Add the
channelparameter to requests so you can view more detailed usage reports - View usage reports with more than 30 days of data in the Google for Work Support Portal
- Use Maps Analytics tools for the Maps JavaScript API
- Add the
Get more information on reports available to Premium Plan customers.
Using an API key and signature
To authenticate the Static Maps API using an API key, two authentication parameters are required: API key and unique digital signature.
To get an API key, click the button below, which takes you to the Google Developers Console and guides you through the process of getting a Browser key.
Important: In the project drop-down menu, be sure to select the project created for you when you purchased the Premium Plan. The project name starts with Google Maps APIs for Business or Google Maps for Work.*
Get a KeyAlternatively, follow these steps to get an API key:
- Go to the Google Developers Console.
- From the Project drop-down menu, select the Google Maps Premium project.*
- Click Continue.
- On the Credentials page, get a Browser key (and set the API Credentials).
Note: If you have an existing Browser key, you may use that key. - To prevent quota theft, secure your API key following these best practices.
* Note: In the project drop-down menu, you must select the project created for you when you purchased the Premium Plan. The project name starts with Google Maps APIs for Business or Google Maps for Work. Important: If you have a previous Maps API for Business license, you must use a client ID, not an API key.
You can also
look up an existing key in the Google Developers Console.
For more information on using the Google Developers Console, see Developers Console Help.
Digital signatures, when using an API key with the Premium Plan
Requests to the Google Static Maps API that are using a key parameter must
also include a signature parameter, containing a digital signature which
you must generate using a shared URL signing secret. Your shared secret is available on
the Google Developers Console.
The signing process uses an encryption algorithm to combine the URL and your shared secret. The resulting unique signature allows our servers to verify that any site generating requests using your API key is authorized to do so.
Creating a digital signature is a two-step process:
- Get your URL signing secret from the Google Developers Console
- Generate a digital signature using your URL signing secret
Get your URL signing secret (for Premium Plan customers using an API key)
Your cryptographic URL signing secret is available on the Google Developers Console. The secret, also known as a private key, is encoded in a modified Base64 for URLs. This secret is shared between you and Google, and is unique to your API key. Please keep your URL signing secret secure. Do not pass it any requests, store it on any websites, or post it to any public forum. Anyone obtaining this URL signing secret could spoof requests using your identity.
You can click this link to go directly to the Developers Console page containing your URL signing secret. Important: In the project drop-down menu, be sure to select the project created for you when you purchased the Premium Plan.*
Alternatively, follow these steps to see your URL signing secret:
- Go to the Google Developers Console.
- From the Project drop-down menu, select the Google Maps Premium project.*
- In the list of Enabled APIs click the name of the Google Static Maps API. The API details are diplayed, with the Overview tab open.
- Click the URL signing secret tab.
To get a new URL signing secret, click Regenerate secret. The previous secret expires 24 hours after you've generated a new one. After the 24 hours have passed, requests containing the old secret no longer work.
* Note: In the project drop-down menu, you must select the project created for you when you purchased the Premium Plan. The project name starts with Google Maps APIs for Business or Google Maps for Work. Important: If you have a previous Maps API for Business license, you must use a client ID, not an API key.
Generate a digital signature, for use with API keys
To create a digital signature for your request, follow the steps outlined below.
Using a client ID and signature
To authenticate the Static Maps API using a client ID (instead of the API key), two authentication parameters are required: client ID and unique digital signature. In addition, URL registration is required for authorization.
If you were previously using an API key for authentication and are switching to
using a client ID, you must remove the key parameter before loading
the API. The API will fail to load if both a client ID and an API key are
included.
Your client ID and signature
Upon purchasing your Google Maps APIs Premium Plan license, you will receive a welcome email from Google that contains your client ID and your private cryptographic key.
-
Your client ID is used to access the special features of Google Maps APIs Premium Plan. All client IDs begin with a gme- prefix. Pass your client ID as the value of the
clientparameter.Your client ID will only work from URLs which you authorize so you don't need to worry about keeping it secret.
-
A unique digital signature is generated using your private cryptographic key. Pass this signature as the value of the
signatureparameter. You can find more information about generating a signature below, in the section on digital signatures.
<img src="https://maps.googleapis.com/maps/api/staticmap
?center=-15.800513,-47.91378
&zoom=11
&size=300x300
&client=YOUR_CLIENT_ID
&signature=SIGNATURE">
If you have lost your client ID or private cryptographic key, you can recover it by logging in to the Google for Work Support Portal and clicking Maps: Manage Client ID from the links on the left of the page.
Optional parameter for reports
When using a client ID for API authentication, the following optional parameter is available for use:
channelis used to provide additional reporting detail, by grouping different channels separately in your reports. Refer to the Premium Plan Reporting Overview for more information.
Digital signatures, for Premium Plan customers using a client ID
Requests to the Static Maps API using the client parameter
also require a digital signature, generated using the
private cryptographic key provided to you in your welcome email.
The signing process combines a URL and the key together using an encryption algorithm. The resulting unique signature allows our servers to verify that any site generating requests using your client ID are authorized to do so. The signature is also unique per URL, ensuring that requests that use your client ID cannot be modified without requiring a new signature to be generated.
Your private cryptographic key
Your private cryptographic URL-signing key will be issued with your client ID and is a "secret shared key" between you and Google. This signing key is yours alone and is unique to your client ID. For that reason, please keep your signing key secure. This key should not be passed within any requests, stored on any websites, or posted to any public forum. Anyone obtaining this signing key could spoof requests using your identity.
Note: This private cryptographic signing key is not the same as the API keys issued by the Google Developers Console.
If you've lost your private cryptographic key, log in to the Google for Work Support Portal and click Maps: Manage Client ID to retrieve it.
Generate a digital signature, for use with client IDs
To create a digital signature for your request, follow the steps outlined below.
Generate a digital signature
Generate a digital signature, for use with API keys
Follow these steps to create a digital signature for your request (to be used in combination with an API key). These instructions apply to the use of the standard API as well as Premium Plan customers authenticating with an API key:
Construct the request URL without the signature, making sure to include your API key in the
keyparameter. Note that you must URL-encode any non-standard characters. For example:https://maps.googleapis.com/maps/api/staticmap?center=40.714%2c%20-73.998&zoom=12&size=400x400&key=YOUR_API_KEYNote: All Google services require UTF-8 character encoding (which implicitly includes ASCII). If your applications operate using other character sets, make sure they construct URLs using UTF-8 and properly URL-encode them.
Strip off the domain portion of the request, leaving only the path and the query:
/maps/api/staticmap?center=40.714%2c%20-73.998&zoom=12&size=400x400&key=YOUR_API_KEYRetrieve your URL signing secret, which is encoded in a modified Base64 for URLs, and sign the above URL above using the HMAC-SHA1 algorithm.
- URL signing secret for standard API users
- URL signing secret for Premium Plan customers
Encode the resulting binary signature using the modified Base64 for URLs to convert this signature into something that can be passed within a URL.
Add the resulting signature to the request URL within a
signatureparameter. For example:https://maps.googleapis.com/maps/api/staticmap?center=40.714%2c%20-73.998&zoom=12&size=400x400&key=YOUR_API_KEY&signature=BASE64_SIGNATURE
Note: Modified Base64 for URLs replaces the + and /
characters of standard Base64 with - and _
respectively, so that these Base64 signatures no longer need to be
URL-encoded.
For samples showing ways to implement URL signing using server-side code, see Sample code for URL signing.
To sign a URL now, enter your URL and your URL signing secret below. The URL must have the format described in step 1 above, and be URL-encoded.
Generate a digital signature, for use with client IDs
Attempting to access the Static Maps API with an invalid signature will
result in a HTTP 403 (Forbidden) error. As you convert your applications
to use URL signing, make sure to test your signatures to ensure they
initiate a valid request. You should first test whether the original URL
is valid as well as test whether you generate the correct
signatures.
Follow these steps to create a digital signature for your request:
-
Construct the request URL without the signature, making sure to include your
clientparameter. Note that any non-standard characters will need to be URL-encoded:https://maps.googleapis.com/maps/api/staticmap?center=40.714%2c%20-73.998&zoom=12&size=400x400&client=YOUR_CLIENT_IDNote: All Google services require UTF-8 character encoding (which implicitly includes ASCII). If your applications operate using other character sets, make sure they construct URLs using UTF-8 and properly URL-encode them.
-
Strip off the domain portion of the request, leaving only the path and the query:
/maps/api/staticmap?center=40.714%2c%20-73.998&zoom=12&size=400x400&client=YOUR_CLIENT_ID -
Retrieve your private key, which is encoded in a modified Base64 for URLs, and sign the URL above using the HMAC-SHA1 algorithm. You may need to decode this key into its original binary format. Note that in most cryptographic libraries, the resulting signature will be in binary format.
Note: Modified Base64 for URLs replaces the
+and/characters of standard Base64 with-and_respectively, so that these Base64 signatures no longer need to be URL-encoded. -
Encode the resulting binary signature using the modified Base64 for URLs to convert this signature into something that can be passed within a URL.
-
Attach this signature to the URL within a
signatureparameter:https://maps.googleapis.com/maps/api/staticmap?center=40.714%2c%20-73.998&zoom=12&size=400x400&client=YOUR_CLIENT_ID&signature=BASE64_SIGNATURE
For samples showing ways to implement URL signing using server-side code, see Sample code for URL signing.
To sign a URL now, enter your URL and your URL signing secret below. The URL must have the format described in step 1 above, and be URL-encoded.
Sample code for URL signing
The following sections show ways to implement URL signing using server-side code. URLs should always be signed server-side to avoid exposing your cryptographic key to users.
Python
The example below uses standard Python libraries to sign a URL. (Download the code.)
Java
The example below uses the java.util.Base64 class available
since JDK 1.8 - older versions may need to use Apache Commons or similar.
(Download
the code.)
C#
The example below uses the default
System.Security.Cryptography library to sign a URL request.
Note that we need to convert the default Base64 encoding to implement a
URL-safe version.
(Download
the code.)
Troubleshooting authentication issues
If your request is malformed or supplies an invalid signature, the Google Static Maps API
returns an HTTP 403 (Forbidden) error.
To troubleshoot individual URLs, you can use the URL Signing Debugger. It allows you to quickly validate a URL and signature generated by your application.
Alternatively, Google Maps APIs Premium Plan customers can troubleshoot individual URLs by logging in to the Google for Work Support Portal and selecting Resources > Google Maps APIs Premium Plan online tools > URL Signing Debugger for Web Service and Image APIs.
