Google Places API Pricing: Is It Worth It for Your Business?

Smartphone showing a location and information, along with a rising graph with dollar signs and a warning sign

Google has devoted a lot of resources to making geospatial data accessible to everyday people through products like Google Earth, Google Maps, and Google Business Profile.

So it’s understandable why some would want to rely on the company’s Places API to get information about locations when building applications. But how much does the Google Places API cost? When you seriously consider that question, it can become evident that Google’s solution may not be the most economical option.

To demonstrate, we’ll break down the various costs associated with using the Google Places API. Along the way, we’ll explain how using SafeGraph’s Places data instead can serve as a better solution – and not just in terms of cost.

  • How Google Places API pricing works
  • Different types of data SKUs in Google Places API
  • How SafeGraph is different (and why we’re better)

To start, we’ll give a general overview of how Google Places API pricing works.

How Google Places API pricing works

The Google Places API price works on a “pay as you go” model. You can get a 90-day or $300-credit free trial of the Google Places API if you’ve never used paid services on Google Cloud or the Google Maps Platform (which includes the Google Places API). In addition, you get $200 worth of free request credits each month.

Beyond that, your organization will have to measure how much it uses the different services (SKUs) of the Google Places API, and create a budget accordingly. Then it will have to pay in advance to put credit on its account for one of three tiers of service. If your company’s usage of Google Places API goes beyond the amount of credit it paid, it will result in additional charges.

Pay-as-you-go pricing model where you pay by SKU

Google’s API for places bases pricing on stock keeping units (SKUs). So it bills for how often its services are used, and bills different rates for different types of services. Each SKU has three pricing tiers: one for 0 to 100,000 requests per month, another for 100,001 to 500,000 requests per month, and a third for over 500,000 requests per month.

You can calculate how much your company can expect to pay each month by using the Google Places API pricing calculator.

How Google Places API Autocomplete sessions work

The autocomplete function can be a bit tricky when it comes to the cost of Google Places API, since it may provide information the user ultimately doesn’t utilize. An autocomplete “session” starts once a user has typed enough characters into the search bar to generate an autocomplete suggestion. Further suggestions can be generated as the user adds or deletes characters. The session ends when the user selects a place they want to get more information about.

Each autocomplete session needs a session token to authenticate the other calls. Where that comes from depends on which Google API you’re using, as outlined below.

API

Billing

Does your application need to provide session tokens? 

Google Places API Place Autocomplete

Can be session-based or per request

Yes

Google Maps JavaScript API Places Autocomplete

Can be session-based or per request

Yes

Google Maps JavaScript API Autocomplete Widget

Session-based billing automatically enabled

No

Different types of data SKUs in Google Places API

The Google Places API classifies the different kinds of data and functions it calls when responding to a Places request. Depending on the type of data and/or function called, there may be an additional charge – as we’ll outline below.

One or more Data SKUs can be triggered by the following calls:

Android

fetchPlace(), findCurrentPlace()

iOS

fetchPlaceFromPlaceID:, findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:

Web service

each Places request, depending on the fields specified in the request

Basic Data

Basic data contains things like a place’s name, address, building footprint, feature photo, category, or status of being open or permanently closed. This data is requested from the following fields:

Android

address_component, adr_address, business_status, formatted_address, geometry, icon, icon_mask_base_uri, icon_background_color, name, permanently_closed, photo, type, url, utc_offset, vicinity

iOS

GMSPlaceFieldFormattedAddress, GMSPlaceFieldBusinesssStatus, GMSPlaceFieldID, GMSPlaceFieldCoordinate, GMSPlaceFieldName, GMSPlaceFieldPhotos, GMSPlaceFieldPlusCode, GMSPlaceFieldTypes, GMSPlaceFieldViewport

Web service

address_component, adr_address, business_status, formatted_address, geometry, icon, name, permanently_closed, photo, place_id, plus_code, type, url, utc_offset, vicinity

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

No additional charge

No additional charge

No additional charge

100,001 - 500,000

No additional charge

No additional charge

No additional charge

500,001+

No additional charge

No additional charge

No additional charge

As you can see, basic data calls have no additional cost on top of the price of the related Place Details request. However, that is not the case for all types of data, as we will soon demonstrate.

