← Guides

How-to

How to run Idaho Contractor License Lookup & List Scraper (DOPL)

Step-by-step: the exact input, what each field does, and the rows that come back from the source portal.

You sell to Idaho builders, or you check subcontractor registrations before anyone sets foot on a site, and you want the state’s own list rather than a directory site’s guess at it. The Idaho Division of Occupational and Professional Licenses (DOPL) gives it away at edopl.idaho.gov in two forms: a search that shows one record at a time, and a “Search for a Bulk List of Licenses” page that exports a whole licence type as an .ods spreadsheet. That bulk file is free and it is the real alternative to this actor. The cost is the handling: one click-through per licence type, an OpenDocument file to open, and a filter to apply yourself, because the General Contractor file holds 52,966 rows in every status and only 25,863 of them were active on 2026-10-14.

What you’ll need

Nothing but an Apify account. The actor talks to the source portal directly.

No API key, no CAPTCHA solve, no login. DOPL’s bulk list needs none of them, and the proxy input is off by default because DOPL answered plain requests in testing. Switch a proxy on only if a run hands you a free notice row marked blocked.

Step 1 — Open the actor

Open Idaho Contractor License Lookup & List Scraper (DOPL) on the Apify Store and press Try for free. The actor’s own page on this site lists its live health and pricing.

The Idaho Contractor License Lookup & List Scraper (DOPL) listing on the Apify Store
The listing on the Apify Store. Pricing and the nightly health record are both public.

Step 2 — Fill in the input

The input form for Idaho Contractor License Lookup & List Scraper (DOPL) in the Apify Console
The input form, as it appears in the Apify Console.
FieldTypeRequiredWhat it does
licenseTypestringnoWhich DOPL licences: general_contractor (General Contractor Registration, the default), electrical_contractor, limited_electrical_contractor, plumbing_contractor,…
licenseTypesarraynoSeveral licence types or groups in ONE run, e.g. electrical_contractor and plumbing_contractor. Combined with ‘Licence type’ if you fill both. An unrecognised value is dropped… (default [])
statusstringnoActive (default), or ‘all’ for every status. Lookups always search every status. (default Active)
statusesarraynoSeveral statuses in ONE export, e.g. Lapsed and Expired (a win-back list). When filled, it replaces ‘Licence status’ (so its Active default does not sneak in). (default [])
countystringnoAn Idaho county on the licence’s mailing address (‘Ada’, ‘Kootenai County’). A value that is not one of Idaho’s 44 counties is dropped and logged.
countiesarraynoSeveral Idaho counties in ONE export. (default [])
citystringnoMailing-address city, exact match ignoring case and punctuation (‘Boise’, ‘Coeur d’Alene’).
citiesarraynoSeveral cities in ONE export. (default [])
idahoAddressesOnlybooleannoOut-of-state firms register in Idaho: 5,981 of the 25,863 active General Contractor Registrations (23%, 2026-10-14) have a mailing address outside Idaho, mostly Washington and…
querystringnoA DOPL licence number (‘RCE-52165’, ‘ELE-C-12345’, ‘065933’ — case, spaces and dashes are ignored), or at least 3 letters of a business, DBA or licensee name, matched anywhere…
queriesarraynoSeveral lookups in ONE run, one per line. Combined with the field above if you fill both. The run log says how many licences each one matched. (default [])
maxResultsintegernoEXPORT: cap on licences for the WHOLE run — your spend control (25,863 active General Contractor Registrations on 2026-10-14; set 100000 to take everything that matches).…

The field that decides which mode you are in is query. Leave it and queries empty and the run is an export: the filters pick licences out of the whole state, and maxResults caps the entire run (the Console prefills 500). Type a licence number such as RCE-52165 or three letters of a name and the run becomes a lookup instead. The county and city filters then stop applying, every status is searched, and maxResults becomes a cap per name, 50 by default.

The second field people get wrong is licenseType. Left empty, an export means General Contractor Registrations only. The seven trade contractor types (electrical, limited electrical, plumbing, plumbing specialty, HVAC, HVAC specialty, HVAC limited heating specialty) come only when you ask for them by name or with the group trades, which held 5,183 active licences on 2026-10-14. Journeymen and apprentices are never included. And if you want a mailing list of Idaho firms, tick idahoAddressesOnly: 5,981 active registrations mail from another state, 2,008 of them from Washington.

A working input:

{
  "county": "Ada",
  "city": "Boise",
  "maxResults": 5000
}

That input returned 2,209 active Boise registrations on 2026-10-14, well under its 5,000 cap.

Step 3 — Run it

Press Start. Rows are pushed to the dataset as they’re found, so the run log fills in as it works.

Expect a pause before the first row. Each run downloads the whole licence type from DOPL and filters it afterwards, so even a small General Contractor export took about 35 seconds when we timed it from our workstation on 2026-10-14. A trade contractor type is a smaller file and takes a few seconds. The Boise input above comes back with 2,209 rows.

