Google Business Profile Reviews API for importing and managing owner replies
Async import Google Business Profile reviews, poll for completion, list imported reviews, and create, update, or delete owner replies through one API.
Last updated: May 2026
1// Trigger async review import2const trigger = await fetch("https://api.bundle.social/api/v1/review/import", {3 method: "POST",4 headers: {5 "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,6 "Content-Type": "application/json"7 },8 body: JSON.stringify({ teamId: "team_123", socialAccountId: "acc_gbp_123" })9});10const { importId } = await trigger.json();1112// After import completes, reply to a review13await fetch("https://api.bundle.social/api/v1/review/rev_456/reply", {14 method: "POST",15 headers: {16 "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,17 "Content-Type": "application/json"18 },19 body: JSON.stringify({ teamId: "team_123", text: "Thank you for your kind words!" })20});Managing reviews directly via Google APIs
What bundle.social handles
Review replies keep local operations consistent
Review replies support local trust, customer engagement, and profile freshness. bundle.social makes the reply workflow programmable without managing Google API auth directly.
Workflow
How it works
Connect accounts once, then create and schedule posts with channel-specific fields from one API.
Connect the GBP account
Connect a Google Business Profile account via the standard connect URL flow before importing reviews.
Trigger import and poll
POST to the review import endpoint. An importId is returned. Poll until the state is COMPLETED.
List reviews and reply
List imported reviews from the review endpoint. Create, update, or delete owner replies per review ID.
Capabilities
Google Business review management through one API
Import reviews, list them with metadata, and manage owner replies without touching Google's OAuth directly.
Async review import
Trigger a Google Business Profile review import and poll for COMPLETED status without managing pagination yourself.
Paginated review listing
Read imported reviews from a single endpoint using standard pagination parameters.
Owner reply management
Create, update, or delete your business reply to any imported review through the same API your team uses for posts.
Local trust and engagement workflow
Responding consistently to reviews helps teams keep Google Business Profile operations fresh, visible, and accountable without manual dashboard checks.
No Google API credentials needed
Uses the standard bundle.social connect flow so your team never manages Google OAuth tokens directly.
Dashboard review alongside scheduling
Team members can triage and draft replies in the dashboard next to scheduled posts for a unified workflow.
Developer example
Import reviews, then post a reply
Examples use bundle.social's public API shape: API key authentication, a post date, selected social account types, and platform-specific data.
1// Step 1: Trigger import2const trigger = await fetch("https://api.bundle.social/api/v1/review/import", {3 method: "POST",4 headers: {5 "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,6 "Content-Type": "application/json"7 },8 body: JSON.stringify({ teamId: "team_123", socialAccountId: "acc_gbp_123" })9});10const { importId } = await trigger.json();1112// Step 2: List imported reviews (after import completes)13const reviews = await fetch(14 "https://api.bundle.social/api/v1/review?teamId=team_123&socialAccountId=acc_gbp_123",15 { headers: { "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY } }16);17const { items } = await reviews.json();1819// Step 3: Create an owner reply20await fetch(`https://api.bundle.social/api/v1/review/${items[0].id}/reply`, {21 method: "POST",22 headers: {23 "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,24 "Content-Type": "application/json"25 },26 body: JSON.stringify({ teamId: "team_123", text: "Thank you for the review!" })27});2829// Step 4: Delete a reply if needed30await fetch(`https://api.bundle.social/api/v1/review/${items[0].id}/reply`, {31 method: "DELETE",32 headers: { "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY }33});Supported content
Honest limitations
- The number of reviews available for import depends on Google's API and the connected account's location history.
- Owner reply capabilities depend on the connected account's location access and Google policy.
- Review import is asynchronous. Poll for status before assuming the list is complete.
Guarantees
Developer-first infrastructure
2% error rate
We handle the platform edge cases, media processing, and rate limits so your requests succeed.
Verbose errors
When native APIs fail, we return human-readable error messages and actionable recovery steps.
Flat pricing
No per-post counting. Predictable pricing for teams managing many users, workspaces, and connected accounts.
Same-day support
Direct access to the engineers building the API. We respond to technical issues the same day. Sometimes the same hour. Test us c;
FAQ
Questions developers ask before building
How many reviews can I import?
The import capacity depends on Google's API access and the connected location's review volume. Check the import status response for an importedCount value after the job completes.
Can I reply to reviews programmatically?
Yes. After import, create an owner reply by POST-ing to /review/{reviewId}/reply with your reply text. Update by POST-ing again, delete by calling DELETE on the same endpoint.
How do I check if an import has finished?
Poll the import status endpoint with the importId until the state field returns COMPLETED.
Does this work for multi-location businesses?
Yes, by separating locations into teams. Each team connects one Google Business location, then you can trigger imports and manage replies for that location.
Does this affect local SEO?
Review replies support customer trust, engagement, and profile freshness. The API helps teams keep that operational rhythm consistent across locations.