# Iowa Contractor Registration Lookup & List - DIAL (`loomwise/iowa-contractor-registrations`) Actor

Iowa construction contractor registration list and DIAL lookup, businesses only: registration number, trade, current issue and expiration dates, city, county and ZIP.

- **URL**: https://apify.com/loomwise/iowa-contractor-registrations.md
- **Developed by:** [Loomwise](https://apify.com/loomwise) (community)
- **Categories:** Lead generation, Automation
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Iowa Contractor Registration List and DIAL Lookup (businesses only)

**Every registered Iowa construction contractor business, from the official Iowa Data Hub dataset published by the Iowa Department of Inspections, Appeals, and Licensing (DIAL).** About **17,700 active contractor businesses** (from 18,355 active registrations, after person-named sole proprietors are dropped): residential builders and remodelers, commercial and industrial contractors, electrical, plumbing and HVAC, roofing, heavy and civil work, and other specialty trades. Each row has the business name, registration number, primary activity, current issue and expiration dates, city, county, state and ZIP.

**Sample output** (real rows, a few of the columns):

| `businessName` | `licenseNumber` | `trade` | `originalLicenseDate` | `expirationDate` | `city` | `county` |
|---|---|---|---|---|---|---|
| CREAR CONTRACTING LLC | E128360 | Siding Contractors | 2022-10-20 | 2026-11-17 | Mediapolis | Des Moines |
| HANDYMAN HOME SOLUTIONS LLC | C144130 | Finish Carpentry Contractors | 2025-04-09 | 2026-11-10 | Cedar Rapids | Linn |
| 12 STAR SERVICE LLC | C150810 | Plumbing/Heating & A/C Contractors | 2025-09-19 | 2029-06-30 | Tiffin | Johnson |
| MONARCH RENOVATIONS LLC | C086103 | Residential Remodelers | 2025-09-29 | 2026-11-10 | Des Moines | Polk |

### Quick start: 3 ready-made searches

Press **Try for free**, open the **JSON** view of the input form, paste one of these and press **Start**. Results appear in the **Output** tab in seconds and export to Excel or CSV.

**Registrations whose current issue date is in the last 30 days** (includes annual renewals; about 1,200 business rows, so at most $3.75)

```json
{"issuedWithinDays": 30, "maxResults": 2000}
```

**Every active electrical contractor in the Des Moines area** (Polk and Dallas counties, at most $6.00)

```json
{"categories": ["electrical"], "counties": ["Polk", "Dallas"], "maxResults": 2000}
```

**Verify a list of Iowa contractor registrations**

```json
{"licenseNumbers": ["C144130", "E128360", "C150810"]}
```

**Free to try:** Apify's free plan ($5/month in credit, no card needed) covers about **1,600 records** a month.
**Price:** $3.00 per 1,000 results.

No browser, no proxies, no login, no API key. The Actor downloads DIAL's official open dataset (CC BY 4.0) from the Iowa Data Hub, so a full run takes a few seconds.

### Three ways to use it

1. **Iowa contractor registration lookup / verification.** Paste registration numbers into `licenseNumbers` to check trade, current issue date, expiration, city and county for a whole vendor list in one run.
2. **Full Iowa contractor list.** Filter by category, city, county, ZIP or business name. Use `iowaOnly` to drop out-of-state firms registered to work in Iowa.
3. **Renewal and recent-issue lists.** Use `expiresFrom` / `expiresTo` for renewals. `issuedWithinDays` filters on the **current registration issue date**, which includes annual renewals — the official file does not include the original first-registration date.

### Categories

| `categories` value | Official primary activities included | About (Nov 2026) |
|---|---|---|
| `residential` | Residential remodelers, new single-family and multifamily housing, for-sale builders | ~4,200 |
| `commercial` | Commercial, institutional and industrial building construction | ~1,300 |
| `electrical` | Electrical and wiring installation | ~1,700 |
| `plumbing_hvac` | Plumbing, heating and A/C contractors | ~1,500 |
| `roofing` | Roofing contractors | ~870 |
| `heavy` | Highway, water/sewer, pipeline, power/communication, site preparation, heavy/civil, land subdivision | ~1,500 |
| `specialty` | All other specialty trades (siding, carpentry, flooring, masonry, painting and more) | ~6,700 |

### What you get

| Field | Example |
|---|---|
| `businessName` | HANDYMAN HOME SOLUTIONS LLC |
| `licenseNumber`, `licenseType` | C144130, Iowa construction contractor registration |
| `category`, `trade` | specialty, Finish Carpentry Contractors |
| `licenseStatus`, `isActive` | Registered, true |
| `originalLicenseDate`, `expirationDate` | 2025-04-09 (current issue date), 2026-11-10 |
| `businessAddress` | street address of record, for registered entities only |
| `city`, `state`, `zipCode`, `county` | Cedar Rapids, IA, 52404, Linn |
| `verifyUrl`, `sourceUrl`, `sourceAgency`, `retrievedAt` | DIAL contractor page, Iowa Data Hub catalog, agency, timestamp |

The official file does not include phone or email.

### Input

| Field | What it does | Default |
|---|---|---|
| `issuedWithinDays` | Current issue date in the last N days (0 = any; includes renewals) | 0 |
| `issuedFrom` / `issuedTo` | Exact current-issue date window | none |
| `categories` | `residential`, `commercial`, `electrical`, `plumbing_hvac`, `roofing`, `heavy`, `specialty` | all |
| `licenseNumbers` | Bulk lookup: only these registration numbers | none |
| `cities` / `counties` / `zipCodes` | Location filters | all |
| `keywords` | Business name or trade contains | none |
| `iowaOnly` | Skip out-of-state contractors registered in Iowa | false |
| `expiresFrom` / `expiresTo` | Expiration-date window (renewal prospecting) | none |
| `includeContactDetails` | Business street address | true |
| `maxResults` | Cap (you pay per result) | 100 |

### Who uses this

- **Lumber yards, building-supply, electrical, plumbing and HVAC distributors** prospecting Iowa contractor businesses.
- **Insurance, surety and bonding agents**, including renewal prospecting by expiration date.
- **General contractors, property managers and home-service marketplaces** verifying subcontractors in bulk.
- **Construction software, estimating and payments companies** selling to Iowa contractors.

### Privacy by design

- **Businesses only.** Person-named sole proprietors are dropped. Trade names without a legal-entity designator are kept, but the street address is blanked. First and last names in the official file are never output. `RUN_SUMMARY.droppedPersonName` shows the count.
- **No email addresses or phone numbers.** They are not in the official dataset, and this Actor never outputs them.

### Common questions

**Is this data legal to use?** Yes. It comes from the official Iowa Data Hub dataset "Active Iowa Construction Contractor Registrations," published by DIAL under a [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) license. Attribute the Iowa Department of Inspections, Appeals, and Licensing and the Iowa Data Hub.

**How fresh is it?** The state updates the dataset weekly. Each run downloads the current file. `RUN_SUMMARY.dataset` includes the hub's last-updated timestamp when the metadata API is available.

**How do I check an Iowa contractor registration?** Paste the number into `licenseNumbers`, or part of the business name into `keywords`. Always confirm on the official DIAL contractor registration page (`verifyUrl`) before you hire.

**Does Iowa require a contractor registration?** Anyone earning $2,000 or more a year from construction work in Iowa must register and renew annually with DIAL. This Actor covers those active registrations, businesses only.

**What does the issue date mean?** In this official file it is the **current** registration issue date, which is renewed annually. It is not a first-ever registration date. Use expiration dates for renewal prospecting, and do not treat `issuedWithinDays` as a list of brand-new companies only.

**How much does it cost?** Free to try with Apify's free plan ($5/month credit, no credit card), which covers about 1,600 records a month. After that it is $3.00 per 1,000 results, plus a fraction of a cent per run.

**Can I get this automatically every week?** Yes. Save your filters as a task and add a weekly **Schedule**. Send each batch to Google Sheets, Slack, email, Zapier, Make or n8n under **Integrations**.

**Can I call it from code or an AI agent?** Yes. Use the Apify API or the Python/JavaScript clients, or connect it to Claude, ChatGPT or Cursor through the Apify MCP server.

Data: Iowa Department of Inspections, Appeals, and Licensing, Active Iowa Construction Contractor Registrations, Iowa Data Hub, [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). Not affiliated with or endorsed by DIAL or the State of Iowa.

### More contractor license tools from Loomwise

- [us-contractor-licenses](https://apify.com/loomwise/us-contractor-licenses): contractor license lookup across official sources in multiple states
- [alabama-contractor-licenses](https://apify.com/loomwise/alabama-contractor-licenses): Alabama GenConBd general contractor and subcontractor license lookup and list
- [minnesota-contractor-licenses](https://apify.com/loomwise/minnesota-contractor-licenses): Minnesota DLI contractor license lookup and list
- [california-contractor-licenses](https://apify.com/loomwise/california-contractor-licenses): CSLB California contractor license lookup and list
- [virginia-contractor-licenses](https://apify.com/loomwise/virginia-contractor-licenses): Virginia DPOR Class A, B and C contractor license lookup and list
- [colorado-electrical-plumbing-contractors](https://apify.com/loomwise/colorado-electrical-plumbing-contractors): Colorado DORA electrical and plumbing contractors
- [illinois-idfpr-business-licenses](https://apify.com/loomwise/illinois-idfpr-business-licenses): Illinois IDFPR roofing contractors, design firms and licensed businesses
- [delaware-business-licenses](https://apify.com/loomwise/delaware-business-licenses): Delaware Division of Revenue business license list
- [texas-contractor-licenses](https://apify.com/loomwise/texas-contractor-licenses): Texas TDLR HVAC and electrical contractors
- [wa-contractor-licenses](https://apify.com/loomwise/wa-contractor-licenses): Washington L\&I contractor licenses
- [new-york-contractor-registry](https://apify.com/loomwise/new-york-contractor-registry): NYS Contractor Registry lookup and new contractors

# Actor input Schema

## `issuedWithinDays` (type: `integer`):

Only businesses whose current registration issue date is in the last N days, newest first. This official file uses the current issue date, which includes annual renewals; it does not give the original first-registration date. 0 = any date.

## `categories` (type: `array`):

Based on the official NAICS primary activity. Empty = all.

## `licenseNumbers` (type: `array`):

Paste Iowa contractor registration numbers (for example C144130 or E128360). Returns those business registrations and ignores the other filters. Unmatched numbers are listed in RUN_SUMMARY.

## `cities` (type: `array`):

Exact city names, for example Des Moines, Cedar Rapids, Iowa City.

## `counties` (type: `array`):

For example Polk, Linn, Johnson, Scott.

## `zipCodes` (type: `array`):

For example 503 (Des Moines) or 52402.

## `keywords` (type: `array`):

Case-insensitive, any of these words, for example roofing, electrical, solar.

## `iowaOnly` (type: `boolean`):

Skip out-of-state contractors registered to work in Iowa.

## `issuedFrom` (type: `string`):

Exact current-issue date window, overrides 'last N days'. Includes annual renewals.

## `issuedTo` (type: `string`):

End of the current-issue date window.

## `expiresFrom` (type: `string`):

Renewal prospecting: expiration date on or after.

## `expiresTo` (type: `string`):

Expiration date on or before.

## `includeContactDetails` (type: `boolean`):

Business street address of record, for registered entities only. The official file has no phone or email.

## `maxResults` (type: `integer`):

You pay per result. About 17,700 active contractor businesses are on the official list.

## Actor input object example

```json
{
  "issuedWithinDays": 30,
  "iowaOnly": false,
  "includeContactDetails": true,
  "maxResults": 100
}
```

# Actor output Schema

## `licenses` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "issuedWithinDays": 30,
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("loomwise/iowa-contractor-registrations").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "issuedWithinDays": 30,
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("loomwise/iowa-contractor-registrations").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "issuedWithinDays": 30,
  "maxResults": 100
}' |
apify call loomwise/iowa-contractor-registrations --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,loomwise/iowa-contractor-registrations"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/FdK3NFMyCmD4XUp43/builds/DszIyqmrzocRZeFYq/openapi.json
