Google Maps Reviews API in Python: Pagination, Sorting, Dedupe, Owner Replies

By Serpent API Team··11 min read

Method note: Measurements in this article were run locally against authenticated Serpent API endpoints on August 3, 2026. Sample sizes are stated in the article. Treat the numbers as a dated field check, not a permanent guarantee.

Short answer: fetch reviews by place identifier, store review_id, and paginate with the returned page token. Never dedupe by reviewer name or date. Review IDs are the stable key.

I tested two businesses on August 3, 2026. Both first pages returned 20 reviews and a next-page token. One second-page request returned 20 more reviews with zero overlapping IDs; the other returned a temporary 503 in this local run, which is why production jobs should checkpoint page progress.

BusinessPage 1 reviewsNext tokenPage 2 reviewsOverlapping IDsOwner replies
South Austin Dentist20yes0019
Time Plumbing, Heating & Electric Denver20yes20038

Python Ingest

import requests, sqlite3

BASE = "https://apiserpent.com"
HEADERS = {"X-API-Key": "YOUR_API_KEY"}

def fetch_reviews(place_id, page_token=None, sort="newest"):
    params = {"place_id": place_id, "sort": sort}
    if page_token:
        params["page_token"] = page_token
    r = requests.get(f"{BASE}/api/maps/reviews", headers=HEADERS, params=params, timeout=60)
    r.raise_for_status()
    return r.json()

page = fetch_reviews("ChIJ...")
for review in page["reviews"]:
    save_review(review["review_id"], review["rating"], review["text"]["original"])

if page.get("next_page_token"):
    next_page = fetch_reviews("ChIJ...", page["next_page_token"])

Pagination Rules

Store the input identifier, sort mode, page token, and fetch timestamp. If a later page fails, resume from the last successful token. Do not assume a page token is meaningful for a different sort order.

Primary Sources

FAQ

Does the endpoint return owner replies?

Yes. In the August 2026 sample, the first review page for both tested businesses included owner responses on 19 of 20 reviews.

How do I avoid duplicate reviews?

Use review_id as the primary key and treat page tokens as cursors, not offsets.

Can I sort reviews?

The endpoint accepts sort values such as newest, relevant, highest, and lowest. Always store the sort with the page token you requested.

Related Posts