← Guides

How-to

How to run Wyoming Contractor License Lookup & Leads Scraper (DFPES)

Step-by-step: the exact input, what each field does, and the rows that come back from WY DFPES public lookup.

You want a list of Wyoming’s licensed electrical contractors with a phone number for each, or you have a few firm names or licence numbers to check before work starts. Wyoming licenses no general contractors, plumbers or HVAC firms at state level; its contractor licences are the electrical ones issued by the Department of Fire Prevention and Electrical Safety. The Department’s public lookup answers one search at a time, refuses an empty one, and has no export, so a whole-state list means paging through a typed search and copying rows off the screen.

What you’ll need

Nothing but an Apify account. The actor reads the Department’s public lookup in the run itself, so there is no API key, proxy or CAPTCHA solver to set up, and nothing extra to pay for.

Step 1 — Open the actor

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

The Wyoming Contractor License Lookup & Leads Scraper (DFPES) 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 Wyoming Contractor License Lookup & Leads Scraper (DFPES) in the Apify Console
The input form, as it appears in the Apify Console.
FieldTypeRequiredWhat it does
modestringnoexport: no names, just filters; returns the whole matching list. lookup / verify: put company names (matched if contained in the company name) or licence numbers (exact) in… (default auto)
querystringnoA business name (or listing number) to look up live. Kept alongside ‘queries’ for saved tasks.
queriesarraynoA business name (or listing number) to look up live. Several values in one run; combined with ‘query’. (default [])
citystringnoOnly listings in this city. Kept alongside ‘cities’ for saved tasks.
citiesarraynoOnly listings in this city. Several values in one run; combined with ‘city’. (default [])
expiry_statusstringnoOnly listings in this expiry_status. Kept alongside ‘expiry_statuses’ for saved tasks.
expiry_statusesarraynoOnly listings in this expiry_status. Several values in one run; combined with ‘expiry_status’. (default [])
categoriesarraynoOnly rows from this licence type (one or more). Available: Chemical Suppression, Chemical Suppression, Extinguisher, Sprinkler, Electrical Contractor, LM-E Contractor, LM-H… (default [])
maxResultsintegernoPer query in lookup mode; per run in export mode. (default 500)

Two fields decide what you get back. expiry_statuses takes Unexpired or Expired. The Department’s lookup lists lapsed licences next to current ones and publishes no status field, only an expiration date, so the actor compares that date with the day of the run. Leave the field empty and close to half the rows are expired (978 of 2,136 on November 4, 2026 were expired or undated). categories takes the board’s licence types as it writes them: Electrical Contractor, or one of the limited (LM-H Contractor, LM-W Contractor, …) and low-voltage (LV-G Contractor, LV-A Contractor, …) classes. The board’s codes are passed through unchanged, so check the Department’s own definitions before you sell to one class.

A working input:

{
  "expiry_statuses": [
    "Unexpired"
  ],
  "maxResults": 500
}

For a lookup instead, set mode to lookup and put firm names (3 G Electric) or licence numbers (C-47283) in queries. A name matches if it is contained in the business name; a number matches exactly, with or without the dash.

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.

Every run reads the Department’s whole contractor roster first: 2,157 records in pages of 250, about 10 seconds in our tests on November 4, 2026, before any filter is applied. The unexpired electrical contractors came to 848 rows, and the full roster with no filters to 2,136. A lookup searches the Department live and answers in a second or two per name. An empty result usually means a misspelled city (Cheyene for Cheyenne; case, spaces and punctuation do not matter), or a firm the board lists under another name; each of those returns a free notice, not a charge.

Step 4 — Read the output

Each run returns a labelled table, not raw JSON:

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

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

{
  "listing_id": "C-47283",
  "name": "3 G Electric LLC",
  "phone": "208-313-7413",
  "phone_e164": "+12083137413",
  "street": "4554 Clydes Turn",
  "city": "Tetonia",
  "country": "US",
  "category": "Electrical Contractor",
  "categories": [
    "Electrical Contractor"
  ],
  "source": "live",
  "source_url": "https://wyelectrician.imagetrendlicense.com/lms/public/portal#contractor-6feb3434-0f5a-e911-80d4-001dd8b723fb",
  "extras": {
    "licence_type": "Electrical Contractor",
    "expires": "2027-07-01",
    "expiry_status": "Unexpired"
  }
}
FieldExample valueMeaning
name3 G Electric LLCBusiness name as the Department lists it
listing_idC-47283Licence number exactly as printed (C-47283, LV-…, L-…); empty on about 10% of rows (224 of 2,136 on 2026-11-04), where the board lists none
categoryElectrical ContractorLicence type in the board’s words: Electrical Contractor, or a limited (LM-) or low-voltage (LV-) contractor class
phone208-313-7413Business phone as printed
phone_e164+12083137413The same phone in +1XXXXXXXXXX form
street4554 Clydes TurnStreet address (one line; the board publishes no state or ZIP)
cityTetoniaCity; many licensed firms are out of state (Idaho Falls, Denver, Salt Lake City)
extras.expires—Licence expiration date (ISO)

The phone is what most people come for: all 848 unexpired electrical contractors carry one. The address is one street line and a city, with no state or ZIP, and the example row shows why that matters: Tetonia is in Idaho. Only 422 of those 848 phones have Wyoming’s 307 area code, so many licensed firms are based out of state. Use the area code, or a cities filter, to separate local firms from out-of-state ones before you mail anything.

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; notices (no match, unknown licence type) are free. The 848 unexpired electrical contractors cost $3.39, and the whole roster of 2,136 licences costs $8.54. A lookup costs $0.004 for each licence it finds.

Where the data comes from

This reads WY DFPES public lookup directly. The target is The Department of Fire Prevention and Electrical Safety’s ImageTrend public lookup: a keyless JSON search endpoint that returns the whole contractor roster when no filter is sent, paged by offset. Every run reads it; nothing is stored. Every night a canary runs this actor against that live source and diffs the result against a frozen fixture — what “verified” means.

The lookup itself is open: no login and no challenge. The friction is the form. It refuses to search until a field holds a value, it shows results a page at a time on screen, and it has no download button. Searching one letter of a contractor name gets close (an e matched 1,940 of the 2,157 on November 4, 2026), but those 1,940 rows still have to be copied off the screen page by page. The page also says the Department is migrating to a new eLicensing system, so the lookup may change.

See it used

Wyoming Electrical Contractors (DFPES) builds the list of 848 electrical contractors with an unexpired licence, with a phone for every one.

To check contractor licences in several states at once, including Wyoming, the US contractor license lookup runs this actor for you alongside the other states’ boards.

Last updated 2026-11-04