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
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"
}
| Field | Example value | Meaning |
|---|---|---|
license_number | 234021 | ROC licence number, six digits |
business_name | Arcadia Roofing, LLC | Licensed business name |
dba_name | — | Doing-business-as name, when filed |
classification | CR-42 | C-42, R-42 or CR-42 |
classification_detail | CR-42 Roofing | Class code and name, e.g. CR-42 Roofing |
license_class_type | Specialty Dual | Specialty 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