Building Permit Lead Scraper — Contractor Lead Generation
Pricing
Pay per usage
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
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
| City | State | Data Source |
|---|---|---|
| Chicago | IL | City of Chicago Open Data Portal |
| Los Angeles | CA | LA City Building & Safety (LADBS) |
| New York City | NY | NYC DOB NOW: Build |
| Austin | TX | Austin Open Data Portal |
| Seattle | WA | City of Seattle Open Data |
| San Francisco | CA | SF 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.
| Service | Price | Coverage |
|---|---|---|
| Shovels.ai | ~$599/month | National |
| Dodge Data & Analytics | ~$9,000–$12,000/year | National |
| ConstructConnect | ~$7,000–$8,000/year | National |
| This actor (Apify) | Pay-per-result | 6 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
- Select city and filters — You specify a city, permit type (roofing, HVAC, electrical, etc.), lookback window (days), and result cap.
- Query the Socrata API — The actor calls the city's official open-data REST API, requesting permits issued within your
daysBackwindow. It fetches 2× yourmaxResultsto allow for filtering headroom. - 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.
- 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).
- Cap and push results — Once the filtered result count hits
maxResults, the loop stops and the dataset is pushed to your Apify storage.
Inputs
| Parameter | Type | Default | Description |
|---|---|---|---|
city | select | chicago | City to scrape. Options: Chicago, Los Angeles, New York City, Austin, Seattle, San Francisco |
permitType | select | all | Filter by permit type: All, Roofing, HVAC/Mechanical, Plumbing, Electrical, Remodel/Renovation, New Construction |
daysBack | integer | 30 | Fetch permits issued in the last N days (1–365) |
maxResults | integer | 200 | Maximum number of records to return (1–5000) |
Output
Each item in the dataset represents one issued building permit.
| Field | Type | Example |
|---|---|---|
permitNumber | string | "B-2025-014732" |
address | string | "4821 N WESTERN AVE" |
city | string | "Chicago" |
state | string | "IL" |
zipCode | string | "60625" |
permitType | string | "PERMIT - RENOVATION/ALTERATION" |
workDescription | string | "Install new HVAC system, replace ductwork throughout" |
issueDate | string | "2025-03-12" |
estimatedCost | number | 14500 |
contractorName | string | "MIDWEST COMFORT HEATING & COOLING LLC" |
ownerName | string | "PATRICIA KOWALSKI" |
latitude | number | 41.9742 |
longitude | number | -87.6884 |
sourceUrl | string | "https://data.cityofchicago.org/resource/ydr8-tenu" |
scrapedAt | string | "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.
Legal and Data Sourcing
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.
Related Actors
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.