BuildZoom Scraper | Contractors | Permits | Licenses
Pricing
from $3.50 / 1,000 results
BuildZoom Scraper | Contractors | Permits | Licenses
Extract BuildZoom contractor profiles with licenses, permits, and insurance data for construction leads
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Ahmed Jasarevic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
BuildZoom Scraper
Extract contractor profiles, license data, permit histories, and insurance details from BuildZoom — the largest database of licensed construction professionals in the U.S. Scrape general contractors, remodelers, and specialty trade leads with full contact info, surety bond status, and project portfolios in seconds.
Main Use Cases
- Construction Lead Generation — Build targeted lists of licensed contractors with phone, email, and license status for cold outreach and sales pipelines.
- Construction Market Intelligence — Analyze permit volumes, project values, and contractor activity to spot growth trends across U.S. markets.
- Contractor License Verification — Cross-reference license numbers, insurance coverage, and surety bond status for compliance checks.
- Real Estate Investment Research — Track remodeling and construction activity in target neighborhoods to gauge market heat.
- Competitive Analysis — Monitor competitor contractor portfolios, review counts, and project histories to benchmark performance.
- Bond & Insurance Underwriting — Pull contractor financial data (surety bonds, GL coverage, workers comp) for risk assessment.
How It Works
- Provide one or more BuildZoom category or profile URLs as start points.
- The actor crawls each URL, following pagination up to
maxPagesPerCategorylevels deep. - For each contractor profile found, it extracts contact details, license info, insurance status, bond data, and ratings.
- If
includePermitsis enabled, it visits each contractor's permit history page and collects up tomaxPermitsPerContractorpermit records. - All data is pushed to a structured dataset. Pay-per-result billing: $0.0035 per contractor record.
Input Parameters
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls | array | Yes | — | Array of BuildZoom category or profile URLs to scrape |
maxItems | integer | No | 50 | Maximum number of contractor profiles to return |
maxPagesPerCategory | integer | No | 2 | Number of paginated listing pages to follow per category |
includePermits | boolean | No | true | Whether to scrape permit and project history for each contractor |
maxPermitsPerContractor | integer | No | 20 | Maximum permit records to collect per contractor profile |
maxRequestsPerCrawl | integer | No | 200 | Hard cap on total HTTP requests for the entire run |
maxConcurrency | integer | No | 4 | Number of concurrent browser pages; lower if hitting rate limits |
proxyConfiguration | object | No | — | Apify proxy settings (residential recommended for large crawls) |
Output
Each dataset item represents one contractor with the following fields:
| Field | Description |
|---|---|
name | Company or individual contractor name |
url | BuildZoom profile URL |
phone | Primary phone number |
email | Contact email (if available) |
licenseNumber | State-issued contractor license number |
licenseState | State where the license is registered |
licenseType | Classification (General Contractor, Remodeler, Specialty, etc.) |
insurance | Object with generalLiability and workersComp booleans |
suretyBond | Whether the contractor carries a surety bond |
rating | Average review rating (0–5 scale) |
reviewCount | Total number of customer reviews |
yearsInBusiness | Years actively operating on BuildZoom |
specialties | Array of specialty categories (e.g., "Kitchen Remodeling", "Roofing") |
location | City, state of primary operations |
permits | Array of permit records (if includePermits is true) |
permits[].permitNumber | Unique permit identifier |
permits[].address | Property address for the permit |
permits[].permitType | Type of work permitted (Remodel, New Construction, etc.) |
permits[].value | Estimated project value in USD |
permits[].status | Permit status (Issued, Closed, Expired, etc.) |
permits[].dateIssued | Date the permit was issued (ISO 8601) |
Example Input JSON
{"startUrls": ["https://www.buildzoom.com/austin-tx/general-contractors","https://www.buildzoom.com/dallas-tx/remodeling-contractors"],"maxItems": 100,"maxPagesPerCategory": 3,"includePermits": true,"maxPermitsPerContractor": 15,"maxRequestsPerCrawl": 300,"maxConcurrency": 4,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Example Output JSON
{"name": "ABC General Contractors","url": "https://www.buildzoom.com/contractors/abc-general-contractors","phone": "(512) 555-1234","email": "info@abcgc.com","licenseNumber": "ABC123456","licenseState": "TX","licenseType": "General Contractor","insurance": {"generalLiability": true,"workersComp": true},"suretyBond": true,"rating": 4.8,"reviewCount": 127,"yearsInBusiness": 15,"specialties": ["Residential Remodeling", "Kitchen Remodeling"],"location": "Austin, TX","permits": [{"permitNumber": "BP2024-001234","address": "123 Main St, Austin, TX","permitType": "Remodel","value": 85000,"status": "Issued","dateIssued": "2024-03-15"},{"permitNumber": "BP2023-098765","address": "456 Oak Ave, Austin, TX","permitType": "New Construction","value": 250000,"status": "Closed","dateIssued": "2023-11-02"}]}
Integrations & Automation
- Google Sheets — Push contractor leads directly into a shared spreadsheet for your sales team using Apify's Google Sheets integration.
- HubSpot / Salesforce — Export dataset items via webhooks or the Apify API to auto-create contacts in your CRM.
- Slack / Email Alerts — Set up webhooks to notify your team when a run completes with new leads.
- Scheduled Runs — Create a saved Actor task and schedule it weekly to monitor new contractors entering your target markets.
- Zapier / Make — Connect dataset output to 5,000+ apps for automated lead routing and follow-up sequences.
- Custom Pipelines — Use the Apify API (
GET /v2/datasets/{datasetId}/items) to pull results into any data pipeline or warehouse.
Related Actors
- Google Maps Scraper — Extract local business data including reviews and contact info from Google Maps.
- Apify Web Scraper — Generic web scraper for any website with CSS selector or regex extraction.
- HomeAdvisor Scraper — Scrape contractor listings from HomeAdvisor for cross-platform lead comparison.
- Yelp Scraper — Pull business listings, reviews, and ratings from Yelp by category and location.
FAQ
Why use this actor instead of the official API?
BuildZoom does not offer a public API for bulk contractor data extraction. This actor scrapes publicly available profile pages and permit records directly from the BuildZoom website, giving you structured data without API access restrictions, rate limits, or partnership requirements.
What are alternatives?
Alternatives include manually visiting each BuildZoom profile, using general-purpose web scrapers (which require custom configuration), or purchasing contractor data from third-party data brokers. This actor automates the entire process with pre-built extraction logic, proxy rotation, and structured output — saving hours of manual work.
Can I scrape contractors in specific cities or states?
Yes. Provide BuildZoom category URLs for any city or region (e.g., https://www.buildzoom.com/portland-or/general-contractors). You can include multiple URLs in startUrls to cover several markets in a single run.
How accurate is the permit data?
Permit data is scraped directly from BuildZoom's public permit records. Values and statuses reflect what BuildZoom has collected from municipal sources. For official verification, always cross-check with the issuing city or county building department.
Does this work for specialty contractors (electricians, plumbers, etc.)?
Yes. BuildZoom covers all licensed construction trades. Provide category URLs for the specific trade and location you need, and the actor will extract matching profiles and their permit histories.
SEO Keywords
BuildZoom scraper, contractor data, construction leads, contractor license data, permit data, building permits, general contractor leads, construction market data, contractor insurance data, surety bond data, construction intelligence, contractor lead generation, build permits analysis, construction company data, remodel contractor data, licensed contractor database, construction project leads, contractor contact information
For AI Agents & LLM Apps
Purpose: Scrape structured contractor profiles, license info, insurance status, and building permit histories from BuildZoom.
Minimal input:
{"startUrls": ["https://www.buildzoom.com/austin-tx/general-contractors"],"maxItems": 10}
Output fields: name, url, phone, email, licenseNumber, licenseState, licenseType, insurance, suretyBond, rating, reviewCount, yearsInBusiness, specialties, location, permits (array of permit records with permitNumber, address, permitType, value, status, dateIssued).
Agent behaviors:
- Always provide at least one valid BuildZoom URL in
startUrlsor the run will fail. - Set
includePermits: falseto skip permit scraping and reduce cost and run time. - Lower
maxConcurrencyif encountering HTTP 429 rate limit errors. - Use
maxItemsto cap spend; billing is $0.0035 per contractor record returned.
Billing: $0.0035 per result (per contractor record extracted).
Legal & Compliance Disclaimer
This Actor is an independent web scraping tool and is not affiliated with, endorsed by, or connected to BuildZoom, Inc. in any way. It accesses only publicly available web pages on buildzoom.com. Users are solely responsible for ensuring their use of this Actor complies with BuildZoom's Terms of Service, applicable laws, and regulations in their jurisdiction. The developer assumes no liability for misuse of scraped data. Always verify contractor license and insurance information through official state licensing boards before making business decisions.