Yes, the Google Business Reviews API exists, and it’s officially called the Places API. You’ll use its Place Details endpoint to pull review data for any listed location. If you only need feedback for your own company, the Business Profile API is the right choice. The number of reviews you get back depends on which method you choose. The Places route returns up to 5 reviews per request, while the Business Profile method gives you everything tied to your account.
What the API returns for Google business reviews
- The Places API returns up to 5 most relevant reviews per location request.
- You can’t sort them by date or filter by star rating in the request itself.
- Each review object includes star rating, text, author name, and publish time.
- Requesting the full text field instead of the truncated one increases your cost per call.
- You’ll need a valid API key with the Places API enabled in your project.
- Pricing for the Place Details SKU is inexpensive relative to the alternative, assuming standard fields.
- The Business Profile API pulls all reviews but only works for locations you own or manage.
- Developers often query Places when they actually need their own complete history.
- That mistake burns through quota while still missing older customer feedback.
- Response format is JSON by default, and you can’t change that structure.
Why the Places API limits review data
The Places API caps review output at 5 items per call because it’s built for display, not bulk analysis. It picks the most relevant reviews based on language, recency, and overall helpfulness signals. This keeps response sizes small so mobile apps load faster without burning through bandwidth.
You can’t pick which 5 reviews come back. The system ranks them internally before sending the payload. That ranking logic isn’t public, so you can’t force it to return only negative feedback or sort by date yourself. What you see is what the algorithm decides fits best for that specific place ID.
If you’re building a dashboard to track customer sentiment across hundreds of stores, this cap creates a real trade-off. You get fresh data quickly, but you’ll miss older reviews that might explain long-term trends. For a single storefront app showing recent praise, those 5 reviews are usually enough.
Authentication relies on an API key passed as a query parameter or header. That key must have billing enabled on the cloud project. Without billing, requests fail immediately. The pricing model charges per field requested, so asking for reviews alongside photos and opening hours costs more than asking for reviews alone.
For businesses managing their own listings, the Business Profile API works differently. It doesn’t use a simple API key. Instead, it requires OAuth 2.0 credentials tied to a manager’s account. This setup lets you read every review left on your locations, reply to them programmatically, and track changes over time. The Places API documentation confirms the exact field names and required parameters for pulling review arrays from place details.
The split between these two tools trips people up constantly. One is for looking up any place on Earth; the other is for managing places you control. They share similar names but operate under completely different authentication rules, rate limits, and pricing structures. Picking the wrong one means either hitting a wall after 5 reviews or getting access denied errors when trying to look up a competitor.
When the Places API won’t work
The standard approach breaks down fast if your situation falls outside basic place lookup. Here’s where the rules change and what you should use instead.
| Situation | What changes | What to do instead |
|---|---|---|
| Needing more than 5 reviews | Places API caps output | Use Business Profile API |
| Reading competitor feedback | No owner access granted | Stick to Places API limit |
| Replying to customer reviews | Places API is read-only | Switch to Business Profile API |
| Bulk downloading historical data | Rate limits block mass calls | Export via Business Profile dashboard |
| Working without billing setup | Requests fail instantly | Enable billing or use static data |
| Accessing reviews in all languages | Default returns matched language | Add language parameter to request |
Steps to fetch reviews from the Places API
-
Create a new project in the Google Cloud Console or open an existing one. Navigate to the APIs & Services section and enable the Places API specifically. Don’t skip this step because having a general Maps key without the Places service turned on will cause every request to return an error.
-
Generate a fresh API key under Credentials and restrict it immediately. Set application restrictions to match your server’s IP address or your website’s domain. Leaving a Places API key open allows anyone to drain your billing quota within hours, costing you real money overnight.
-
Find the correct place ID for the target business using the Place Autocomplete or Text Search endpoint first. A place ID looks like a string of letters and numbers. You can’t pull reviews using just a business name or street address directly in the details call.
-
Build your HTTP GET request targeting the Place Details endpoint URL. Append your API key and the place ID as parameters. Add the
fieldsparameter and includereviewsin the comma-separated list. Only requesting the fields you actually need keeps your cost per call at the lowest tier. -
Send the request using your preferred tool, whether that’s curl, Python’s requests library, or a browser for testing. Wait for the JSON response to return. Check the HTTP status code first — a 200 means success, while 403 usually points to a restricted or unauthenticated key.
-
Parse the returned JSON object and locate the
reviewsarray inside theresultobject. Each item contains the rating, text, relative time description, and author name. Remember this array never exceeds 5 items regardless of how many total reviews the business actually has. -
Store or display the extracted review data according to your project needs. If you require continuous updates, set up a scheduled task to repeat this call periodically. Keep the frequency reasonable since each automated request counts against your daily billing quota.
Errors that break review fetching
-
Omitting the fields parameter in your Place Details request triggers a full response charge. You’ll pay the highest rate per call instead of the base price, draining your monthly budget far faster than expected.
-
Using an unrestricted API key in client-side JavaScript exposes your credentials to the public. Someone can copy it and run thousands of requests on your dime before you notice the billing spike in your console.
-
Confusing the Places API with the Business Profile API leads to dead ends when you try to reply to reviews. The Places endpoint is strictly read-only, so any attempt to POST a response fails silently or throws a method error.
-
Hardcoding a place ID without checking if it changes causes silent failures over time. Businesses occasionally merge or relocate, generating new IDs while the old ones stop returning current review data.
-
Ignoring rate limits during bulk operations results in HTTP 429 errors. Once you hit the queries-per-minute threshold, every subsequent request drops until the window resets, breaking automated pipelines mid-run.
Frequently asked questions
Can I get all reviews for a business?
No, not through the Places API. It returns a maximum of 5 reviews per place ID request. If you own the business listing, you can use the Business Profile API to retrieve every review associated with your verified locations. Third-party scraping tools claim to bypass this, but they violate terms of service and risk getting your project banned entirely.
How much does pulling review data cost?
The Place Details call is inexpensive relative to the alternative when you specify only basic fields, including reviews. This assumes you’re using the standard SKU and haven’t added premium data points like contact info. If you omit the fields parameter, the price jumps significantly because the system charges for the entire data payload. Always check your Cloud Billing report for actual rates.
Is it safe to use my API key in frontend code?
It’s risky unless you apply strict HTTP referrer restrictions. An exposed key without limits lets anyone send requests billed to your account. For production apps handling review data, route calls through your backend server instead. Your server holds the key securely, makes the request to the Places API, and passes only the review JSON back to the user’s browser.
Why am I getting zero reviews in the response?
A successful 200 response with an empty or missing reviews array means the place has no published feedback yet, or the place ID is outdated. Verify the ID using a fresh Text Search call. Also confirm you included reviews in your fields parameter. If that string is missing from the request URL, the API simply won’t return that part of the data.
How long does it take for new reviews to appear?
New reviews typically surface in the Places API within 24 to 48 hours after a customer posts them. This delay assumes the review passed automated spam filters and wasn’t held for manual moderation. There’s no webhook or push notification to alert you when fresh feedback arrives, so you’ll need to poll the endpoint periodically to catch updates.
Does the API return the reviewer’s email address?
No, it doesn’t provide email addresses or private contact details. The response includes the author’s display name, profile photo URL if public, and a link to their local guide profile. Privacy policies prevent sharing direct contact information through the API. You can’t use this endpoint to build a mailing list from people who left feedback on a location.
What happens if I exceed my daily request quota?
Once you hit the limit set in your Cloud Console, the API returns HTTP 429 status codes for all further requests. Existing features relying on review data will break until the quota resets or you manually increase the ceiling. You can set daily caps in your project settings to prevent surprise charges, though this means intentionally stopping data flow when reached.
Can I filter reviews by star rating in the request?
No, the Places API doesn’t offer filtering parameters for ratings or dates within the request itself. You always receive the same set of up to 5 reviews chosen by relevance algorithms. To show only 1-star feedback or sort by newest, you must download the returned array and apply those filters locally using your own application code after receiving the JSON payload.
Conclusion
Every project hits a point where the built-in limits shape what’s possible. The exact number of reviews you can process daily lives in your Cloud Console under the quotas tab, and that figure moves depending on your billing tier and approval history. Pick the tool that matches your access level, lock down your keys, and keep your field requests narrow so the math stays predictable.