← Health board

Pennsylvania Contractor Registration Lookup & Leads Scraper

Active Pennsylvania home improvement contractor registrations from the Attorney General: phone, address, expiry and type of work, by county, city or registration number.

100%golden-diff pass
Run it on Apify → verified nightly

Verification

100%golden-diff success
8canary runs
0days since last canary run

Output fields

Authoritative field set from the dataset schema.

FieldType
source_urlstring|number|array|object|null
listing_idstring|number|array|object|null
namestring|number|array|object|null
phonestring|number|array|object|null
phone_e164string|number|array|object|null
emailstring|number|array|object|null
websitestring|number|array|object|null
streetstring|number|array|object|null
citystring|number|array|object|null
regionstring|number|array|object|null
postal_codestring|number|array|object|null
countrystring|number|array|object|null
categorystring|number|array|object|null
categoriesstring|number|array|object|null
latstring|number|array|object|null
lngstring|number|array|object|null
sourcestring|number|array|object|null
extrasstring|number|array|object|null
noticestring|null

Sample row

{
  "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"
  }
}

Inputs

FieldTypeReqDefaultDescription
mode string no "auto" export: no names, just filters; returns the whole matching list. lookup / verify: put company names (matched if contained in the company name) or licence numbers (exact) in 'queries'. auto picks the mode for you.
query string no — A business name (or listing number) to look up in the stored copy of the directory. Kept alongside 'queries' for saved tasks.
queries array no [] A business name (or listing number) to look up in the stored copy of the directory. Several values in one run; combined with 'query'.
status string no — Only listings in this status. Kept alongside 'statuses' for saved tasks.
statuses array no [] Only listings in this status. Several values in one run; combined with 'status'.
city string no — Only listings in this city. Kept alongside 'cities' for saved tasks.
cities array no [] Only listings in this city. Several values in one run; combined with 'city'.
categories array no [] Only rows from this county (one or more). Available: adams, allegheny, armstrong, beaver, bedford, berks, blair, bradford, bucks, butler, cambria, cameron, carbon, centre, chester, clarion, clearfield, clinton, columbia, crawford, cumberland, dauphin, delaware, elk, erie, … (68 in all; an unknown name returns the full list, free).
maxResults integer no 500 Per query in lookup mode; per run in export mode.
proxyConfiguration object no {"useApifyProxy":false} Used only for live lookups; exports read the stored snapshot.

Pricing

Pay per result (dataset-item) — no charge for empty runs.
Example: 1000 contractor registrations at $0.004/result ≈ $4.00.

FAQ

Who has to register?

Under Pennsylvania's Home Improvement Consumer Protection Act, contractors who do $5,000 or more of home improvement work a year register with the Office of Attorney General. Registration is not a licence and, as the Attorney General states, not an endorsement.

Where does the data come from?

The Pennsylvania Office of Attorney General's Home Improvement Contractor search, read with the Office's permission. Only the fields the search shows a visitor are returned.

How do I get one county?

Set categories to one or more county names (allegheny, philadelphia, montgomery, ..., or out-of-state). A county is the Attorney General's own county search, which can list a contractor under more than one county; a run never returns the same registration twice.

Does it include expired registrations?

No. The registry publishes active registrations only. A registration whose expiry date has passed since the copy was read is returned as Expired, with a status_note saying the status came from the date.

Can I verify a registration number?

Yes. Put one or more registration numbers (e.g. PA178376) in queries, or company names to match by name.

How current is it?

The registry was read on 2026-10-28. The stored copy is refreshed when it is older than a month and the actor is in use. The run log states the date of the copy, and a run served from a copy older than 45 days returns one free notice saying so.

How am I charged?

One event per registration returned. Notices are free.

Guides & use cases