Contact Data

Contact data has to do with operational information about a business. This includes the hours it’s open, its phone number(s), and its website URL (if it has one). This type of data is called by the following fields: 

Android

OPENING_HOURS, PHONE_NUMBER, WEBSITE_URI

iOS

GMSPlaceFieldOpeningHours, GMSPlaceFieldPhoneNumber, GMSPlaceFieldWebsite

Web service

formatted_phone_number, international_phone_number, opening_hours, website

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

$0.003

$3

$300

100,001 - 500,000

$0.0024

$2.40

$1,200

500,001+

Contact sales team

Contact sales team

Contact sales team

Now you can see how the Google Maps or Places API cost can start to add up. If your organization is on the low volume request tier, contact data can cost up to $300 extra per month, while the middle tier can cost up to an additional $1200 per month! With SafeGraph, we work with you to determine the right price for the exact columns and rows of data you need.

Atmosphere Data

Atmosphere data has to do mainly with user-generated information, such as ratings and reviews of a business. It can also include the relative price rating of that business’s products or services. It’s requested via these fields:

Android

PRICE_LEVEL, RATING, USER_RATINGS_TOTAL

iOS

GMSPlaceFieldPriceLevel, GMSPlaceFieldRating, GMSPlaceFieldUserRatingsTotal

Web service

price_level, rating, review, user_ratings_total

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

$0.005

$5

$500

100,001 - 500,000

$0.004

$4

$2,000

500,001+

Contact sales team

Contact sales team

Contact sales team

This type of social sentiment can be useful in some cases, but it’s very subjective. SafeGraph doesn’t include this type of data because we’re more interested in quality factual information about physical places, not opinions. So by not providing data your organization may not even need, we can save you up to $2000 or more every month.

Autocomplete – Per Request

These calls refer to autocomplete requests that are invalid because a session token is not provided or is reused. In some cases, they may also be invalid because the user types (or copies and pastes) multiple addresses into the search field.

Android

findAutocompletePredictions()

iOS

findAutocompletePredictionsFromQuery:

JavaScript

Anything from the Maps JavaScript API’s Place Autocomplete service, and some actions from the Maps JavaScript API’s Place Autocomplete Widget

Web service

Anything from the Places API Place Autocomplete service

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

$0.00283

$2.83

$283+

100,001 - 500,000

$0.00227

$2.27

$1,135+

500,001+

Contact sales team

Contact sales team

Contact sales team

The basic idea here is: with whatever application you’re using part of the Google Places API (except the Google Maps JavaScript API Autocomplete Widget) for, it’s your responsibility to program it so it supplies session tokens correctly for autocomplete instances. If it doesn’t, you’ll still be on the hook for a feature of your app that doesn’t work. And even if you do get things set up properly, Google Places API’s cost can still add up with the autocomplete function if the user isn’t careful with how they set up their data requests.

SafeGraph, on the other hand, doesn’t need to try to predict what you’re looking for information on. We just bundle together the data you want and let you do the finding. So you’ll never have to worry about a needless expense that could cost you upwards of $1,100 per month.

Autocomplete without Place Details – Per Session

This refers to autocomplete requests where the user ultimately doesn’t select a suggested place to view more information about, and instead chooses another action. Some sample calls look like this:

Android

iOS

Web service

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

$0.017

$17

$1,700

100,001 - 500,000

$0.0136

$13.60

$6,800

500,001+

Contact sales team

Contact sales team

Contact sales team

Even if a user never actually selects a place to view from autocomplete suggestions, you still get charged for using the autocomplete function. Based on the Google Places autocomplete API pricing, that could cost you almost $7,000 per month.

At SafeGraph, we put much more focus into making sure we not only have the data about a place, but also that said data is correct and unambiguous. This cuts down on the need for repeated API calls because queries about names or addresses of certain locations don’t return what the user expects.

Autocomplete (included with Place Details) – Per Session

These calls refer to autocomplete sessions where the user selects a suggested place to view more details about it.

Android

fetchPlace()

iOS

fetchPlaceFromPlaceID:

Web service

a Place Details request

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

No additional charge

No additional charge

No additional charge

100,001 - 500,000

No additional charge

No additional charge

No additional charge

500,001+

