{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Photos Scraper",
    "description": "Scrape public photos from Google Maps places. Extract full-resolution image URLs, thumbnails, photo IDs, dimensions, contributor details, dates, captions, photo coordinates and place metadata from Maps URLs, Place IDs, CIDs, data IDs, business names or coordinates. No Google login or API key.",
    "version": "1.0",
    "x-build-id": "e1gVtPdIZWpqEIHTb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/coregent~google-maps-photos-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-coregent-google-maps-photos-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/coregent~google-maps-photos-scraper/runs": {
      "post": {
        "operationId": "runs-sync-coregent-google-maps-photos-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/coregent~google-maps-photos-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-coregent-google-maps-photos-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "startUrls": {
            "title": "Google Maps place URLs",
            "type": "array",
            "description": "Google Maps place URLs or short share links (maps.app.goo.gl/…). One place per URL. The sample place is ignored automatically when you fill any other place input.",
            "default": [
              {
                "url": "https://www.google.com/maps/place/?q=place_id:ChIJ3S-JXmauEmsRUcIaWtf4MzE"
              }
            ],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "placeIds": {
            "title": "Place IDs",
            "type": "array",
            "description": "Google Place IDs, e.g. ChIJN1t_tDeuEmsRUsoyG83frY4.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "cids": {
            "title": "CIDs",
            "type": "array",
            "description": "Google Maps CIDs (customer IDs) — digits only, e.g. 3545450935484072529.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "dataIds": {
            "title": "Data IDs",
            "type": "array",
            "description": "Google Maps data / feature IDs in 0x…:0x… form, e.g. 0x6b12ae665e892fdd:0x3133f8d75a1ac251.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "businessNames": {
            "title": "Business names",
            "type": "array",
            "description": "Business names to look up on Google Maps (combined with Location when set). If a name matches several places, that input returns an AMBIGUOUS_PLACE status instead of guessing.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Narrows Business names, e.g. Canberra, ACT, Australia.",
            "default": ""
          },
          "points": {
            "title": "Coordinates + radius",
            "type": "array",
            "description": "Find public photos near coordinates instead of a place. Each item: {\"lat\": 38.8960382, \"lng\": -77.0365611, \"radiusMeters\": 25, \"maxResults\": 20}. radiusMeters up to 1,000, maxResults up to 100. Google's own Street View panoramas are not included.",
            "default": []
          },
          "maxPhotosPerPlace": {
            "title": "Max photos per place",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum photos returned per place. Common values: 20, 50, 100, 500, 1000. Google may list fewer photos to signed-out visitors than its gallery total — the place summary row reports this.",
            "default": 100
          },
          "photosNewerThan": {
            "title": "Photos uploaded after",
            "type": "string",
            "description": "Keep only photos uploaded on or after this date. Relative (\"30 days\", \"6 months\", \"1 year\") or absolute (\"2026-01-01\"). Empty = no limit. Filtered-out photos are never charged.",
            "default": ""
          },
          "includeContributor": {
            "title": "Include contributor",
            "type": "boolean",
            "description": "Contributor name, profile URL and ID. Also enables the USER / OWNER photo type.",
            "default": true
          },
          "includeDimensions": {
            "title": "Include dimensions",
            "type": "boolean",
            "description": "Original width and height in pixels, as reported by Google (images are never downloaded).",
            "default": true
          },
          "includeDate": {
            "title": "Include dates",
            "type": "boolean",
            "description": "Date taken and date uploaded, kept separate. Google gives calendar dates only, so no time of day is invented.",
            "default": true
          },
          "includeCaption": {
            "title": "Include caption",
            "type": "boolean",
            "description": "The photo caption, where the contributor wrote one.",
            "default": true
          },
          "includeGeo": {
            "title": "Include photo coordinates",
            "type": "boolean",
            "description": "Photo-specific latitude / longitude, kept separate from the place location.",
            "default": true
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Google Maps interface language code, e.g. en, de, fr. Affects place names and categories.",
            "default": "en"
          },
          "emitPlaceSummaries": {
            "title": "Add place summary rows",
            "type": "boolean",
            "description": "Add one free place_summary row per place or point with its status, coverage and counts (also used to report failed places). Never charged.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy configuration. Defaults to Apify Datacenter (useApifyProxy: true). Apify Residential is NOT supported and fails the run at startup; for residential routing supply your own provider via Custom proxy URLs (proxyConfiguration.proxyUrls).",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}