GET /business_photos

Business Photos

Retrieve photos for a specific business on Google Maps with category filtering and pagination.

Google Maps Scraper API

Retrieve photos for a specific business. Supports filtering by photo category and pagination for businesses with large photo collections. Use the Business Photos Categories endpoint to get the hash value for a category before filtering.

HTTP Request

1
GET /business_photos

Parameters

ParameterTypeRequiredDefaultDescription
business_idstringYesBusiness identifier in hex format (0x...:0x...). Use the google_id from Locate and Search
languagestringNo"en"Language code for the response
countrystringNo"us"Country code for regional context
limitintegerNo20Maximum number of photos to return
category_hashstringNoFilter by category. Pass the hash value from Business Photos Categories , not the category name
next_page_tokenstringNoPass the next_token from a previous response to fetch the next page

Response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "status": true,
  "request_id": "ca2f51cd-1788-e031-e1cd-24e5921b",
  "data": [
    {
      "id": "CIABIhC3GgJKS1VD-Z7L_cnXJfrU",
      "url": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWmcmS33cpNCqE2N...=w203-h152-k-no",
      "max_size": [4000, 3000],
      "date": "2026-7-14",
      "aspect_ratio": 1.3333,
      "latitude": -75.1591103,
      "longitude": 39.9528835,
      "timestamp": 1783987200
    }
  ],
  "next_token": "EvgDKYQi49-NlUMIDwAAAAEAAAMAAAAAAAAAAAAA...",
  "request_params": {
    "business_id": "0x89c6c62958fb0109:0xcd8fd007dc1d6b01",
    "limit": "20"
  }
}

Response Fields

FieldTypeDescription
statusbooleantrue when the request succeeded
request_idstringUnique identifier for this request
dataarrayList of photos
data[].idstringUnique photo identifier
data[].urlstringPhoto URL. The trailing =w203-h152-k-no sets the served size
data[].max_sizearray[width, height] of the original in pixels
data[].datestringUpload date as YYYY-M-D (not zero-padded)
data[].aspect_rationumberWidth divided by height
data[].latitudenumberSee the note below on axis order
data[].longitudenumberSee the note below on axis order
data[].timestampintegerUpload time as Unix epoch seconds
next_tokenstringToken for the next page. Pass it back as next_page_token

Notes

  • latitude and longitude are swapped in this response. For a Philadelphia business the API returns latitude: -75.15, longitude: 39.95, but Philadelphia is at 39.95 N, -75.15 W. Read latitude as the longitude and longitude as the latitude, or swap them on ingest.
  • Requesting a larger limit works here, unlike Business Reviews where limit is capped at 20. A request for 50 photos returns 50.
  • Passing a category name (e.g. category=Latest) returns an empty data array rather than an error. Use category_hash with the hash value instead.
  • To get a higher-resolution image, replace the size suffix on url (e.g. =w1600-h1200-k-no) or use the dimensions in max_size.

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
27
28
import requests

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

querystring = {
    "business_id": "0x89c6c62958fb0109:0xcd8fd007dc1d6b01",
    "language": "en",
    "country": "us",
    "limit": "20"
}

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()

for photo in data["data"]:
    width, height = photo["max_size"]
    print(f"{photo['date']} - {width}x{height}")
    print(f"  {photo['url']}")

# Fetch the next page if there is one
if data.get("next_token"):
    querystring["next_page_token"] = data["next_token"]
    next_response = requests.get(url, headers=headers, params=querystring)
 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
const url = "https://google-maps-extractor2.p.rapidapi.com/business_photos";

const params = new URLSearchParams({
  business_id: "0x89c6c62958fb0109:0xcd8fd007dc1d6b01",
  language: "en",
  country: "us",
  limit: "20",
});

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();

data.data.forEach((photo) => {
  const [width, height] = photo.max_size;
  console.log(`${photo.date} - ${width}x${height}`);
  console.log(`  ${photo.url}`);
});

// Pass data.next_token back as next_page_token for the following page
1
2
3
4
5
6
7
curl -G "https://google-maps-extractor2.p.rapidapi.com/business_photos" \
  --data-urlencode "business_id=0x89c6c62958fb0109:0xcd8fd007dc1d6b01" \
  --data-urlencode "language=en" \
  --data-urlencode "country=us" \
  --data-urlencode "limit=20" \
  -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