Iowa Contractor License Lookup & Export (DIAL) avatar

Iowa Contractor License Lookup & Export (DIAL)

Pricing

$0.004 / license record

Go to Apify Store
Iowa Contractor License Lookup & Export (DIAL)

Iowa Contractor License Lookup & Export (DIAL)

Export every active Iowa construction contractor registration (18,000 on 2026-10-07) from DIAL's official roster, with phone, email, mailing address, county and NAICS trade. Filter by trade, county, city, ZIP or name.

Pricing

$0.004 / license record

Rating

0.0

(0)

Developer

ScrapeBench

ScrapeBench

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

an hour ago

Last modified

Categories

Share

Pain points

  • Iowa has no state general-contractor licence: the statewide record is DIAL's construction contractor REGISTRATION, so a 'licence' search elsewhere comes back empty.
  • DIAL publishes the roster only as a ZIP holding one 18,000-row CSV, which you have to download, unzip and filter yourself every week it changes.
  • The file names each registrant's trade by a text label only (e.g. 'Plumbing/Heating & A/C Contractors'), with no NAICS code to join on.

What we solve

  • Pull the whole statewide roster, or just the slice you need, in one run: filter by trade, county, city, ZIP or name, with a batch list for each.
  • Every row carries the 6-digit NAICS code mapped from DIAL's own published activity list, beside the label.
  • Phones are formatted, the duplicated 'CITY ST ZIP' line is dropped from the street address, and counties are title-cased.

Summary

Export Iowa's statewide roster of active construction contractor registrations straight from the Iowa Department of Inspections, Appeals, and Licensing (DIAL). Anyone earning $2,000 or more a year from construction in Iowa must register, so this is the state's list of working contractors: 18,000 active registrations on 2026-10-07, each with business name, registrant name, phone, email, mailing address, county, NAICS primary activity, registration number and issue/expiry dates. Leave the filters empty to take the whole state, or narrow by trade ('roofing', '238220'), county, city, ZIP or name. The file is read fresh on every run. Pay per registration returned.

Who it's for

  • Sales teams selling materials, equipment, insurance or software to Iowa contractors
  • Lead-generation agencies building trade-specific contractor lists by county
  • General contractors and suppliers sourcing registered subcontractors near a job
  • Compliance teams checking that vendors hold an active Iowa contractor registration

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:

{
"county": "Polk",
"trade": "roofing",
"maxResults": 500
}

See Inputs below for every available field.

What you get

One row per record:

FieldDescription
license_numberDIAL registration number (e.g. C153532), unique per registration
business_nameRegistered business name
person_nameRegistrant's first and last name
phonePhone on file, formatted (XXX) XXX-XXXX
emailEmail on file with DIAL
addressMailing street address
cityMailing city
address_stateMailing state (out-of-state firms can register)
zip_codeMailing ZIP
countyIowa county as DIAL records it
naics_code6-digit NAICS code of the primary activity
primary_activityDIAL's activity label, e.g. Roofing Contractors
statusAlways Registered (the file holds only active registrations)
issue_dateRegistration issue date
expiration_dateRegistration expiry date
source_urlThe dataset's page on data.iowa.gov

Sample:

{
"license_number": "C153532",
"business_name": "515 PAINTING & HOME SERVICES LLC",
"person_name": "MARLON NAZRALA DELCID",
"phone": "(515) 205-3017",
"email": "mjnazrala@gmail.com",
"address": "2910 WOOD STREET",
"city": "AMES",
"address_state": "IA",
"zip_code": "50014",
"county": "Story",
"naics_code": "238320",
"primary_activity": "Painting & Wall Covering Contractors",
"status": "Registered",
"issue_date": "2026-09-29",
"expiration_date": "2027-09-29",
"license_type": "Construction Contractor Registration",
"state": "IA",
"source_url": "https://data.iowa.gov/catalog/dataset/1052"
}

Inputs

FieldRequiredTypeDefaultDescription
tradenostring—A word from DIAL's primary-activity label ('roofing', 'electrical', 'plumbing', 'remodelers') — matches at the start of a word — or a NAICS code ('238160') or code prefix ('2382' = every specialty trade). A value that matches none of the 32 activities is dropped and logged.
tradesnoarray[]Several trades in ONE run, e.g. roofing and siding. Combined with 'Trade' if you fill both.
countynostring—Iowa county, e.g. 'Polk', 'Linn County', 'obrien'. DIAL fills county for Iowa addresses only. An unrecognised county is dropped and logged.
countiesnoarray[]Several counties in ONE run. Combined with 'County' if you fill both.
citynostring—Mailing city, exact match ignoring case and punctuation, e.g. 'Des Moines'.
citiesnoarray[]Several cities in ONE run.
zipCodenostring—5-digit mailing ZIP, e.g. '50309'.
zipCodesnoarray[]Several ZIP codes in ONE run.
nameFilternostring—Case-insensitive text found in the business name or the registrant's first/last name, e.g. 'roofing llc' or 'smith'.
nameFiltersnoarray[]Several names in ONE run; a registration matching any of them is returned once.
iowaAddressesOnlynobooleanfalseRegistrants from any state can work in Iowa: 4,057 of 18,000 (22.5%, 2026-10-07) have an out-of-state mailing address. Tick to drop them.
maxResultsnointeger500Cap on registrations returned for the WHOLE run (this is an export; the cap is your spend control). The full roster was 18,000 on 2026-10-07 — set 100000 to take everything that matches.
proxyConfigurationnoobject{"useApifyProxy": false}Optional. data.iowa.gov answers direct requests; enable a proxy only if a run returns a 'blocked' notice.

