Arizona Contractor License Lookup & Leads Scraper (ROC) avatar

Arizona Contractor License Lookup & Leads Scraper (ROC)

Pricing

$0.004 / license record

Go to Apify Store
Arizona Contractor License Lookup & Leads Scraper (ROC)

Arizona Contractor License Lookup & Leads Scraper (ROC)

Look up any Arizona ROC contractor licence by number or name, or export every active licence statewide (58,184 on 2026-10-07) with phone, street address, class, qualifying party and principals.

Pricing

$0.004 / license record

Rating

0.0

(0)

Developer

ScrapeBench

ScrapeBench

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

2 days ago

Last modified

Categories

Share

Pain points

  • ROC's contractor search answers one name or licence at a time, and a city or classification search stops at about 1,000 contractors, so Phoenix's 9,162 active licences cannot be listed from it.
  • ROC's statewide Posting List has every active licence with a street address but no phone number, and it is a 12 MB CSV you re-download and filter yourself every time it changes.
  • The phone and the people behind a licence (owners, officers, qualifying party) are only on the search side, so a list with both means matching two sources by licence number.

What we solve

  • Export the whole state, or the slice you need, in one run: filter by classification code or trade word, license type, city, ZIP, name or Arizona-only addresses, each with a batch list.
  • Each exported licence is matched to ROC's contractor search by licence number for its phone and principals, and every row says whether that match landed.
  • Verify licences in bulk: a list of licence numbers or names returns each licence's current status, including suspended, expired and revoked ones the Posting List leaves out.

Summary

Arizona contractor licences from the Arizona Registrar of Contractors (ROC), two ways. Export mode reads ROC's official Posting List — every active licence in the state, 58,184 on 2026-10-07 — and filters it by classification (R-42, CR-11, or a word like 'roofing'), license type, city, ZIP or name, adding each licence's business phone and principals from ROC's own contractor search. Lookup mode takes licence numbers or business/person names and returns every matching licence with its status, class, qualifying party, phone and city. Pay per licence returned.

Who it's for

  • Sales teams selling materials, equipment, insurance or software to Arizona contractors
  • Lead-generation agencies building trade-specific contractor lists by city or ZIP
  • General contractors and suppliers sourcing licensed subcontractors near a job
  • Compliance, insurance and lending teams verifying ROC licence status in bulk

How to use

Set the input, run the actor, and collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API). Example input:

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

See Inputs below for every available field.

What you get

One row per record:

FieldDescription
license_numberROC licence number, six digits
business_nameLicensed business name
dba_nameDoing-business-as name, when filed
classificationROC class code, e.g. CR-42
classification_detailClass code and name, e.g. CR-42 Roofing
license_class_typee.g. Specialty Dual, General Residential (export)
statusActive on export rows; any status on lookups
person_nameQualifying party
principalsPeople on the licence with their roles
phoneBusiness phone from ROC's contractor search
addressMailing street address (export)
cityMailing city
address_stateMailing state (out-of-state firms hold ROC licences)
zip_codeMailing ZIP
issue_dateLicence issue date (export)
expiration_dateLicence expiry date (export)
enrichment_statusWhether the phone/principals match landed (export)
source_urlThe ROC page the row came from

Sample:

{
"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",
"enrichment_status": "matched",
"license_type": "Contractor License",
"state": "AZ",
"source_url": "https://roc.az.gov/posting-list"
}

Inputs

