How to Verify a Contractor's License in Colorado Before You Hire
Third in CityDesk Denver's contractor-risk series, following "When the Deposit Disappears" and "What a Mechanic's Lien Means for Your Property."
Third in CityDesk Denver’s contractor-risk series, following “When the Deposit Disappears” and “What a Mechanic’s Lien Means for Your Property.”
It usually starts on a Tuesday morning, two days after the storm.
A white pickup with out-of-state plates rolls slowly down a block in Montbello or Green Valley Ranch or one of the older ranch-home streets off Hampden in the southeast suburbs. A crew member climbs out, walks to the door, and hands over a flyer. The pitch is friendly and efficient: we were just working down the street, we noticed your roof took some hits, we can have someone out to look at it this afternoon. Sometimes they offer to handle your insurance claim. Sometimes they ask you to sign something before they leave.
This is not a hypothetical. Denver’s Front Range sees significant hail multiple times a year — the May 2017 event alone caused an estimated $2.3 billion in metro damage and still gets cited by adjusters as a benchmark for what large storms do to this region’s housing stock — and when a big one rolls through, roofing crews from Texas, Oklahoma, and Kansas are on-site within 48 hours. Some are skilled, legitimate, and properly credentialed. Many are not. Because Colorado’s contractor verification process is split across multiple agencies, involves a licensing structure most homeowners don’t understand, and includes at least one major trade with no state license at all, it is genuinely easy to hand a $15,000 deposit to someone with no legal standing to touch your roof.
This guide covers every step of the actual verification process: the portals, what the results mean, and what to do when the contractor you’re looking at doesn’t turn up where they should.
Step One: Start With the DORA Portal
The authoritative starting point for verifying a Colorado contractor’s credentials is the state license lookup maintained by the Colorado Department of Regulatory Agencies, known as DORA. The Division of Professions and Occupations issues state-level professional licenses, and its public lookup tool lives at:
apps.colorado.gov/dora/licensing/Lookup/LicenseLookup.aspx
The search interface has a dropdown asking you to select a license type or profession. The categories follow DORA’s internal classification structure, not how a homeowner thinks about trades, so expect some trial and error. You can search by license number if the contractor has provided one, by business or individual name, or by zip code. Name searches are the most practical starting point.
When results appear, focus on the Status field. A clean result reads “Active.” Other possible statuses — “Expired,” “Suspended,” “Revoked” — each mean something different, and none of them authorize the contractor to perform work in their licensed trade. An expired license may be an administrative lapse; a revoked license means DORA took formal action against that credential. Not the same problem. If any disciplinary action has been taken against a license, it typically appears as a notation in the record, sometimes with a link to the underlying order.
A history of prior disciplinary actions doesn’t automatically disqualify a contractor, but it warrants a direct conversation. If they deny the record when you bring it up, that tells you something conclusive.
Step Two: Understand That Colorado Has Two Separate Licensing Systems
Here is the fact that competing coverage almost universally gets wrong: in Colorado, state licensure through DORA and city-level contractor registration are two completely different things. They cover different trades, are issued by different agencies, and are searchable through different portals. For many trades inside Denver city limits, a contractor legally needs both. Verifying one does not substitute for verifying the other.
At the state level, electricians hold licenses issued by the Colorado State Electrical Board, housed within DORA. Master and journeyman electricians hold separate license types. Plumbers hold licenses through the Colorado State Plumbing Board, also within DORA, with the same master/journeyman structure. HVAC contractors may hold mechanical contractor licenses under DORA depending on scope.
At the Denver city level, the Community Planning and Development department (CPD) issues its own contractor registrations. For electrical and plumbing work inside Denver city limits, a contractor must hold both a valid DORA state license and a Denver CPD city registration. These aren’t redundant requirements — they’re legally distinct, and homeowners regularly trip over the gap when they assume checking one means checking both.
The Denver permits and contractor registration portal is:
denvergov.org/permits
Use the contractor search function there to verify whether a specific company holds a current Denver city registration. Check registration type, number, and status.
For readers outside Denver proper: DORA covers the entire state, but Denver CPD covers only Denver city and county. If you’re in Lakewood, Aurora, Arvada, or Centennial, those municipalities maintain their own contractor registration systems. Call your municipality’s building department directly and ask what city-level registration a contractor must hold before starting work. It’s a five-minute call. For a side-by-side look at how those suburban markets differ from Denver proper, our home & property coverage tracks contractor and housing issues across the metro.
Step Three: Roofers Are Different, and That Difference Is the Core of the Problem
Colorado does not license roofers at the state level. There is no DORA roofing license. Search the DORA portal for a roofing contractor and find nothing — that result is not evidence of fraud. It means no state roofing license exists to find. Any person can call themselves a roofing contractor in Colorado without holding any state credential whatsoever.
This is not a loophole. It’s how the system is designed. It’s also exactly why roofing is the highest-risk trade category for post-storm fraud in this region, and why the storm-chaser model targets Denver specifically.
Denver fills this gap, partially, with a city-level roofing contractor registration requirement administered through CPD. To work legally on a residential roof within Denver city and county, a contractor must hold a current Denver roofing registration, which requires proof of general liability insurance (currently set at a minimum of $300,000 — confirm the current figure with Denver CPD, as minimums are subject to revision) and workers’ compensation coverage for employees. To verify a Denver roofing registration, use the CPD portal at denvergov.org/permits and search under roofing contractor registration.
A legitimately registered Denver roofer can give you their registration number on the spot. Ask for it before the conversation goes any further.
Now apply this to the scenario from the opening: a crew arrives from out of state two days after a hail event. No Colorado business presence. No Denver roofing registration. No local workers’ compensation policy. They are operating illegally inside Denver city limits even if their work is technically competent. When something goes wrong — and with no local address, no verified bond, and no insurance confirmation in your hands, the odds are significantly elevated — you have almost no practical recourse. They’ll be in Pueblo or Colorado Springs by the time you realize there’s a problem.
Step Four: Licensed Is Not Enough on Its Own
“Licensed, bonded, and insured” appears on virtually every contractor’s truck and website. Most homeowners treat it as a single credential. It isn’t. These are three legally distinct protections, and a contractor can hold one or two without the others.
Licensed means credentialed by DORA or Denver CPD to perform the specific trade in the specific jurisdiction where the work is happening. Verifiable through the portals above. It confirms legal authorization to do the work. It does not protect you financially if the work fails or the contractor disappears.
Bonded means the contractor holds a surety bond — a financial instrument from a bonding company that can compensate you if the contractor fails to complete the work, takes your deposit and vanishes, or causes damage they won’t remedy. Denver’s roofing registration program requires a bond. The critical step here: don’t accept the contractor’s word on this. Ask for the bonding company’s name and the bond number, then call the surety company directly and ask whether that bond is currently active. Bonding companies will confirm or deny an active bond over the phone in about five minutes. This is probably the most skipped verification step in this entire process, and it’s the easiest one to complete.
Insured means the contractor carries active insurance — and there are two separate policies that matter. General liability covers damage to your property caused by the contractor’s work or crew. Workers’ compensation covers employees injured on your property. If a roofer falls off your house and the contractor carries no workers’ comp, you may face liability exposure as the property owner. That is not a remote hypothetical.
To verify insurance, ask for a Certificate of Insurance naming you, the homeowner, as an additionally insured party — not merely as a certificate holder. Then call the insurance carrier listed on the certificate and ask whether the policy is currently active, what the coverage limits are, and whether your property is listed. Certificates reflect the policy as it existed when printed; they don’t update when a policy lapses. Certificates can be falsified. A two-minute call to the carrier is the only verification that matters.
One more thing worth understanding: a licensed contractor who carries no workers’ comp exposes you to injury claims on your property. An insured contractor working outside their licensed authorization may give their insurer grounds to deny claims arising from that work, because unlicensed performance can void coverage. All three require independent verification. None of them substitutes for the others.
Step Five: The Red Flags Specific to Denver’s Post-Hail Market
Out-of-state plates on work vehicles and out-of-state area codes on business cards aren’t automatically disqualifying — some legitimate regional contractors operate across state lines — but they should put you on heightened alert, especially combined with any other flag below.
If a roofer can’t produce a Denver registration number immediately, that’s not an oversight. “I’ll have to look that up” or “my office has that” means either they’re unregistered or hoping you won’t pursue it. Any legitimate roofer working in Denver city limits knows this number.
Be careful with anyone who offers to “handle your insurance claim” and asks you to sign a document before starting work. An Authorization to Represent transfers control of your insurance claim from you to the contractor. Once signed, the contractor negotiates directly with your insurer, and you lose meaningful control over scope, method, and cost. The document isn’t inherently fraudulent — some public adjusters use similar agreements legitimately — but storm-chasers use it as a tool to lock homeowners in before they can comparison-shop or verify credentials. Do not sign it without reading it fully and running it by your own insurance agent first. If there’s any pressure to sign it on the doorstep, that’s your answer.
Colorado law gives homeowners the right to cancel a home improvement contract within a defined window after signing, including door-to-door solicitations. Verify the current terms with a Colorado attorney. Any contractor who tells you the estimate expires today or they can only hold the price if you sign now is applying pressure specifically designed to prevent you from exercising that right. That’s the point of the tactic. Don’t let their urgency become yours.
Search the contractor’s business name for a verifiable Colorado address — not a P.O. box or a shared virtual office suite — and check their registration through the Colorado Secretary of State’s business lookup at sos.state.co.us. A company registered in Colorado the week after your storm is a warning sign. Not subtle, but it goes unnoticed more than you’d expect.
When a licensed contractor does work in Denver that requires a permit — and most significant roofing work does — they pull the permit themselves. It’s in their name. If a contractor asks you to pull the permit, they can’t pull it themselves, which means they’re either unlicensed or shifting legal liability onto you. Don’t do it.
The areas where post-storm contractor volume and associated fraud risk tend to concentrate include Aurora, Centennial, and the southeast suburbs along the E-470 corridor, which receive disproportionate hail accumulation due to storm-track patterns off the Palmer Divide. Within Denver proper, Montbello, Green Valley Ranch, and Harvey Park have seen repeated storm activity. The RiNo and Sloan’s Lake corridors — with active redevelopment creating high construction contractor volume — make it harder to spot an unlicensed crew against the background noise of legitimate work. If you want to understand what common inspection red flags in Denver homes look like before or after contractor work, that context is useful here too.
Step Six: If It Goes Wrong
Everything above is prevention. If you’re reading this after the fact — deposit gone, work incomplete or defective, crew no longer returning calls — here’s what’s actually available to you.
File a DORA complaint first. Go to dora.colorado.gov/complaints. This won’t recover your money directly, but it creates a public enforcement record, can trigger a formal DORA investigation, and makes the contractor’s record visible to the next homeowner who does a lookup. Do this even if you’re pursuing other options. Especially then.
If you verified the bond, file a bond claim. Contact the surety company directly. Bond claims are often resolved faster than litigation and don’t require you to find and serve the contractor. The surety will investigate and pay out up to the bond’s coverage limit if the claim is valid.
Call your homeowner’s insurance carrier. Some homeowner’s policies cover damage caused by contractor negligence or fraud in ways policyholders don’t expect. Your agent can tell you quickly whether you have a coverage argument worth pursuing.
Small claims court is practical for deposit theft and smaller defective-work disputes up to a dollar threshold that’s subject to change — verify the current limit with Denver County Court. You don’t need an attorney. For larger amounts, you’ll need district court.
Colorado’s Consumer Protection Act, C.R.S. § 6-1-105, prohibits deceptive trade practices. Misrepresenting licensure status — telling a homeowner you’re licensed and registered when you’re not — falls squarely within it. A successful CCPA claim can yield actual damages and, in some circumstances, attorney fees. This requires an attorney. Verify current recovery provisions with a licensed Colorado attorney before relying on any specific figure.
File with the Colorado Attorney General’s consumer protection office at coag.gov/consumers. The AG’s office tracks contractor fraud patterns, and volume of complaints about the same contractor can trigger coordinated enforcement action. Individual relief from an AG complaint is uncertain; the value is in building the public record.
For outright criminal conduct — a contractor who took your deposit with no intent to perform, or who falsified license or insurance documents — contact the Denver DA’s consumer fraud unit directly. Filing a DORA complaint and pursuing criminal referral are not mutually exclusive. If the facts support both, do both.
Quick Reference: Every URL You Need
Screenshot this or save it before the next hailstorm.
State license verification
Colorado DORA License Lookup: apps.colorado.gov/dora/licensing/Lookup/LicenseLookup.aspx
Denver city contractor registration and permits
Denver Community Planning and Development: denvergov.org/permits
Colorado business registration verification
Colorado Secretary of State Business Search: sos.state.co.us
Filing a DORA complaint
dora.colorado.gov/complaints
Colorado Attorney General consumer protection complaints
coag.gov/consumers
Denver 311
Call 311 (within Denver city limits) or denvergov.org/311. For contractor-specific complaints, ask to be routed to Community Planning and Development — and confirm current routing with the operator, since intake assignments shift.
Denver District Attorney Search “consumer fraud” on the Denver DA’s website for the current intake process.
Reporter’s note: Confirm current Denver roofing registration insurance minimums with Denver CPD before publication; confirm current Colorado small claims dollar limit with Denver County Court; have a Colorado-licensed attorney review the CCPA recovery provisions and the applicable home improvement contract cancellation statute; identify a hail damage event more recent than May 2017 as a current-year reference. DORA enforcement actions are searchable through the DORA public records portal and may yield a recent local example worth naming.
CityDesk Denver’s contractor-risk series continues. Part one, “When the Deposit Disappears,” covered what Denver homeowners can do when a contractor takes payment and stops working. Part two, “What a Mechanic’s Lien Means for Your Property,” explained how unpaid subcontractors can encumber your title and how to defend against it.