Use case
Allegheny County PA Home Improvement Contractors with Phone Numbers
Active Pennsylvania home improvement contractor registrations in Allegheny County, with phone, street address, expiry date and type of work.
Say you sell roofing and siding supplies, and your company has just opened a branch yard in Monroeville. Your manager wants a call list of every registered home improvement contractor in Allegheny County by Friday, with phone numbers, so the counter staff can ring them before the spring season. Any contractor doing $5,000 or more of home improvement work a year in Pennsylvania has to register with the Attorney General, so the register is the closest thing to a complete list. On 2026-10-28, Allegheny County held 4,145 active registrations, 1,948 of them with a Pittsburgh address.
The manual way, and what it costs
For one county, the manual way is good. Open the Attorney General’s search, pick Allegheny in the County box, pass the “verify you are human” check, and press Search: the whole county comes back in the grid, and the Download button saves it as an Excel file. If Allegheny is your whole territory and you need the list once, do it that way and save the money. It stops being reasonable when the territory grows. Butler, Beaver, Washington and Westmoreland counties are each another search and another file, a contractor can turn up in more than one of them, so the files need de-duplicating before anyone dials, and next quarter it is all to do again.
The faster way
Pennsylvania Contractor Registration Lookup & Leads Scraper does the same search once and hands back every row at once.
{
"categories": [
"allegheny"
],
"status": "Active",
"maxResults": 500
}
categories: ["allegheny"] is the county, the same county search the Attorney General’s form runs. Add "butler", "beaver" and the rest to the list when the territory grows, and a contractor listed under two of them still comes back once. status: Active keeps out any registration whose expiry date has passed since the copy was read. maxResults: 500 is a cheap first look at $2.00; set it to 4,145 for the whole county at $16.58.
What comes back
{
"listing_id": "PA178376",
"name": "Allens Handyman Services",
"phone": "412-447-1794",
"phone_e164": "+14124471794",
"street": "2283 Monroeville Rd",
"city": "Monroeville",
"region": "PA",
"postal_code": "15146",
"country": "US",
"category": "home improvement contractor",
"categories": [
"home improvement contractor"
],
"source": "snapshot",
"source_url": "https://hicsearch.attorneygeneral.gov/#PA178376",
"extras": {
"status": "Active",
"expires": "2027-04-16"
}
}
| Field | Example value | Meaning |
|---|---|---|
listing_id | PA178376 | Registration number (e.g. PA178376) |
name | Allens Handyman Services | Business name |
extras.status | — | Active; a registration whose expiry date has passed since the copy was read reads Expired, with a status_note |
extras.expires | — | Registration expiry date |
extras.types_of_work | — | Types of work the contractor declared (roofing, HVAC, electrical, …), where on file |
phone | 412-447-1794 | Phone as the registry printed it |
For the counter staff, phone_e164 is the column that matters: all 4,145 Allegheny registrations have one on the 2026-10-28 data, already in +1 format for a dialler. Every one has a street address, so the yard can sort by postal_code and start with 15146 and the ZIP codes around it. extras.types_of_work narrows it further where it is filled in: a roofing supplier can call the contractors who declared Roofing first, then work through the ones who declared nothing.
What you’d do with it
Export the dataset as CSV, split it by postal_code between the staff, and import it into the CRM with listing_id, the registration number, as the external ID. When the next refresh lands, the registration number lets you match rows back without creating duplicates, and a new number is a new contractor to call.
Worth knowing
This is a register, not a contact database. It has no email, and it holds active registrations only, so a contractor whose registration lapsed is simply absent rather than marked expired. Type of work is on file for only about half the registrations, so filtering on it alone drops contractors who never filled it in. Registration is not a licence and, as the Attorney General says on the search page itself, not an endorsement. And a registration says a contractor may work in Pennsylvania, not that they are busy in Allegheny County this month.
Run it yourself: How to run Pennsylvania Contractor Registration Lookup & Leads Scraper walks the whole thing step by step.
If your territory also crosses into Ohio, Ohio Contractor License Lookup returns Ohio’s licensed contractors the same way; for West Virginia, West Virginia Contractor License Lookup.
Last updated 2026-10-28