DocumentationIntegrations

Google Maps

How to connect a Google Maps key so the app suggests addresses while the person types and stores the location (latitude and longitude) of each address.

Costs no credits: no step in this guide uses AI credits.

Maps powers the address field in the app's forms and the location of records that have an address. Without the key, nothing breaks, but everything gets simpler: the address field becomes a plain text field, with no suggestions, and the record stores only the address text, with no latitude and longitude. Features that depend on location, such as distance or delivery area, go without the data they need.

Before you start

  • Plan: any, Free included. All you need is your own Google key;
  • A Google Cloud account with billing enabled. Google requires a registered card even for usage within the free quota, and without billing the key is refused;
  • Cost: usage is charged by Google, on your account, according to the Maps price list. The platform charges no integration credits for address searches.

Step by step

  1. at console.cloud.google.com, create a project (or pick an existing one);
  2. enable billing on that project;
  3. under APIs & Services → Library, enable two APIs:
    • Geocoding API;
    • Places API (New). Mind the "(New)": the old version does not work, and Google has not offered it to new customers since March 2025;
  4. under APIs & Services → Credentials → Create credentials → API key, create the key and copy it (it starts with AIza);
  5. still on the key, under API restrictions, limit its use to the two APIs from step 3;
  6. in the app's editor, Integrations tab, Location category, open the Google Maps card;
  7. paste the key into the API Key field and click Save and activate.

Do not restrict the key by website

It is common to restrict a Maps key to the app's domain (a "websites" or "HTTP referrers" restriction). Here that breaks the integration. The key never reaches the browser of the people using the app: the ones calling Google are Fabapp's servers, and those calls do not carry your site's address. A key restricted by website is refused on every one of them.

The right protection is the one in step 5, restricting which APIs the key can use. Since the key is stored encrypted on the server, it does not appear in the app's code for anyone to copy.

How to know it worked

  • on save, the platform runs a test search for a real address. If Google accepts it, "Google Maps is active." appears and the card turns Connected;
  • in the app, type an address into a form: suggestions should appear as you type.

Address search only works for people who signed in to the app (are logged in). That is on purpose: each search spends your Google project's quota, and leaving it open to anonymous visitors would be an invitation to abuse.

Common problems

The card's test shows Google's own response, and the code in parentheses tells the cause:

The card says What to do
REQUEST_DENIED check that the Geocoding API is enabled and that the project has billing enabled
OVER_DAILY_LIMIT almost always billing: the billing account has to be active and have a valid payment method
OVER_QUERY_LIMIT the key's quota ran out: wait for the quota to renew or raise the limit on the project
  • I just created the key and it is refused. A new key takes a few minutes to become valid. Wait and save again;
  • The card is Connected, but no suggestions show up. The card's test uses only the Geocoding API. Suggestions use the Places API (New): check that it is enabled on the same project, and that it was not the old version you enabled;
  • It worked for a while and stopped. Check whether billing on the Google project is still active and whether the key picked up a website restriction.
Open Fabapp
Related
Activating integrationsWebhooks and notifications: Webhook (outgoing), Slack, Discord and TelegramWhen something goes wrong