Local Business Reviews API
Pricing
Pay per usage
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
Local Business Listings Submission API
Maintained by CommunityActor 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 level | Covers |
|---|---|
| Read | Every list and get operation below |
| Write | respondToReview, 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
| Field | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Your Listings API key. Stored as a secret. |
operation | string | Yes | Which endpoint to call. See the operations table. |
pathParams | object | No | Values for placeholders in the path, for example { "locationId": "123" }. |
query | object | No | Query string values such as limit, after, siteId or date filters. |
body | object | No | JSON payload for the respond, edit and archive operations. |
paginate | boolean | No | Keep requesting pages while pageInfo.hasNextPage is true. Default false. |
maxItems | integer | No | Stop after this many dataset items. 0 means no limit. |
Operations
| Operation | Method and path | Returns |
|---|---|---|
allLocations | GET /locations | Your locations, used to look up location IDs |
searchLocations | GET /locations/search | Locations matching a search term |
reviewsOfLocation | GET /locations/{locationId}/reviews | Reviews for one location |
reviewDetails | GET /reviewDetails | Full detail for a set of review IDs |
rollupInteractions | GET /rollup_interactions | Review counts rolled up across locations |
reviewAnalyticsOverview | GET /locations/{locationId}/review-analytics-overview | Rating average, volume and response rate |
reviewSettingsOfLocation | GET /locations/{locationId}/reviews/settings | Review sources enabled for the location |
reviewSiteConfig | GET /reviews/site-config | Review sources available on the account |
respondToReview | POST /locations/reviews/respond | Publishes a reply |
editReviewResponse | POST /locations/reviews/respond/edit | Updates a published reply |
archiveReviewResponse | POST /locations/reviews/respond/archive | Archives 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.
Related Actors
- Create Google Listing API for linking Google and Facebook profiles to your locations, which reply operations depend on
- Local Business Listings Submission API for creating and syncing locations
- Create Bulk GBP Listings API for creating Google listings across hundreds of locations in one run
- Local Business Posts API for publishing to Google, Facebook, Instagram and X
- Local SEO Analytics API for publisher performance and listing coverage
Links
- Documentation: docs.listingsapi.com
- Review endpoints: docs.listingsapi.com/docs/reviews
- SDKs: docs.listingsapi.com/sdks
- MCP server: listingsapi.com/mcp
- Support: support@listingsapi.com