Skip to main content gottem  — one API for every scraper.
Home Services
Verified

BuildZoom Scraper

Extract licensed contractor data, building permit histories, project scores, and compliance records from BuildZoom verification platform. Built on spider-browser .

Get started Docs
target
buildzoom.com
success rate
99.9%
latency
~4ms
Quick start

Extract data in minutes.

buildzoom-scraper.ts
import { SpiderBrowser } from "spider-browser";

const spider = new SpiderBrowser({
  apiKey: process.env.SPIDER_API_KEY!,
});

await spider.connect();
const page = spider.page!;
await page.goto("https://www.buildzoom.com/contractor/search?q=general+contractor&loc=San+Francisco%2C+CA");
await page.content();

const data = await page.evaluate(`(() => {
  const contractors = [];
  document.querySelectorAll(".contractor-card, .search-result").forEach(el => {
    const name = el.querySelector(".contractor-name, h3 a")?.textContent?.trim();
    const score = el.querySelector(".bz-score, .score-badge")?.textContent?.trim();
    const license = el.querySelector(".license-number")?.textContent?.trim();
    const permits = el.querySelector(".permit-count")?.textContent?.trim();
    const specialty = el.querySelector(".specialty, .trade-type")?.textContent?.trim();
    if (name) contractors.push({ name, score, license, permits, specialty });
  });
  return JSON.stringify({ total: contractors.length, contractors: contractors.slice(0, 10) });
})()`);

console.log(JSON.parse(data));
await spider.close();
ready to run · spider-browser · TypeScript
Fetch API

One endpoint for buildzoom.com.

Structured JSON from buildzoom.com with a single POST. AI-resolved selectors, cached on the first call.

POST /fetch/buildzoom.com/
Contractor nameBuildZoom scoreLicense numberPermit countSpecialtyLocation
cURL
curl -X POST https://api.spider.cloud/fetch/buildzoom.com/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"return_format": "json"}'
Python
import requests

resp = requests.post(
    "https://api.spider.cloud/fetch/buildzoom.com/",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={"return_format": "json"},
)
print(resp.json())
Node.js
const resp = await fetch("https://api.spider.cloud/fetch/buildzoom.com/", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ return_format: "json" }),
});
const data = await resp.json();
console.log(data);
Extraction

Fields you can pull.

Contractor nameBuildZoom scoreLicense numberPermit countSpecialtyLocationYears activeComplaint status
Listings

Provider search

Extract contractor profiles, ratings, and availability from buildzoom.com.

Geo

Local targeting

Access location-specific service providers with geo-targeted proxies.

Data

Review aggregation

Extract ratings, reviews, and pricing from home service marketplaces.

Related

More Home Services scrapers.

Start

Start scraping buildzoom.com.

Grab an API key and call the endpoint above. The first request resolves the config; every request after hits cache.