Google Maps
The Pullbay Google Maps API provides programmatic access to place search, place details, and place reviews from Google Maps. Integrate location data, business listings, and customer review content into your applications, dashboards, and analytics pipelines without scraping or manual lookups.
Base URL: https://api.pullbay.com
Overview
The Google Maps service lets you:
Search Google Maps for places by free-text query, optionally biased toward a geographic viewport
Look up full details for a single place by its Google Maps feature ID (FID)
Fetch reviews for a place using its Google Maps URL
All endpoints are read-only GET requests against public Google Maps data — you don't need a Google account or API key of your own.
Common Use Cases
Local SEO — Pull a business's place details and review volume to track how it appears on Google Maps for a given category or area.
Competitor Location Research — Search a category in a target city or neighborhood to map out who's listed, where, and how they're rated.
Review Monitoring for Multi-Location Businesses — Fetch reviews per location on a schedule and route new ones into your own alerting or response workflow.
Market Research — Use Search Places across multiple queries or viewports to understand the density and distribution of a business category in a region.
Due Diligence — Look up a specific place by FID to confirm its current rating, review count, and contact details before including it in a report.
Endpoints
GET /google-maps/place/search
Search Google Maps places by free-text query
Offset / maxItems
GET /google-maps/place/{fid}
Get full details for a place by FID
—
GET /google-maps/place/reviews
Get reviews for a place by Google Maps URL
Cursor / maxItems
Search Places
Search Google Maps for places matching a free-text query. Optional geo filters (latitude, longitude, zoom) bias results toward a specific map viewport. Paginate with offset, or use maxItems for a one-shot bulk pull — the two are mutually exclusive.
Request
Parameters
query
string
Yes
—
Free-text search term, 1–200 characters (e.g. pizza near soho new york)
countryCode
string
No
—
Country code, 2–5 characters. Not restricted to a published list — biases results toward a country/region
languageCode
string
No
—
Language code for localized text, 2–10 characters. Not restricted to a published list
latitude
string
No
—
Latitude to center the search viewport, as a numeric string (pattern ^-?\d+(\.\d+)?$)
longitude
string
No
—
Longitude to center the search viewport, as a numeric string (pattern ^-?\d+(\.\d+)?$)
zoom
string
No
—
Map zoom level to use alongside latitude/longitude, as a numeric string (pattern ^\d+(\.\d+)?$)
offset
string
No
—
Numeric offset string to paginate results (pattern ^\d+$). Mutually exclusive with maxItems
maxItems
integer
No
—
One-shot bulk pull, 1–500 results. Mutually exclusive with offset
Example
Response
Response Schema
pagination.offset
string, nullable
Offset-style pagination cursor for this endpoint — increment by the number of items received to request the next page
pagination.page / pagination.hasNextPage / pagination.cursor
nullable
Not the pagination mechanism used by this endpoint — see Pagination Notes below
pricing.creditsCharged
number
Credits charged for this request
Credit cost: dynamic, returned in pricing.creditsCharged. No published flat rate.
Get Place
Returns full details for a single Google Maps place identified by its FID. This is a single-record lookup — the response is not paginated.
Request
Parameters
fid
string
Yes
—
Path parameter. Google Maps feature ID, pattern ^0x[a-fA-F0-9]+:0x[a-fA-F0-9]+$ — two hex groups, each prefixed 0x, separated by a colon (e.g. 0x47e671d877937b0f:0xb975fcfa192f84d4)
countryCode
string
No
—
Country code, 2–5 characters. Not restricted to a published list
languageCode
string
No
—
Language code for localized text, 2–10 characters. Not restricted to a published list
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
There is no pagination object in this response — getGoogleMapsPlace returns one place per request, not a list.
Credit cost: dynamic, returned in pricing.creditsCharged. No published flat rate.
Get Place Reviews
Returns reviews for a place identified by its full Google Maps URL (placeUrl) — not its FID. Paginate with cursor, or use maxItems for a one-shot bulk pull — the two are mutually exclusive.
Request
Parameters
placeUrl
string
Yes
—
Full Google Maps place URL, 10–1000 characters. This is a different identifier than fid — see Finding Place IDs below
maxItems
integer
No
—
One-shot bulk pull, 1–500 results. Mutually exclusive with cursor
cursor
string
No
—
Opaque pagination cursor returned in the previous response's pagination.cursor. Mutually exclusive with maxItems
Example
Response
Response Schema
pagination.cursor
string, nullable
Cursor-style pagination token for this endpoint — pass it as cursor on the next request to continue
pagination.page / pagination.hasNextPage / pagination.offset
nullable
Not the pagination mechanism used by this endpoint
pricing.creditsCharged
number
Credits charged for this request
Credit cost: dynamic, returned in pricing.creditsCharged. No published flat rate.
Errors
All non-2xx responses share the same envelope:
400
Bad request — missing/invalid parameters
402
Insufficient credits
404
Place or review set not found
All three endpoints can return 400, 402, and 404.
Object Schema
Place search result object
url
string
Google Maps URL for the place
title
string
Place name
description
string, nullable
Short description, if available
address
string
Full formatted address
neighborhood
string, nullable
Neighborhood name
street
string, nullable
Street address
district
string, nullable
District or city-level area
postalCode
string, nullable
Postal code
city
string, nullable
City name
country
string, nullable
Country name
location
object
Latitude/longitude pair — see Location object
website
string, nullable
Place's website URL
phone
string, nullable
Formatted phone number
price
string, nullable
Price range indicator (e.g. $10–20)
totalScore
number
Average rating
placeId
string
Google Place ID
fid
string
Google Maps feature ID, of the form 0x...:0x... — use this to fetch full place details via Get Place
reviewsCount
integer
Total number of reviews
categories
array
Place category labels
openingHours
array
Opening hours per weekday
additionalInfo
object
Grouped feature flags (e.g. Service options, Accessibility, Offerings)
Location object
lat
number
Latitude
lng
number
Longitude
Place object
url
string
Google Maps URL for the place
title
string
Place name
address
string
Full formatted address
neighborhood
string, nullable
Neighborhood name
street
string, nullable
Street address
district
string, nullable
District or city-level area
postalCode
string, nullable
Postal code
city
string, nullable
City name
location
object
Latitude/longitude pair — see Location object
website
string, nullable
Place's website URL
phone
string, nullable
Formatted phone number
phoneUnformatted
string, nullable
Phone number without formatting
plusCode
string, nullable
Google Plus Code
price
string, nullable
Price range indicator
totalScore
number
Average rating
placeId
string
Google Place ID
cid
string
Google Maps client ID
fid
string
Google Maps feature ID, of the form 0x...:0x...
reviewsCount
integer
Total number of reviews
reviewsDistribution
object
Review count broken down by star rating — see Reviews distribution object
categories
array
Place category labels
additionalInfo
object
Grouped feature flags (e.g. Service options, Accessibility, Amenities)
Reviews distribution object
oneStar
integer
Count of 1-star reviews
twoStar
integer
Count of 2-star reviews
threeStar
integer
Count of 3-star reviews
fourStar
integer
Count of 4-star reviews
fiveStar
integer
Count of 5-star reviews
Place review object
id
string
Review ID
link
string
Permalink to the review
text
string
Review body
stars
integer
Rating, 1–5
date
integer
Posted timestamp, Unix milliseconds
dateIso
string (date-time)
Posted timestamp, ISO 8601
likes
integer, nullable
Number of likes on the review
photos
array
Photo URLs attached to the review
reviewer
object
Reviewer who left the review — see Reviewer object
ownersResponse
object
Owner's response to the review (empty object when none)
details
object
Free-form key/value metadata (e.g. Visited on, Wait time)
Reviewer object
name
string
Reviewer's display name
photo
string
Reviewer's profile photo URL
url
string
Link to the reviewer's Google Maps profile
totalReviews
integer
Total reviews the reviewer has written
totalPhotos
integer
Total photos the reviewer has uploaded
Finding Place IDs
Search Places, Get Place, and Get Place Reviews each expect a different identifier — they are not interchangeable:
FID: the feature ID returned as
fidon both Place search result objects and Place objects, of the form0x47e671d877937b0f:0xb975fcfa192f84d4(two0x-prefixed hex groups separated by a colon). Run Search Places first to discover a place'sfid, then pass it as the path parameter to Get Place (/google-maps/place/{fid}) for full details.Place URL: the full
google.com/maps/place/...URL for a place, returned asurlon both search and detail responses. Pass this — not thefid— asplaceUrlto Get Place Reviews (/google-maps/place/reviews). Anfidcannot be substituted forplaceUrl; the reviews endpoint requires the full URL string.
In short: get the fid from a search result to look up place details, but get the url from that same search result to look up reviews.
Python Example: Searching, Then Fetching Reviews
This example searches for places matching a query, then uses the url from the first result to fetch its reviews — illustrating why fid and placeUrl are not interchangeable:
Each request is billed independently, with the charged amount reported in that response's pricing.creditsCharged — there's no separate "fetch everything in one call" endpoint.
FAQ
Next Steps
API Integration Guide — integrate the Pullbay API into your backend application.
n8n Integration Guide — set up automated workflows using n8n with no coding required.
Services Overview — explore all available Pullbay services.
Last updated