ROC
Arizona Roofing Contractor Directory & Leads (ROC)
Export every active Arizona ROC-licensed roofing contractor (1,484 on 2026-10-13) with phone, street address, qualifying party, principals, class and expiry date.
Verification
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
license_number | string|null |
business_name | string|null |
dba_name | string|null |
classification | string|null |
classification_detail | string|null |
license_class_type | string|null |
status | string|null |
person_name | string|null |
principals | array|null |
phone | string|null |
address | string|null |
city | string|null |
address_state | string|null |
zip_code | string|null |
issue_date | string|null |
expiration_date | string|null |
matched_by | string|null |
license_type | string|null |
state | string|null |
notice | string|null |
notice_type | string|null |
source_url | string|null |
Sample row
{
"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"
} Inputs
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
classification | string | no | — | Narrow to one ROC roofing class: 'C-42' (commercial), 'R-42' (residential) or 'CR-42' (dual). Leave empty for all three. Any other class is dropped and logged. |
classifications | array | no | [] | Several roofing classes in ONE run, e.g. R-42 and CR-42. |
city | string | no | — | Mailing-address city, exact match ignoring case and punctuation, e.g. 'Phoenix'. ROC lists licences by mailing address, not by where the contractor works. |
cities | array | no | [] | Several cities in ONE run, e.g. Phoenix, Mesa, Scottsdale. |
zipCode | string | no | — | 5-digit mailing ZIP, e.g. '85018'. |
zipCodes | array | no | [] | Several ZIP codes in ONE run. |
arizonaAddressesOnly | boolean | no | false | Out-of-state firms hold ROC roofing licences too: 184 of the 1,484 active roofers (2026-10-13 list) have a mailing address outside Arizona. Tick to drop them. |
includePhone | boolean | no | true | ROC's posting list has no phone column. When ticked, each licence is matched to ROC's contractor search for its phone and the people on the licence (owners, officers, qualifying party). Adds time, not cost. Rows that could not be matched have no phone or principals. |
maxResults | integer | no | 500 | Cap on licences for the WHOLE run — your spend control. 1,484 active roofing licences statewide on the 2026-10-13 list; set 100000 to take everything that matches. |
proxyConfiguration | object | no | {"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"],"apifyProxyCountry":"US"} | Used only to download ROC's statewide posting list, and only if the direct download is refused (ROC's Cloudflare blocks datacenter IPs). Residential is the setting that works. |
Pricing
Pay per result (dataset-item) — no charge for empty runs.
Example: 246 Phoenix roofing contractors at $0.002/result ≈ $0.49.
FAQ
Where does the data come from?
From the Arizona Registrar of Contractors (ROC). The actor downloads ROC's Posting List (roc.az.gov/posting-list), the official CSV of every active licence, and keeps the roofing classes; phone and principals come from ROC's public contractor search (azroc.my.site.com), matched by licence number. Both are read on every run.
How many roofing contractors are there?
1,484 active roofing licences on the 2026-10-13 Posting List: CR-42 Roofing (dual) 1,382, C-42 (commercial) 54, R-42 (residential) 48. Largest mailing cities: Phoenix 246, Tucson 199, Mesa 132, Gilbert 68.
Which classes count as roofing?
ROC's three roofing classes: C-42 (commercial), R-42 (residential) and CR-42 (dual — both). Leave the class filter empty for all three, or name one or more to narrow. Any other class is dropped and logged.
Does it include out-of-state contractors?
Yes: 184 of the 1,484 active roofing licences have a mailing address outside Arizona, most often California (46), Texas (28) and Utah (19). Tick 'Arizona mailing addresses only' to drop them.
Why is phone missing on a few rows?
The Posting List has no phone column, so each licence is matched to ROC's contractor search. All 1,484 matched on 2026-10-14; 6 of those accounts carry no phone, so their phone is null.
How am I charged?
$0.002 per roofing licence returned. The default run returns 500 ($1.00); Phoenix roofers were 246 ($0.49) and the whole state 1,484 ($2.97) on 2026-10-14. Rows explaining an outage, an unrecognised filter or a reached spending cap are free.
Guides & use cases
Related actors