Colorado Contractor License Lookup — Electrical & Plumbing avatar

Colorado Contractor License Lookup — Electrical & Plumbing

Pricing

from $6.00 / 1,000 verified contractor records

Go to Apify Store
Colorado Contractor License Lookup — Electrical & Plumbing

Colorado Contractor License Lookup — Electrical & Plumbing

Look up Colorado electrical and plumbing contractor licenses in bulk: status, dates, city, ZIP and business standing from DORA. USD 10 per 1,000 records.

Pricing

from $6.00 / 1,000 verified contractor records

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Share

Colorado Contractor License Lookup searches the state's official DORA license data for electrical and plumbing contractors and returns license number, trade, status, issue, renewal and expiration dates, city, ZIP, and a verification link, then matches each company to its Colorado Secretary of State business record. It is built for suppliers, insurers, contractor software and finance companies, and compliance teams, and it costs USD 10 per 1,000 contractor records on the FREE tier (USD 6 per 1,000 on GOLD).

It reads Colorado's public open-data APIs directly, so it needs no login, browser or API key.

What does Colorado Contractor License Lookup return?

Each dataset item is one contractor license. Business fields are null when no Secretary of State match is found or when matching is off.

FieldWhat it contains
licenseNumber, licenseTypeCode, tradeDORA license number, EC or PC, and Electrical Contractor or Plumbing Contractor
businessName, licenseHolderNameLicensed company, and the named holder when present
licenseStatusStatus as published by DORA, for example Active
licenseFirstIssuedDate, licenseLastRenewedDate, licenseExpirationDateLicense dates (YYYY-MM-DD)
city, state, zipCodeLicensee location
licenseVerificationUrl, sourceUrlRecord-level DORA verification page and the source dataset
businessVerified, businessMatchConfidenceWhether a business entity matched: EXACT, NORMALIZED, NONE or NOT_REQUESTED
businessEntityId, businessEntityName, businessEntityStatus, businessEntityTypeSecretary of State entity ID, legal name, standing (for example Good Standing) and type
businessFormationDate, businessJurisdictionFormation date and jurisdiction
principalAddress, principalCity, principalState, principalZipCodePrincipal business address
registeredAgentName, businessRecordUrlRegistered agent and the entity's Secretary of State page
sourceDatasetUpdatedAt, scrapedAtWhen Colorado last updated the license data, and collection time

The source has no phone numbers or emails, and the Actor does not invent them.

Which Colorado contractors are covered?

Only state-licensed electrical contractors and plumbing contractors. Colorado has no single statewide general contractor license: general contractors, roofers and builders are licensed by cities and counties such as Denver, Aurora or the Pikes Peak region, and those local registries are not included. Individual journeyman and master licenses are not returned; the Actor reads company licenses (EC and PC) only.

How do I look up Colorado contractor licenses in bulk?

Combine any of these filters, then set Maximum Results (1 to 10,000; default 25).

  • Contractor Trades: electrical, plumbing or both (default both).
  • License Status: ACTIVE (default) or ALL for history.
  • Cities (up to 50) and ZIP Codes (up to 100): exact matches, case-insensitive.
  • Company Name Search: partial names such as Summit Electric (up to 50).
  • License Number Lookup: exact DORA numbers such as 102804 (up to 100), for verifying a list.
  • Issued On or After and Expires On or Before: YYYY-MM-DD dates for new-license prospecting or renewal outreach.
  • Business Verification Filter: ANY, MATCHED_ONLY or GOOD_STANDING.
  • Sort Results: newest license, expiring soonest, or business name.

New electrical contractors in good standing:

{
"trades": ["ELECTRICAL_CONTRACTOR"],
"issuedAfter": "2026-01-01",
"businessStanding": "GOOD_STANDING",
"sortBy": "NEWEST_LICENSE",
"maxResults": 100
}

Verify a list of license numbers without business matching:

{
"licenseNumbers": ["102804", "5824"],
"licenseStatus": "ALL",
"verifyBusinessRecords": false,
"maxResults": 10
}

How are business records matched?

The Actor compares the licensed company name with Colorado Secretary of State entity names, first exactly and then after removing suffixes such as LLC or Inc. When several entities share a name, it prefers one in Good Standing, then one with the same ZIP code, then the same city. In the 2026-10-26 Denver check, 7 of 10 new licenses matched (5 exact, 2 normalized); the 3 unmatched included a "dba" name and a state agency. A match is a name match, not proof of ownership or insurance.

When should I use it, and when not?

Use it when you need lists of licensed Colorado electrical or plumbing contractors by city, ZIP, issue date or expiration date, or need to check many license numbers at once.

Use another Actor when:

Use it from an AI assistant

Colorado Contractor License Lookup works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add it with https://mcp.apify.com/?tools=muhammadafzal/colorado-contractor-leads, then ask, for example: "List plumbing contractors in Colorado Springs whose licenses expire before March 2027, with their business standing."

