{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Scraper",
    "description": "🏷️ From $0.70 / 1K | Search Google Maps for any kind of business around any town or city worldwide. One row per business: name, address, phone, website, rating, and the emails published on its own website. Emails are charged only when found. No API key.",
    "version": "0.1",
    "x-build-id": "PKzz6XN66K22LaAoL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/wildorigins~google-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-wildorigins-google-maps-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/wildorigins~google-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-wildorigins-google-maps-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/wildorigins~google-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-wildorigins-google-maps-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",
        "required": [
          "searchTerms"
        ],
        "properties": {
          "searchTerms": {
            "title": "What to search for",
            "type": "array",
            "description": "The kinds of business to find, one per line, up to 50, written the way you would type them into Google Maps: plumbers, dentists, accountants, estate agents. Each term is searched separately over the same area, and a business found by two terms is returned once.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Where",
            "type": "string",
            "description": "A town or city anywhere in the world, written with its state or country when the name is shared, such as Austin, TX or Lyon, France. A UK postcode such as LS1 4AP or a district such as LS6 works too. The search area is sized to the place: a whole city for a city, about 2 km around a full postcode. To cover several places in one run, use locations instead or as well."
          },
          "locations": {
            "title": "More locations",
            "type": "array",
            "description": "Several towns, cities or UK postcodes, one per line, up to 50, all searched in the same run with every search term. A business found in two overlapping places or by two terms is returned and charged once. A location that cannot be found is named in the status message and skipped.",
            "items": {
              "type": "string"
            }
          },
          "radiusKm": {
            "title": "Radius in km",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How far from the centre of the location to search, from 1 to 30 km. Leave empty to size the area to the place itself. Businesses whose map pin falls outside the radius are not returned."
          },
          "maxPlacesPerSearch": {
            "title": "Maximum businesses per search term",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "The most businesses to return for each search term, from 1 to 2,000. The search stops early when the area has no more. A dense trade in a city typically yields 150 to 400.",
            "default": 200
          },
          "scrapeEmails": {
            "title": "Find emails on each business website",
            "type": "boolean",
            "description": "Read each business's own website, its homepage and its contact and about pages, for published email addresses, including ones hidden behind Cloudflare's email protection. Social profiles and directory listings given as a website are not read.",
            "default": true
          },
          "maxPagesPerSite": {
            "title": "Pages to read per website",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many pages of each business website to read for emails, including the homepage, from 1 to 8. Four covers the homepage, the contact page and the about page on almost every small business site.",
            "default": 4
          },
          "includeDecisionMakers": {
            "title": "Add LinkedIn decision makers",
            "type": "boolean",
            "description": "For each business with its own website, look for the owners, directors and founders who list it on their public LinkedIn profile, through a public search engine. No LinkedIn page is opened and no login is used. Each person comes with a name, title, LinkedIn URL and an email built from the business's own naming pattern.",
            "default": false
          },
          "maxDecisionMakersPerBusiness": {
            "title": "Maximum decision makers per business",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "The most people to return for one business when decision makers are on, from 1 to 10. People are taken in the order the search engine ranks them.",
            "default": 3
          },
          "skipClosed": {
            "title": "Skip permanently closed businesses",
            "type": "boolean",
            "description": "Leave out businesses Google Maps marks as permanently closed. Temporarily closed ones are always kept and flagged in the output.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Google Maps is read through Apify Proxy, starting on the account's default datacenter pool and moving a lane to residential addresses only after two refusals in a row. Leave this as it is unless you have your own proxies.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}