FieldRequiredTypeDefaultDescription
querynostring—An ROC licence number ('333473' or 'ROC 333473'), a business name ('Arcadia Roofing'), or a person's name written FIRST then LAST ('Tommy Leale'). Leave empty to run an export instead.
queriesnoarray[]Several lookups in ONE run, one per line. Combined with the field above if you fill both.
classificationnostring—An ROC class code ('R-42', 'CR-11', 'B', 'KB-1') or a word from the class name ('roofing' = every *-42 Roofing class, 'electrical', 'swimming pools'). A value that matches no class on the list is dropped and logged.
classificationsnoarray[]Several classifications in ONE export, e.g. R-39 and CR-39.
licenseClassTypenostring—Residential, Commercial, Dual, General or Specialty — matched against ROC's class type ('Specialty Dual', 'General Residential', ...).
licenseClassTypesnoarray[]Several license types in ONE export.
citynostring—Mailing-address city, exact match ignoring case and punctuation, e.g. 'Scottsdale'. ROC lists licences by mailing address, not by where the contractor works.
citiesnoarray[]Several cities in ONE export.
zipCodenostring—5-digit mailing ZIP, e.g. '85018'.
zipCodesnoarray[]Several ZIP codes in ONE export.
nameFilternostring—Case-insensitive text in the business name, DBA or qualifying party.
nameFiltersnoarray[]Several name fragments in ONE export; a licence matching any of them is returned once.
arizonaAddressesOnlynobooleanfalseOut-of-state contractors can hold an ROC licence: 9,336 of 58,184 active licences (16%, 2026-10-07) have a mailing address outside Arizona. Tick to drop them.
includePhonenobooleantrueThe posting list has no phone column. When ticked, each exported 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 say so in enrichment_status.
maxResultsnointeger500EXPORT: cap on licences for the WHOLE run — your spend control (58,184 active licences on 2026-10-07; set 100000 to take everything that matches). LOOKUP: cap per name or number (default 50).
proxyConfigurationnoobject{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US"}Used only to download the statewide posting list in EXPORT mode, and only if the direct download is refused (ROC's Cloudflare blocks datacenter IPs). Residential is the setting that works; lookups never use it.

Pricing (Pay Per Event)

You pay per result (dataset-item) — no charge for empty runs. Example: 244 Phoenix roofing contractors at $0.004/result ≈ $0.98.

The default export (500 licences) costs $2.00; the whole state (58,184 active licences on 2026-10-07) costs $232.74 at maxResults 100000. Apify platform usage, including residential proxy traffic for the export download, is billed separately.

Use cases

  • Territory prospecting: export every roofing and HVAC contractor in Phoenix, Mesa and Scottsdale with phone and street address for a CRM.
  • Statewide list build: take all active licences once, then re-run monthly and compare issue dates to catch new licensees.
  • Subcontractor sourcing: list R-11/CR-11 electrical or CR-37 plumbing contractors in a ZIP before sending bid invitations.
  • Vendor compliance: run your vendors' ROC numbers as a lookup batch and flag any that are suspended, expired or revoked.

Why this actor

  • Phone on 57,999 of the 58,184 active licences (99.7%), principals on 58,163 and street address on 58,178, in one statewide run of 464 s (measured 2026-10-11).
  • Straight from ROC's two official public sources, read fresh on every run: the Posting List for the full active roster and the contractor search for phone, principals and non-active statuses.
  • Filter by class code or trade word, license type, city, ZIP or name; a value it does not recognise is dropped and logged, never silently widened to the whole state.
  • Pay per licence returned; outage and bad-input notices are free.

Limitations & updates

Exports cover active licences only, because ROC's Posting List holds only those; use a lookup for suspended, expired, revoked or cancelled licences. The Posting List is refreshed by ROC every few days (the 2026-10-11 run read the file dated 2026-10-07), so a licence issued since then appears in lookups but not yet in exports. ROC files licences by mailing address, so a city or ZIP filter finds where the contractor's mail goes, not where they work. Phone comes from ROC's contractor search: 7 of 58,184 licences had no account there on 2026-10-11, and 178 accounts carry no phone. Lookups return city, state and ZIP but no street address or licence dates. No email: ROC publishes none. The export download goes through a residential proxy when ROC's Cloudflare refuses the direct request, and that traffic is billed by Apify as platform usage.

FAQ

Where does the data come from?

From the Arizona Registrar of Contractors (ROC). Export mode downloads ROC's Posting List (roc.az.gov/posting-list), the official CSV of every active licence; lookups and the phone/principals match use ROC's public contractor search (azroc.my.site.com). Both are read on every run.

How many licences are there?

58,184 active licences on the 2026-10-07 Posting List, across 157 classifications. Largest: KB-2 Dual Residential and Small Commercial 4,331, B General Residential 3,971, KB-1 Dual Building 3,617, B-1 General Commercial 3,028, CR-11 Electrical 2,990. Largest cities: Phoenix 9,162, Tucson 4,835, Mesa 4,010, Scottsdale 2,597.

Lookup or export — which do I use?

Lookup when you have licence numbers or names and want their current status: fill 'License number or name' (or the batch list). Export when you want a list: leave that field empty and set filters. Lookups cover every status; exports cover active licences only, because the Posting List holds only those.

How do I name a classification?

By ROC code ('R-42', 'CR-11', 'B', 'KB-1' — exact, case and dash optional) or by a word from the class name ('roofing' returns C-42, R-42 and CR-42; 'electrical' every electrical class). R is residential, C commercial and CR dual. A value that matches no class on the list is dropped and logged.

Does it include out-of-state contractors?

Yes: 9,336 of the 58,184 active licences (16.0%) have a mailing address outside Arizona, most often California (2,662), Texas (937) and Utah (657). Tick 'Arizona mailing addresses only' to drop them. ROC lists licences by mailing address, not by where the contractor works.

Why is phone missing on some rows?

The Posting List has no phone column, so each exported licence is matched to ROC's contractor search by licence number. enrichment_status says what happened on that row: matched, not_found (the search had no account for it), skipped_time_budget (a very large export ran out of time) or source_unavailable. Untick 'Add phone + principals' for the fastest export.

How am I charged?

$0.004 per licence returned. The default export returns 500 licences ($2.00); Phoenix roofing contractors were 244 ($0.98) on 2026-10-11. Rows explaining an outage or an unrecognised filter are free.

Which actor to choose

Part of the contractor-data suite — pick the one that fits your goal:

  • Nevada Contractor License Lookup & Verify (NSCB) — You need Nevada contractors — one licence, or a statewide export by county and classification.
  • Utah Contractor Directory & Leads Scraper (DOPL) — You want Utah contractor leads with phone and email from the state's Construction Business Registry.
  • Virginia Contractor License Lookup (DPOR Bulk) — You want the same statewide export for Virginia's DPOR contractor licences.
  • Iowa Contractor Registration Lookup & Leads Scraper (DIAL) — You need Iowa contractors — the active DIAL roster with phone and email, by trade and county.
  • Mississippi Contractor License Lookup & Leads Scraper (MSBOC) — You need Mississippi contractors — the active MSBOC roster with phone, street address and classifications, by county or class.
  • Ohio Contractor License Lookup & Leads Scraper (OCILB) — You need Ohio electrical, HVAC, plumbing, hydronics or refrigeration contractors — the full OCILB roster, by trade and county.
  • Nebraska Contractor Registration Lookup & Leads Scraper (NDOL) — You need Nebraska contractors — every current NDOL registration, by service and county, with phone on request.
  • Delaware Contractor License Lookup & List Scraper (DOR + DPR) — You need Delaware contractors — DOR business licences plus DPR electrical, plumbing and HVACR licences, by city or ZIP.
  • DC Contractor License Lookup & List Scraper (DLCP) — You need contractors licensed in Washington, DC — every active DLCP general contractor and home improvement licence.
  • West Virginia Contractor License Lookup & Leads Scraper (WVCLB) — You need West Virginia contractors — every current WVCLB licence with phone and mailing address, by county or classification.
  • Colorado Electrical & Plumbing License Lookup & List Scraper — You need Colorado electrical or plumbing licences — contractors, masters and journeymen statewide, with status and public disciplinary actions.
  • Maryland Contractor License Lookup & List Scraper (MHIC) — You need Maryland home improvement contractors — every active MHIC licence with street address and expiry, by city or ZIP.
  • New Jersey Contractor License Lookup & Export (DCA) — You need New Jersey contractors — active DCA home improvement, electrical, master plumber and HVACR licences statewide or by city, with street address and owner for home improvement firms.

Guides & use cases

Written up on scrapebench.dev — the bench that runs and verifies this actor against the live source every night:

More actors, coverage and nightly verification results: scrapebench.dev

Works with AI assistants (MCP)

Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the MCP tab on this page — Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.

Then just ask:

"List the active Arizona roofing contractors with a Phoenix mailing address, with phone and qualifying party."

That input returned 244 licences on 2026-10-11. With no filters and no name it exports the whole state (58,184 licences), so set a classification or city before running it from an agent. Runs started this way bill exactly like any other run.