{
  "openapi": "3.0.1",
  "info": {
    "title": "B2B Leads Scraper - Google Maps Lead Generation & Prospecting",
    "description": "Turn any Google Maps search into scored B2B leads. Finds local businesses missing the software you sell — booking, payments, ecommerce, chat, email marketing, analytics — with phone, email and ready outreach angles. Never charged for unreachable or parked sites. $0.01 per lead.",
    "version": "1.6",
    "x-build-id": "dDfQfQZS91nFuuKzK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/conversational_kermis~lead-qualifier/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-conversational_kermis-lead-qualifier",
        "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/conversational_kermis~lead-qualifier/runs": {
      "post": {
        "operationId": "runs-sync-conversational_kermis-lead-qualifier",
        "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/conversational_kermis~lead-qualifier/run-sync": {
      "post": {
        "operationId": "run-sync-conversational_kermis-lead-qualifier",
        "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": {
          "searchQuery": {
            "title": "Business Category",
            "type": "string",
            "description": "What type of business to search for (e.g., 'nail salons', 'dental clinics', 'yoga studios', 'restaurants')."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City or region to search in (e.g., 'Prague', 'Austin, TX', 'London')."
          },
          "maxPlaces": {
            "title": "Max Places",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of businesses to find from Google Maps. The upstream Google Maps Scraper bills your account directly at ~$0.004/place (its rate, separate from this actor's fees).",
            "default": 50
          },
          "datasetId": {
            "title": "Pre-scraped Dataset ID",
            "type": "string",
            "description": "Use an existing Apify dataset instead of searching Google Maps. The dataset must contain records with a 'website' or 'url' field."
          },
          "urls": {
            "title": "Website URLs",
            "type": "array",
            "description": "Manually provide website URLs to scan. Each item should be an object with at least a 'url' field, and optionally 'name', 'phone', 'address'."
          },
          "buyerPersona": {
            "title": "What Are You Selling?",
            "enum": [
              "booking_software",
              "ecommerce_platform",
              "marketing_automation",
              "website_builder",
              "payment_processor",
              "chat_widget",
              "analytics_platform",
              "general"
            ],
            "type": "string",
            "description": "Your product category. This determines which missing technologies score highest as buying signals.",
            "default": "general"
          },
          "minScore": {
            "title": "Minimum Lead Score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only output leads scoring at or above this threshold (0-100). Set to 70 for hot leads only.",
            "default": 0
          },
          "generateProposal": {
            "title": "Generate PDF Proposals",
            "type": "boolean",
            "description": "Generate branded PDF proposals, outreach emails, and action plans for top leads. Warning: adds $0.05 per proposal and increases runtime.",
            "default": false
          },
          "maxProposals": {
            "title": "Max Proposals",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of proposals to generate (from top-scoring leads).",
            "default": 5
          },
          "agencyName": {
            "title": "Your Agency Name",
            "type": "string",
            "description": "Your agency or business name for proposal branding."
          },
          "agencyEmail": {
            "title": "Contact Email",
            "type": "string",
            "description": "Email address shown on proposals."
          },
          "agencyPhone": {
            "title": "Contact Phone",
            "type": "string",
            "description": "Phone number shown on proposals."
          },
          "agencyColors": {
            "title": "Brand Colors",
            "type": "object",
            "description": "Custom colors for proposal branding. Keys: primaryColor, secondaryColor, accentColor (hex values)."
          },
          "pricingTiers": {
            "title": "Pricing Tiers",
            "type": "array",
            "description": "Custom pricing tiers for proposals. Each item: {name, price, period, featured, items: [...]}. Leave empty for defaults."
          },
          "enableLighthouse": {
            "title": "Enable Lighthouse Audit",
            "type": "boolean",
            "description": "Run Google Lighthouse on each website for Core Web Vitals and performance scores. Warning: adds ~$0.02 per site and can significantly slow the run.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Used only to retry websites that block the direct request (HTTP 403/429 and similar bot protection). Sites that respond normally are fetched directly, so proxy traffic stays limited to the ones that need it. Residential proxies get through the most blocks.",
            "default": {
              "useApifyProxy": true
            }
          },
          "concurrency": {
            "title": "Scan Concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many websites to scan in parallel. Higher = faster but uses more memory.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}