> [!CAUTION]
> **Need help from a human?**   
> [Go to the Google Maps Platform Support page.](https://developers.google.com/maps/support.md.txt)  
> This error messages page is for reference only. It's here to help you troubleshoot Maps JavaScript API errors on your own. If you try to ask for help from a human by sending feedback through this page, you won't reach anyone who can help. However, if you find an issue with content on this page, please let us know with the feedback link. Thanks!


This page describes the error messages that can be returned by the
Maps JavaScript API. The Maps JavaScript API writes
error and warning messages to the JavaScript console. Certain error
conditions may also occur, which result in the display of a darkened
watermarked map.

> [!NOTE]
> If you are NOT the website owner, there are no steps you can take to fix any of these errors. However, you may want to notify the site owner if possible.

## API Key and Billing Errors

### Troubleshooting

Under certain circumstances, a darkened map, or 'negative' Street View image, watermarked with the text "for development purposes only",
may be displayed. This behavior typically indicates issues with either an API key or billing. In order to use Google Maps Platform products,
billing must be enabled on your account, and all requests must include a valid API key. For help on finding error messages, see the section on
[checking errors in your browser](https://developers.google.com/maps/documentation/javascript/error-messages.md.txt#checking-errors).

The following flow will help you troubleshoot the issue.

#### Are you using an API key?

#### I'm not sure. How can I check if I am using an API key?

An API key is passed as the `key` parameter in the URL that is used to load the
Maps JavaScript API. Here are a few options to check if you are using an API key:

- Use the [Google Maps Platform API Checker](https://chrome.google.com/webstore/detail/google-maps-platform-api/mlikepnkghhlnkgeejmlkfeheihlehne) Chrome extension. This allows you to determine if your website is properly implementing Google's licensed Maps APIs.
- If you are using a library or plugin to load the Maps JavaScript API, check the settings for that library and look for an API key option.
- Check [errors in your browser](https://developers.google.com/maps/documentation/javascript/error-messages.md.txt#checking-errors). If you see the following messages, you are not using your API key correctly:
  - Google Maps JavaScript API warning: [NoApiKeys](https://developers.google.com/maps/documentation/javascript/error-messages.md.txt#no-api-keys)
  - Google Maps JavaScript API error: [MissingKeyMapError](https://developers.google.com/maps/documentation/javascript/error-messages.md.txt#missing-key-map-error)

#### For web developers:

- If you have access to the source code of your application, look for the `<script>` tag which is used to load the Maps JavaScript API. When loading the Maps JavaScript API, substitute `YOUR_API_KEY` in the code below with your API key.

  ```html
    <script async defer
      src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
    </script>
  ```
- Check the network traffic generated by your website in the browser. In Chrome, this can be viewed using the [DevTools](https://developers.google.com/web/tools/chrome-devtools) **Network** tab. Here you will see the network requests made by your website. Requests made using the Maps JavaScript API will be under the path `maps/api/js`. Here you can confirm if the requests are using the `key` parameter. It may be helpful to [filter your network traffic](https://developer.chrome.com/docs/devtools/network/reference#filter) by `maps/api/js` when viewing the **Network** tab.

#### No, I am not using an API key.

To get an API key, click the button below. If you do not see a guided setup, follow the
full instructions at [Get Started with Google Maps
Platform](https://developers.google.com/maps/get-started#quickstart).


[Get Started](https://developers.google.com/maps/get-started.md.txt)

#### Yes, I am using an API key.

Great! Let's move on and check if a billing account is attached to your project.

#### Is a billing account attached to your project?

#### I'm not sure. How can I check if a billing account is attached to my project?

Go to the [Billing page](https://console.cloud.google.com/project/_/billing/enable?utm_source=Docs_BillingNudge) in the Google Cloud console and select the project under which your API key was created.
To confirm the key is associated with the project:

1. Go to the **Credentials** section, which can be accessed from the left side bar under **Google Maps Platform \> Credentials**.
2. Check that the API key you currently use on your website is listed. If that's not the case, switch to a different project, and check the credentials there.
3. If you cannot locate the project for your API key, you may have lost access to this project. Ask others in your organization for help. If the original project cannot be located, you should:
   1. Create a new project. This can be done by selecting **New Project** from the projects list, or by selecting **Create Project** via the [Resource Manager page](https://console.cloud.google.com/cloud-resource-manager).
   2. Create a new API key. This can be done on the **Credentials** page. Once there click **Create credentials** and then select **API key**.


Once you have located your project in the Cloud console,
check if a billing account is attached by navigating to the [Billing](https://console.cloud.google.com/project/_/billing) section in the left side menu.

#### No, a billing account is not attached to my project.

Go to the [Enable Billing](https://console.cloud.google.com/project/_/billing/enable?utm_source=Docs_BillingNudge) page in the Cloud console
and add a billing account to your project. For additional information, see
[Get Started with Google Maps Platform](https://developers.google.com/maps/get-started.md.txt).

#### Yes, a billing account is attached to my project.

Great! Let's make sure the provided billing method is valid.

#### Is the provided billing method no longer valid (for example, an expired credit card)?

You [can add, remove, or update a payment method](https://cloud.google.com/billing/docs/how-to/payment-methods) in the Cloud console.

#### Is there an exceeded self-imposed daily limit on the API?

If you have set a daily limit on any of your APIs, which is common to prevent unexpected increases,
you can resolve this by [increasing your daily limit](https://developers.google.com/maps/faq.md.txt#usage_cap).

You can check your daily limits by going to the
[APIs \& Services Dashboard](https://console.cloud.google.com/project/_/apiui/apis/enabled?utm_source=Docs_EnabledAPIsView) in the
Cloud console. Once there:

1. Select a project if prompted.
2. Select an API from the list, then click the **Quotas** tab.

#### Does your API key have an IP addresses restriction?

API keys with an **IP addresses** restriction can only be used with web services that are
intended for use from the server side (such as the
[Geocoding API](https://developers.google.com/maps/documentation/geocoding/start)
and other [Web Service APIs](https://developers.google.com/maps/apis-by-platform.md.txt)).
Most of these web services have equivalent services within the Maps JavaScript API (for example, see the
[Geocoding Service](https://developers.google.com/maps/documentation/javascript/geocoding.md.txt)).
To use the Maps JavaScript API client side services, you will need to create a separate API key which
can be secured with an **HTTP referrers** restriction (see
[Get, add, and restrict an API key](https://developers.google.com/maps/get-started.md.txt#api-key)).

## Maps JavaScript API Error Codes for Developers and Site Owners


The following tables list the possible error codes returned by the
Maps JavaScript API, with a description of the cause and how you can
fix the problem.
For help on finding the error messages, see the section on
[checking errors in your browser](https://developers.google.com/maps/documentation/javascript/error-messages.md.txt#checking-errors).

### Map Loading Errors


If you encounter an error while loading the Maps JavaScript API,
see the table below to find explanations for the error codes.

| Error Code | Message | Description |
|---|---|---|
| `NotLoadingAPIFromGoogleMapsError` | The Maps JavaScript API must be downloaded directly from Google's servers. | The script element that loads the Maps JavaScript API is not being included correctly on your page. In order for the API to work correctly, it must be loaded directly from https://maps.googleapis.com. See [Loading the Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/load-maps-js-api.md.txt). |
| `TOSViolationMapError` | This website appears to violate the Google Maps API Terms of Service. The Google Maps API has been disabled for this website. | Your application was blocked for non-compliance with the Google Maps Platform Terms of Service, following several email notifications. To appeal the block and have your implementation reviewed, complete the [Google Maps Platform Terms of Service appeal form](https://support.google.com/cloud/contact/maps_tos_appeal). You will receive a response by email within a few business days. Please use your API key or client ID credentials to resolve this error. See the guide to [API keys and client IDs](https://developers.google.com/maps/documentation/javascript/get-api-key.md.txt#premium-auth). |
| `UnauthorizedURLForClientIdMapError` | This URL is not authorized to use the Google Maps Client ID provided. | The client ID included in the script load is invalid, expired, or the current address loading the Maps JavaScript API has not been added to the list of authorized URLs. See [Registering Authorized URLs](https://developers.google.com/maps/documentation/javascript/get-api-key.md.txt#registering-authorized-urls). |

### Maps JavaScript API Error Codes


If you find an error on [Chrome JavaScript
Console](https://developer.chrome.com/docs/devtools/console), [Firefox
Web Console](https://developer.mozilla.org/en-US/docs/Tools/Web_Console) or any other equivalent tools on your browsers,
see the table below to find explanations for the error codes.


The Maps JavaScript API returns both errors and warnings.
An error indicates a severe issue which occurred while loading the
Maps JavaScript API. Your page cannot load the API correctly,
and the API won't work on that page.
A warning is a supplemental message about the loading of the
Maps JavaScript API. The warning describes the possible reasons
for an error, or suggests potential issues in your code that loads the
Maps JavaScript API.
If you receive only warnings without any errors, the API will work
correctly on that page. However, we recommend that you fix these potential
issues as well.

| Developer Error Code | Type | Description |
|---|---|---|
| `ApiNotActivatedMapError` | Error | The Maps JavaScript API is not activated on your API project. You may need to enable the Maps JavaScript API under APIs in the Google Cloud console. To activate the Maps JavaScript API for your project, click the button below. [Learn How](https://developers.google.com/maps/get-started.md.txt#enable-api-sdk) |
| `ApiTargetBlockedMapError` | Error | This API key is not authorized to use this service or API. Please check the **API restrictions** settings of your API key in the Google Cloud console to ensure that all of the APIs and services you need to use are correctly specified in the list of enabled APIs. See [API keys in the Cloud console](https://console.cloud.google.com/project/_/google/maps-apis/credentials?utm_source=Docs_Credentials&utm_content=Docs_ApiTargetBlockedMapError). For more information, see [API security best practices](https://developers.google.com/maps/api-security-best-practices.md.txt). |
| `DeletedApiProjectMapError` | Error | Your API project may have been deleted from the Cloud console. Please check the project for which you generated the API key that's included in JavaScript API loader. You can create a new API project and get a new key in the Cloud console. To create a new project and get an API key for the project, click the button below. [Learn How](https://developers.google.com/maps/get-started.md.txt#create-project) |
| `ClientBillingNotEnabledMapError` | Error | You have not enabled billing on your project. You must [enable billing](https://console.cloud.google.com/project/_/billing/enable?utm_source=Docs_BillingNudge&utm_content=Docs_clientBillingNotEnabledMapError) on the Google Cloud project associated with this client ID. |
| `BillingNotEnabledMapError` | Error | You have not enabled billing on your project which is causing this error. You must [enable billing](https://console.cloud.google.com/project/_/billing/enable?utm_source=Docs_BillingNudge&utm_content=Docs_billingNotEnabledMapError) on the Google Cloud project. [Learn more](https://developers.google.com/maps/get-started.md.txt#create-project) |
| `ExpiredKeyMapError` | Error | The API key included in the script element that loads the API has expired or is not recognized by the system. You may receive this error after creating a new API key if you try to use the key before it is recognized by the system. Wait a few minutes and try again, or you may need to generate a new API key in the Cloud console. To get an API key, click the button below. [Get Started](https://developers.google.com/maps/get-started.md.txt) |
| `InvalidAppCheckTokenMapError` | Error | The provided App Check token is invalid or expired. This error can only occur if App Check verification is in use. See the guide to [App Check verification](https://firebase.google.com/docs/app-check). |
| `InvalidClientIdMapError` | Error | In order to increase authentication security and reliability, Maps Platform client IDs are deprecated since May 26, 2025, and can no longer be used after May 31, 2026. Instead of using a client ID, you must use API Key credentials to authenticate your Google Maps API service traffic. For more information, visit the [Client ID Migration guide](https://developers.google.com/maps/premium/migrate-client-id.md.txt). Follow the steps in the guide to [restore the client ID temporarily](https://developers.google.com/maps/premium/migrate-client-id.md.txt#temporary-reactivation). |
| `InvalidKeyMapError` | Error | The API key included in the script element that loads the API is not found. Please make sure you are using a correct API key. You can generate a new API key in the Cloud console. To get an API key, click the button below. [Get Started](https://developers.google.com/maps/get-started.md.txt) |
| `MalformedCredentialsMapError` | Error | Your application uses an unsupported URI scheme. Verify that the application uses a valid URI format as defined in [RFC 3986](https://tools.ietf.org/html/rfc3986). |
| `MissingKeyMapError` | Error | The script element that loads the API is missing the required authentication parameter. If you are using the Maps JavaScript API, then you must use a `key` parameter with a valid API key. For more information, see [Get Started with Google Maps Platform](https://developers.google.com/maps/get-started.md.txt). If you are using a client ID, then you must use either a `client` parameter with your client ID, or a `key` parameter with a valid API key. For more information, see the guide to [API keys and client IDs](https://developers.google.com/maps/documentation/javascript/get-api-key.md.txt#premium-auth). If you are NOT the website owner, then there are no steps that you can take to fix this error. However, you might want to notify the site owner if possible. |
| `ProjectDeniedMapError` | Error | Your request has not been completed. You may be able to find more details about the error in the Cloud console. See [Cloud console](https://console.cloud.google.com?utm_source=Docs_ConsoleHome&utm_content=Docs_projectDeniedMapError). |
| `RefererDeniedMapError` | Error | Your application was blocked for non-compliance with the Google Maps Platform Terms of Service, following several email notifications. To appeal the block and have your implementation reviewed, complete the [Google Maps Platform Terms of Service appeal form](https://support.google.com/cloud/contact/maps_tos_appeal). You will receive a response by email within a few business days. |
| `RefererNotAllowedMapError` | Error | The current URL loading the Maps JavaScript API has not been added to the list of allowed referrers. Please check the referrer settings of your API key in the Cloud console. See the Maps JavaScript API and [Get an API Key](https://developers.google.com/maps/documentation/javascript/get-api-key.md.txt#restrict_key). |
| `OverQuotaMapError` | Error | The number of requests has exceeded the usage limits for the Maps JavaScript API. Your app's requests will work again at the next daily quota reset. If you are NOT the website owner, there are no steps you can take to fix this error. However, you may want to notify the site owner if possible. For more details, see the guide to [usage limits](https://developers.google.com/maps/documentation/javascript/usage). The page also explains how you can get higher usage limits. |
| `ApiProjectMapError` | Error | Either the provided API key or the API project with which it is associated couldn't be resolved. This error may be temporary. If this error message persists, you may need to get a new API key or create a new API project. For more information, see [Get Started with Google Maps Platform](https://developers.google.com/maps/get-started.md.txt). |
| `ClientIdLooksLikeCryptoKey` | Warning | You may have supplied a cryptographic key in the `client` parameter. Please specify your client ID as the `client` parameter. You don't need to use your cryptographic key for the Maps JavaScript API. See the guide to [client IDs](https://developers.google.com/maps/documentation/javascript/get-api-key.md.txt#client-id). |
| `ClientIdLooksLikeKey` | Warning | You may have supplied an API key in the `client` parameter. Please specify your client ID as the `client` parameter, or use a `key` parameter with a valid API key instead of a `client` parameter. See the guide to [API keys and client IDs](https://developers.google.com/maps/documentation/javascript/get-api-key.md.txt#premium-auth). |
| `InvalidChannel` | Warning | You may have supplied an invalid `channel` parameter. The channel must be an ASCII alphanumeric string, which may include period (.), underscore (_) and hyphen (-). Please make sure that you are specifying a valid `channel` parameter. See [Reporting \| Google Maps Platform](https://developers.google.com/maps/premium/reports.md.txt). |
| `InvalidClientId` | Warning | The `client` parameter doesn't seem to contain a correct client ID. A client ID should start with "gme-". See the guide to [API keys and client IDs](https://developers.google.com/maps/documentation/javascript/get-api-key.md.txt#premium-auth). |
| `InvalidKey` | Warning | The API key included in the script element that loads the API does not look correct. Please make sure you are using a correct API key. You can generate a new API key in the Cloud console. To get an API key, click the button below. [Get Started](https://developers.google.com/maps/get-started.md.txt) |
| `InvalidVersion` | Warning | You may have supplied an incorrect version number in your script element. Please make sure you are using a correct version number. See [Versioning \| Google Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/versions.md.txt). |
| `KeyLooksLikeClientId` | Warning | You may have supplied a client ID as a `key` parameter. Please specify your client ID as a `client` parameter instead of the `key` parameter, or use a `key` parameter with a valid API key. See the guide to [API keys and client IDs](https://developers.google.com/maps/documentation/javascript/get-api-key.md.txt#premium-auth). |
| `KeyLooksLikeCryptoKey` | Warning | You may have supplied a cryptographic key or signing secret as a `key` parameter. Please specify your client ID as a `client` parameter, and remove the `key` parameter from your script element. The cryptographic key is not required for the Maps JavaScript API. Alternatively, you can get an API key in the Cloud console and use a `key` parameter. See the guide to [Specifying a client ID when loading the API](https://developers.google.com/maps/documentation/javascript/get-api-key.md.txt#specifying-a-client-id-when-loading-the-api). |
| `KeyLooksLikeProjectNumber` | Warning | You may have supplied a project number as a `key` parameter. Please make sure you are using a correct API key. You can generate a new API key in the Cloud console. [Learn how](https://developers.google.com/maps/get-started.md.txt#api-key) to get an API key. |
| `NoApiKeys` | Warning | The script element that loads the API has no API key. Please make sure you include a valid API key as a `key` parameter. You can generate a new API key in the Cloud console. To get an API key, click the button below to get started. [Get Started](https://developers.google.com/maps/get-started.md.txt) If you are loading Maps JavaScript API from the deprecated v2 path, you will get the `NoApiKeys` warning, even if you specified the `key` parameter. Please check the [v2 to v3 upgrade guide](https://developers.google.com/maps/documentation/javascript/v2tov3.md.txt) and migrate your application to Maps JavaScript API v3. |
| `RetiredVersion` | Warning | You may have supplied a retired version in your script element. Please update your application to use one of the available versions. See [Versioning \| Google Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/versions.md.txt). |
| `SensorNotRequired` | Warning | The `sensor` parameter is no longer required for the Maps JavaScript API. It won't prevent the Maps JavaScript API from working correctly, but we recommend that you remove the `sensor` parameter from the script element. |
| `SignatureNotRequired` | Warning | The `signature` parameter is not required for the Maps JavaScript API. It won't prevent the Maps JavaScript API from working correctly, but it may introduce security risks. Please remove it from your script element. |
| `SignedInNotSupported` | Warning | The `signed_in` parameter has been deprecated and is not supported on the version of the Maps JavaScript API you are using. This won't prevent the Maps JavaScript API from working, but the behavior of your application may change, if you rely on signed-in features. |
| `UrlAuthenticationCommonError` | Error | An error has occurred that doesn't fit into the other categories on this page. This could be caused by a temporary problem. Please retry the request after a short delay. If that doesn't solve the problem, please review the [developer's guide](https://developers.google.com/maps/documentation/javascript/tutorial) to make sure the request has the proper format. |

## Checking Errors in Your Browser


The Maps JavaScript API writes error messages to
`window.console`. This section explains how you can check the
`window.console` output in Google Chrome. If you are using any other
browsers, check the developer documentation for your browser. For your
reference, this is a list of tools to check `window.console` output
in some other browsers.

- [Web Console](https://developer.mozilla.org/en-US/docs/Tools/Web_Console) for Firefox.
- [Remote debugging](https://developer.chrome.com/devtools/docs/remote-debugging) for Android.
- [Web Inspector](https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html) for iOS.


In Chrome, you can use the
[JavaScript Console](https://developer.chrome.com/docs/devtools/console)
to check `window.console` output as follows.

1. To open the Developer Tools, select the menu icon \> More Tools \> Developer Tools.
2. To open the JavaScript Console, press the ESC key on your keyboard. The ESC key will toggle the JavaScript Console. If you close the console, press the ESC key again to open it.


If any errors or warnings occurred when loading the
Maps JavaScript API, they appear as one or more lines in the
console.
An error or warning message has the following format:


`Google Maps API error: [ERROR CODE] [Link to API document]`


or


`Google Maps API warning: [ERROR CODE] [Link to API document]`


You can check the [error codes table](https://developers.google.com/maps/documentation/javascript/error-messages.md.txt#deverrorcode) above to find
the error code in the error message. You can also find the details about the
error message in the API document linked from the message.

**Note:** You can
[listen for authentication errors](https://developers.google.com/maps/documentation/javascript/events.md.txt#auth-errors)
programmatically.

## Handling unsupported browsers


Ensure that the version of the browser you are using is
[supported by the
Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/browsersupport).

If you're developing a Windows desktop application that runs in a WebView, ensure that you are
using [WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/) based
on Edge. Previous versions of WebView, based on Internet Explorer, are no longer supported.

## If your code still isn't working

To help you get your maps code up and running, Brendan Kenny and Mano Marks point out
some common mistakes and how to fix them in this video.
[Video](https://www.youtube.com/watch?v=21PDd17dnnI)

- Look for typos. Remember that JavaScript is a case-sensitive language.
- Check the basics - some of the most common problems occur with the initial map creation. Such as:
  - Confirm that you've specified the `zoom` and `center` properties in your map options.
  - Ensure that you have declared a div element in which the map will appear on the screen.
  - Ensure that the div element for the map has a height. By default, div elements are created with a height of 0, and are therefore invisible.

  Refer to our examples for a [reference
  implementation](https://developers.google.com/maps/documentation/javascript/examples/map-simple).
- Use a JavaScript debugger to help identify problems, like the one available in the [Chrome
  Developer Tools](https://developer.chrome.com/docs/devtools/javascript). Start by looking in the JavaScript console for errors.
- Post questions to [Stack
  Overflow](https://stackoverflow.com/questions/ask?tags=google-maps-api-3,google-maps). Guidelines on how to post great questions are available on the [Support](https://developers.google.com/maps/support.md.txt) page.