Google Reviews API
Google's Business Profile API requires Cloud project setup, manual OAuth approval, and iterating through accounts and locations to fetch reviews. ReviewHook replaces all of that with one REST API for fetching, filtering, and replying to reviews across every location.
Quick Start
- 01
Sign up at reviewhook.dev
Get your API key in seconds.
- 02
Connect your Google Business Profile
One-click OAuth flow. ReviewHook handles authentication, refresh tokens, and account/location ID discovery automatically.
- 03
Start making API calls
Use one endpoint to fetch and reply to reviews across every location you manage.
Fetch Google Reviews
Pull reviews from a single location or across all your Google Business Profile locations in one call:
const response = await fetch('https://api.reviewhook.dev/reviews?platform=google_business', {
headers: {
'Authorization': 'Bearer rev_live_...',
'Content-Type': 'application/json'
}
});
const { data, pagination } = await response.json();
console.log(data[0].id); // '85d9e48d25f9417d {
"data": [
{
"id": "85d9e48d25f9417d",
"platformReviewId": "ChdDSUhNMG9nS0VJQ0FnSURfeXFm...",
"platform": "google_business",
"rating": 5,
"title": null,
"text": "Best coffee on the block. The cortado is unmatched and the staff actually remembers your name.",
"authorId": "104725...",
"authorName": "Maya Chen",
"productId": "loc_acme_market_st",
"productName": "Acme Coffee — Market St",
"createdAt": "2026-04-12T16:22:08.000Z",
"updatedAt": "2026-04-12T16:22:08.000Z",
"hasResponse": false
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 184,
"totalPages": 10
}
} Response schema 2 fields +4 nested
Array of Google Business Profile reviews. Up to limit items.
Cursor metadata for the current page.
Unified review ID assigned by reviewhook.
Original review ID from the source platform.
Source platform enum. app_store · google_play · g2 · google_business · trustpilot · yelp.
Star rating on a 1–5 scale, normalized across platforms.
Review headline. Omitted where the platform has no title field.
Full review body, UTF-8.
Platform-specific author identifier. Omitted when anonymous.
Display name as shown on the platform. Omitted when anonymous.
Product identifier on the source platform.
Product or listing name at time of review.
App build the reviewer was on (mobile stores only).
Device metadata for mobile-store reviews.
When the review was posted on the source platform.
Last modification — edits, translations, or response changes.
True when the brand has replied to this review.
Upstream delivery state of the reply — queued · sent · failed.
Nested response object. Present only when hasResponse is true.
Reply body as posted to the platform.
Identifier of the team member who replied.
Display name attached to the reply.
When the reply was posted upstream.
Operating-system version string reported by the source, e.g. iOS 17.4 or Android 14.
1-indexed page number echoed back.
Items per page that were returned.
Total reviews matching the filter.
Ceiling of total / limit.
Reply to Google Review
const response = await fetch('https://api.reviewhook.dev/reviews/rev_7b3d9c42/reply', {
method: 'POST',
headers: {
'Authorization': 'Bearer rev_live_...',
'Content-Type': 'application/json'
},
body: JSON.stringify({
text: 'Thank you for your feedback! Glad you enjoyed your visit.'
})
});
const review = await response.json();
console.log(review.hasResponse); // true {
"id": "rev_7b3d9c42",
"platformReviewId": "ChdDSUhNMG9nS0VJQ0FnSURfeXFm...",
"platform": "google_business",
"rating": 5,
"title": null,
"text": "Best coffee on the block. The cortado is unmatched and the staff actually remembers your name.",
"authorId": "104725...",
"authorName": "Maya Chen",
"productId": "loc_acme_market_st",
"productName": "Acme Coffee — Market St",
"createdAt": "2026-04-12T16:22:08.000Z",
"updatedAt": "2026-05-11T09:14:02.000Z",
"hasResponse": true,
"responseStatus": "queued",
"response": {
"text": "Thank you for your feedback! Glad you enjoyed your visit.",
"authorId": "u_team_09",
"authorName": "Acme Coffee",
"createdAt": "2026-05-11T09:14:02.000Z"
}
} Response schema 5 fields +3 nested
Unified review ID — unchanged from the request.
Now true after a successful reply.
Upstream delivery state — typically queued immediately after posting.
The reply you just posted, echoed back.
All other Review fields are returned unchanged. See the Review schema below.
Unified review ID assigned by reviewhook.
Original review ID from the source platform.
Source platform enum. app_store · google_play · g2 · google_business · trustpilot · yelp.
Star rating on a 1–5 scale, normalized across platforms.
Review headline. Omitted where the platform has no title field.
Full review body, UTF-8.
Platform-specific author identifier. Omitted when anonymous.
Display name as shown on the platform. Omitted when anonymous.
Product identifier on the source platform.
Product or listing name at time of review.
App build the reviewer was on (mobile stores only).
Device metadata for mobile-store reviews.
When the review was posted on the source platform.
Last modification — edits, translations, or response changes.
True when the brand has replied to this review.
Upstream delivery state of the reply — queued · sent · failed.
Nested response object. Present only when hasResponse is true.
Reply body as posted to the platform.
Identifier of the team member who replied.
Display name attached to the reply.
When the reply was posted upstream.
Operating-system version string reported by the source, e.g. iOS 17.4 or Android 14.
Endpoints
Every action you can take on Google Business Profile reviews, exposed through ReviewHook's unified API.
Filtering parameters
Common filters for the /reviews endpoint:
| Parameter | Description |
|---|---|
platform | Filter by source platform — pass google_business for Google reviews |
locationId | Filter by Google Business Profile location ID |
rating | Exact star rating (1–5). Overrides minRating / maxRating when set |
minRating | Minimum star rating (1–5) |
maxRating | Maximum star rating (1–5) |
hasResponse | Return only reviews with (true) or without (false) a reply |
fromDate | Lower bound on createdAt. ISO-8601 date or date-time |
toDate | Upper bound on createdAt. ISO-8601 date or date-time |
authorName | Substring match on the reviewer's display name |
productName | Substring match on the product or listing name |
For the full list of filters and response fields, see the API reference.
Features
- Fetch reviews across every location without writing per-account or per-location loops
- Reply programmatically without managing OAuth refresh tokens
- Filter by rating, date, location, or response status with simple query parameters
- Skip Cloud project setup and API access approval queues
- No OAuth refresh logic to maintain
- Same API covers App Store, Google Play, G2 — useful if you ever expand
Direct API vs ReviewHook
What it actually takes to ship a Google reviews integration, with and without us.
| Google Business Profile API | ReviewHook | |
|---|---|---|
| Setup time | Days to weeks | Minutes |
| OAuth handling | Manual | Built-in |
| Multi-location | Manual iteration | Single endpoint |
| Cross-platform | Google only | Same endpoint covers App Store, Google Play, G2 and more |
| API access | Approval required | Not required |
| Refresh tokens | You maintain them | We maintain them |
Start building with the Google Reviews API
Free during beta · No credit card required · Get 3 months free at launch.
Frequently asked
The official Google Business Reviews API is free to use, but requires approval from Google that can take weeks. ReviewHook is currently free in beta — no approval queue.
Yes. Google renamed "Google My Business" to "Google Business Profile" in late 2021. The endpoints are the same — only the name changed. Existing integrations and tutorials referring to "Google My Business reviews API" still describe the same underlying API.
No — this API only accesses reviews on Business Profiles you own. For public reviews of any business, use the Google Places API.
Yes. POST /reviews/{id}/reply posts a reply. Replies go through Google's standard content review queue.
Not with ReviewHook. We handle the API access on your behalf — you just connect your Google account.
Plain REST. Works with curl, fetch, axios, requests, or any HTTP client. Also works with no-code tools like n8n, Make, and Zapier.