How to find homes that just pulled a solar or roof permit (and knock the block)
Door-to-door is brutal when the doors are cold. The fix isn't knocking more houses — it's knocking the right ones. A building permit is the cleanest "right house" signal there is: a homeowner who just paid for a project a competitor is doing two streets over. Here's how field-sales teams use permit data to cut a territory, find every fresh install, and work the neighbors while the job is still on the lawn.
Why a permit is the warmest door on the block
Every canvassing playbook teaches the same thing: ride the route. When one house on a street goes solar or gets a new roof, the neighbors notice — and they're far more likely to say yes. The hard part has always been knowing which houses just had work done. A lead list tells you who owns a home; it doesn't tell you who just spent $30,000 on it last week.
Permits do. When a contractor pulls a permit, it becomes a public record that a specific address just committed budget to a specific kind of work — solar, re-roof, pool, HVAC, an addition. Pull the recent ones and you have a list of homes with proven, recent, local intent. That's the opposite of a cold list everyone else already bought.
The "ride the route" play, in one API call
This is the move permit data makes almost unfair. Take any recent install, draw a small radius around it, and get every door worth knocking nearby:
Find a fresh install
Pull recent solar or roofing permits in your metro from the last 30 days.
Draw a radius around it
Take that permit's latitude/longitude and search a quarter-mile radius for every nearby home.
Knock the block
That radius is your route for the day — neighbors of a house that just did the exact work you sell.
# Every home within a quarter mile of a recent install
curl "https://api.permit-stack.com/v1/permits/search?category=SOLAR&lat=30.31&lng=-97.74&radius_miles=0.25&date_after=2026-05-27" \
-H "X-API-Key: pk_your_key"
Run it off this week's installs and your route refreshes itself every week — no stale spreadsheet, no per-lead fee.
Cut a territory on a map, not a spreadsheet
Assigning reps real zones is the other half of canvassing. The search API takes a bounding box or a GeoJSON polygon, so you can draw a territory and get every matching permit inside it — with coordinates to drop a pin on your map:
# Every roofing permit in a drawn territory, last 60 days
curl "https://api.permit-stack.com/v1/permits/search?category=ROOFING&bbox=-97.80,30.25,-97.70,30.35&date_after=2026-04-27" \
-H "X-API-Key: pk_your_key"
Because it's a live API and not a flat export, the same call can drop straight onto a map instead of into a spreadsheet.
What's actually on each record
For a door-knocker, the useful fields are the ones that get you to the door and tell you who's already working the area:
- Address + category + dates — what work, where, and how recently. Your urgency window.
- Owner of record + mailing address — on assessor-linked records, enough to knock the door or mail a postcard.
- Contractor on the permit — name, and a phone/license where it was filed, so you can see which competitors are dense in a territory.
- Coordinates — to map the pin and run the radius play above.
Permit-triggered vs buying a lead list
| Permit-triggered (PermitStack) | Bought lead list | |
|---|---|---|
| The signal | A fresh permit — proven recent intent | A static list of owners |
| Freshness | Daily ingest; ~60s webhook alerts | Weekly or monthly |
| Map / territory search | Bounding box, polygon, radius | Per-metro PDF/CSV |
| Owner + mailing address | Where assessor-linked | Sometimes |
| Price | Free → $49/mo, any covered metro | ~$90–$470/mo per metro |
| Access | Self-serve, no sales call | Sales call / quote |
If you want the full side-by-side — including how this compares to Shovels and to skip-trace tools like BatchData — see the permit data for door-to-door & field sales guide.
Make it automatic
You don't have to re-run the queries by hand. Save a search for your trade and territory and get a daily or weekly email feed of new matching permits, or register a webhook and have new installs pushed to your CRM within about a minute of the permit landing — so you're first to the door. See real-time permit alerts for both.
Frequently asked questions
How do I find homes that recently got a roofing or solar permit?
Query the permit API for a recent category — ROOFING, SOLAR, HVAC, POOL — in your city, ZIP, or a drawn map area, filtered to the last 30 to 90 days. Every result is an address that just paid for that work, which makes it a warm, recent door. You can also subscribe to a webhook or an email feed so new matching permits arrive automatically.
Can I search by map area or draw a territory?
Yes. The search API accepts a bounding box, a GeoJSON polygon, and a latitude/longitude with a radius. Draw a rep's zone and get every permit inside it, or take one recent install and pull its neighbors within a quarter-mile radius to build a door-knock route.
Do I get the homeowner's name and mailing address?
On assessor-linked records, yes — the owner of record and their mailing address, which is what you need to knock the door or mail a postcard. PermitStack does not provide homeowner phone numbers or email addresses; for those you would pair it with a skip-trace tool.
Is permit data cheaper than buying canvassing lead lists?
Usually. Traditional permit-lead vendors sell a single metro for roughly $90 to $470 a month through a sales call. PermitStack starts free, is $49 a month for the full API and webhooks across 48 states, and you self-serve any covered metro — with no per-metro contract.
Knock the right doors this week
Free tier includes 100 requests/day to test. Upgrade to Developer ($49/mo) for webhooks, map search, and the full API when you're ready to scale.
Get free API key