← Use cases

Use case

Export Every Arizona Roofing Contractor (ROC)

Every active ROC roofing licence in Arizona (C-42, R-42, CR-42) with phone, street address, qualifying party and principals.

Say you run a small inside-sales team for a company that finances roof replacements, and next month you start calling Arizona roofers to sign them up as installers. You need every licensed roofer in the state on one sheet with a phone number, and you need to know who owns each firm so the call goes to someone who can say yes. Arizona’s Registrar of Contractors licenses roofers in three classes, and on the 2026-10-13 list there were 1,484 active roofing licences. The list exists; it is split across two websites.

The manual way, and what it costs

The public search form on the source portal
the source portal — the official search. One record at a time.

ROC’s contractor search is free and it is the right tool for checking one roofer before you sign them: look up the name, read the phone, the principals and the licence status. As a list builder it falls short. It answers one name at a time, and a search by roofing class stops at about 1,000 contractors, fewer than the 1,382 CR-42 dual roofers alone.

The other free source is ROC’s Posting List, a 12 MB CSV of 58,345 active licences. If an address list is all you need, download it and filter to C-42, R-42 and CR-42 in a spreadsheet; that costs nothing and gets you street addresses. What it does not have is a phone column. Adding phones means looking up each of 1,484 licence numbers in the search and copying the result across, and you would do it again each time ROC refreshes the list, which it does every few days.

The faster way

Arizona Roofing Contractor Directory & Leads (ROC) does the same search once and hands back every row at once.

{
  "maxResults": 100000
}

With no class, city or ZIP filter the actor keeps all three roofing classes statewide, and maxResults: 100000 lifts the run cap above the 1,484 that exist, since the form prefills 500 and would stop a third of the way through. includePhone is on by default, which is the whole reason for this run: each licence from the Posting List is matched to ROC’s contractor search for its phone and principals. The 2026-10-14 statewide run took 244 seconds and cost $2.97 at $0.002 a row.

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
license_number234021ROC licence number, six digits
business_nameArcadia Roofing, LLCLicensed business name
dba_name—Doing-business-as name, when filed
classificationCR-42C-42, R-42 or CR-42
classification_detailCR-42 RoofingClass code and name, e.g. CR-42 Roofing
license_class_typeSpecialty DualSpecialty Commercial, Residential or Dual

phone turns the roster into a call list: 1,478 of the 1,484 licences had one on the 2026-10-14 run. principals is what gets the call to the owner, listing the people on the licence with roles such as Member or Qualifying Party, as in the Arcadia Roofing row above. license_class_type tells your reps whether they are calling a residential roofer, a commercial one or a dual, which matters when you finance home roofs: 48 hold R-42 residential only and 54 hold C-42 commercial only.

What you’d do with it

Export to CSV, drop the 54 commercial-only C-42 rows if you only finance homes, and import the rest into your dialler keyed on license_number. Sort by city to give each rep a patch: by mailing city, Phoenix had 246 roofers, Tucson 199, Mesa 132 and Gilbert 68. Re-run monthly and compare licence numbers and issue dates to see which roofers are newly licensed.

Worth knowing

Only active licences are in it, because the Posting List holds nothing else, so there are no suspended, expired or revoked roofers to screen against. ROC refreshes the list every few days (the 2026-10-14 run read the file dated 2026-10-13), so a brand-new licence can be missing for a few days. There is no email, since ROC publishes none, and 6 licences come back without a phone. Locations are mailing addresses with no county column: a city or ZIP filter tells you where the mail goes, not where the crew works, and 184 roofers mail from outside Arizona unless you tick arizonaAddressesOnly. Finally, ROC’s Cloudflare refuses Apify’s datacenter IPs, so the download goes through a residential proxy that Apify bills as platform usage on top of the $2.97.


Run it yourself: How to run Arizona Roofing Contractor Directory & Leads (ROC) walks the whole thing step by step.

When you only need one metro: the guide’s Phoenix example returns 246 roofers for $0.49, the cheaper start if you are piloting one metro.

When the campaign reaches Illinois: Illinois Roofing Contractor Directory & Leads Scraper (IDFPR) exports IDFPR’s roofing licences by county, with city and ZIP but no phone.

Last updated 2026-10-14