{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Business Verification & Status Monitoring",
    "description": "Find neglected Google Business Profiles in any area: unclaimed listings, businesses with no website or phone, thin profiles and closed locations - each scored as a GMB sales opportunity. Built for local SEO agencies prospecting claim and optimisation clients. JSON/CSV/Excel/NDJSON.",
    "version": "0.0",
    "x-build-id": "f8Zmfo3efqv2cKSMe"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fanndev~google-maps-business-status-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fanndev-google-maps-business-status-monitor",
        "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/fanndev~google-maps-business-status-monitor/runs": {
      "post": {
        "operationId": "runs-sync-fanndev-google-maps-business-status-monitor",
        "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/fanndev~google-maps-business-status-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-fanndev-google-maps-business-status-monitor",
        "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": {
          "searchQueries": {
            "title": "Business types to audit",
            "type": "array",
            "description": "Categories to sweep, e.g. 'dentist', 'salon', 'warung'. Each runs across the location below. A location is required with queries.",
            "items": {
              "type": "string"
            }
          },
          "areaName": {
            "title": "Location - named area",
            "type": "string",
            "description": "Built-in city or country, e.g. 'jakarta', 'bali', 'london'. For anywhere else use a centre point with a radius, or a bounding box."
          },
          "centerLatitude": {
            "title": "Location - centre latitude",
            "type": "string",
            "description": "Latitude of the centre point. Use with centre longitude and radius."
          },
          "centerLongitude": {
            "title": "Location - centre longitude",
            "type": "string",
            "description": "Longitude of the centre point."
          },
          "radiusKm": {
            "title": "Location - radius (km)",
            "type": "string",
            "description": "Audit businesses within this many kilometres of the centre point."
          },
          "boundingBox": {
            "title": "Location - bounding box [south, west, north, east]",
            "type": "array",
            "description": "Most precise option. Tiled into several search points, then filtered to the box using each business's real coordinates."
          },
          "tileSizeKm": {
            "title": "Search tile size (km)",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Spacing of search points inside your area. Smaller = more thorough, more requests. Leave empty to choose automatically."
          },
          "maxResultsPerQuery": {
            "title": "Max businesses per query",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop each query after this many businesses. Google returns 20 per request and every signal here comes from that one request.",
            "default": 100
          },
          "placeUrls": {
            "title": "Specific Google Maps URLs",
            "type": "array",
            "description": "Optional. Audit named businesses directly instead of sweeping an area - this is also the only way to confirm a closed listing, since Google keeps closed businesses out of search results.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "placeIds": {
            "title": "Specific Place IDs / CIDs / feature IDs",
            "type": "array",
            "description": "Optional. Accepts a Place ID (ChIJ...), a numeric CID, or a raw feature ID (0x...:0x...).",
            "items": {
              "type": "string"
            }
          },
          "onlyUnclaimed": {
            "title": "Only unclaimed listings",
            "type": "boolean",
            "description": "Keep only businesses that nobody has claimed on Google Business Profile - the core prospect list for a GMB claim service.",
            "default": false
          },
          "onlyWithoutWebsite": {
            "title": "Only businesses without a website",
            "type": "boolean",
            "description": "Keep only businesses with no website listed - the natural upsell after a profile claim.",
            "default": false
          },
          "onlyWithoutPhone": {
            "title": "Only businesses without a phone number",
            "type": "boolean",
            "description": "Keep only businesses with no phone number on their listing.",
            "default": false
          },
          "onlyClosed": {
            "title": "Only closed businesses",
            "type": "boolean",
            "description": "Keep only listings marked permanently or temporarily closed. Note Google excludes closed businesses from search results, so this realistically only returns anything for places you supply by URL or ID.",
            "default": false
          },
          "excludePermanentlyClosed": {
            "title": "Exclude permanently closed",
            "type": "boolean",
            "description": "Drop permanently closed listings - they are never a sales prospect.",
            "default": false
          },
          "minOpportunityScore": {
            "title": "Minimum opportunity score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Keep only businesses scoring at or above this. Unclaimed is worth 40, no website 25, no phone 10, no hours 10, few reviews 10, low rating 5. 65+ is a strong pitch."
          },
          "verifyWithPlaceDetails": {
            "title": "Verify each listing against its detail page",
            "type": "boolean",
            "description": "Fetch each business's detail page for a second look. Needed to detect closures and to fill in gaps Google trims from search results. Costs one extra request per business, so leave it off for large sweeps.",
            "default": false
          },
          "emitAreaSummary": {
            "title": "Emit an area summary row",
            "type": "boolean",
            "description": "Add one AREA_SUMMARY record with market-level totals: how many listings are unclaimed, how many lack a website, and how many are both.",
            "default": true
          },
          "exportFormats": {
            "title": "Extra export files",
            "type": "array",
            "description": "Also write the results to the key-value store in these formats. The Apify dataset is always produced regardless.",
            "items": {
              "type": "string",
              "enum": [
                "json",
                "csv",
                "excel",
                "ndjson"
              ],
              "enumTitles": [
                "JSON",
                "CSV",
                "Excel (.xlsx)",
                "NDJSON"
              ]
            },
            "default": []
          },
          "language": {
            "title": "Language (hl)",
            "type": "string",
            "description": "Google interface language. Keep as 'en' unless you need local category names - the closure wording this actor matches is English.",
            "default": "en"
          },
          "region": {
            "title": "Region (gl)",
            "type": "string",
            "description": "Two-letter country code biasing Google's results, e.g. US, ID, GB. Set this to the market you are prospecting.",
            "default": "US"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Off by default and that is the right setting here: these endpoints have no WAF and the claim signal survives even Google's reduced record, so the platform's own IP works and costs nothing. RESIDENTIAL is not recommended for Google.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}