Google Business Reviews API

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

API key authScheduled publishing14 platforms
Quick start
API request
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

Google Business Profile review data requires OAuth, location hierarchy navigation, and paginated API calls.
Replying to reviews at scale across multiple locations becomes a manual or one-off scripting exercise.
Review response tracking is disconnected from the rest of your local marketing and social workflow.

What bundle.social handles

Trigger an async review import for a connected Google Business account and poll for completion.
List imported reviews and access review metadata from one endpoint.
Create, update, or delete owner replies through the same API your team uses for social posts.

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.

01

Connect the GBP account

Connect a Google Business Profile account via the standard connect URL flow before importing reviews.

02

Trigger import and poll

POST to the review import endpoint. An importId is returned. Poll until the state is COMPLETED.

03

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.

TypeScript
API request
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

Review import (async)Import status pollingImported review listOwner reply createOwner reply updateOwner reply delete

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.