Iowa Contractor Registration Lookup & Leads Scraper (DIAL) avatar

Iowa Contractor Registration Lookup & Leads Scraper (DIAL)

Pricing

$0.004 / license record

Go to Apify Store
Iowa Contractor Registration Lookup & Leads Scraper (DIAL)

Iowa Contractor Registration Lookup & Leads Scraper (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

5

Total users

5

Monthly active users

7 days 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

This actor does two jobs. Run it, then collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API).

Get a list (export): no names, just filters; returns the whole matching list.

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

Check specific firms (lookup): put company names or licence numbers in nameFilters; Inputs below says how each is matched.

{
"nameFilters": [
"515 PAINTING"
],
"maxResults": 5
}

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 & Leads Scraper (DLI) — You're verifying a Minnesota residential contractor (DLI).
  • 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, home improvement and asbestos licence, by address state, ZIP or ward.
  • Arizona Contractor License Lookup & Leads Scraper (ROC) — You need Arizona contractors — one ROC licence by number or name, or every active licence statewide with phone, by class and city.
  • 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 & List Scraper (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 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.

Data & lawful use

This actor collects publicly available information that the Iowa Department of Inspections, Appeals, and Licensing publishes for public lookup — licence records, business listings and the contact details professionals list there. Some of it identifies individuals (sole proprietors, licence holders, agents), so treat any names, phone numbers and emails in your results as personal data.

When you run this actor, you decide what is collected and what it is used for, so you are the controller of that data and we act only as your processor (Apify Standard Actor Contract). You need a lawful basis for your use, must honour opt-out and deletion requests, and must follow the marketing rules that apply to you (CAN-SPAM, TCPA, GDPR, CCPA and similar). Don't use the output for unsolicited bulk messaging, for screening covered by the FCRA, or for anything the source's own terms forbid.

Your results are stored in your own Apify account. We don't keep a copy of your results and don't sell or share them.

Disclaimer

This is an independent tool. It is not affiliated with, endorsed by or sponsored by the Iowa Department of Inspections, Appeals, and Licensing. Names and marks are used only to describe the data source. Records are provided as published by the source and may be out of date or incomplete. For anything consequential (hiring, a permit, a legal decision), confirm the record with the issuing agency. You are responsible for making sure your use complies with applicable law and the source's terms.

Need help?

Open an issue on this actor's Issues tab and we'll respond there. Bug reports, missing fields and feature requests are all welcome. Guides and examples: scrapebench.dev.

If you are a person named in this data and want your record removed from our copy, email apify-help@scrapebench.dev; the source agency remains the official record.

Your run may be used to improve our services. If something looks off, or you want this actor to fit your use better, please share your run data with us: Apify Console → Settings → Security → Share run data with developers. It lets us see exactly what went wrong and keep improving the actor.