DEV Community

Cover image for Google Geocoding API error: request denied
Alex Cosmas
Alex Cosmas

Posted on

Google Geocoding API error: request denied

I ran into this issue while trying to use the Geocode gem on my rails 7 app.

Image description

If you ran into this error, these are the steps that I used to debug.
Google Bard was a great tool that helped with solving this bug.

Why? Google Geocoding API error: request denied.

The Google Geocoding API error "request denied" can occur for a few reasons:

  • You have not activated the Geocoding API in the Google Cloud Console.
  • You have not specified the key parameter in your request.
  • The key parameter does not match the API key in your Google Cloud Console.
  • Your API key has not been correctly set up in the Google Cloud Console.
  • You have exceeded your monthly quota for free requests.
  • You are using a restricted IP address or country.

To troubleshoot this error, you can check the following:

  • Make sure that the Geocoding API is activated in your Google Cloud Console.
  • Check that you have specified the key parameter in your request.
  • Verify that the key parameter matches the API key in your Google Cloud Console.
  • Check your monthly quota for free requests.
  • Check that you are not using a restricted IP address or country.

Solution

Installing the Geocode gem to rails

  1. Install the Geocoder gem:
    bundle add geocoder

  2. Create a config/initializers/geocoder.rb file and add the following code:
    Ruby
    Geocoder.configure do |config|
    config.api_key = ENV['GEOCODER_API_KEY']
    config.lookup_adapter = :google
    end

  3. Replace ENV['GEOCODER_API_KEY'] with your Google Geocoding API key.
    You can get your API key from the Google Cloud Console: https://console.cloud.google.com/apis/credentials.

  4. In your Rails application, you can now use the Geocoder class to geocode addresses.

For example, the following code will geocode the address "1600 Pennsylvania Avenue NW, Washington, DC 20500":

Ruby
address = "1600 Pennsylvania Avenue NW, Washington, DC 20500"
coordinates = Geocoder.search(address).first.coordinates

The coordinates variable will now contain the latitude and longitude of the address.

Here are some additional resources that you may find helpful:

Geocoder gem documentation: https://github.com/alexreisner/geocoder
Google Geocoding API documentation: https://developers.google.com/maps/documentation/geocoding/

Results

Image description

Image description

Top comments (0)