POST /api/google/maps/places/search
Price: 3 credits
Search Google Maps places by text query. Returns places with name, address, rating, categories, GPS.
Search Google Maps for places (businesses, points of interest) by free-text query. Returns name, feature_id, address, rating, review count, categories, coordinates. Use feature_id with the place, reviews, and photos endpoints.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)query string required — Search query (examples: "starbucks times square new york"; minLength: 1)count integer — Max number of results (default: 20; min: 1)latitude number nullable — Latitude to bias results toward; requires longitude (min: -90; max: 90)longitude number nullable — Longitude to bias results toward; requires latitude (min: -180; max: 180)zoom number nullable — Map zoom level controlling the search radius; requires latitude and longitude (min: 1; max: 21)@type string (default: "GooglePlace")feature_id string requiredname string requiredplace_id string nullableentity_id string nullablecid string nullableaddress string nullablecity string nullablestate string nullablepostal_code string nullablecountry string nullableneighborhood string nullablelatitude number nullablelongitude number nullabletimezone string nullablecategories array (default: [])primary_category string nullablerating number nullablereview_count integer nullablerating_distribution object nullable@type string (default: "GooglePlaceRatingDistribution")star_1 integer nullablestar_2 integer nullablestar_3 integer nullablestar_4 integer nullablestar_5 integer nullableprice_level string nullablephone string nullablewebsite string nullabledomain string nullabledescription string nullableeditorial_summary string nullabletime_spent string nullableimage string nullablemenu_url string nullableis_claimed boolean (default: false)owner object nullable@type string (default: "GooglePlaceOwner")id string nullablename string nullablehours array (default: [])@type string (default: "GooglePlaceHours")day string requiredhours string nullablepopular_times array (default: [])@type string (default: "GooglePlacePopularTimes")day string requiredhours array (default: [])@type string (default: "GooglePlacePopularHour")hour integer nullablebusy_percent integer nullableattributes array (default: [])@type string (default: "GooglePlaceAttributeGroup")name string requireditems array (default: [])actions array (default: [])@type string (default: "GooglePlaceAction")label string nullableprovider string nullableurl string requiredrelated_places array (default: [])@type string (default: "GoogleRelatedPlace")feature_id string nullablename string nullableprimary_category string nullablerating number nullablehotel object nullable@type string (default: "GooglePlaceHotel")hotel_class string nullableprice number nullableoffers array (default: [])@type string (default: "GooglePlaceHotelOffer")provider string nullableprice number nullableurl string nullableplus_code string nullableurl string nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — The entity was not found, or a precondition failed Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.