No additional charge

No additional charge

No additional charge

While it looks like autocomplete sessions that end with the user choosing a suggested place won’t cost you anything, that’s not exactly the case. A successful session produces a Place Details request, which does cost money. In addition, the Places Detail request will also call data (Basic, Contact, or Atmosphere), based on what fields are specified in the request. If none are specified, then all data types will be called, and you will be charged accordingly.

Again, this Google Places API autocomplete pricing is something you’ll never have to worry about with SafeGraph. We don’t try to predict what places you’ll want information on; just tell us, and if we have it, we can give it to you.

Query Autocomplete – Per Request

The Google Places API can also be programmed to suggest categorical phrases for narrowing a search to specific types of places (e.g. “pizza in New York, NY”). This is in addition to the places themselves. The following requests and services will call this function:

JavaScript

getQueryPredictions(), the Maps JavaScript API’s SearchBox widget

Web service

ThePlaces API Query Autocomplete service

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

$0.00283

$2.83

$283+

100,001 - 500,000

$0.00227

$2.27

$1,135+

500,001+

Contact sales team

Contact sales team

Contact sales team

Place Details

Place details are called when a user selects a specific location that they want more information about (as opposed to a categorical search, as explained in the above section). These requests will do that:

Android

fetchPlace()

iOS

fetchPlaceFromPlaceID:

JavaScript

getDetails, getPlace, getPlaces()

Web service

getPlaceDetails()

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

$0.017

$17

$1,700+

100,001 - 500,000

$0.0136

$13.60

$6,800+

500,001+

Contact sales team

Contact sales team

Contact sales team

Remember that these requests will also call different data types (Basic, Contact, or Atmosphere) depending on what data fields are specified in the request. If no fields are specified, all types of data on a place will be called, and you will be charged for them. So the Google Places API price level could go up to 2.5 cents per Place Details call if your organization is on the minimum plan and repeatedly requests all types of data, which can cost up to $2,500 extra a month!

With SafeGraph, most attribute categories are included in the data by default. So you don’t need to worry about costs compounding like this. Also, we have a more flexible pricing structure based on a negotiation of how much value you’ll get out of our data, rather than based on an arbitrary number of API calls.

Place Details – ID Refresh

This is a request to retrieve only a location’s unique Google place ID if it changed for some reason (e.g. a business closed, or a new business moved in). It is done by making a Place Details request and specifying that you only want the place ID field returned, like so:

Android

fetchPlace(fields: place_id)

iOS

fetchPlaceFromPlaceID:, placeFields: place_id

Web service

getPlaceDetails(fields: place_id)

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

No additional charge

No additional charge

No additional charge

100,001 - 500,000

No additional charge

No additional charge

No additional charge

500,001+

No additional charge

No additional charge

No additional charge

This particular function has no extra charge, and Google also recommends refreshing place IDs once every 12 months. With SafeGraph’s data, however, managing unique place IDs is done on our end through location data standards like Placekey. We also update our Places data every month, so your business gets much fresher data without needing to jump through any hoops.

Find Place

Find Place requests use text strings in various data fields to search for, identify, and view details on a specific location.

JavaScript

findPlaceFromQuery(), findPlaceFromPhoneNumbe()

Web service

https://maps.googleapis.com/maps/api/place/findplacefromtext/output?parameters

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

$0.017

$17

$1,700+

100,001 - 500,000

$0.0136

$13.60

$6,800+

500,001+

Contact sales team

Contact sales team

Contact sales team

Like with a Place Details request, a Find Place request will also call any specified data fields. If any of those data fields are classified as Contact or Atmosphere data, you will be charged for them on top of the base cost of the Find Place request. If no fields are specified, the request will return only the location’s unique place ID. Since this is considered Basic data, it will not cost anything extra.

SafeGraph Places data includes most location attributes and information as part of the package when you purchase it. So you can just search through the dataset at your convenience to find a place you’re looking for, rather than having to pay each time you call this data from an API.

Place – Nearby Search

Nearby Search allows you to search for a group of related places near a specified location. You can search by keywords, languages, price level, categories, and whether a place is open or closed. You can also constrain searches to a specific radius, or sort results based on relevance or proximity. 

Nearby Search is requested by these calls:

