GET /locate_and_search

Locate and Search

Geocode a location and search for nearby businesses in a single API call.

Google Maps Scraper API

Combine geocoding and business search into a single API call. This endpoint first resolves your query to geographic coordinates, then searches for businesses in that area. Supports pagination with limit and offset parameters for retrieving large result sets.

HTTP Request

1
GET /locate_and_search

Parameters

ParameterTypeRequiredDefaultDescription
querystringYesSearch query including location context (e.g., “restaurants in Chicago”)
languagestringNo"en"Language code for the response
countrystringNo"us"Country code for regional bias
zoomintegerNo7Map zoom level (3-21). Higher values narrow the search area
limitintegerNo20Results to return per request. 20 is the default, not a cap — values up to 999 are accepted
offsetintegerNo0Number of results to skip for pagination

On limit: the default of 20 is often mistaken for a maximum. It is not. Values are accepted up to 999, and the practical ceiling is how many businesses match your query, not the parameter. A live test of restaurants in Barcelona at limit=200 returned 184 results in a single request. Sparse queries return fewer, so treat limit as “give me up to this many” and paginate with offset when you need more.

Response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
  "status": true,
  "data": [
    {
      "name": "TJ Plumber Austin",
      "place_id": "ChIJM5TcYiS3RIYRy5xSroPDSyU",
      "google_id": "0x8644b72462dc9433:0x254bc383ae529ccb",
      "cid": "2687456572989414603",
      "full_address": "TJ Plumber Austin, 3605 Thompson St, Austin, TX 78702",
      "detailed_address": {
        "district": "Govalle",
        "street": "3605 Thompson St",
        "city": "Austin",
        "zip_code": "78702",
        "state": "Texas",
        "country": "US"
      },
      "phone": "(512) 661-7896",
      "full_phone": "+15126617896",
      "rating": 4.7,
      "reviews_count": 23,
      "main_category": "Plumber",
      "categories": ["Plumber"],
      "latitude": 30.2658307,
      "longitude": -97.6979515,
      "website_url": "https://tjplumberaustin.com/",
      "website_domain": "tjplumberaustin.com",
      "owner_name": "TJ Plumber Austin (Owner)",
      "can_claim": false,
      "status": "OPEN",
      "price_range": null,
      "time_zone": "America/Chicago"
    }
  ],
  "location": {
    "latitude": 30.267153,
    "longitude": -97.7430608,
    "altitude": 440421.35,
    "zoom": 7
  }
}

Response Fields

FieldTypeDescription
statusbooleanRequest status (true on success)
dataarrayList of matching businesses
data[].namestringBusiness name
data[].place_idstringGoogle place ID (use in Maps URLs: ?q=place_id:...)
data[].google_idstringGoogle feature ID (hex pair)
data[].cidstringGoogle customer ID
data[].full_addressstringFull address including business name
data[].detailed_addressobjectAddress broken into street, city, state, zip, country
data[].phonestringFormatted phone number
data[].full_phonestringPhone in E.164 format
data[].ratingnumberAverage rating (1-5)
data[].reviews_countintegerTotal number of reviews
data[].main_categorystringPrimary business category
data[].categoriesarrayAll business categories
data[].latitudenumberBusiness latitude
data[].longitudenumberBusiness longitude
data[].website_urlstring|nullBusiness website URL (null when the listing has none)
data[].website_domainstring|nullDomain of the website URL
data[].owner_namestringListing owner name
data[].can_claimbooleanWhether the listing is unclaimed
data[].statusstringOpen status (e.g. OPEN)
data[].price_rangestring|nullPrice range indicator
data[].time_zonestringIANA time zone of the business
locationobjectResolved coordinates and zoom for the query location

Each business also carries working_hours, about, featured_photo, order_online_url, reservation fields, and hotel-specific fields (hotel_stars, hotel_about) where applicable.

Code Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import requests

url = "https://google-maps-extractor2.p.rapidapi.com/locate_and_search"

querystring = {
    "query": "restaurants in Chicago",
    "language": "en",
    "country": "us",
    "zoom": "7",
    "limit": "20",
    "offset": "0"
}

headers = {
    "X-RapidAPI-Key": "YOUR_API_KEY",
    "X-RapidAPI-Host": "google-maps-extractor2.p.rapidapi.com"
}

response = requests.get(url, headers=headers, params=querystring)
data = response.json()

print(f"Location: {data['location']['latitude']}, {data['location']['longitude']}\n")

for business in data["data"]:
    print(f"{business['name']} - {business['rating']} stars")
    print(f"  {business['full_address']}\n")
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const url = "https://google-maps-extractor2.p.rapidapi.com/locate_and_search";

const params = new URLSearchParams({
  query: "restaurants in Chicago",
  language: "en",
  country: "us",
  zoom: "7",
  limit: "20",
  offset: "0",
});

const response = await fetch(`${url}?${params}`, {
  method: "GET",
  headers: {
    "X-RapidAPI-Key": "YOUR_API_KEY",
    "X-RapidAPI-Host": "google-maps-extractor2.p.rapidapi.com",
  },
});

const data = await response.json();

console.log(`Location: ${data.location.latitude}, ${data.location.longitude}\n`);

data.data.forEach((business) => {
  console.log(`${business.name} - ${business.rating} stars`);
  console.log(`  ${business.full_address}\n`);
});
1
2
3
4
5
6
7
8
9
curl -G "https://google-maps-extractor2.p.rapidapi.com/locate_and_search" \
  --data-urlencode "query=restaurants in Chicago" \
  --data-urlencode "language=en" \
  --data-urlencode "country=us" \
  --data-urlencode "zoom=7" \
  --data-urlencode "limit=20" \
  --data-urlencode "offset=0" \
  -H "X-RapidAPI-Key: YOUR_API_KEY" \
  -H "X-RapidAPI-Host: google-maps-extractor2.p.rapidapi.com"
Start building today

Get your API key and make your first request in under a minute.

Get Your API Key on RapidAPI