Integration Guide
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.
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.
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
Before you start, make sure you have:
app.scrapercity.com/dashboard/api-docsChoose your trigger app and event. Common options:
Test your trigger and confirm sample data is flowing through before moving to the next step.
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.
GEThttps://app.scrapercity.com/api/v1/database/leads?title=CTO&country=United%20States&hasEmail=true&limit=100Build 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 emailshasPhonetrue to return only contacts with phone numberslimitNumber of results per page, max 100pagePage number for pagination (starts at 1)In the Headers section of the Custom Request step, add a single entry:
AuthorizationBearer YOUR_API_KEYDo 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.
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.
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:
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).
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.
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=5Trigger: 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=10Trigger: 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=100Dynamic 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.
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.comFind 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=100Pull local business leads with phones and emails. Trigger weekly per city.
Zillow Agents
All plans/api/v1/zillow-agents?location=Miami%20FL&limit=50Automate real estate lead generation - pull agent listings by city on a schedule.
Website Finder
All plans/api/v1/website-finder?domain=company.comEnrich 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.
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.
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.
All three platforms can call the ScraperCity API. The right choice depends on your use case:
| Feature | Zapier | n8n | Make.com |
|---|---|---|---|
| Setup complexity | Very low - no code | Medium - visual builder | Medium - visual builder |
| App integrations | 6,000+ | 400+ native nodes | 1,000+ |
| Pagination support | Manual (one call per run) | Native looping | Native iteration |
| Bulk lead pulls | Not ideal (100/run) | Excellent | Good |
| Triggered workflows | Excellent | Good | Good |
| Price for automation | From $19.99/mo | Self-host free / cloud $20/mo | From $9/mo |
| Best for ScraperCity | Event-triggered enrichment, CRM sync | Bulk pulls, pagination, complex logic | Visual 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.