← Use cases

Use case

Export Phoenix, Arizona Roofing Contractors

Every active ROC-licensed roofing contractor with a Phoenix mailing address, with phone, street address, qualifying party and principals.

Say you sell underlayment and roof coatings to contractors, monsoon season is the busiest stretch of the Phoenix roofing year, and you want your inside sales team calling every licensed roofer in the city before it starts: a business name, a phone number, and the name of the person who holds the licence. In Arizona that list is the Registrar of Contractors’ (ROC) roofing classes, C-42 commercial, R-42 residential and CR-42 dual. On 2026-10-11 there were 244 active roofing licences with a Phoenix mailing address.

The manual way, and what it costs

The Arizona Registrar of Contractors Contractor Search page
ROC's Contractor Search. It shows a phone number, one search at a time.

ROC gives you the list and the phones in two different places. The Posting List on roc.az.gov is a free CSV of every active licence in the state, 58,184 rows in the file dated 2026-10-07, and filtering it to roofing in Phoenix takes a few minutes in a spreadsheet. It has street addresses and the qualifying party, but no phone column.

The phone is on ROC’s Contractor Search, and so are the owners and officers. Its Advanced Search filters by city and classification, but a search stops at about 1,000 contractors and applies the city after that cutoff: searching all of Phoenix returns 253 contractors, against 9,162 active Phoenix licences. So the dependable way to add phones to your 244 rows is 244 licence-number searches, copying each phone across by hand. At a minute each that is about four hours, and the list is stale the next time ROC refreshes the file. If you only need the 20 roofers nearest your branch, do it by hand.

The faster way

Arizona Contractor License Lookup & Leads Scraper (ROC) filters the Posting List and matches each licence to the search for you.

{
  "classification": "roofing",
  "city": "Phoenix",
  "maxResults": 500
}

classification as the word roofing takes all three roofing classes at once. That matters here: 236 of the 244 Phoenix roofers hold the dual class CR-42, 7 hold residential R-42 and 1 commercial C-42, so a filter of R-42 alone would have found 7. city matches the mailing-address city exactly, and maxResults at 500 sits above the 244 that match, so the list is complete; the log says “244 of 58184 active licences match”. On Apify the run took 48 seconds, and the phone match covered 244 of 244.

What comes back

{
  "license_number": "234021",
  "business_name": "Arcadia Roofing, LLC",
  "dba_name": null,
  "classification": "CR-42",
  "classification_detail": "CR-42 Roofing",
  "license_class_type": "Specialty Dual",
  "status": "Active",
  "person_name": "Tommy Louis Leale",
  "principals": [
    "Tommy Louis Leale (Member;Qualifying Party)"
  ],
  "phone": "(602) 840-7663",
  "address": "3008 N. 44th Street",
  "city": "Phoenix",
  "address_state": "AZ",
  "zip_code": "85018",
  "issue_date": "2007-06-16",
  "expiration_date": "2027-06-30",
  "matched_by": "export",
  "license_type": "Contractor License",
  "state": "AZ",
  "source_url": "https://roc.az.gov/posting-list"
}
FieldExample valueMeaning
phone(602) 840-7663Business phone from ROC’s search
person_nameTommy Louis LealeQualifying party, the licence’s responsible person
principalsTommy Louis Leale (Member;Qualifying Party)Everyone on the licence, with roles
dba_name—The trading name, when filed
address / zip_code3008 N. 44th Street / 85018Mailing address
expiration_date2027-06-30End of the current licence term

phone and principals are what turn the list into calls. All 244 rows had a phone, and 239 distinct numbers among them, because a few firms share a line. 232 rows name a qualifying party, and 218 list more than one person in principals, usually an owner beside the qualifier, so the caller can ask for someone by name. 34 firms file a DBA, which is usually the name on the truck.

What you’d do with it

Export to CSV and load it into the dialler or CRM, keyed on license_number so the next pull updates rows rather than duplicating them. Split the list by zip_code if reps own territories; the busiest were 85041 (16 licences), 85016 (15) and 85009 (14). Then use the dates: 54 of the 244 were first issued since the start of 2025, the newest firms and the least likely to have a supplier yet, and 54 expire by the end of March 2027. Re-run monthly and compare licence numbers to catch the new ones.

Worth knowing

This is roofers whose mailing address is in Phoenix, not every roofer who works there: ROC files licences by mailing address, so a Glendale or Tempe roofer working Phoenix jobs is not on it. Add those cities to cities to widen the net. The list is active licences only, as of ROC’s last Posting List refresh (2026-10-07 for this run), so a licence issued in the last few days is not on it yet. There is no email: ROC publishes none. And the download goes through Apify’s residential proxy, which added about $0.09 of platform usage to this run on top of the $0.98 for 244 rows.


Run it yourself: How to run Arizona Contractor License Lookup & Leads Scraper (ROC) walks the whole thing step by step, including the full 58,184-licence export.

To check the roofers you already buy from rather than find new ones, Verify Arizona ROC Contractor Licenses runs their licence numbers for suspended or revoked licences. For roofers across the state line in Nevada, Nevada Contractor License Lookup & Verify (NSCB) does the same export from Nevada’s board.

Last updated 2026-10-11