Building Permit Lead Scraper — Contractor Lead Generation avatar

Building Permit Lead Scraper — Contractor Lead Generation

Pricing

Pay per usage

Go to Apify Store
Building Permit Lead Scraper — Contractor Lead Generation

Building Permit Lead Scraper — Contractor Lead Generation

Scrape building permit data from city open-data portals for contractor lead generation. Find properties with active renovation, roofing, HVAC, and construction permits.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Sam Kleespies

Sam Kleespies

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Categories

Share

Building Permit Lead Scraper — Find New Construction & Renovation Leads

Find properties with active building permits issued in the last 7, 30, or 365 days. Designed for contractors, HVAC companies, roofers, remodelers, and material suppliers who need a steady stream of fresh construction leads — sourced directly from city open-data portals at a fraction of the cost of enterprise permit intelligence services.

What It Does

This actor queries the official Socrata-powered open-data APIs used by major U.S. cities to publish building permit records. It pulls issued permits, filters by type (roofing, HVAC, electrical, plumbing, remodel, or new construction), and returns structured lead records with property addresses, permit details, estimated project costs, and GPS coordinates.

Every record comes from a public government dataset — the same data that Shovels.ai, Dodge Data, and ConstructConnect resell at enterprise prices. This actor gives you direct access to the raw source.

What you get per lead:

  • Full street address and ZIP code
  • Permit type and work description
  • Issue date
  • Estimated project cost in USD
  • Contractor name on file (useful for spotting uncontested jobs)
  • GPS coordinates (latitude/longitude) for mapping and routing
  • Source dataset URL for verification

Supported Cities

CityStateData Source
ChicagoILCity of Chicago Open Data Portal
Los AngelesCALA City Building & Safety (LADBS)
New York CityNYNYC DOB NOW: Build
AustinTXAustin Open Data Portal
SeattleWACity of Seattle Open Data
San FranciscoCASF Open Data (DataSF)

More cities coming. All six are queried through verified Socrata API endpoints updated in real time by the city.

Cost Comparison

Building permit data is sold by a handful of enterprise vendors at prices that make sense for large general contractors — not for a roofing company or independent HVAC technician trying to find next week's jobs.

ServicePriceCoverage
Shovels.ai~$599/monthNational
Dodge Data & Analytics~$9,000–$12,000/yearNational
ConstructConnect~$7,000–$8,000/yearNational
This actor (Apify)Pay-per-result6 major cities

If you only need one city and a rolling 30-day window of roofing permits, you do not need a $600/month subscription. Run this actor on demand, export to CSV or JSON, and pay only for what you pull.

How it Works

  1. Select city and filters — You specify a city, permit type (roofing, HVAC, electrical, etc.), lookback window (days), and result cap.
  2. Query the Socrata API — The actor calls the city's official open-data REST API, requesting permits issued within your daysBack window. It fetches 2× your maxResults to allow for filtering headroom.
  3. Normalize permit records — Each raw API response is parsed by city-specific field mappings into a consistent schema: address, permit type, work description, estimated cost, contractor name, and GPS coordinates.
  4. Filter by permit type — Normalized records are matched against your selected type (e.g., "roofing" matches any permit whose type or work description contains roofing-related keywords).
  5. Cap and push results — Once the filtered result count hits maxResults, the loop stops and the dataset is pushed to your Apify storage.

Inputs

ParameterTypeDefaultDescription
cityselectchicagoCity to scrape. Options: Chicago, Los Angeles, New York City, Austin, Seattle, San Francisco
permitTypeselectallFilter by permit type: All, Roofing, HVAC/Mechanical, Plumbing, Electrical, Remodel/Renovation, New Construction
daysBackinteger30Fetch permits issued in the last N days (1–365)
maxResultsinteger200Maximum number of records to return (1–5000)

Output

Each item in the dataset represents one issued building permit.

FieldTypeExample
permitNumberstring"B-2025-014732"
addressstring"4821 N WESTERN AVE"
citystring"Chicago"
statestring"IL"
zipCodestring"60625"
permitTypestring"PERMIT - RENOVATION/ALTERATION"
workDescriptionstring"Install new HVAC system, replace ductwork throughout"
issueDatestring"2025-03-12"
estimatedCostnumber14500
contractorNamestring"MIDWEST COMFORT HEATING & COOLING LLC"
ownerNamestring"PATRICIA KOWALSKI"
latitudenumber41.9742
longitudenumber-87.6884
sourceUrlstring"https://data.cityofchicago.org/resource/ydr8-tenu"
scrapedAtstring"2025-03-19T14:22:05.000Z"

Results can be downloaded as CSV, JSON, JSONL, or Excel from the Apify dataset view.

Use Cases by Contractor Type

