ScraperCity logo

Integration Guide

ScraperCity + Zapier

Call any ScraperCity API endpoint with Webhooks by Zapier and route results to Google Sheets, HubSpot, Salesforce, Slack, or any of 6,000+ connected apps - no code required. The step-by-step example below uses the Lead Database endpoint to automate B2B prospecting.

When to Use This

Zapier is the right tool when you want to automate lead generation or lead enrichment without writing a single line of code. It works best for event-driven queries: a form submission triggers a contact search, a new CRM record triggers an enrichment call, or a scheduled Zap pulls fresh leads daily and pushes them into a spreadsheet or CRM automatically.

Each Webhooks by Zapier step makes a single API call per run (up to 100 leads per page). If you need to paginate through thousands of results in one execution, n8n or Claude Code are better tools for that job. Zapier is ideal when you want no-code automation and need to connect ScraperCity to apps that n8n and Make.com cannot reach natively - think niche CRMs, project management tools, or internal Slack channels.

Any ScraperCity endpoint works here. The Lead Database is the most popular choice for ongoing prospecting because it returns results instantly and accepts rich filters like title, industry, company size, and geography. Other scrapers (Google Maps, Apollo, Yelp, Zillow Agents, and more) also work with this exact same Zapier setup.

What You Can Build

Here are common lead generation automation workflows that teams build with ScraperCity and Zapier:

Daily Prospecting Pipeline

Trigger: Schedule (daily)

Action: Query Lead Database for target titles + push to Google Sheets

Destination: Google Sheets

Form-Triggered Enrichment

Trigger: New Typeform / Google Form submission

Action: Look up contacts at submitted company domain

Destination: HubSpot or Salesforce

Real Estate Agent Alerts

Trigger: Schedule (weekly)

Action: Query Zillow Agents endpoint by city, filter by rating

Destination: Slack channel + Google Sheets

New CRM Contact Enrichment

Trigger: New contact in HubSpot

Action: Find mobile phone via Mobile Finder endpoint

Destination: Update HubSpot contact record

E-commerce Prospecting

Trigger: Schedule (weekly)

Action: Query Store Leads endpoint for Shopify stores in a niche

Destination: Airtable or Notion database

Email Verification on Lead Import

Trigger: New row in Google Sheets

Action: Run email through Email Validator endpoint

Destination: Update sheet with deliverability status

Prerequisites

Before you start, make sure you have:

Setup

1

Create a new Zap and add a trigger

Choose your trigger app and event. Common options:

  • Schedule by Zapier - run the search daily, weekly, or on any interval you set.
  • Typeform or Google Forms - a prospect fills out a form, triggering a company or contact lookup.
  • Google Sheets - New Row - add a company name or domain to a sheet row to kick off an enrichment lookup.
  • HubSpot - New Contact - enrich a contact automatically when it is created in your CRM.
  • Slack - New Message - type a company name in a Slack channel and trigger a live lookup.

Test your trigger and confirm sample data is flowing through before moving to the next step.

2

Add "Webhooks by Zapier" as an action

In the action step, search for Webhooks by Zapier and select the Custom Request event. This gives you full control over the HTTP method, URL, headers, and body of the request. Custom Request is the correct choice for Bearer token authentication and GET requests with query parameters.

3

Configure the request

Method:GET
URL:https://app.scrapercity.com/api/v1/database/leads?title=CTO&country=United%20States&hasEmail=true&limit=100

Build the full URL with all query parameters inline. URL-encode spaces as %20 and ampersands as &. You can reference data from earlier Zap steps to make the query dynamic - for example, pulling the job title filter from a form submission.

Common Lead Database query parameters:

titleJob title keyword (e.g. CTO, VP Sales, Founder)
countryCountry name (e.g. United%20States, Canada, United%20Kingdom)
industryIndustry keyword (e.g. SaaS, Healthcare, Real%20Estate)
companyDomainTarget a specific company by domain (e.g. stripe.com)
hasEmailtrue to return only contacts with verified emails
hasPhonetrue to return only contacts with phone numbers
limitNumber of results per page, max 100
pagePage number for pagination (starts at 1)
4

Add the Authorization header

In the Headers section of the Custom Request step, add a single entry:

Key:Authorization
Value:Bearer YOUR_API_KEY