Run it with the API

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/colorado-contractor-leads').call({
trades: ['PLUMBING_CONTRACTOR'],
cities: ['Aurora'],
maxResults: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((c) => `${c.licenseNumber} | ${c.businessName} | ${c.licenseExpirationDate} | ${c.businessEntityStatus}`));

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("muhammadafzal/colorado-contractor-leads").call(
run_input={"trades": ["ELECTRICAL_CONTRACTOR"], "zipCodes": ["80202"], "maxResults": 25},
)
for c in client.dataset(run.default_dataset_id).iterate_items():
print(c["licenseNumber"], c["businessName"], c["licenseStatus"], c["businessMatchConfidence"])

What does the output look like?

Two records from the 2026-10-26 Denver prefill run (trimmed):

[
{
"licenseNumber": "5824",
"licenseTypeCode": "PC",
"trade": "Plumbing Contractor",
"businessName": "Hurricane Drain Corporation",
"licenseStatus": "Active",
"licenseFirstIssuedDate": "2026-10-22",
"licenseExpirationDate": "2027-02-28",
"city": "Denver",
"state": "CO",
"zipCode": "80231",
"licenseVerificationUrl": "https://www.colorado.gov/dora/licensing/Lookup/PrintLicenseDetails.aspx?cred=1755810&contact=1876331",
"businessVerified": true,
"businessMatchConfidence": "EXACT",
"businessEntityId": "20261911110",
"businessEntityStatus": "Good Standing",
"businessEntityType": "DPC",
"businessFormationDate": "2026-07-26",
"principalCity": "Denver",
"sourceDatasetUpdatedAt": "2026-10-25T10:27:41.000Z"
},
{
"licenseNumber": "104018",
"licenseTypeCode": "EC",
"trade": "Electrical Contractor",
"businessName": "State of Colorado CDOT DMO Building Maintenance",
"licenseStatus": "Active",
"licenseFirstIssuedDate": "2026-10-20",
"licenseExpirationDate": "2029-09-30",
"city": "Denver",
"zipCode": "80204",
"businessVerified": false,
"businessMatchConfidence": "NONE",
"businessEntityId": null,
"businessEntityStatus": null
}
]

SUMMARY and OUTPUT in the key-value store report the outcome (DATA, EMPTY, REJECTED or FAILED), rows scanned, business lookups and source update times.

Pricing: how much does Colorado contractor license data cost?

Pay per event; Apify platform usage is included in the prices.

EventFREEBRONZESILVERGOLDPLATINUM / DIAMOND
Verified contractor record (one dataset item)USD 0.01USD 0.009USD 0.008USD 0.006USD 0.006
Actor start (per started GB of allocated memory)USD 0.005USD 0.005USD 0.005USD 0.005USD 0.005

The default memory is 256 MB, so a run normally has one start event. Worked totals on the FREE tier:

  • Console prefill (10 Denver records): 10 × USD 0.01 + USD 0.005 = USD 0.105
  • 1,000 records: 1,000 × USD 0.01 + USD 0.005 = USD 10.005

The run's status message quotes the per-record and start prices of your own tier. A search with no matches pays only the start event.

How fast is it, and how fresh is the data?

  • The 10-record Denver prefill with business matching took about 26 seconds on 2026-10-26. Turn off Verify Business Records for faster license-only exports.
  • MATCHED_ONLY and GOOD_STANDING filter after retrieval, so they can scan more license rows than they deliver.
  • Colorado refreshes the license dataset on its own schedule; sourceDatasetUpdatedAt shows the last update (2026-10-25 in the check run). Open licenseVerificationUrl for the live record before a contracting decision.

FAQ

Is there a free Colorado contractor license lookup?

DORA's own lookup is free for one license at a time. This Actor runs on Apify's free plan for bulk lists and charges only the per-record price.

Does it cover general contractors?

No. Colorado licenses general contractors locally, through cities and counties. This Actor covers state electrical and plumbing contractor licenses only.

Does it include phone numbers or emails?

No. The state datasets do not publish them.

Can I find newly licensed contractors?

Yes. Set Issued On or After and sort by newest license. The prefill run returned licenses first issued between 2026-08-19 and 2026-10-22.

Can I check whether a business is in good standing?

Yes. Keep Verify Business Records on and read businessEntityStatus, or set the filter to GOOD_STANDING.

Can I export to CSV or Excel?

Yes. Export the dataset from Apify Console as CSV, Excel or JSON, or read it through the API.

The data comes from public Colorado government records. Registered-agent names and principal addresses can identify individuals, so keep only what you need and follow privacy, anti-spam, Do Not Call and consumer-protection rules. Do not make eligibility or adverse decisions from this data alone.

Last verified: 2026-10-27