Roofing Contractors

Set permitType to roofing and daysBack to 14. Every result is a property where a homeowner has already committed to a roof replacement — they pulled the permit, so the job is happening. Use the address list for door-knocking campaigns, direct mail, or neighborhood canvassing. The estimatedCost field helps you prioritize larger jobs.

HVAC Companies

Filter by hvac to find mechanical permit activity. Homeowners replacing HVAC systems are also prime candidates for air quality add-ons, duct sealing, and smart thermostat installs. A permit for a furnace replacement at an address from three years ago is a good sign that the A/C unit is next.

Remodelers and General Contractors

Use remodel or new_construction permit types to find active renovation jobs. Cross-reference the contractorName field — if it shows a plumber or electrician as the permit holder on a kitchen remodel, the general contractor slot may still be open.

Real Estate Investors

New construction and remodel permits signal neighborhood activity. Filter by ZIP code (using maxResults and daysBack to bound the query) to identify streets with multiple permits issued recently — a leading indicator of appreciation pressure.

Material Suppliers and Distributors

Bulk export permit data weekly to build a prospect list of active job sites. Address + contractor name + estimated cost gives your sales team a cold-call list with context. A roofer pulling 40 permits in the last 30 days is worth a very different conversation than one with two.

This actor only queries official government open-data portals. All six city datasets are published under open data licenses by their respective municipalities and are freely accessible to the public. No scraping of private websites, no CAPTCHA bypass, no rate limit violations.

The Socrata platform used by all six cities explicitly provides a public REST API for programmatic access. This actor uses that API as intended.

  • Chicago: data.cityofchicago.org (City of Chicago Open Data)
  • Los Angeles: data.lacity.org (LA City Open Data)
  • New York City: data.cityofnewyork.us (NYC Open Data)
  • Austin: data.austintexas.gov (Austin Open Data)
  • Seattle: data.seattle.gov (City of Seattle Open Data)
  • San Francisco: data.sfgov.org (DataSF)

Pricing

This actor uses Apify's pay-per-result model. You are charged only for records returned, not for failed runs or empty result sets. See the actor's pricing tab for current rates.

A typical run pulling 200 roofing permits from Chicago for the past 30 days takes under 30 seconds and costs a small fraction of a single Shovels.ai monthly subscription.

Use via Apify API

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('samstorm/building-permit-lead-scraper').call({
city: 'chicago',
permitType: 'roofing',
daysBack: 30,
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Frequently Asked Questions

How do I get a building permit leads list for my city? Select your city from the city dropdown, choose the permitType matching your trade (roofing, HVAC, plumbing, electrical, remodel, or new construction), and set daysBack to your preferred lookback window. The actor queries the city's official open-data API and returns structured permit records in under a minute — no spreadsheet scraping, no manual portal navigation.

How much does building permit data cost compared to enterprise services? Shovels.ai starts at ~$599/month and Dodge Data runs $9,000–$12,000/year for national coverage. If you only need one or two cities and want rolling 30-day windows of specific permit types, this actor delivers the same underlying government data at Apify's pay-per-result rate — typically under $5 for a 200-record run.

What types of permits can I filter by? Roofing, HVAC/Mechanical, Plumbing, Electrical, Remodel/Renovation, and New Construction are all supported as native filter options. Select "All" to pull every permit type and segment the export yourself by permitType field.

Can I export permit leads to HubSpot or Salesforce? The actor outputs structured JSON and CSV that you can import into any CRM. Permit records include address, permit type, estimated project cost, issue date, and contractor name — enough context to create a lead record with meaningful qualification data. For full CRM-mapped exports, pair this actor with a contractor enrichment step using the contractor name field.

How accurate and current is the permit data? All data comes directly from official Socrata open-data APIs maintained by each city government. These portals are updated continuously as permits are issued — typically within 24–72 hours of issuance. You are accessing the same raw dataset that enterprise permit intelligence services resell, pulled fresh on every run.

How is this different from buying permit data from a lead broker? Permit lead brokers often add a 2–4 week delay between permit issuance and list delivery, and charge per-record fees that add up quickly at volume. This actor queries the live government API on demand — the moment a permit appears in the city dataset, your next run will capture it. You pay once per run, not per record sold.

Can I use this to find homeowners before contractors have reached them? Yes. Setting daysBack to 7 and running daily gives you the freshest possible permit list — properties where permits were issued in the last week, before most mail campaigns or door-knocking crews have arrived. The estimatedCost field helps you prioritize: a $40,000 HVAC permit is worth a different conversation than a $3,000 water heater replacement.

If you need full contractor contact information — emails, phone numbers, websites — pair this actor with a Google Maps or business directory scraper to enrich the contractor names found in permit records.