An empty result usually means the filter was too narrow, and the run says so in a free notice row rather than handing you a blank dataset. city is an exact match on the mailing city (case and punctuation ignored, so “Coeur dAlene” finds Coeur d’Alene), which means a neighbourhood or a misspelt town matches nothing. A county outside Idaho’s 44, or a licence type the actor does not know, is dropped with a line in the log. If none of the values you gave is recognised, the run downloads nothing and returns a free notice instead of falling back to the whole state.

Step 4 — Read the output

Each run returns a labelled table, not raw JSON:

The output fields returned by Idaho Contractor License Lookup & List Scraper (DOPL)
The output view — every field the actor returns, named and typed.

Every row looks like this — a real row from a real run:

{
  "license_number": "RCE-54671",
  "license_type": "General Contractor Registration",
  "business_name": "SNAKE RIVER SPLICING LLC",
  "dba_name": "SNAKE RIVER SPLICING LLC",
  "status": "Active",
  "issue_date": "2020-05-21",
  "expiration_date": "2028-05-21",
  "address": "4530 W IRVING ST",
  "city": "BOISE",
  "county": "ADA",
  "address_state": "IDAHO",
  "zip_code": "83706-2342",
  "country": "USA",
  "phone": "(208) 994-4748",
  "email": "SNAKERIVERSPLICING@GMAIL.COM",
  "person_name": null,
  "has_discipline": false,
  "trade": "general",
  "matched_by": "export",
  "state": "ID",
  "source_url": "https://edopl.idaho.gov/onlineservices/_/"
}
FieldExample valueMeaning
license_numberRCE-54671DOPL licence or registration number, e.g. RCE-54671
license_typeGeneral Contractor RegistrationGeneral Contractor Registration, Electrical Contractor License, …
business_nameSNAKE RIVER SPLICING LLCRegistered business (a sole proprietor’s own name when there is none)
dba_nameSNAKE RIVER SPLICING LLCDoing-business-as name, when filed
statusActiveActive, Lapsed, Expired, Canceled, Inactive, Revoked, …
issue_date2020-05-21Original issue date (YYYY-MM-DD)
expiration_date2028-05-21Expiry date (YYYY-MM-DD)
address4530 W IRVING STMailing street address, with street 2 and unit

The column most people came for is the mailing address. On 2026-10-14 it was filled on 25,859 of the 25,863 active registrations, with county on 24,358 and a dba_name on 19,611. The sample row above is the exception, not the rule: most rows have no phone and no email. DOPL had a phone for 10.9% of active registrations and an email for 10.6%, so plan on postcards rather than cold calls.

Three things to watch. The address is where DOPL sends mail, not where the firm works, which is why 1,505 active registrations have no county and 5,981 sit in another state. Trade contractor licences carry an address less often: 99% of Electrical Contractors, but 61% of Plumbing Contractors and 59% of HVAC Contractors. And issue_date is the original issue date in ISO form, so sorting on it finds new firms: 3,596 active registrations were first issued in 2026.

Step 5 — Export it

Open the Dataset tab and export to CSV, JSON, or Excel — or pull the same rows from the API, which is what you want if this is going to run on a schedule.

What it costs

$0.004 per licence returned, and nothing for the notice rows that explain an outage, an unrecognised filter, a lookup with no match or a reached budget. The Console’s prefilled export of 500 licences costs $2.00. The Boise input above, 2,209 rows, costs $8.84. Every active General Contractor Registration in the state, 25,863 rows at maxResults 100000, costs $103.45. Apify platform usage is billed separately on your plan.

If you need the statewide list once and you are comfortable with a spreadsheet, DOPL’s own .ods download is free and holds the same rows. The actor earns its price when the list has to be filtered, repeated or fed to something else.

Where the data comes from

This reads the source portal directly. Every night a canary runs this actor against that live source and diffs the result against a frozen fixture — what “verified” means.

The source is DOPL’s public bulk list at edopl.idaho.gov, which DOPL publishes under the Idaho Public Records Law and says it updates on weekday mornings and evenings. Behind the page sits a JavaScript app that tracks a version token across requests. A request that does not echo the previous token back gets HTTP 422, which reads like a block and is not one. The download itself is an OpenDocument spreadsheet, not CSV or Excel, and picking a trade board instead of one licence type pulls in journeymen and apprentices: the Electrical board exports 47,289 rows, of which 3,327 are Electrical Contractor Licenses.

See it used

Export Ada County, Idaho Registered General Contractors turns one county into a mailing list of 4,676 active firms. Download Every Active Idaho Contractor Registration Statewide takes the whole state at once, with the out-of-state firms dropped.

If the contractor you are checking works across the border, reach for Washington Contractor License Lookup & Verify (L&I): 2,008 of Idaho’s active registrations have a Washington mailing address, and their Washington licence lives in a different registry.

Last updated 2026-10-14