Reviews

List reviews, post and edit responses, and pull analytics via client.reviews.

All review methods live under client.reviews. Review analytics live under the nested client.reviews.analytics sub-resource.

Read methods return an APIObject (dot access, dict access, .get(), .to_dict()), a list of APIObjects, or a SyncPage for paginated results. Mutations (respond, edit_response, archive_response, edit_settings) raise ValidationError if the platform rejects the change, even when the HTTP status is 200, so you never need to check success flags on the result.


reviews.list

List reviews for a location with optional filters. Returns a SyncPage.

Python
client.reviews.list(    location_id: str | int,    *,    first: int | None = None,    after: str | None = None,    before: str | None = None,    last: int | None = None,    site_urls: list[str] | None = None,    start_date: str | None = None,    end_date: str | None = None,    category: str | None = None,    rating_filters: list[int] | None = None,) -> SyncPage
ParameterTypeDescription
location_idstr | intLocation to list reviews for, numeric (16808) or base64 ("TG9jYXRpb246MTY4MDg=").
first / lastintPage size, counted from the start or the end of the result set.
after / beforestrOpaque pagination cursors.
site_urlslist[str]Only reviews from these review-page URLs.
start_date / end_datestrDate bounds in YYYY-MM-DD format.
categorystrFilter by review category.
rating_filterslist[int]Only these star ratings, e.g. [1, 2].
Python
# Recent reviewspage = client.reviews.list(16808, first=10)for review in page:  print(review.rating, review.authorName) # 1- and 2-star only, this yearpage = client.reviews.list(  16808,  rating_filters=[1, 2],  start_date="2026-01-01",  first=50,) # Auto-paginate all reviewsfor review in client.reviews.list(16808, first=100).auto_paging_iter():  print(review.content)

reviews.details

Get detailed info for specific reviews by interaction ID. Interaction IDs come from the interactionId field on items returned by reviews.list.

Python
client.reviews.details(interaction_ids: list[str]) -> APIObject
Python
details = client.reviews.details(["uuid-1", "uuid-2"])print(details.to_dict())

reviews.respond

Post a reply to a review.

Python
client.reviews.respond(interaction_id: str, content: str) -> APIObject
Python
result = client.reviews.respond(  interaction_id="review-uuid",  content="Thank you for your feedback, we really appreciate it!",)print(result.to_dict())

reviews.edit_response

Edit an existing reply.

Python
client.reviews.edit_response(    review_id: str,    response_id: str,    content: str,) -> APIObject
Python
client.reviews.edit_response(  review_id="review-uuid",  response_id="response-uuid",  content="Updated reply text.",)

reviews.archive_response

Archive (hide) a reply.

Python
client.reviews.archive_response(response_id: str) -> APIObject
Python
client.reviews.archive_response("response-uuid")

reviews.settings

Get review source settings for a location.

Python
client.reviews.settings(location_id: str | int) -> APIObject
Python
settings = client.reviews.settings(16808)print(settings.to_dict())

reviews.edit_settings

Update review source URLs for a location. Each entry is a dict describing one review page.

Python
client.reviews.edit_settings(    location_id: str | int,    site_urls: list[dict],) -> APIObject
Python
client.reviews.edit_settings(16808, site_urls=[  {"url": "https://www.google.com/maps/...", "active": True},])

reviews.site_config

Get eligible review sites for the account.

Python
client.reviews.site_config() -> list[APIObject]
Python
sites = client.reviews.site_config()for site in sites:  print(site.to_dict())

reviews.phrases

Get commonly mentioned phrases extracted from reviews. Pass base64 location IDs.

Python
client.reviews.phrases(    location_ids: list[str],    *,    site_urls: list[str] | None = None,    start_date: str | None = None,    end_date: str | None = None,) -> list[APIObject]
Python
phrases = client.reviews.phrases(  ["TG9jYXRpb246MTY4MDg=", "TG9jYXRpb246MTQwMjQ="],  start_date="2026-01-01",  end_date="2026-06-30",)for p in phrases:  print(p.to_dict())

Analytics sub-resource

reviews.analytics.overview

Get overall review stats (totals, average rating, response rate).

Python
client.reviews.analytics.overview(    location_id: str | int,    *,    start_date: str | None = None,    end_date: str | None = None,) -> APIObject
Python
stats = client.reviews.analytics.overview(  16808,  start_date="2026-01-01",  end_date="2026-06-30",)print(stats.to_dict())

reviews.analytics.timeline

Get review analytics over time.

Python
client.reviews.analytics.timeline(    location_id: str | int,    *,    start_date: str | None = None,    end_date: str | None = None,) -> APIObject
Python
timeline = client.reviews.analytics.timeline(  16808,  start_date="2026-01-01",  end_date="2026-06-30",)print(timeline.to_dict())

reviews.analytics.sites_stats

Get review analytics broken down by site (Google, Facebook, Yelp).

Python
client.reviews.analytics.sites_stats(    location_id: str | int,    *,    start_date: str | None = None,    end_date: str | None = None,) -> APIObject
Python
sites = client.reviews.analytics.sites_stats(  16808,  start_date="2026-01-01",  end_date="2026-06-30",)print(sites.to_dict())

See also

  • Locations: retrieve location IDs
  • Analytics: Google, Bing, and Facebook profile metrics
  • Use cases: review monitoring and auto-reply recipes