{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Business Leads Scraper",
    "description": "Extract business names, ratings, reviews, categories, addresses, phone numbers, websites, opening hours, and Google Maps URLs from search queries or place URLs.",
    "version": "1.0",
    "x-build-id": "zxRh6rxfgNEVBL9xm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/koushik_ai_devloper~google-maps-business-leads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-koushik_ai_devloper-google-maps-business-leads-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/koushik_ai_devloper~google-maps-business-leads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-koushik_ai_devloper-google-maps-business-leads-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/koushik_ai_devloper~google-maps-business-leads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-koushik_ai_devloper-google-maps-business-leads-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": {
          "locationMode": {
            "title": "Location input mode",
            "enum": [
              "guided",
              "custom"
            ],
            "type": "string",
            "description": "Use guided fields for clean lead searches, or use custom search queries when you already know exactly what to search.",
            "default": "guided"
          },
          "industry": {
            "title": "Industry",
            "enum": [
              "accountants",
              "auto repair shops",
              "beauty salons",
              "cafes",
              "car dealers",
              "cleaning services",
              "clinics",
              "coffee shops",
              "construction companies",
              "dentists",
              "digital marketing agencies",
              "electricians",
              "gyms",
              "hotels",
              "law firms",
              "medical stores",
              "plumbers",
              "real estate agents",
              "restaurants",
              "roofing contractors",
              "schools",
              "spas",
              "travel agencies",
              "custom"
            ],
            "type": "string",
            "description": "Choose the business category to search on Google Maps.",
            "default": "restaurants"
          },
          "customIndustry": {
            "title": "Custom industry",
            "type": "string",
            "description": "Used only when Industry is set to Custom. Example: ayurvedic clinics, solar panel installers, wedding photographers."
          },
          "country": {
            "title": "Country",
            "enum": [
              "India",
              "United States",
              "United Kingdom",
              "Canada",
              "Australia",
              "United Arab Emirates",
              "Singapore",
              "Germany",
              "France",
              "Italy",
              "Spain",
              "Netherlands",
              "Brazil",
              "Mexico",
              "South Africa",
              "custom"
            ],
            "type": "string",
            "description": "Country used to build guided Google Maps search queries.",
            "default": "India"
          },
          "customCountry": {
            "title": "Custom country",
            "type": "string",
            "description": "Used only when Country is set to Custom."
          },
          "state": {
            "title": "State / province / region",
            "type": "string",
            "description": "Optional. Example: Maharashtra, California, England, Ontario."
          },
          "district": {
            "title": "District / county",
            "type": "string",
            "description": "Optional. Example: Pune district, Los Angeles County, Greater London."
          },
          "city": {
            "title": "City / locality",
            "type": "string",
            "description": "Optional. Example: Pune, Austin, Dubai Marina. Add a city for better quality and faster runs."
          },
          "searchQueries": {
            "title": "Custom search queries",
            "type": "array",
            "description": "Optional advanced searches. Example: plumbers in Austin TX, coffee shops near Seattle, dentists in Miami.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Google Maps place or search URLs",
            "type": "array",
            "description": "Optional Google Maps URLs. Use place URLs to scrape exact businesses or search URLs to collect multiple results.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxResultsPerQuery": {
            "title": "Max results per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of places to save for each generated or custom search. 500 results can take a long time because each business page must be opened for reliable contact details.",
            "default": 100
          },
          "detailsLevel": {
            "title": "Data depth",
            "enum": [
              "fast",
              "contact",
              "extended"
            ],
            "type": "string",
            "description": "Fast is recommended for large result counts and lower runtime cost. Contact opens each business page to improve phone and website extraction. Extended also tries to collect opening hours and image URLs.",
            "default": "fast"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "Higher values are faster but can increase blocking. Use 8 with Fast mode and residential proxies for larger runs.",
            "default": 8
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "es",
              "fr",
              "de",
              "it",
              "pt",
              "nl",
              "pl",
              "hi"
            ],
            "type": "string",
            "description": "Google Maps interface language code used during scraping.",
            "default": "en"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential proxies are recommended for production Google Maps scraping, especially when collecting hundreds of results.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}