Do not wrap the value in quotes. Zapier sends the header value exactly as you type it. Replace YOUR_API_KEY with the key from your ScraperCity dashboard. Do not store your API key in the Zap name, description, or any public-facing field.

5

Test the step

Click Test step. A successful response looks like this:

{
  "data": [
    {
      "first_name": "Sarah",
      "last_name": "Chen",
      "title": "CTO",
      "email": "[email protected]",
      "phone": "+1-555-0192",
      "company": "Acme Corp",
      "company_domain": "acmecorp.com",
      "linkedin_url": "https://linkedin.com/in/sarahchen",
      "country": "United States",
      "city": "San Francisco"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 100,
    "total": 4823,
    "totalPages": 49
  }
}

The data array contains your lead records. The pagination object tells you how many total results match your query. Each field in the response will be available for mapping in your next Zap step. In Zapier, nested fields are referenced with double-underscore notation - for example, data__0__email for the first record's email address.

6

Route the leads

Add one or more action steps after the webhook to send the data where you need it. You can chain as many destinations as you like:

Google SheetsUse the 'Create Spreadsheet Row' action. Map data__0__email, data__0__first_name, data__0__title, data__0__company, and data__0__phone to columns in your sheet.
HubSpotUse the 'Create Contact' action. Map email, firstname, lastname, jobtitle, and company from the webhook response. The ScraperCity + Zapier HubSpot integration makes this a zero-code workflow.
SalesforceUse the 'Create Lead' action. Map email, first name, last name, title, and company to the corresponding Salesforce fields.
SlackUse the 'Send Channel Message' action. Format a message template with the lead's name, title, company, and email to notify your sales team instantly.
AirtableUse the 'Create Record' action to build a structured lead database with all fields from the API response.
NotionUse the 'Create Page in Database' action to add each lead as a Notion database entry.

Note: The default Webhooks response maps only the first record (data__0__*). If you want to write multiple records from a single API call, use a Formatter step to split the array or consider triggering a separate Zap per lead using Looping by Zapier (available on Zapier Professional and above).

Dynamic Queries

You can build the ScraperCity API URL dynamically by referencing data from previous Zap steps. This turns static queries into a fully automated lead generation system that adapts to your inputs.

Example 1 - Company domain enrichment

Trigger: new row in a Google Sheet with a “Company Domain” column. The URL below pulls decision-makers at that specific company automatically:

https://app.scrapercity.com/api/v1/database/leads?companyDomain={{Company Domain}}&hasEmail=true&limit=5

Example 2 - Form-driven prospecting

Trigger: a Typeform with fields for target job title and country. Each form submission fires a fresh search:

https://app.scrapercity.com/api/v1/database/leads?title={{Job Title}}&country={{Target Country}}&hasEmail=true&limit=10

Example 3 - Industry vertical sweep

Trigger: Schedule by Zapier (weekly). Pull the top 100 VP-level contacts in a specific industry every Monday morning:

https://app.scrapercity.com/api/v1/database/leads?title=VP&industry=SaaS&country=United%20States&hasEmail=true&hasPhone=true&limit=100

Dynamic queries turn Zapier into a fully automated prospecting pipeline. Each trigger event - a form fill, a new CRM record, or a calendar schedule - can spawn a uniquely targeted lead search with zero manual effort. This is the core pattern behind most lead generation automation systems built on ScraperCity.

Using Other ScraperCity Endpoints

The Lead Database is just one of 25 ScraperCity endpoints you can call through this same Zapier setup. Swap the URL in Step 3 to use any of these:

Email Validator

All plans
/api/v1/email-validator?[email protected]

Validate a lead's email before adding to HubSpot. Trigger on new CRM contact.

Email Finder

All plans
/api/v1/email-finder?firstName=John&lastName=Smith&domain=company.com

Find a business email from a name and company. Great for LinkedIn outreach lists.

Google Maps

All plans
/api/v1/google-maps?query=dentists&location=Austin%20TX&limit=100

Pull local business leads with phones and emails. Trigger weekly per city.

Zillow Agents

All plans
/api/v1/zillow-agents?location=Miami%20FL&limit=50

Automate real estate lead generation - pull agent listings by city on a schedule.

Website Finder

All plans
/api/v1/website-finder?domain=company.com

Enrich a company domain with contact info. Chain after a 'new deal' CRM trigger.

The authorization header format is identical for every endpoint. Only the URL and query parameters change. See the full API reference at app.scrapercity.com/dashboard/api-docs.

Troubleshooting

The most common issues when connecting ScraperCity to Zapier, and how to fix them:

401 Unauthorized

Cause: The Authorization header is missing or the API key is wrong.

Fix: Check that the header key is exactly "Authorization" (capital A) and the value starts with "Bearer " followed by your key with no quotes. Copy the key fresh from app.scrapercity.com/dashboard/api-docs.

403 Forbidden

Cause: Your ScraperCity plan does not have access to the endpoint you are calling.

Fix: The Lead Database endpoint (/api/v1/database/leads) requires the $649/mo plan. If you are on the $49 or $149 plan, use a different endpoint such as Google Maps, Email Finder, or Apollo.

Empty data array (200 OK but no results)

Cause: Your query filters are too narrow and no contacts match.

Fix: Remove hasEmail=true or hasPhone=true first, then broaden the title or industry. Test the URL directly in your browser with your API key to confirm results before wiring into Zapier.

Zap test shows no data from previous step

Cause: Zapier could not parse the response, or the test step has not been run yet.

Fix: Click "Test step" on the Webhooks action first. Zapier needs at least one successful test run to make response fields available for mapping in downstream steps.

URL encoding errors / garbled query string

Cause: Spaces or special characters in dynamic field values are not encoded.

Fix: Use %20 for spaces and %2C for commas in static URLs. For dynamic values from earlier steps, Zapier does not auto-encode them - use a Formatter step to URL-encode the value before inserting it into the URL.

Zap works in test but not when live

Cause: The trigger is producing different data in production than in the test run.

Fix: Check Zap History for live runs and compare the trigger data. Make sure any field references (like {{Company Domain}}) are actually populated in real trigger payloads, not just in your test sample.

Performance Tips

Use limit=100 on scheduled Zaps

The ScraperCity Lead Database returns up to 100 records per call. Set limit=100 on any scheduled Zap to maximize the number of leads you pull per run. Each Zap run counts as a single ScraperCity API call regardless of how many records are returned.

Filter server-side, not in Zapier

Use ScraperCity query parameters (hasEmail=true, title=CTO, country=United+States) to filter results before they reach Zapier. This is faster and more efficient than filtering inside Zapier with a Filter step after the webhook.

Avoid duplicate API calls with Zapier deduplication

The ScraperCity API blocks identical requests made within 30 seconds. On scheduled Zaps that run frequently, add a page or offset parameter that increments between runs to pull fresh data each time rather than re-querying the same results.

Chain multiple destinations without extra API calls

Once the Webhooks step has fetched your leads, you can add as many action steps as you need (Google Sheets, HubSpot, Slack, Salesforce) and they all use the same response data. You only pay for one ScraperCity API call per Zap run, regardless of how many downstream actions you add.

Use Paths for conditional routing

Zapier's Paths feature (available on Professional plans and above) lets you route leads to different destinations based on conditions. For example: send leads with a phone number to Salesforce, and leads without a phone to a Google Sheet for manual review.

Monitor errors in Zap History

Check Zapier's Task History regularly for failed runs. A failed run means the lead was not captured. Common causes are API key rotation, plan downgrades, or changed field names in trigger apps. Set up Zapier's built-in error notifications to get alerted by email or Slack when a Zap fails.

Zapier vs. n8n vs. Make.com for Lead Generation Automation

All three platforms can call the ScraperCity API. The right choice depends on your use case:

FeatureZapiern8nMake.com
Setup complexityVery low - no codeMedium - visual builderMedium - visual builder
App integrations6,000+400+ native nodes1,000+
Pagination supportManual (one call per run)Native loopingNative iteration
Bulk lead pullsNot ideal (100/run)ExcellentGood
Triggered workflowsExcellentGoodGood
Price for automationFrom $19.99/moSelf-host free / cloud $20/moFrom $9/mo
Best for ScraperCityEvent-triggered enrichment, CRM syncBulk pulls, pagination, complex logicVisual multi-step pipelines

Zapier is the fastest way to get started and covers the widest range of destination apps. If you need to loop through thousands of leads per run or build complex conditional pipelines, see the ScraperCity + n8n integration guide.

FAQ

Get API access to ScraperCity: