Connecticut requires anyone doing residential remodeling, roofing, siding, windows or similar work to register as a Home Improvement Contractor (HIC) with the Department of Consumer Protection. DCP publishes every credential on data.ct.gov with its issue date, status and business city, refreshed daily. For suppliers, insurers and software vendors, that's a free list of brand-new remodeling businesses.
When I ran this on Oct 24, 2026, the last 30 days held 239 new HIC registrations held by businesses (223 LLCs, 13 corporations, 3 LLPs). Top cities: Bridgeport 14, Danbury 13, Stamford 12, Hartford 9, Waterbury 9, Norwalk 8.
The script
import requests
from collections import Counter
from datetime import date, timedelta
def ct_new_licenses(credential_type, days=30):
since = (date.today() - timedelta(days=days)).isoformat()
return requests.get("https://data.ct.gov/resource/ngch-56tr.json", params={
"$select": "name,type,credential,credentialnumber,status,issuedate,expirationdate,city,zip",
"$where": f"issuedate >= '{since}T00:00:00' AND credentialtype = '{credential_type}' AND type != 'INDIVIDUAL'",
"$order": "issuedate DESC", "$limit": 50000}, timeout=120).json()
hic = ct_new_licenses("HIC")
print(len(hic), "new home improvement contractor credentials")
print(Counter(r.get("type") for r in hic).most_common(5))
print(Counter((r.get("city") or "").title() for r in hic).most_common(6))
Other credential types in the same dataset
The dataset covers far more than contractors. Swap the code to target a different market. In the same 30 days:
credentialtype |
Credential | New in 30 days |
|---|---|---|
HIC |
Home improvement contractor | 283 (239 businesses) |
LBD |
Liquor brand label | 973 |
Explore the rest with a quick group-by:
requests.get("https://data.ct.gov/resource/ngch-56tr.json", params={
"$select": "credentialtype, credential, count(*) AS n",
"$where": "issuedate >= '2026-09-24T00:00:00'",
"$group": "credentialtype, credential", "$order": "n DESC", "$limit": 50}).json()
Note that the dataset also holds healthcare and other personal licenses (nurses, for example). Leave those out of any marketing list. They belong to individuals, not businesses.
Things that will trip you up
-
Filter out individuals.
typesays whether the holder is an LLC, a corporation or anINDIVIDUAL. The script keeps businesses only. -
Status matters. New credentials are usually
ACTIVE, but checkstatusbefore you export. A pending or lapsed registration isn't a working contractor yet. -
Verify before you call. The official lookup at
https://www.elicense.ct.gov/Lookup/LicenseLookup.aspxconfirms any credential number.
What to do with it
New HIC holders need general liability insurance, a supplier account, estimating software, a website and often a truck wrap, all in their first 90 days. A monthly pull, de-duplicated on credentialnumber, gives you that list before your competitors find them.
Optional: if you'd rather not maintain the script, I publish this as a hosted, scheduled tool: Connecticut License Lookup, with ready-made categories such as home_improvement, trades and food (paid per result). Disclosure: it's my tool. The code above does the same job for free.
Top comments (0)