{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Scraper - Every Business in an Area",
    "description": "Get every business in a city, county or ZIP code from Google Maps, not only the first 120. Each row has name, address, phone, website, rating, reviews, hours, categories and whether the listing is claimed. You pay only for places delivered; scheduled runs can return only new places.",
    "version": "1.0",
    "x-build-id": "i9p8wKjQo0Echwqq4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mediocre_interest~google-maps-business-list/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mediocre_interest-google-maps-business-list",
        "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/mediocre_interest~google-maps-business-list/runs": {
      "post": {
        "operationId": "runs-sync-mediocre_interest-google-maps-business-list",
        "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/mediocre_interest~google-maps-business-list/run-sync": {
      "post": {
        "operationId": "run-sync-mediocre_interest-google-maps-business-list",
        "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": {
          "searchTerms": {
            "title": "Search terms",
            "maxItems": 10,
            "type": "array",
            "description": "What you would type into Google Maps, one per line, up to 10, such as plumber or coffee shop. Each is searched across the whole location. Leave empty to get a free sample instead: coffee shops in Austin, TX from a saved search, which searches nothing and costs nothing.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, county, state, ZIP or postal code, or country to search, such as Austin, TX or 90210. The whole area is searched."
          },
          "maxPlaces": {
            "title": "Maximum places",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many places. You are charged once per place returned. 0 means no limit: the whole area is searched.",
            "default": 500
          },
          "skipClosedPlaces": {
            "title": "Skip permanently closed places",
            "type": "boolean",
            "description": "Leave out businesses Google marks as permanently closed. Turn it off to keep them, marked in isPermanentlyClosed.",
            "default": true
          },
          "onlyMatchingCategory": {
            "title": "Only places of the kind you searched for",
            "type": "boolean",
            "description": "Leave out the other businesses Google Maps lists once an area runs out of what you searched for, such as handymen and hardware stores in a search for plumbers. A place is kept when one of its Google categories holds every word of one of your search terms; words such as near me and best are ignored. Use Google's own word for the kind: a coffee shop Google lists only as Cafe is left out of a search for coffee shop.",
            "default": false
          },
          "website": {
            "title": "Website",
            "enum": [
              "any",
              "with",
              "without"
            ],
            "type": "string",
            "description": "Keep places by whether their Google listing shows a website.",
            "default": "any"
          },
          "claimStatus": {
            "title": "Listing claimed by the owner",
            "enum": [
              "any",
              "claimed",
              "unclaimed"
            ],
            "type": "string",
            "description": "Keep places by whether the owner has claimed the Google listing. Unclaimed listings show \"Claim this business\" on Google Maps.",
            "default": "any"
          },
          "rating": {
            "title": "Rating",
            "enum": [
              "any",
              "4plus",
              "below4",
              "below3",
              "none"
            ],
            "type": "string",
            "description": "Keep places by their Google star rating.",
            "default": "any"
          },
          "onlyNewPlaces": {
            "title": "Only places not returned before",
            "type": "boolean",
            "description": "Return only places that earlier runs with the same search terms and location did not return. Schedule the Actor with this on to get just the new listings each time. Every run remembers the places it returned, in the key-value store google-maps-business-list-seen in your account: delete that store to start over.",
            "default": false
          },
          "scrapeContacts": {
            "title": "Find emails and social profiles",
            "type": "boolean",
            "description": "Visit each business's own website and read its email addresses and social profiles off it, into the emails, facebook, instagram, linkedin, twitter, youtube and tiktok fields. One or two extra requests per place that has a website. You are charged for this only where something is found. Business addresses only: personal mailboxes such as gmail.com are left out.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "No proxy by default: Google Maps answers Apify's own servers directly, faster and more completely than through a datacenter proxy. If a run fails because Google refused the search, choose the RESIDENTIAL proxy group here.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}