Building Permit Lead Scraper — Contractor Lead Generation
Pricing
from $3.00 / 1,000 building permit records
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
from $3.00 / 1,000 building permit records
Rating
0.0
(0)
Developer
Sam Kleespies
Maintained by CommunityActor stats
0
Bookmarked
36
Total users
9
Monthly active users
10 days ago
Last modified
Categories
Share
Building Permit Lead Scraper — Construction Permit Research
Find building permits in supported city open-data portals, filter by trade-related keywords, and export structured records for construction market research and contractor prospecting. A permit is evidence of recorded work; it does not prove that the owner is seeking bids or that a job is still available.
Start here: Chicago roofing permits — 3-record sample. The preset searches the past 365 days, returns up to three matches, disables optional Maps enrichment, and sets a $0.50 maximum charge and 300-second timeout. Inspect work descriptions and issue dates before scaling. Availability varies.
Pricing
The standard price is $3 per 1,000 returned permit records ($0.003 each), plus $0.00005 per Actor-start event. Start-event quantity depends on memory, with one event per GB and a minimum of one. At 4 GB, three records cost $0.009 in result fees plus $0.0002 startup. Platform usage is included under the current pricing configuration. The live Pricing tab is authoritative and may show applicable discounts. No separate city-data API key is required for the preset.
Supported cities and inputs
Supported city configurations: Chicago, Los Angeles, New York City, Austin, Seattle, and San Francisco. These use official city open-data sources. Dataset availability, field coverage and update schedules vary by city; a successful Chicago sample does not establish that every city is currently returning matches.
| Input | Purpose |
|---|---|
| city | Select the supported city; default chicago |
| permitType | all, roofing, hvac, plumbing, electrical, remodel, or new_construction |
| daysBack | Lookback window, 1–365 days |
| maxResults | Maximum returned matches, 1–5,000; begin with 3–10 |
{"city": "chicago","permitType": "roofing","daysBack": 365,"maxResults": 3,"enrichWithMaps": false}
Output and interpretation
Records contain permitNumber, address, city, state, zipCode, permitType, workDescription, issueDate, estimatedCost, contractorName, ownerName, latitude, longitude, sourceUrl, and scrapedAt where available. Use the source link to check the underlying record. Export JSON, CSV, JSONL, or Excel from the dataset.
- Missing values: cities publish different fields. A zero estimatedCost can represent unavailable source data; do not treat it as a confirmed zero-dollar project. Blank contractor or owner fields do not establish that no contractor or owner exists.
- Work scope: roofing matches are based on permit text, which may describe repairs, porch roofs or other roof-related work. Review workDescription before treating a record as a full roof replacement.
- Timing: issueDate is a recorded permit date, not a promise of project start, completion, source freshness, or purchasing intent. A contractor may already be engaged.
- Contact details: a permit record is not a verified phone/email lead. Any separate business-directory enrichment can add costs and needs its own match verification.
Filtering, completeness and reliability
Trade filtering is applied as source pages are fetched. The scan continues until enough matching records are collected, the source is exhausted, or a 10,000-record safety cap is reached. A warning identifies cap-limited partial results; narrow daysBack when it occurs. RUN_SUMMARY records the selected city, time window, filter and result count. No matches is valid when the source query completes successfully; a source API failure fails the run.
Roofing matching excludes rooftop solar, antenna or HVAC-equipment-only descriptions unless they also explicitly mention roofing, reroofing, roof repair or replacement. All trade matching remains keyword-based. Some records may be missed or need manual exclusion.
Useful workflows
Trade research: choose one city and trade, inspect a small sample, then expand the lookback or result cap when useful.
Weekly project monitoring: save a task with your chosen filters. If you schedule it, budget for each run and deduplicate exports using city plus permitNumber. Overlapping lookback windows can return the same record and incur another result charge. This Actor does not automatically track changes between separate runs.
CRM import: export CSV and map fields into a dedicated research list. Review scope, source, dates and completeness before classifying a record as a sales opportunity. ZIP filtering can be done on the exported zipCode field; there is no direct ZIP input.
Use from an AI assistant
An MCP-compatible client can use the official Apify MCP server. Configure the server URL as:
https://mcp.apify.com?tools=samstorm/building-permit-lead-scraper
Authorize with your own Apify account, inspect the Actor inputs and current pricing, then request the three-record Chicago sample above. Your normal Actor charges apply. Inspect run status and retrieve the dataset before summarizing results; do not treat a started run as a completed result. This setup requires no API key funded by the Actor developer.
Data sources and support
The base search reads official city open-data portals. Check each source's terms and use public records appropriately. Publication does not establish permission for every form of outreach.
For an issue, include the run link, city, filter, expected behavior and observed result. Keep tokens and private customer data out of public issues. Report whether the run failed, returned no matches, or returned records with unexpected scope; these require different investigations.