BuildZoom Scraper avatar

BuildZoom Scraper

Pricing

from $4.00 / 1,000 buildzoom contractor listings

Go to Apify Store
BuildZoom Scraper

BuildZoom Scraper

Scrape contractor data from BuildZoom. Search by city and trade, filter by construction type and project value. Extract BZ scores, licenses, permits, reviews, insurance, and contact info for 4M+ US contractors.

Pricing

from $4.00 / 1,000 buildzoom contractor listings

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

4

Total users

2

Monthly active users

8 days ago

Last modified

Share

BuildZoom Scraper

Scrape contractor data from BuildZoom, the largest contractor database in the US with 4M+ licensed contractors and 300M+ building permits. Search by city and trade, filter by construction type and project value. Extract BZ scores, licenses, insurance, bonds, reviews, and contact info.

Source contractor leads, benchmark competitors, and verify licenses across the largest US contractor database with 4M+ profiles enriched by government permit data.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

parsebird/buildzoom-scraper on Apify. Call: ApifyClient("TOKEN").actor("parsebird/buildzoom-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: city (string, e.g. "miami", "dallas-tx", "new-york-ny"), trade (string, "general-contractors"/"roofers"/"electricians"/"plumbers"/"architects"/"home-builders"/"kitchen-and-bathroom-remodeling"/"home-addition"/"solar-contractors"/"foundation_contractors"), constructionType (string, ""/"residential"/"commercial"), avgProjectValue (string, ""/"10000"/"50000"/"100000"/"100001"), maxPages (integer), maxResults (integer), includeDetails (boolean). Full actor spec: fetch build via GET https://api.apify.com/v2/acts/parsebird~buildzoom-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations

What does BuildZoom Scraper do?

This Actor scrapes buildzoom.com, the largest contractor directory in the United States. It supports two modes:

Listing mode (default, fast and cheap):

FieldExample
Contractor nameCf Construction and Remodeling, Inc
Profile URLhttps://www.buildzoom.com/contractor/cf-construction-and-remodeling-inc
BZ Score180
Price range$25,000 - $1,000,000
Full address3532 SW 113th Ct, Miami, FL 33165
City / State / ZIPMiami / FL / 33165
Phone number(904) 513-9494
Total projects149
Rating5.0
Review count6
Project breakdownNew constructions, kitchen remodels, roofing, etc.
DescriptionPremier residential General Contractor...

Detail mode (adds per contractor):

FieldExample
License numbersCGC1507638, CMC1251411
License statusActive
License types["Certified General Contractor", "Roofing"]
Insurance amount$2,000,000
Insurance providerKinsale Insurance Co
Bond amount$12,000,000
Bond providerNielson, Hoover & Company
Verified licensetrue
Last updatedFeb 06, 2026
Photos count24

Why scrape BuildZoom?

  • Lead generation — Build targeted lists of licensed contractors by city, trade, and project value for B2B sales
  • Competitive analysis — Benchmark BZ scores, pricing, and project volume across competitors in any market
  • License verification — Verify contractor credentials, insurance coverage, and bond status at scale
  • Market research — Analyze contractor density, specializations, and pricing trends across US cities
  • Recruiting — Identify top-rated contractors and agencies in specific trades and locations
  • Due diligence — Screen contractors before hiring with verified license and insurance data
  • Directory building — Feed contractor data into your own marketplace or aggregation platform

How to use

  1. Go to the BuildZoom Scraper page on Apify Store
  2. Click Try for free
  3. Configure your input:
    • City — City slug (e.g. "miami", "dallas-tx", "new-york-ny", "los-angeles")
    • Trade — General Contractors, Roofers, Electricians, Plumbers, Architects, etc.
    • Construction Type — All, Residential, or Commercial
    • Avg Project Value — Filter by typical project budget range
    • Sort By — Top 10, BZ Score, Verified Projects, Client Ratings, or Avg Project Value
  4. Click Start and wait for the run to finish
  5. Download your data in JSON, CSV, Excel, or connect via API

Note: City slugs follow the BuildZoom URL format. Most cities use city-state format like dallas-tx, san-francisco-ca, new-york-ny. Some major cities use just the name: miami, chicago, houston, seattle. Check the BuildZoom website URL for the correct slug.

Input parameters

ParameterTypeDefaultDescription
citystring"miami"City slug from BuildZoom URLs (e.g. "miami", "dallas-tx")
tradestring"general-contractors"Contractor trade: general-contractors, roofers, electricians, plumbers, architects, home-builders, kitchen-and-bathroom-remodeling, home-addition, solar-contractors, foundation_contractors
constructionTypestring""Filter: residential, commercial, or empty for all
avgProjectValuestring""Filter: 10000 (up to $10K), 50000, 100000, 100001 ($100K+), or empty
sortBystring""Sort: score, projects, ratings, value, or empty (Top 10 default)
maxPagesinteger5Max listing pages (25 contractors per page)
maxResultsinteger50Max contractors to return (0 = unlimited)
includeDetailsbooleanfalseFetch profile pages for license, insurance, and bond data

Output data

Listing mode example:

{
"contractorName": "Cf Construction and Remodeling, Inc",
"slug": "cf-construction-and-remodeling-inc",
"url": "https://www.buildzoom.com/contractor/cf-construction-and-remodeling-inc",
"bzScore": 180,
"priceRange": "$25,000 - $1,000,000",
"fullAddress": "3532 SW 113th Ct, Miami, FL 33165",
"city": "Miami",
"state": "FL",
"zipCode": "33165",
"phoneNumber": "(904) 513-9494",
"phoneExt": "487",
"totalProjects": 149,
"totalProjectsVerified": 149,
"rating": 5.0,
"reviewCount": 6,
"newConstructions": 5,
"kitchenRemodels": 12,
"multiRoomRemodels": 8,
"description": "Premier residential General Contractor...",
"scrapedAt": "2026-04-06T12:00:00.000Z"
}

Detail mode adds:

{
"licenseNumbers": "CGC1507638, CMC1251411, CCC1330397",
"licenseStatus": "Active",
"licenseTypes": ["Certified General Contractor", "Certified Mechanical Contractor", "Certified Roofing Contractor"],
"insuranceAmount": "2,000,000",
"insuranceProvider": "Kinsale Insurance Co",
"bondAmount": "12,000,000",
"bondProvider": "Nielson, Hoover & Company",
"hasVerifiedLicense": true,
"lastUpdated": "Feb 06, 2026",
"photosCount": 24
}

Use with the Apify API

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("parsebird/buildzoom-scraper").call(run_input={
"city": "miami",
"trade": "general-contractors",
"constructionType": "residential",
"maxResults": 100,
"includeDetails": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['contractorName']} - BZ: {item['bzScore']} - {item.get('priceRange', 'N/A')}")

Pricing

This Actor uses Pay-per-event pricing:

EventCostRate
buildzoom-contractor-listing$0.002$2 per 1,000 contractors
buildzoom-contractor-detail$0.005$5 per 1,000 contractors

Listing mode charges only buildzoom-contractor-listing per contractor found. Detail mode charges only buildzoom-contractor-detail per contractor enriched (no double-charging).

Cost examples (listing mode):

  • 50 contractors: $0.10
  • 200 contractors: $0.40
  • 1,000 contractors: $2.00

Cost examples (detail mode):

  • 50 contractors: $0.25
  • 200 contractors: $1.00
  • 1,000 contractors: $5.00

You only pay for the contractors actually returned.

Tips and best practices

  • Start small — Set maxResults to 5-10 with includeDetails enabled to preview the data before running a full scrape
  • City slug format — Check the BuildZoom URL for your target city to get the exact slug. Most use city-state (e.g. dallas-tx), some use just the city name (e.g. miami)
  • Use listing mode for lead lists — Listing mode already includes name, address, phone, BZ score, price range, and project counts — enough for most lead generation use cases
  • Detail mode for due diligence — Enable detail mode when you need verified license numbers, insurance coverage, and bond information
  • Scheduling — Set up weekly runs to track new contractors or changes in BZ scores and project counts

Integrations

Connect this Actor to your workflow:

  • Google Sheets — Export results directly
  • Webhooks — Trigger actions when new data arrives
  • API — Access data programmatically via the Apify API
  • Zapier / Make — Automate downstream workflows

Limitations

  • BuildZoom is US-only. The scraper requires US IP access, which Apify provides via its residential proxies when running on the platform.
  • Services offered, permit history, and employee data are loaded via JavaScript on detail pages and are not extracted in this version. The listing page data + license/insurance/bond from detail pages covers the most valuable data points.
  • Some contractors may not have all fields (rating, price range, description) depending on their profile completeness.
  • Detail pages are fetched sequentially with small delays to avoid rate limiting.