For a typical small-business workload, Google Places costs somewhere between nothing and a few hundred dollars a month, and the gap comes down to one header you send with every request.
Google Places API pricing is set per request, and the price of each request depends on the most expensive field you ask for. Ask for a business name and you pay one rate. Add its phone number and you pay a higher one. Add its reviews and the price jumps again.
That’s the whole game. Below we’ll walk through the current price list, which fields trigger which tier, three workloads priced out line by line, the code to call the API without overpaying, and the cheaper options when Google isn’t the right fit. Every price here comes from Google’s own Maps Platform pricing page, checked on 10 November 2026.
One note before we start. Google changes these numbers from time to time, so treat our tables as a map and the official page as the territory.
How Google Places API pricing works: SKUs, field masks and free caps
Google sells Places as a set of SKUs (stock keeping units, which here just means separately priced products). Text Search, Nearby Search, Place Details, Autocomplete and Photos each come in several tiers: Essentials, Pro, Enterprise, and Enterprise + Atmosphere. The Places API usage and billing page lists 15 SKUs for the current version of the API, which Google calls Places API (New).
The tier you land in isn’t something you pick in a dashboard. It’s decided on every single call by the field mask, a header that lists the data fields you want back. Google’s billing page says you’re “billed at the highest SKU applicable to your request.” So a mask that asks for an address (Essentials) and a phone number (Enterprise) is billed entirely at Enterprise.
For search endpoints the mask isn’t optional. The Text Search documentation says that if you omit the field mask, the method returns an error. Google built it this way on purpose: you have to decide what you’re paying for before you get anything back.
Each SKU also has a free usage cap, a number of calls per month that cost nothing. On the pricing page, Essentials SKUs mostly get 10,000 free calls a month, Pro SKUs get 5,000 and Enterprise SKUs get 1,000. A few ID-only SKUs are free without limit. After the free calls, you pay a rate per 1,000 calls that falls as your monthly volume crosses 100,000, 500,000, 1 million and 5 million.
Here’s the part that trips people up. The price is per request, not per place returned. A Text Search call that returns 20 businesses costs the same as one that returns a single result, because the Places SKU details page defines the billable event as a “successful request”. That one fact shapes almost every cost decision below.
The 2026 price list for Places API (New)
These are the rates that matter for most business automations. All prices are in US dollars per 1,000 calls, taken from Google’s global pricing list. We’ve left out the 1 million and 5 million bands because few small or mid-sized companies get there.
| SKU | Free calls per month | Up to 100,000 | 100,001 to 500,000 | 500,001 to 1M |
|---|---|---|---|---|
| Autocomplete Requests | 10,000 | $2.83 | $2.27 | $1.70 |
| Autocomplete Session Usage | Unlimited | Free | Free | Free |
| Text Search Essentials (IDs Only) | Unlimited | Free | Free | Free |
| Place Details Essentials (IDs Only) | Unlimited | Free | Free | Free |
| Place Details Essentials | 10,000 | $5.00 | $4.00 | $3.00 |
| Place Details Pro | 5,000 | $17.00 | $13.60 | $10.20 |
| Text Search Pro | 5,000 | $32.00 | $25.60 | $19.20 |
| Nearby Search Pro | 5,000 | $32.00 | $25.60 | $19.20 |
| Place Details Enterprise | 1,000 | $20.00 | $16.00 | $12.00 |
| Text Search Enterprise | 1,000 | $35.00 | $28.00 | $21.00 |
| Nearby Search Enterprise | 1,000 | $35.00 | $28.00 | $21.00 |
| Place Details Enterprise + Atmosphere | 1,000 | $25.00 | $20.00 | $15.00 |
| Text Search Enterprise + Atmosphere | 1,000 | $40.00 | $32.00 | $24.00 |
| Place Details Photos | 1,000 | $7.00 | $5.60 | $4.20 |
Two things jump out. First, search is far pricier per call than details: $32 for a Text Search Pro call against $5 for a Place Details Essentials call, per 1,000. Second, the step from Pro to Enterprise on search is small, just $3 per 1,000. The step from Essentials to Pro on details is big, from $5 to $17.
The same pricing page also lists the older Places API (Legacy). There, Text Search and Nearby Search cost $32 per 1,000, with add-on charges of $3 per 1,000 for Contact Data and $5 per 1,000 for Atmosphere Data. If you’re still on legacy endpoints, your bill is built differently, so don’t mix the two price lists when you estimate.
India has its own list. The usage and billing page links separate Global and India pricing, and the rates differ, so check which one your billing account uses.
Which fields push a request into a pricier tier
You can’t control cost without knowing where each field sits. Google publishes the mapping on its Places data fields page. Here are the fields business teams ask for most often.
| Field | What it gives you | Text Search tier | Place Details tier |
|---|---|---|---|
id |
Google’s permanent place ID | IDs Only (free) | IDs Only (free) |
formattedAddress |
Full street address | Pro | Essentials |
location |
Latitude and longitude | Pro | Essentials |
displayName |
Business name | Pro | Pro |
businessStatus |
Open, closed temporarily, closed for good | Pro | Pro |
nationalPhoneNumber |
Phone number | Enterprise | Enterprise |
websiteUri |
Website address | Enterprise | Enterprise |
rating, userRatingCount |
Star rating and number of ratings | Enterprise | Enterprise |
regularOpeningHours |
Opening hours | Enterprise | Enterprise |
reviews |
Up to a handful of review texts | Enterprise + Atmosphere | Enterprise + Atmosphere |
Notice the odd one. The business name, displayName, is a Pro field even in Place Details. So a “cheap” details call for name plus address isn’t Essentials at $5. It’s Pro at $17. People miss this all the time, because a name feels like the most basic thing a place has.
Notice the other odd one too. In Text Search, the address is already Pro, while in Place Details it’s Essentials. If all you need is a verified address and coordinates for a place ID you already hold, a details call is the cheaper route.
Our rule is short: write the field mask first, then look up its tier, then write the code. If you can’t justify a field in one sentence, drop it.
What changed when the $200 credit went away
If you read a Places pricing guide from before 2025, it’ll tell you every account gets $200 of free usage a month. That’s out of date. On 1 March 2025, Google replaced the $200 monthly credit with a free usage threshold for each Core Services SKU, and the threshold depends on the tier.
For light users of one or two SKUs, the new model is generous. You get 10,000 free Essentials calls of each type rather than one shared pot of dollars. For heavy users of Enterprise fields, it can be worse, because the Enterprise allowance is only 1,000 calls per SKU. Google’s own March 2025 change notes say these changes may raise the monthly bill for certain customers, depending on their usage patterns.
The same update moved the older Places API into Legacy status and expanded volume discounts to higher usage levels. If you signed a negotiated agreement with Google, the notes say it stays in effect until the end of its term.
So what does that mean in practice? Re-run your estimate if it was built on the old credit. A workflow that used to sit comfortably inside $200 might now be free, or it might cost money for the first time. The only way to know is to price it per SKU, which is what the next section does.
Our own earlier guide on the cost of Google Maps API covers the map display and routing side of the same bill, if you also show maps or calculate drive times.
Three real workloads, priced out
These are made-up but typical scenarios, priced with Google’s published rates. The arithmetic is ours. We assume the free calls come off the top before the first paid band, which is how the pricing table reads, and we round to the cent. Your bill can differ if Google changes rates or counts a call differently, so test with a small batch first.
1. A lead list for a marketing agency
Picture a 10-person agency building a prospect list of HVAC contractors in Texas. They run 2,000 search phrases (“HVAC repair in Waco”, “AC installation in Tyler” and so on). Text Search returns at most 20 results per page and up to 60 across three pages, according to the Text Search docs. So the worst case is 6,000 requests.
They want the phone number and website, which makes every call Text Search Enterprise at $35 per 1,000 with 1,000 free. That’s 5,000 paid calls times $0.035, or $175, for up to 120,000 results before duplicates.
Now the expensive way. Suppose they first run free ID-only searches, then call Place Details Enterprise once per business to get the phone and website. With 60,000 unique businesses, that’s 59,000 paid detail calls at $0.020, or $1,180. Same data. Nearly seven times the price.
The lesson is the one from the first section: search is billed per request, so pull the fields you need inside the search response, where 20 places share one charge. At full pages, Text Search Enterprise works out to about $1.75 per 1,000 places.
2. Address autocomplete on a checkout or booking form
A regional services company has a booking form with address autocomplete. It gets 20,000 completed bookings a month, and users type about six characters before picking a suggestion. Google’s SKU details page says that when a session ends in a Place Details Essentials call, the first 12 Autocomplete requests are billed as Autocomplete Requests, and the details call is billed as Place Details Essentials.
That’s 120,000 Autocomplete Requests. The first 10,000 are free, the next 90,000 cost $2.83 per 1,000 ($254.70) and the last 20,000 cost $2.27 per 1,000 ($45.40). Add 20,000 Place Details Essentials calls, of which 10,000 are free and 10,000 cost $5 per 1,000 ($50). Total: about $350 a month.
Two cheap fixes change that. Debouncing (waiting until the user pauses typing before sending a request) can cut requests per session in half. At three per session, the Autocomplete line falls to $141.50 and the total to about $191.50.
The second fix is avoiding a trap: the same SKU page warns that ending a session with a Place Details call that asks for any Pro, Enterprise or Enterprise + Atmosphere field is billed at Place Details Enterprise + Atmosphere. Ask for displayName by habit and those 20,000 details calls cost $475 instead of $50.
3. Keeping a CRM’s business records fresh
A B2B sales team has 3,000 accounts with Google place IDs saved against them. Once a month they check each account’s phone number, opening hours and business status, to catch closed or moved businesses before a rep calls. That’s 3,000 Place Details Enterprise calls: 1,000 free, then 2,000 at $0.020, or $40 a month.
If they add the latest reviews to spot unhappy customers, the call becomes Enterprise + Atmosphere at $25 per 1,000, and the bill becomes $50. That’s cheap insurance for a sales team. It’s also the workload Google’s storage rules favor, which we’ll come back to.
Calling Text Search without overpaying, step by step
Here’s the setup we’d use for a server-side job, such as a weekly lead pull run from a script, n8n or Make. It takes about 20 minutes if you already have a Google Cloud project with billing turned on.
- Enable the API. In Cloud Shell or any terminal with the
gcloudtool installed, run the first command below. Make sure it’s Places API (New), not the legacy one. - Create a restricted key. The second command makes a key that can only call Places and only from your server’s IP address. Replace the IP with yours.
- Write the field mask before the code. List the fields, look each up in the table above, and note the tier your request will land in.
- Test with one call. Run the curl request and check the response contains only what you asked for.
- Add pagination last. Only fetch pages two and three if the extra results are worth another charge each.
gcloud services enable places.googleapis.com
gcloud services api-keys create \
--display-name="places-server" \
--api-target=service=places.googleapis.com \
--allowed-ips="203.0.113.10"
Then a single test call. This one asks for Pro fields only, so it bills as Text Search Pro:
curl -X POST 'https://places.googleapis.com/v1/places:searchText' \
-H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: $PLACES_API_KEY" \
-H 'X-Goog-FieldMask: places.id,places.displayName,places.formattedAddress,nextPageToken' \
-d '{"textQuery": "HVAC repair in Waco, TX", "pageSize": 20}'
Note the nextPageToken at the end of the mask. The SKU details page lists it among the ID-only fields, and you need it in the mask to get a token back for the next page. It doesn’t raise the tier.
Here’s a short Python version that follows the pages. It sends the same body each time with the token added, because the Text Search docs say every other parameter must match the previous request or you’ll get an INVALID_ARGUMENT error.
import os
import requests
URL = "https://places.googleapis.com/v1/places:searchText"
HEADERS = {
"Content-Type": "application/json",
"X-Goog-Api-Key": os.environ["PLACES_API_KEY"],
"X-Goog-FieldMask": (
"places.id,places.displayName,places.formattedAddress,"
"places.nationalPhoneNumber,places.websiteUri,nextPageToken"
),
}
def search(query, max_pages=3):
body = {"textQuery": query, "pageSize": 20}
places = []
for _ in range(max_pages):
resp = requests.post(URL, json=body, headers=HEADERS, timeout=30)
resp.raise_for_status()
data = resp.json()
places.extend(data.get("places", []))
token = data.get("nextPageToken")
if not token:
break
body["pageToken"] = token
return places
This mask includes a phone number and website, so every page is billed as Text Search Enterprise. The max_pages argument is your brake. Set it to 1 while testing.
A few mistakes that quietly raise the bill:
- Using
*as the field mask. Google’s docs discourage the wildcard in production, and it bills you at the top tier your request can reach. - Re-running the same search every day. Store the place IDs and only refresh what changed.
- Calling Place Details for every search result “just in case”, which turns one charge into twenty.
- Leaving a test loop running over a weekend with no quota set. The next section fixes that.
If you build this in n8n instead of Python, the same request works in an HTTP Request node with the three headers above. Our guide to web scraping with n8n shows how to page through results and write them to a sheet.
Capping your bill before a loop drains it
In our view, the nasty Places bills rarely come from planned volume. They come from a bug: a loop that never ends, a retry that retries forever, or a key that leaked into a public repo. Google gives you three controls, and only one of them actually stops spending.
Budgets don’t stop anything. Google’s cost management page says plainly that setting a budget “does not automatically cap Google Cloud or Google Maps Platform usage or spending.” A budget sends you an email. That’s useful, but by the time you read it the money’s gone.
Daily quotas are the hard cap. You lower the per-day quota for each method, and when you hit it, requests fail for the rest of the day.
The same page says quotas reset at midnight Pacific time, and that “a quota sets the most your project can use an API, so it also sets the most you can be charged for that API.” Google also warns that quota and billing counts can drift a little, so set the quota slightly under your true limit.
To set one: open the Google Cloud console, go to APIs and Services, open Places API (New), choose Quotas and System Limits, find the per-day line for Text Search, and edit it. Do the same for Place Details and Autocomplete. For the lead list example, a Text Search cap of 6,500 a day would hold the worst case to roughly the $175 we priced plus a little headroom.
Key restrictions stop other people spending your money. The cost page states you’re financially responsible for charges caused by abuse of unrestricted API keys. Restrict server keys to IP addresses and browser keys to your domains, and limit every key to the APIs it needs. The gcloud command in the previous section does this when you create the key.
There are also per-minute limits. The usage and billing page says each Places (New) method has its own per-minute quota per project. A big batch job should pause between calls rather than hammer the API and collect errors.
What you’re allowed to store, and why it changes the math
Pricing is only half of the cost question. The other half is what Google lets you keep, because anything you can’t store, you have to pay to fetch again.
Google’s Places API policies are clear on two points. You can store place IDs indefinitely. You can cache latitude and longitude for up to 30 consecutive calendar days, then you must delete them. For other content, the policy says to cache or store it only as expressly permitted under the service terms, and it calls out business names, addresses and user reviews as content you shouldn’t copy and save.
That’s awkward for lead generation. Many teams pull Places results straight into a CRM or a spreadsheet and keep them forever. We’d rather be honest about it: that pattern sits badly with Google’s policy, and it’s your company’s risk, not your developer’s.
The pattern Google expects is the one from workload three. Keep the place ID as the permanent key. Fetch fresh details when someone actually needs them, such as when a rep opens the account. It costs a little more per lookup, but you only pay for records a person uses, and the data is never stale.
Attribution matters too. The same policy page says to show the Google Maps logo, or the text “Google Maps” where space is short, next to Places content. Photos and reviews need author credit and a link back to the place on Google Maps.
If you’re designing where all this data lives, our comparison of Make’s data store and Google Sheets covers the trade-offs of keeping lookup tables inside your automation tool.
Google vs Foursquare vs scraping services: a price comparison
Google isn’t the only way to get business data. Here’s how the main options compare on price for a typical batch, using each vendor’s own pricing page. The “per 1,000 places” column for Google is our arithmetic and assumes every page returns a full 20 results.
| Option | Free tier | Paid rate | Rough cost per 1,000 places | Best for |
|---|---|---|---|---|
| Google Text Search Pro | 5,000 calls a month | $32 per 1,000 calls | About $1.60 | Names and addresses inside your own app |
| Google Text Search Enterprise | 1,000 calls a month | $35 per 1,000 calls | About $1.75 | Phone, website and ratings at the source |
| Google Place Details Enterprise | 1,000 calls a month | $20 per 1,000 calls | $20 | Refreshing records you already have |
| Foursquare Places Pro | 500 calls a month | $15 per 1,000 calls | Depends on results per call | Apps that want a non-Google data source |
| Outscraper Google Maps scraper | 500 businesses a month | $3 per 1,000 records, $1 above 100,000 | $3 | One-off lists without writing code |
| Apify Google Maps Scraper | Not stated | From $1.50 per 1,000 places, plus add-ons | From $1.50 | Large scraping jobs with reviews and contacts |
On raw price, Google’s search endpoints are competitive once you pack fields into the search call. Where Google gets expensive is per-place details at scale, and that’s the pattern most first-time builders choose.
Scrapers like Outscraper and Apify collect data from Google Maps’ public pages rather than through the official API. That’s a legal grey area. Google’s API storage limits don’t bind them the way they bind you, but Google’s terms for Maps itself may still apply, so we’d get a lawyer’s view before building a product on scraped data. For a one-time research list, many teams accept that risk. For a customer-facing feature, we wouldn’t.
Foursquare is the clean alternative if you want an official API that isn’t Google. Its Pro endpoints cost $15 per 1,000 calls after 500 free ones, and its Premium endpoints cost $18.75 per 1,000 with no free tier, per its pricing page. Coverage differs by country, so test your target cities before switching.
So which should you pick? For a tool your staff or customers use every day, use the Google API with tight field masks and a daily quota. For a one-off prospect list, a scraper service is cheaper and faster, as long as you accept the terms risk. If lead lists are the real goal, our guide on how to automate lead generation covers what to do with the list once you have it.
And if you’re pricing an AI step on top, such as having a model qualify each business from its website, budget that separately. Our Gemini API pricing guide walks through token costs for that kind of job.
Places API pricing checklist before you go live
Run through this before you point any workflow at production. Each item maps to a cost trap covered above.
- You’re on Places API (New), and your estimate uses the New price list, not legacy rates.
- Every request has a field mask written down, with its tier noted next to it.
- No mask uses
*. displayNameonly appears where you truly need the name, since it makes the call Pro.- Contact fields are pulled inside Text Search, not with one Place Details call per result.
- Pagination has a hard page limit, and you’ve decided whether pages two and three are worth paying for.
- Autocomplete uses session tokens and debouncing, and the closing details call asks only for Essentials fields.
- Daily quotas are set for Text Search, Place Details and Autocomplete, slightly under your real limit.
- A budget alert is set at 50 and 90 percent of the monthly figure you expect.
- Every API key is restricted by IP address or domain, and to the Places API only.
- You store place IDs, refresh coordinates within 30 days, and don’t keep names, addresses or reviews you aren’t allowed to keep.
- Google Maps attribution shows next to any Places content you display.
- You’ve run a 100-call test and matched it against the billing report before the full batch.
Our verdict: for most small and mid-sized businesses, Google Places costs less than they fear, often nothing, as long as someone owns the field mask. The teams that get surprised are the ones who copied a sample request with every field in it.
FAQ
Is the Google Places API free?
Partly. Each SKU has a monthly free allowance: 10,000 calls for most Essentials SKUs, 5,000 for Pro and 1,000 for Enterprise. ID-only searches and session-based Autocomplete usage are free without limit, according to Google’s pricing page. You still need a billing account with a card on file to use any of it.
Do I pay for a search that returns no results?
Google bills Places search on a “successful request”, and its SKU page doesn’t spell out how empty results are treated. Assume a well-formed request that returns nothing still counts until your billing report shows otherwise. A quick test with a nonsense query and a check of the next day’s report will tell you for your account.
Can I still use the legacy Places API?
Existing projects can keep calling it, but Google moved it to Legacy status in March 2025, and new work should go on Places API (New). The legacy price list adds separate charges for contact and atmosphere data, so a migration changes your bill as well as your code. Price both before you switch.
How do I see which Places SKU I was billed for?
Open the Google Cloud console, go to Billing, then Reports, and group the costs by SKU. Each Places tier shows as its own line, such as Text Search Pro or Place Details Enterprise. If you see Enterprise lines you didn’t expect, a field mask is asking for a field you forgot about.
Does calling Places from n8n, Make or Zapier cost extra?
Google charges the same for a call from any tool, because the bill goes to the API key. What changes is the automation platform’s own usage count, since each call is an operation or task there. Count both when you estimate a workflow.
Can I store Places results in my CRM?
You can store place IDs forever and coordinates for up to 30 days. Google’s policy says other content, including business names, addresses and reviews, should only be stored as its terms expressly allow. The safe pattern is to keep the ID and fetch fresh details when someone needs them.




