{
  "openapi": "3.0.1",
  "info": {
    "title": "Local Business Lead Finder",
    "description": "Discover, extract, and enrich local business leads from Google Maps. Find businesses by keyword and location, collect contact details, emails, and social profiles, and export clean, deduplicated data. Built for automation, CRMs, and recurring lead generation workflows.",
    "version": "1.0",
    "x-build-id": "3YVv6YpTs05RSXvEd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solutionssmart~local-business-lead-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solutionssmart-local-business-lead-finder",
        "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/solutionssmart~local-business-lead-finder/runs": {
      "post": {
        "operationId": "runs-sync-solutionssmart-local-business-lead-finder",
        "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/solutionssmart~local-business-lead-finder/run-sync": {
      "post": {
        "operationId": "run-sync-solutionssmart-local-business-lead-finder",
        "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": [
          "queries"
        ],
        "properties": {
          "queries": {
            "title": "🔎 Search Queries",
            "type": "array",
            "description": "List of business types to find (e.g. ['dentist', 'pizza']).",
            "default": [
              "dentist"
            ],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "📍 Locations (Text)",
            "type": "array",
            "description": "List of locations to search in (e.g. ['Berlin', 'Hamburg']).",
            "default": [
              "Berlin, Germany"
            ],
            "items": {
              "type": "string"
            }
          },
          "geo": {
            "title": "🗺️ Location (Lat/Lng)",
            "type": "object",
            "description": "Search by coordinates and radius instead of text location.",
            "properties": {
              "lat": {
                "title": "🧭 Latitude",
                "type": "number",
                "description": "Latitude coordinate",
                "editor": "number"
              },
              "lng": {
                "title": "🧭 Longitude",
                "type": "number",
                "description": "Longitude coordinate",
                "editor": "number"
              },
              "radiusKm": {
                "title": "📏 Radius (km)",
                "type": "number",
                "default": 5,
                "description": "Search radius in kilometers",
                "editor": "number"
              }
            }
          },
          "maxResultsTotal": {
            "title": "📦 Max Results Total",
            "type": "integer",
            "description": "Maximum number of unique leads to output for the whole run.",
            "default": 10
          },
          "language": {
            "title": "🌐 Language",
            "enum": [
              "en",
              "en-gb",
              "en-au",
              "de",
              "fr",
              "es",
              "it",
              "pt",
              "pt-br",
              "nl",
              "pl",
              "ru",
              "ja",
              "zh-cn",
              "zh-tw",
              "ko",
              "ar",
              "hi",
              "tr",
              "sv",
              "da",
              "no",
              "fi",
              "el",
              "cs",
              "hu",
              "ro",
              "bg",
              "th",
              "vi",
              "id",
              "ms"
            ],
            "type": "string",
            "description": "Language for Google Maps interface.",
            "default": "en"
          },
          "includeClosed": {
            "title": "🏪 Include Closed Businesses",
            "type": "boolean",
            "description": "If true, includes businesses marked as permanently closed.",
            "default": false
          },
          "mode": {
            "title": "⚙️ Mode",
            "enum": [
              "fast",
              "deep"
            ],
            "type": "string",
            "description": "Fast mode extracts leads only. Deep mode enables website enrichment within the configured limits.",
            "default": "fast"
          },
          "enrichWebsite": {
            "title": "✨ Enrich With Website Data",
            "type": "boolean",
            "description": "Visit business websites to extract emails, phones, contact forms, and social links. Used only in deep mode.",
            "default": false
          },
          "emailScanDepth": {
            "title": "📬 Email Scan Depth",
            "type": "integer",
            "description": "Number of internal pages to scan for emails (e.g. /contact).",
            "default": 1
          },
          "maxWebsitesToEnrich": {
            "title": "🌐 Max Websites To Enrich",
            "type": "integer",
            "description": "Maximum number of unique websites to visit in deep mode.",
            "default": 25
          },
          "maxRunTimeSec": {
            "title": "⏱️ Max Run Time (sec)",
            "type": "integer",
            "description": "Gracefully stop the run when this runtime budget is reached.",
            "default": 120
          },
          "emailMxCheck": {
            "title": "🛡️ Verify Email Domains (MX)",
            "type": "boolean",
            "description": "If true, checks MX records for extracted email domains to improve email-quality confidence. Slower and adds DNS requests.",
            "default": false
          },
          "dedupeBy": {
            "title": "🧹 Deduplication Strategy",
            "enum": [
              "placeId",
              "website",
              "phone"
            ],
            "type": "string",
            "description": "Field to use for deduplication.",
            "default": "placeId"
          },
          "newOnlyOutput": {
            "title": "🆕 Output Only New Items",
            "type": "boolean",
            "description": "If true, outputs only new items not seen in previous runs. If false, outputs unique items from this run and marks them with isNew.",
            "default": true
          },
          "webhookUrl": {
            "title": "🪝 Webhook URL",
            "type": "string",
            "description": "URL to POST results to. Stored encrypted when saved (may contain auth tokens)."
          },
          "batchSize": {
            "title": "📬 Batch Size",
            "type": "integer",
            "description": "Number of items to batch before calling webhook.",
            "default": 50
          },
          "resourceProfile": {
            "title": "⚙️ Resource Profile (memory)",
            "enum": [
              "auto",
              "low",
              "standard",
              "high"
            ],
            "type": "string",
            "description": "Preset for concurrency based on the memory you allocate when starting the run.",
            "default": "auto"
          },
          "detailConcurrency": {
            "title": "🚄 Detail Concurrency",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Place detail pages fetched in parallel. If not set, uses the value from Resource profile."
          },
          "enrichmentConcurrency": {
            "title": "⚡ Enrichment Concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Website pages fetched in parallel during enrichment. If not set, uses the value from Resource profile."
          },
          "debug": {
            "title": "🐞 Debug Mode",
            "type": "boolean",
            "description": "Enable verbose logging (includes URLs and business details in logs; use only when needed).",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}