Local Business Reviews API avatar

Local Business Reviews API

Pricing

Pay per usage

Go to Apify Store
Local Business Reviews API

Local Business Reviews API

Read, monitor and reply to customer reviews across Google, Facebook and 30 plus review sites. Pull reviews and rating analytics into a dataset, rank locations by unanswered reviews, and publish, edit or archive replies.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Categories

Share

Read, monitor and reply to customer reviews across Google, Facebook and the other review sites connected to your Listings API account.

Reviews are the second thing a customer looks at after the map pin. This Actor wraps the review endpoints of the Listings API so you can pull review data into a dataset, track ratings and response rates over time, and publish replies without writing an integration yourself.

What this Actor does

  • Pulls every review for a location with rating, author, body text, date and source site
  • Fetches full detail for specific reviews by ID
  • Returns a review analytics overview for a location: average rating, review volume, response rate and rating distribution
  • Returns rollup review counts across your whole account, so you can rank locations by rating or by unanswered reviews
  • Lists which review sources are switched on for a location and which are available on your plan
  • Posts a reply to a review, edits that reply, or archives it

Read operations write one dataset row per review, so the result exports cleanly to JSON, CSV or Excel and feeds straight into a sheet, a warehouse or a reporting tool.

Write operations act on live profiles. A reply published through this Actor appears publicly on the review site.

Who this is for

  • Agencies reporting on review volume and sentiment for a book of local clients
  • Multi location brands that need one queue of unanswered reviews across every store
  • Franchise systems checking that individual franchisees are replying inside an agreed window
  • Teams building review response workflows on top of a scheduled run

What you need

A Listings API account and an API key. Create one at listingsapi.com.

Access levelCovers
ReadEvery list and get operation below
WriterespondToReview, editReviewResponse, archiveReviewResponse

Replying to a Google or Facebook review also needs that profile connected and matched to the location. Use the Create Google Listing API Actor to link the accounts and confirm the matches before you run anything here.

Keys are managed in the API Keys section of your dashboard. The key you paste into this Actor is stored as a secret input.

Input

FieldTypeRequiredDescription
apiKeystringYesYour Listings API key. Stored as a secret.
operationstringYesWhich endpoint to call. See the operations table.
pathParamsobjectNoValues for placeholders in the path, for example { "locationId": "123" }.
queryobjectNoQuery string values such as limit, after, siteId or date filters.
bodyobjectNoJSON payload for the respond, edit and archive operations.
paginatebooleanNoKeep requesting pages while pageInfo.hasNextPage is true. Default false.
maxItemsintegerNoStop after this many dataset items. 0 means no limit.

Operations

OperationMethod and pathReturns
allLocationsGET /locationsYour locations, used to look up location IDs
searchLocationsGET /locations/searchLocations matching a search term
reviewsOfLocationGET /locations/{locationId}/reviewsReviews for one location
reviewDetailsGET /reviewDetailsFull detail for a set of review IDs
rollupInteractionsGET /rollup_interactionsReview counts rolled up across locations
reviewAnalyticsOverviewGET /locations/{locationId}/review-analytics-overviewRating average, volume and response rate
reviewSettingsOfLocationGET /locations/{locationId}/reviews/settingsReview sources enabled for the location
reviewSiteConfigGET /reviews/site-configReview sources available on the account
respondToReviewPOST /locations/reviews/respondPublishes a reply
editReviewResponsePOST /locations/reviews/respond/editUpdates a published reply
archiveReviewResponsePOST /locations/reviews/respond/archiveArchives a reply

Field level request and response detail for each endpoint is at docs.listingsapi.com/docs/reviews.

Examples

Pull every review for one location, following pagination:

{
"apiKey": "<your key>",
"operation": "reviewsOfLocation",
"pathParams": { "locationId": "123" },
"query": { "limit": 50 },
"paginate": true
}

Get the rating and response rate summary for a location:

{
"apiKey": "<your key>",
"operation": "reviewAnalyticsOverview",
"pathParams": { "locationId": "123" }
}

Rank every location in the account by review activity:

{
"apiKey": "<your key>",
"operation": "rollupInteractions",
"query": { "limit": 100 },
"paginate": true
}

Reply to a review:

{
"apiKey": "<your key>",
"operation": "respondToReview",
"body": {
"input": {
"locationId": "123",
"reviewId": "gmb-8f2c41",
"response": "Thanks for taking the time to write this. Glad the new evening hours worked for you."
}
}
}

Check which review sites are switched on before you start collecting:

{
"apiKey": "<your key>",
"operation": "reviewSiteConfig"
}

Output

Each item in the response list becomes one dataset row. A review row looks roughly like this:

{
"id": "gmb-8f2c41",
"locationId": "123",
"site": "GOOGLE",
"rating": 4,
"authorName": "Priya S.",
"content": "Quick service and the staff actually knew the product.",
"postedAt": "2026-08-14T09:12:00Z",
"responded": false,
"responseText": null
}

Exact fields follow the API response, so anything the Listings API returns for a review is present in the row. Download the dataset as JSON, CSV, Excel or XML, or read it from the Apify API.

The run also writes a SUMMARY record to the key value store with the operation, the number of pages fetched and the number of items pushed.

Running it on a schedule

Set an Apify schedule to run reviewsOfLocation or rollupInteractions every morning. Point a webhook at the run to push new reviews into Slack, a helpdesk or your own queue. Reviews already in the dataset from earlier runs are kept, so you can diff against the previous run to find what came in overnight.

Rate limits and pagination

The Actor sends one request at a time and reads pageInfo.hasNextPage before asking for the next page. On a 429 it waits for the retry_after_seconds value from the response and retries, up to five times. Server errors are retried with a backoff.

Plan limits are 10 requests per minute on Launch and 50 on Growth. See rate limits.

Errors

A non success response stops the run and logs the status, the URL and the response body, including the correlation_id you can quote to support. Codes are listed at docs.listingsapi.com/docs/error-codes.

Cost

You pay Apify for platform usage of the run. Review data itself is billed by your Listings API plan, which starts at 99 dollars a month with a 14 day trial.