Google Reviews API
Fetch Google reviews as clean, normalized JSON. Daily refresh, full history, rating tracking and signed webhooks on every new review - for your own profiles or any competitor's.
Connect a Google profile
One call connects a profile - the first crawl collects its review history in the background:
curl -u :YOUR_API_KEY \
-X POST https://api.repuso.com/public/v1/profiles/add \
-H 'Content-Type: application/json' \
-d '{"type": "google", "url": "https://..."}'Accepted URL formats
https://www.google.com/maps?hl=en&cid=6719486086807356360 https://www.google.com/maps?hl=en&cid=0x88d8df5127728b67:0x5d4068fe9d5503c8 https://www.google.com/maps?q=place_id:ChIJvQUwAwaoFIcRHgxY1nmMe6Y
Instead of a URL you can send a place_id - no OAuth or ownership needed, any public Google Business Profile works.
Monitoring starts immediately: the first crawl pulls the full history, then it refreshes automatically every day.
Every request for a Google profile
Once a profile is monitored, this is the full toolkit - the same calls the console shows for each profile. Copy, add your API key, run.
curl -u :YOUR_API_KEY https://api.repuso.com/public/v1/profiles/get/512
Response
{
"id": 512,
"type": "google",
"label": "Google",
"name": "Google - Downtown",
"score": 4.7,
"reviews": 1284,
"group": null
}curl -u :YOUR_API_KEY 'https://api.repuso.com/public/v1/reviews/get?channels=512'
Response
{
"count": 1284,
"items": [{
"id": 90514,
"type": "google",
"rating_value": "5.00",
"rating_scale": 5,
"sentiment": "positive",
"text": "Great service - highly recommended!",
"from_name": "Jane Cooper",
"posted_on": "2026-08-01 14:22:00"
}],
"next_before_ts": 1779310800,
"next_before_id": 90514
}curl -u :YOUR_API_KEY 'https://api.repuso.com/public/v1/reviews/get?rating=4,5&since=2026-01-01&keyword=delivery'
Response
{
"count": 37,
"items": [{
"id": 90822,
"rating_value": "5.00",
"sentiment": "positive",
"text": "Delivery was quick and the driver was polite.",
"posted_on": "2026-06-20 18:03:00"
}]
}curl -u :YOUR_API_KEY 'https://api.repuso.com/public/v1/profiles/rating_history/512?days=90'
Response
{
"history": [
{ "date": "2026-06-14", "score": 4.8, "reviews": 112, "estimated": true },
{ "date": "2026-08-01", "score": 4.7, "reviews": 1284 }
]
}curl -u :YOUR_API_KEY https://api.repuso.com/public/v1/profiles/ai/summary/512
Response
{
"summary": "Customers consistently praise the fast, friendly service and reliable quality...",
"language": "en",
"based_on_reviews": 100,
"generated_on": "2026-08-01T12:00:00Z"
}curl -u :YOUR_API_KEY https://api.repuso.com/public/v1/profiles/ai/insights/512
Response
{
"sentiment": { "positive": 982, "neutral": 45, "negative": 34, "total": 1061, "positive_pct": 93 },
"strengths": ["Fast, friendly service", "Consistent quality"],
"improvements": [{ "text": "Reduce wait times at peak hours", "severity": "recurring" }],
"generated_on": "2026-08-01T12:00:00Z"
}curl -u :YOUR_API_KEY 'https://api.repuso.com/public/v1/reviews/get?translate=en'
Response
{
"count": 1284,
"items": [{
"id": 90514,
"text": "We had a wonderful time, the kids loved it!",
"text_original": "Nous avons passe un moment merveilleux...",
"text_language": "en",
"rating_value": "5.00"
}]
}curl -u :YOUR_API_KEY -X POST https://api.repuso.com/public/v1/profiles/refresh/512 -H 'Content-Type: application/json' -d '{}'Response
{ "success": true, "crawl_queued": true }Plain-text reviews (no HTML), one schema for every platform. Google reviews can carry photos or videos - they arrive in media as type + url objects. tags are your own labels: set them with PUT /reviews/update/{id} and filter with reviews/get?tags=. Full parameter list in the API reference.
Not just Google - every platform in one request
Reviews arrive normalized to one schema, so you don't query per platform. Drop the profiles filter and the same /reviews/get endpoint returns reviews from every profile you monitor, across all 50+ platforms, in a single list - Google, Google, Trustpilot and the rest, together. Each item carries a platform field so you know where it came from.
curl -u :YOUR_API_KEY \ 'https://api.repuso.com/public/v1/reviews/get?limit=50'
Response
{
"count": 8452,
"items": [
{ "id": 90514, "platform": "google", "rating_value": "5.00", "sentiment": "positive", "text": "Fast and friendly." },
{ "id": 90515, "platform": "google", "rating_value": "4.00", "sentiment": "positive", "text": "Great value, would use again." },
{ "id": 90516, "platform": "trustpilot", "rating_value": "5.00", "sentiment": "positive", "text": "Excellent support." }
],
"next_before_ts": 1779310800,
"next_before_id": 90514
}Ask your AI about your Google reviews
The API doubles as an MCP server, so AI tools can manage your Google monitoring conversationally: Claude and ChatGPT connect as a plugin with an OAuth sign-in (no key to paste), and Claude Code, Cursor, VS Code and other MCP clients connect with your API key. 18 tools cover profiles, reviews, AI insights and summaries, translation, rating reports and webhooks.
> add our Google profile and run AI insights - what do customers praise, what should we fix first?
Get pushed on every new Google review
No polling loop - register an endpoint once and every new review arrives as a signed webhook:
curl -u :YOUR_API_KEY \
-X POST https://api.repuso.com/public/v1/webhooks/add \
-H 'Content-Type: application/json' \
-d '{"url": "https://yourapp.com/hooks/repuso", "events": ["review.created", "rating.changed"]}'
Example delivery
POST https://yourapp.com/hooks/repuso
X-Repuso-Signature: t=1754491052,v1=9f2b...
{
"id": "evt_293060",
"event": "review.created",
"occurred_on": "2026-08-06T14:37:32Z",
"data": {
"from_name": "Jane Cooper",
"rating_value": "5",
"text": "Great service - highly recommended!",
"profile_id": 512,
"platform": "google"
}
}A managed alternative to Google review scraping
Building a Google review scraper means headless browsers, rotating proxies, CAPTCHAs and markup that changes without notice - and it breaks the week you stop babysitting it. Repuso runs and maintains the crawlers for you: you call a stable JSON API and the scraping, parsing and deduplication stay our problem. Reviews arrive normalized, with author, rating, date and full text, refreshed daily.
Whether you are migrating off a homegrown Google scraper, exporting reviews for analysis, feeding an AI pipeline or tracking competitors, the same two API calls above replace the whole scraping stack - and signed webhooks push every new review to you, no polling loop required.
No code required to get started
Profiles can be added and managed straight from the developer console - search a business by name or paste its Google URL, and monitoring starts within minutes. The API key, usage, webhooks and billing live there too, so the API is optional until you want the automation.
What you get
Per-profile pricing from $1.99/profile/month with volume rates - 1,000 pooled requests per profile, overage $1/1,000.
Monitor Google reviews in minutes
10-day full trial - every feature, no card needed.
Get your API keyMore platforms
Facebook Reviews API · Instagram Reviews API · App Store Reviews API · Google Play Reviews API · Google Reviews API · TripAdvisor Reviews API · Capterra Reviews API · GetApp Reviews API · G2 Reviews API · Thumbtack Reviews API · Trustpilot Reviews API · Yellow Pages Reviews API