{
  "openapi": "3.0.1",
  "info": {
    "title": "G Maps Einstein Scraper B2B Lead Gen",
    "description": "Turn any Google Maps search into a scored B2B lead list: multi-niche search, a 300m Micro-Grid for near-100% city coverage, verified email deliverability, 5-platform social intelligence, ads/pixel radar, one-click CEO/Founder LinkedIn search, and a 0-100 Opportunity Score — styled Excel export.",
    "version": "1.0",
    "x-build-id": "RGYjmyMDvIdmCt91H"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dravyoka~g-maps-einstein-scraper-b2b-lead-gen/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dravyoka-g-maps-einstein-scraper-b2b-lead-gen",
        "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/dravyoka~g-maps-einstein-scraper-b2b-lead-gen/runs": {
      "post": {
        "operationId": "runs-sync-dravyoka-g-maps-einstein-scraper-b2b-lead-gen",
        "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/dravyoka~g-maps-einstein-scraper-b2b-lead-gen/run-sync": {
      "post": {
        "operationId": "run-sync-dravyoka-g-maps-einstein-scraper-b2b-lead-gen",
        "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",
          "country",
          "city"
        ],
        "properties": {
          "queries": {
            "title": "Business Categories / Niches",
            "type": "array",
            "description": "Enter one or multiple target niches — each is searched independently across the full grid (e.g. \"digital marketing agency\", \"web design agency\", \"seo agency\"). Enable Auto-Suggest & Expand Related Niches below to automatically add complementary terms (e.g. \"digital marketing agency\" also pulls in \"seo agency\" and \"social media marketing agency\").",
            "items": {
              "type": "string"
            },
            "default": [
              "digital marketing agency",
              "web design agency",
              "seo agency"
            ]
          },
          "autoExpandNiches": {
            "title": "[✓] Auto-Suggest & Expand Related Niches",
            "type": "boolean",
            "description": "Automatically broadens your search to closely related niches (e.g. \"digital marketing agency\" also searches \"seo agency\") to maximize the leads you find.",
            "default": true
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Target country (e.g. Saudi Arabia, United Arab Emirates, United States).",
            "default": "Saudi Arabia"
          },
          "city": {
            "title": "Target City",
            "type": "string",
            "description": "Target city (e.g. Riyadh, Dubai, New York).",
            "default": "Riyadh"
          },
          "maxListings": {
            "title": "Max Leads Cap",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum listings to extract per run. Recommended: 1,000 for optimal speed and complete data enrichment.",
            "default": 300
          },
          "radiusKm": {
            "title": "Search Radius (km from city center)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How far out from the city center to search. This is the hardest limit on how many leads exist to find: a large metro like Riyadh, Cairo or Los Angeles is 40-60km across, so a small radius can only ever see the downtown core no matter how long the run takes. 15km covers a genuine metro area; raise it to 25-50km for sprawling cities, lower it to 3-8km to target one dense district precisely. Larger radius = more grid cells = longer, costlier runs.",
            "default": 15
          },
          "densityPreset": {
            "title": "Geographic Grid Density",
            "enum": [
              "standard",
              "deep",
              "ultra"
            ],
            "type": "string",
            "description": "How finely the search area is divided. Standard (2.5km) is right for almost every run: measured on live data, a denser grid mostly re-finds businesses it already has — four cells at 1km spacing scraped 116 listings to yield just 48 unique. Deep (1.2km) tightens coverage in busier areas. Ultra (300m) is the exhaustive street-by-street micro-grid for a packed downtown core, and is much slower and costlier. Density is paired with the Search Radius automatically: a combination that would plan more grid cells than a single run can finish (Ultra past ~6km, Deep past ~25km) is eased to the next density down and reported in the log, so a run always completes instead of timing out with a partial list. To genuinely scan at Ultra density, lower the radius rather than raising it.",
            "default": "standard"
          },
          "queryLanguageMode": {
            "title": "Search Language",
            "enum": [
              "native_only",
              "english_only",
              "native_and_english",
              "arabic_and_english",
              "arabic_only"
            ],
            "type": "string",
            "description": "Pick whichever option matches your target market — live local Google Autocomplete powers every option, no matter which language you search in. • Native Language Only (default): searches strictly in the language you typed, no cross-language mixing — the safest choice for a tightly-local search. • English Only: English-language expansion only. • Native + English: expands in both your local language and English — best for markets where buyers search in a mix of both. • Arabic + English: dual-script expansion built for MENA & Gulf B2B markets. • Arabic Only: strictly Arabic-language expansion, no English mixed in.",
            "default": "native_only"
          },
          "enableRelevanceFilter": {
            "title": "[✓] Category Relevance Filter",
            "type": "boolean",
            "description": "Automatically discards listings whose Google Maps category or name doesn't semantically match what you searched for — keeps your dataset clean of off-topic results without you having to manually review them. Turn off only if you want every raw listing the grid finds, unfiltered.",
            "default": true
          },
          "requirePhone": {
            "title": "[✓] Require Phone Number (Strict Mode)",
            "type": "boolean",
            "description": "Discards any lead with no listed phone number before it ever reaches your dataset — guarantees every lead you get is cold-call ready, not just a bare Maps listing. Off by default so you don't lose otherwise-great leads that simply haven't listed a number.",
            "default": false
          },
          "requireWebsite": {
            "title": "[✓] Require Website (Strict Mode)",
            "type": "boolean",
            "description": "Discards any lead with no website before it ever reaches your dataset. Since deep enrichment (emails, ads radar, decision-maker search) can only run against a real website, this guarantees every lead you get is fully enrichable, not a dead end.",
            "default": false
          },
          "squashDuplicateBranches": {
            "title": "[HQ] Squash Duplicate Branches (One Lead Per Company)",
            "type": "boolean",
            "description": "Keeps only ONE lead per company website. A chain with 50 branches shares a single domain, one decision maker and one inbox — without this, those 50 near-identical rows consume 50 slots of your result budget. Leads with no website are never squashed, since they share no domain to be judged on.",
            "default": true
          },
          "verifiedEmailsOnly": {
            "title": "[✓] Verified Emails Only (Strict Mode)",
            "type": "boolean",
            "description": "Only keep leads with a deliverability-verified email — every business without one is filtered out before it reaches your dataset or export.",
            "default": false
          },
          "userNegativeKeywords": {
            "title": "Negative Keywords (Exclude)",
            "type": "array",
            "description": "List of terms to filter out unwanted listings (e.g. hospital, school, job).",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "deepEnrichment": {
            "title": "[✓] Full B2B Deep Enrichment Engine",
            "type": "boolean",
            "description": "Unlocks every deep intelligence signal below — verified emails, decision-maker contacts, ad activity, and social presence. Uncheck for a fast, Maps-data-only export.",
            "default": true
          },
          "checkMetaAds": {
            "title": "[✓] Meta Ads Radar (Facebook/Instagram Pixel + Ads Library)",
            "type": "boolean",
            "description": "Detects live Meta Pixel tracking on each business's website, with a one-click link straight into their actual Meta Ads Library listing — a strong signal they already have Facebook/Instagram ad budget to spend.",
            "default": true
          },
          "checkGoogleAds": {
            "title": "[✓] Google Ads Radar (Tag Manager Pixel + Ads Transparency)",
            "type": "boolean",
            "description": "Detects live Google Ads/Tag Manager tracking on each business's website, with a one-click link straight into their actual Google Ads Transparency listing — a strong signal they already have Google ad budget to spend. Whenever either this or Meta Ads Radar is on, TikTok and Snapchat ad-tracking pixels are also picked up as a free bonus signal.",
            "default": true
          },
          "extractLinkedInDorks": {
            "title": "[✓] CEO / Founder LinkedIn Radar",
            "type": "boolean",
            "description": "Gives every lead a targeted LinkedIn People Search for that company's CEO, Founder or Owner — one click from your sheet into a filtered list of its decision makers, so you reach the person who signs off instead of a reception desk.",
            "default": true
          },
          "verifyEmails": {
            "title": "[✓] Verified B2B Email Deliverability",
            "type": "boolean",
            "description": "Every email is checked for real deliverability before it reaches your list — so your cold outreach never wastes a send on a bounce.",
            "default": true
          },
          "enableInstagram": {
            "title": "[✓] Instagram",
            "type": "boolean",
            "description": "Find and include each business's Instagram profile.",
            "default": true
          },
          "enableFacebook": {
            "title": "[✓] Facebook",
            "type": "boolean",
            "description": "Find and include each business's Facebook page.",
            "default": true
          },
          "enableLinkedIn": {
            "title": "[✓] LinkedIn Company Page",
            "type": "boolean",
            "description": "Find and include each business's own LinkedIn company page.",
            "default": true
          },
          "enableTwitter": {
            "title": "[✓] Twitter/X",
            "type": "boolean",
            "description": "Find and include each business's Twitter/X profile.",
            "default": true
          },
          "enableTiktok": {
            "title": "[✓] TikTok",
            "type": "boolean",
            "description": "Find and include each business's TikTok profile.",
            "default": true
          },
          "enableSocialActivityCheck": {
            "title": "[ ] Active Social Presence Audit (slow — off by default)",
            "type": "boolean",
            "description": "Experimental. Attempts to flag whether a business's social profiles show recent activity. Off by default: it adds substantial run time on large lists and its signal is not yet reliable enough to qualify a lead on, so treat any result as indicative only.",
            "default": false
          },
          "enableDeepNiche": {
            "title": "[✓] Deep Niche Classification",
            "type": "boolean",
            "description": "Adds a buyer-facing niche tag (SaaS, E-Commerce, Healthcare, Hospitality and more) derived from each business's own website pitch plus its verified Google Maps category — so you can segment a mixed list without reading every site. Costs no extra network request. Turn off to leave the Deep Niche column empty.",
            "default": true
          },
          "enableTechRadar": {
            "title": "[✓] Website Tech Stack Radar",
            "type": "boolean",
            "description": "Detects the technology each business actually runs — Shopify, WordPress, Wix, Webflow, Stripe, HubSpot, Klaviyo, React, Cloudflare and more — read from the homepage already being fetched, so it costs no extra network request. Ideal for agencies pitching a replatform. Turn off to leave the Tech Stack column empty.",
            "default": true
          },
          "enableHiringSignals": {
            "title": "[✓] Actively Hiring Signal",
            "type": "boolean",
            "description": "Finds each business's careers page and flags whether it shows real recruitment activity (an embedded applicant-tracking system or genuine job-posting markup) — a strong proxy for a company that is growing and has budget. Costs one extra page probe on leads that publish a careers link. Turn off for the fastest possible run.",
            "default": true
          },
          "enableGrowthSignals": {
            "title": "[ ] Recent Website Redesign Signal (slow — off by default)",
            "type": "boolean",
            "description": "Flags businesses that recently rebuilt their website, by comparing historical snapshot sizes in the public Internet Archive index. Off by default because it adds one archive.org lookup per lead and that service throttles under load, which can slow a large run. Coverage is roughly 63% on small local businesses; a blank cell means \"no archive history to read\", never \"no redesign\".",
            "default": false
          },
          "exportStyledExcel": {
            "title": "[✓] Styled Agency-Ready Excel Export",
            "type": "boolean",
            "description": "Automatically saves a fully-styled .xlsx to this run's Key-Value Store when it finishes — dark navy header row, Hot-lead rows highlighted in green, every link rendered as a clean clickable button (\"Open Website\", \"Find CEO / Founder\") instead of a raw URL, auto-fit columns. Hand it straight to a client with zero manual formatting.",
            "default": true
          },
          "includePhone": {
            "title": "[✓] Phone Number",
            "type": "boolean",
            "description": "Include each business's direct phone number in your exported lead sheet — ready for cold-calling campaigns.",
            "default": true
          },
          "includeWebsite": {
            "title": "[✓] Website URL",
            "type": "boolean",
            "description": "Include each business's website link in your exported lead sheet.",
            "default": true
          },
          "includeAddress": {
            "title": "[✓] Address & City",
            "type": "boolean",
            "description": "Include each business's full street address and city in your exported lead sheet.",
            "default": true
          },
          "includeRatingReviews": {
            "title": "[✓] Rating & Reviews",
            "type": "boolean",
            "description": "Include each business's Google star rating and review count — a quick trust signal for prioritizing outreach.",
            "default": true
          },
          "webhookUrl": {
            "title": "[LIVE] Real-Time CRM Webhook URL",
            "type": "string",
            "description": "Optional. Paste a Zapier, Make, HubSpot or custom endpoint and every qualifying lead is POSTed to it as JSON the moment it is scored — no waiting for the run to finish. Delivery is best-effort and never delays or fails the scrape: your dataset and Excel export remain the complete record.",
            "default": ""
          },
          "webhookMinimumScore": {
            "title": "[LIVE] Minimum Opportunity Score To Send",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only leads scoring at or above this value are sent to the webhook. 0 sends everything; 70 sends roughly the Hot tier only. Leads with no score count as 0, so an un-enriched lead can never slip through a high threshold.",
            "default": 0
          },
          "agencyName": {
            "title": "[REPORT] Your Agency Name (Whitelabel Audit)",
            "type": "string",
            "description": "Put your agency's name on a branded Market Audit report, generated automatically at the end of every run and saved as OUTPUT in this run's Key-Value Store — which Apify renders as a live dashboard on the run page itself, so there is nothing to download to read it. It carries a one-click download button for your Excel file, and the run log prints a shareable link you can send straight to a prospect, or print to PDF. Leave empty to skip the report.",
            "default": ""
          },
          "agencyLogoUrl": {
            "title": "[REPORT] Your Logo URL (Optional)",
            "type": "string",
            "description": "Direct https:// link to your logo image — it appears in the report header beside your agency name. The image is hotlinked, so use a URL that will stay live for as long as you intend to share the report.",
            "default": ""
          },
          "reportTargetNiche": {
            "title": "[REPORT] Market Name Shown On The Report (Optional)",
            "type": "string",
            "description": "The market this audit covers, as your prospect should read it — for example \"Dental Clinics, Dubai\". Leave empty and it is built automatically from your search query and city.",
            "default": ""
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}