JavaScript

nearbySearch()

Web service

https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

$0.032

$32

$3,200+

100,001 - 500,000

$0.0256

$25.60

$12,800+

500,001+

Contact sales team

Contact sales team

Contact sales team

Place – Text Search

Text Search allows you to search for places based on keywords related to a place’s name, address, or type of establishment. You can also refine results by language, price level, category, and whether a place is open or closed. You can also constrain searches to a specific region, location, or radius around a location.

Text Search is requested by these calls:

JavaScript

textSearch(), getPlaces() [if selecting a query and not a specific place]

Web service

https://maps.googleapis.com/maps/api/place/textsearch/output?parameters

Pricing

Calls per Month

Google Places API Price

Price per 1000 Calls

Price per Plan Max

0 - 100,000

$0.032

$32

$3,200+

100,001 - 500,000

$0.0256

$25.60

$12,800+

500,001+

Contact sales team

Contact sales team

Contact sales team

Like with Nearby Search, it is not possible to constrain the types of data fields that a Text Search calls. So each request will also incur charges from any Contact or Atmosphere data that is returned, on top of the base cost of the request.

If you use SafeGraph’s Places dataset instead, you don’t need to worry about this. You can find a place by searching over 20 standard attributes’ worth of information, including up-to-date open hours and the market’s most granular category tags. More importantly, the data is all there from the start – you don’t have to repeatedly query an API to get it, which can get pretty expensive.

Place Photo

This type of request allows for resizing a photo of a place so that it fits a screen. In other words, it allows you to manipulate a photo referenced by a Place Details request (which can return up to 10 photos at once); or a Find Place, Nearby Search, or Text Search request (each of which can return up to 1 photo). It’s requested through these calls:

Android

fetchPhoto()

iOS

loadPlacePhoto:

JavaScript

PlacePhoto.getUrl()

Web service

https://maps.googleapis.com/maps/api/place/photo?parameters

Pricing

Calls per Month

Price per Call

Price per 1000 Calls

Price per Plan Max

0 - 100,000

$0.007

$7

$700+

100,001 - 500,000

$0.0056

$5.60

$2,800+

500,001+

Contact sales team

Contact sales team

Contact sales team

How SafeGraph is different (and why we’re better)

One of the biggest weaknesses of the Places API pricing Google uses is that it’s inflexible. It forces organizations to play a guessing game with how much their app(s) will be using the API, and choose a rate accordingly. Not only are there penalties for overuse or underuse, but each request can call multiple types of data that your organization might not need for its use cases. And more often than not, you have to pay extra for that potentially wasted data.

SafeGraph doesn’t take this kind of one-size-fits-all, pay-as-you-go approach. We work with your company to identify exactly what data you need, and then negotiate a price to make sure you’re getting value for money. You can also have us send the data to several common data management platforms that your organization may already be using. These include Amazon S3, Databricks Delta Share, and Snowflake, as well as GIS platforms such as CARTO and Esri ArcGIS. Or you can just take the data as a CSV file if that’s more convenient. The point is that all the data you buy is available to access at any time for a flat fee – no nickel-and-diming by having to call it piece by piece from an API.

The other thing that makes us different is that data products are our only products. That means 100% of what we do is delivering geospatial datasets that not only have the highest attribute fill rates, but also are as up-to-date as possible (our standard refresh rate is monthly, while most of our competitors refresh only quarterly or annually). That goes beyond our Places dataset to information like the polygon-based building footprints of our Geometry dataset, as well as the location-based transactions our Spend dataset reveals.

In contrast, Google is a massive company that has products and services for many different industries. While this isn’t inherently a bad thing, it does limit how many resources Google can spend on any one area, such as optimizing its geospatial databases. For example, freelance food delivery company Doordash had to do its own research to fill in some of the hyperlocal data that was difficult or impossible to find using Google Maps alone.

Google is a recognizable brand that has become good at doing a lot of different things. However, it can’t be everything to everyone. While its geospatial services work decently for a lot of people and organizations, they’re expensive and don’t always include all the details necessary for certain use cases. If your business is looking for a more complete and affordable POI data solution, come see what SafeGraph Places has to offer, or get in touch with us.

CONTENTS

Get Started with SafeGraph Places