Pricing (Pay Per Event)

You pay per result (dataset-item) — no charge for empty runs. Example: 115 Polk County roofing contractors at $0.004/result ≈ $0.46.

The whole statewide roster (18,000 rows on 2026-10-07) costs $72.00 at maxResults 100000; the default run (500 rows) costs $2.00. Apify platform usage is billed separately.

Use cases

  • Territory prospecting: export every roofing and siding contractor in Polk and Linn counties with phone and email for a CRM.
  • Statewide list build: take all 18,000 active registrations once, then re-run monthly to catch new registrants by issue date.
  • Subcontractor sourcing: list registered electrical (238210) or plumbing/HVAC (238220) contractors in a ZIP before sending bid invitations.
  • Vendor compliance: match your vendor names against the active roster and note each expiry date.

Why this actor

  • Contact data on nearly every row: phone on 17,954 of 18,000 registrations (99.7%), email on 17,583 (97.7%), street address on 17,997 (measured 2026-10-07).
  • Straight from DIAL's official open-data roster, downloaded fresh on every run (~1.3 s), so each run reflects the latest weekly refresh.
  • Filter by NAICS code or trade word, county, city, ZIP or name; a value it does not recognise is dropped and logged, never silently widened to the whole state.
  • Pay per registration returned; outage and bad-input notices are free.

Limitations & updates

Covers active Iowa construction contractor registrations only: no expired or revoked registrations, and no DIAL trade licences (electrical, plumbing, mechanical), which are a separate system. The file is refreshed weekly, so a registration made in the last few days may not appear yet. County is blank on 4,269 of 18,000 rows (mostly out-of-state addresses; 255 Iowa addresses also lack one). Each registrant has one primary activity, so a firm doing several trades appears under one. The roster was exactly 18,000 rows on 2026-10-07; no cap was found in the source's published query, but DIAL publishes no separate total to confirm it against. Data: Iowa DIAL via data.iowa.gov, licensed CC BY 4.0 — attribute the source if you republish it.

FAQ

Where does the data come from?

From the Iowa Department of Inspections, Appeals, and Licensing (DIAL), Building & Construction Division: the open-data set 'Active Iowa Construction Contractor Registrations' (data.iowa.gov dataset 1052), published under CC BY 4.0 and refreshed weekly. The actor downloads it on every run.

Is this a licence or a registration?

A registration. Iowa does not license general contractors at state level; anyone earning at least $2,000 a year from construction in Iowa must register with DIAL and renew annually. Trades such as electrical and plumbing also need separate DIAL trade licences, which this file does not cover.

How many contractors are there?

18,000 active registrations on 2026-10-07. Largest trades: Residential Remodelers 3,397, All Other Specialty Trade 1,796, Electrical 1,727, Plumbing/Heating & A/C 1,436, Roofing 880. Largest counties: Polk 2,437, Linn 1,071, Johnson 553, Scott 496.

Does it include out-of-state contractors?

Yes, 4,057 of the 18,000 (22.5%) have a mailing address outside Iowa, most often Nebraska (887), Minnesota (527) and Illinois (435). Tick 'Iowa mailing addresses only' to drop them. DIAL leaves county blank for most of them, so a county filter returns Iowa addresses only.

How do I name a trade?

With a word from the activity label, matched at the start of a word ('roofing', 'electrical', 'remodelers'), or a NAICS code ('238160') or prefix ('2382' for every specialty trade). DIAL uses 32 activities: 230000 Other/Undefined plus the NAICS codes from 236115 New Single-Family Housing Construction to 238990 All Other Specialty Trade Contractors; a value that matches none of them is dropped and logged.

Does it include expired registrations?

No. DIAL's file holds only registrations with status Registered and an expiry date on or after the refresh date, so every row reads status 'Registered'.

How am I charged?

$0.004 per registration returned. The default run returns 500 rows ($2.00); the whole state is 18,000 rows ($72.00). 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:

  • Virginia Contractor License Lookup (DPOR Bulk) — You want the same statewide export for Virginia's DPOR contractor licences.
  • Arkansas Contractor License Lookup & Verify (ACLB) — You need Arkansas contractor licences, one lookup or the whole state.
  • Minnesota Contractor License Lookup & Export (DLI) — You're verifying a Minnesota residential contractor (DLI).
  • Mississippi Contractor License Lookup & Export (MSBOC) — You need Mississippi contractors — the active MSBOC roster with phone, street address and classifications, by county or class.
  • Ohio Contractor License Lookup & Export (OCILB) — You need Ohio electrical, HVAC, plumbing, hydronics or refrigeration contractors — the full OCILB roster, by trade and county.
  • Nebraska Contractor Registration Lookup & Export (NDOL) — You need Nebraska contractors — every current NDOL registration, by service and county, with phone on request.
  • Delaware Contractor License Lookup & Export (DOR + DPR) — You need Delaware contractors — DOR business licences plus DPR electrical, plumbing and HVACR licences, by city or ZIP.
  • DC Contractor License Lookup & Export (DLCP) — You need contractors licensed in Washington, DC — every active DLCP general contractor, home improvement and asbestos licence, by address state, ZIP or ward.

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 Iowa contractor registrations for roofing contractors in Polk County, with phone and email."

That input returned 115 registrations on 2026-10-07. With no filters it exports the whole state (18,000 rows), so set a trade or county before running it from an agent. Runs started this way bill exactly like any other run.