Colorado Professional License Scraper avatar

Colorado Professional License Scraper

Pricing

from $3.50 / 1,000 results

Go to Apify Store
Colorado Professional License Scraper

Colorado Professional License Scraper

Colorado DORA professional license scraper & API: search licenses across boards and export license number, type, status, name, profession, address and issue/expiry dates. Professional license verification, compliance and lead generation — fast, no login.

Pricing

from $3.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

0

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

Colorado Professional License Scraper — DORA License Data for Nurses, Doctors, Contractors, Engineers, Brokers & 60+ Regulated Occupations

Extract official Colorado DORA professional, occupational, and contractor license records at scale. This Colorado professional license scraper pulls nightly-refreshed license records — every registered nurse, physician, electrical/plumbing/mechanical contractor, professional engineer, real estate broker, CPA, cosmetologist, pharmacist, counselor, dentist, and dozens more regulated trades across Colorado — as clean, structured data ready for compliance, primary-source license verification, B2B lead generation, healthcare recruiting, credentialing, and market intelligence. No login, no proxy, no coding required.

Export to JSON, CSV, Excel (XLSX), HTML, XML, or REST API.

Apify Actor


⚡ At a glance

FeatureDetails
Regulator CoveredColorado Department of Regulatory Agencies (DORA)
Professions & Trades60+ regulated license types — Electrical (EC), Plumbing (PC), HVAC (ME), Engineering (PE), Architecture (ARC), Nursing (RN/PN/APN), Medicine (DR/MD/PA), Real Estate (REB), Accounting (CPA), Dental (DEN), Pharmacy (PHA), Behavioral Health (PSY/LPC/LCSW), and more
Search & Filter ModesMulti-select dropdowns for Profession, License Status, Colorado City, plus custom cities and First-Issue Date Range (issuedAfter / issuedBefore)
Pagination & ScaleAutomatic deep pagination (1,000+ to 100,000+ records per run) with deterministic sorting and 0 duplicates
Core Output FieldslicenseNumber, licenseType, status, firstName, lastName, entityName, city, state, zipCode, firstIssueDate, lastRenewedDate, expirationDate, verifyUrl, healthcareProfileUrl
Refresh CadenceUpdated nightly by the State of Colorado
Proxy RequirementNone — runs at full speed on standard Apify datacenter IPs
Export FormatsJSON, CSV, Excel, HTML, XML, JSON Lines, RSS, Apify REST API

🧭 Table of contents


🔎 Why scrape Colorado DORA licenses?

The Colorado Department of Regulatory Agencies (DORA) is the umbrella state agency that licenses, registers, and regulates more than sixty professional, occupational, and trade categories statewide — from individual nurses, physicians, and counselors to electrical contracting firms, plumbing contractors, professional engineers, CPAs, pharmacists, and real estate brokers.

That roster is a goldmine of verified, authoritative B2B intelligence and compliance data:

  • It tells you who is licensed, in what profession and specialty, in which Colorado city and ZIP code, under what current status (Active, Expired, Suspended, Revoked, Active - With Conditions), and when their license was first issued, last renewed, and expires.
  • Every record includes a direct verifyUrl pointing straight to the official DORA license-lookup verification page — creating an instant, auditable primary-source verification trail.
  • Healthcare records include education/degree credentials (degrees) and a direct healthcareProfileUrl snapshot link.

Collecting and normalizing this data manually is slow and error-prone: web tables only show a handful of rows at a time, raw bulk exports use inconsistent field names, mixed individual/firm schemas, tilde-delimited degree strings (~Bachelors of Science in Nursing), and nested link objects. This Colorado professional license scraper handles all query building, pagination, date normalization, degree formatting, and deduplication automatically — returning analysis-ready JSON, CSV, or Excel in seconds.

Common reasons teams use this scraper:

  • Primary-source license verification for nurses, physicians, contractors, engineers, and brokers before hiring, onboarding, or underwriting
  • Targeted Colorado B2B lead generation by trade, status, and metro (e.g., every active Electrical and Plumbing Contractor in Denver, Colorado Springs, and Aurora)
  • New-business & new-licensee discovery using issuedAfter to capture newly licensed contractors, brokers, and clinicians every week
  • Continuous compliance & expiration monitoring across an existing roster of employees, providers, or subcontractors
  • Healthcare staffing & locum tenens recruiting by city, license type (RN, APN, PA, MD), specialty, and degree
  • CRM, BI, and data-warehouse enrichment with authoritative state license attributes

✨ What this Colorado license scraper does

  • ✅ Covers 60+ Colorado DORA license categories — select specific professions from the curated dropdown or leave empty to pull across all regulated occupations statewide.
  • ✅ Multi-criteria targeting — combine any number of Professions, Statuses (Active, Expired, Suspended, Revoked, etc.), Cities (30 major Colorado cities in the dropdown + unlimited custom cities via citiesCustom), and Issue Date Ranges (issuedAfter / issuedBefore).
  • ✅ Zero-config empty run — run with default/empty filters to immediately get a clean sample of recently issued Active licenses across Colorado.
  • ✅ Unified individual + entity schema — seamlessly normalizes both individual licensees (firstName, middleName, lastName, suffix) and business/firm licenses (entityName) into a single consistent table structure.
  • ✅ Healthcare credential enrichment — automatically cleans tilde-delimited DORA degree strings into readable ; -separated lists (degrees) and extracts the healthcareProfileUrl snapshot link.
  • ✅ Direct verification link (verifyUrl) on 100% of records — every row carries its unique DORA lookup URL for one-click audit verification.
  • ✅ Unlocked 1,000+ deep pagination — deterministic multi-page offset pagination pulls 1,000, 10,000, or 100,000+ deduplicated records without hitting artificial page caps.
  • ✅ Fast, lightweight, proxy-free execution — pure HTTP requests finish 100 records in ~3 seconds and 1,000+ records in ~10–15 seconds on standard datacenter IPs.

🏛️ Supported professions & license codes

Pick one or more professions from the Professions / license types dropdown (licenseTypes), or leave it empty to include all 60+ DORA license prefixes:

🏗️ Construction, Trades & Engineering

CodeProfession / License TypeTypical Use Case
ECElectrical ContractorCommercial/residential subcontractor vetting, B2B equipment & fleet sales
PCPlumbing ContractorPlumbing supply outreach, GC compliance verification, home-service directories
MEMechanical / HVACHVAC dealer networks, commercial maintenance sourcing
JWJourneyman Wireman (Electrical)Skilled-trade recruiting, electrical workforce analytics
MPMaster PlumberSenior trade recruiting, contractor qualification
JPJourneyman PlumberPlumbing technician hiring and verification
PEProfessional EngineerEngineering firm verification, AEC recruiting, infrastructure bidding
PLSProfessional Land SurveyorLand development, GIS, and surveying partnerships
ARCArchitectArchitectural specification outreach, design-build partnering

🩺 Healthcare, Medical & Behavioral Health

CodeProfession / License TypeTypical Use Case
RNRegistered NurseTravel nursing, hospital credentialing, clinician recruiting
PNPractical Nurse (LPN)Long-term care, clinic, and home-health staffing
APNAdvanced Practice Nurse (NP/CNS/CRNA)Primary-care provider recruiting, telehealth credentialing
NANurse Aide (CNA)Senior-living and healthcare facility staffing
PAPhysician AssistantMedical group recruiting, urgent-care staffing
DR / MDDoctor / Medical PhysicianProvider directory enrichment, payer credentialing, medical device sales
DENDentistDental DSO acquisition targeting, dental supply sales
DHDental HygienistDental practice recruiting
PHAPharmacistRetail & hospital pharmacy staffing, pharmacy compliance
VETVeterinarianVeterinary clinic outreach, animal-health B2B sales
PSYPsychologistBehavioral health network building, telehealth onboarding
LPCLicensed Professional CounselorMental-health group practice recruiting & verification
LCSWClinical Social WorkerHealthcare & behavioral-health staffing
OT / PT / SLPOccupational / Physical / Speech TherapistRehab staffing, pediatric & outpatient therapy networks
MT / CHR / APMassage Therapist / Chiropractor / AcupuncturistWellness clinic lead generation & credential verification

💼 Real Estate, Finance & Personal Services

CodeProfession / License TypeTypical Use Case
REBReal Estate BrokerPropTech lead generation, mortgage/title partnerships, brokerage recruiting
CPACertified Public AccountantB2B SaaS partnerships, financial/advisory directory building
COSCosmetologistSalon supply distribution, beauty-tech prospecting
BARBarberBarbershop & personal-care B2B outreach

🎯 High-value use cases

1. 🧲 B2B Lead Generation & Territory Planning

Build hyper-targeted lists of active Colorado contractors (EC, PC, ME), real estate brokers (REB), CPAs (CPA), or healthcare providers segmented by city (Denver, Colorado Springs, Aurora, Fort Collins, Boulder). Combine with issuedAfter to reach newly licensed businesses the week they receive their state credential.

2. 🛡️ Automated Compliance & Credentialing Audits

Healthcare networks, general contractors, property managers, and marketplaces must ensure every clinician or subcontractor holds an Active license without disciplinary restrictions. Schedule this scraper weekly or nightly and join on licenseNumber to flag Expired, Suspended, or Revoked statuses automatically.

3. 👩‍⚕️ Healthcare & Skilled-Trade Recruiting

Filter by RN, APN, PA, MD, PE, JW, or MP across Front Range or Western Slope cities to map licensed talent supply, inspect nursing degrees and specialty fields, and prioritize outreach.

4. 📈 Market Intelligence & Workforce Analytics

Analyze licensing velocity across Colorado counties and cities over time using firstIssueDate and expirationDate. Track which metros are adding electrical contractors, real estate brokers, or behavioral-health clinicians fastest.


📥 Input parameters

All fields are optional. Running with no filters returns a fast 100-record sample of recently issued licenses across Colorado.

ParameterTypeDefault / PrefillDescription
licenseTypesarray<string>[] (All types)Pick one or more professions from the 33-option dropdown (EC, PC, ME, PE, RN, MD, REB, CPA, etc.). Leave empty to include all 60+ DORA license types.
statusesarray<string>Prefill: ["Active"]Filter by license status (Active, Expired, Cancelled, Revoked, Surrendered, Voluntary Surrender, Inactive, Retired, Suspended, Active - With Conditions, Active - Provisional, Active - Restricted). Leave empty for all statuses.
citiesarray<string>[] (All cities)Select from 30 major Colorado cities (Denver, Colorado Springs, Aurora, Fort Collins, Lakewood, Boulder, Pueblo, Grand Junction, etc.).
citiesCustomarray<string>[]Type any additional Colorado city names not listed in the dropdown (case-insensitive).
issuedAfterstring""Only return licenses first issued on or after YYYY-MM-DD (e.g., "2025-01-01"). Ideal for net-new licensee discovery.
issuedBeforestring""Only return licenses first issued on or before YYYY-MM-DD.
maxRecordsintegerDefault 0, Prefill 100Maximum number of unique license records to collect. Set 1000+ for large exports or 0 for unlimited.
pageSizeinteger1000Number of records fetched per batch request (100–50000). Default 1000 is optimal for both small and 10,000+ runs.
requestDelayinteger200Pause between batch requests in milliseconds (0–5000).

Example input (1,500 Active Contractors in Front Range Cities)

{
"licenseTypes": ["EC", "PC", "ME", "PE", "ARC"],
"statuses": ["Active"],
"cities": ["Denver", "Colorado Springs", "Aurora", "Fort Collins", "Boulder"],
"citiesCustom": ["Golden", "Telluride"],
"issuedAfter": "2020-01-01",
"issuedBefore": "",
"maxRecords": 1500,
"pageSize": 1000,
"requestDelay": 200
}

📤 Output schema & field reference

Every record is normalized into a flat 20-field JSON structure. All values are strings or null for clean downstream ingestion into SQL databases, CSV/Excel spreadsheets, and CRM pipelines.

🪪 License Identity & Status

FieldTypeCoverageDescription
licenseNumberstring🟢 High (100%)Official DORA license or registration number (used as primary deduplication key)
licenseTypestring🟢 High (100%)DORA license prefix code (e.g., RN, EC, PC, PE, REB, CPA)
subCategorystring | null🟡 Conditional (~15%)Sub-category code where applicable (e.g., NP, CNS, TEMP)
statusstring🟢 High (100%)Current license status (Active, Expired, Suspended, Revoked, etc.)

👤 Licensee Name & Organization

FieldTypeCoverageDescription
firstNamestring | null🟢 High (~95% individuals)Licensee given name (null on corporate/entity licenses)
middleNamestring | null🟡 Conditional (~60%)Licensee middle name or initial
lastNamestring | null🟢 High (~95% individuals)Licensee family name (null on corporate/entity licenses)
suffixstring | null🟡 Conditional (~3%)Name suffix (Jr, Sr, III, etc.)
entityNamestring | null🟡 Conditional (Firm licenses)Registered company, LLC, corporation, or DBA name for business licenses

📍 Location & Credentials

FieldTypeCoverageDescription
citystring🟢 High (~100%)Mailing city on file with DORA
statestring🟢 High (~99%)Two-letter state code (CO for in-state; mailing state for out-of-state holders)
zipCodestring🟢 High (~99%)5-digit or 9-digit mailing ZIP code
specialtystring | null🟡 Conditional (~20%)Clinical or trade specialty area where recorded by the board
degreesstring | null🟡 Conditional (Healthcare)Semicolon-separated academic degrees (e.g., Bachelors of Science in Nursing; Masters of Science in Nursing)
FieldTypeCoverageDescription
firstIssueDatestring🟢 High (100%)Date the license was originally issued (YYYY-MM-DD)
lastRenewedDatestring | null🟢 High (~99%)Date of most recent license renewal (YYYY-MM-DD)
expirationDatestring | null🟢 High (~97%)Current license expiration date (YYYY-MM-DD)
verifyUrlstring🟢 High (100%)Direct link to the official DORA license verification detail page
healthcareProfileUrlstring | null🟡 Conditional (~60% healthcare)Direct link to DORA's Healthcare Professions Profile snapshot viewer
scrapedAtstring🟢 High (100%)ISO-8601 UTC timestamp when the record was extracted

📋 Sample output records

Individual Healthcare Licensee (Registered Nurse)

{
"licenseNumber": "1713372",
"licenseType": "RN",
"subCategory": null,
"status": "Active",
"firstName": "Alicia",
"lastName": "Torres",
"middleName": "Carmen",
"suffix": null,
"entityName": null,
"city": "Trinidad",
"state": "CO",
"zipCode": "81082",
"specialty": null,
"degrees": "Assoc of Science in Nursing; Certificate in Nursing",
"firstIssueDate": "2026-10-30",
"lastRenewedDate": "2026-10-30",
"expirationDate": "2028-09-30",
"verifyUrl": "https://www.colorado.gov/dora/licensing/Lookup/PrintLicenseDetails.aspx?cred=1762457&contact=1549937",
"healthcareProfileUrl": "https://www.colorado.gov/dora/licensing/SnapshotViewer.aspx?cid=1762457&Key=0E80D339-6DEA-4E4F-99F0-3C0F745534A0",
"scrapedAt": "2026-11-10T03:00:00.000Z"
}

Corporate / Entity License

{
"licenseNumber": "3803",
"licenseType": "OUT",
"subCategory": null,
"status": "Active",
"firstName": null,
"lastName": null,
"middleName": null,
"suffix": null,
"entityName": "Colorado Trophies LLC",
"city": "Norwood",
"state": "CO",
"zipCode": "81423",
"specialty": null,
"degrees": null,
"firstIssueDate": "2026-10-30",
"lastRenewedDate": "2026-10-30",
"expirationDate": "2027-03-31",
"verifyUrl": "https://www.colorado.gov/dora/licensing/Lookup/PrintLicenseDetails.aspx?cred=1761339&contact=1880801",
"healthcareProfileUrl": null,
"scrapedAt": "2026-11-10T03:00:00.000Z"
}

🔁 Pagination & 1,000+ scale

  • Deterministic multi-page pagination: Results are ordered by licensefirstissuedate DESC, licensenumber ASC and fetched in batches of pageSize (default 1,000). The secondary sort key (licensenumber ASC) guarantees deterministic page boundaries even when hundreds of licenses share the exact same issue date.
  • Guaranteed target fulfillment: The paginator continues advancing $offset across batch pages until totalSaved reaches your requested maxRecords (e.g., 1,000, 5,000, 50,000) or the matching dataset is completely exhausted — so duplicate rows in the upstream source never cut your export short.
  • Client-side deduplication: Every record is deduplicated in memory by licenseNumber (with a composite name+type fallback), ensuring 0 duplicate records across multi-page runs.

⚙️ How to use & API examples

  1. Open Colorado Professional License Scraper in Apify Console.
  2. Select your target Professions, License statuses, and Cities (or leave blank for a statewide mix).
  3. Set Max records (100 for a quick test, 1000–50000 for bulk exports, or 0 for unlimited).
  4. Click Start and download your results in JSON, CSV, or Excel.

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("haketa/colorado-professional-license-scraper").call(run_input={
"licenseTypes": ["EC", "PC", "ME"],
"statuses": ["Active"],
"cities": ["Denver", "Colorado Springs", "Aurora"],
"maxRecords": 2000,
})
for record in client.dataset(run["defaultDatasetId"]).iterate_items():
holder = record["entityName"] or f"{record['firstName']} {record['lastName']}"
print(f"{record['licenseNumber']} | {record['licenseType']} | {holder} | {record['city']} | Exp: {record['expirationDate']}")

Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/colorado-professional-license-scraper').call({
licenseTypes: ['RN', 'APN', 'PA'],
statuses: ['Active'],
cities: ['Denver', 'Boulder', 'Fort Collins'],
maxRecords: 1000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Fetched ${items.length} verified Colorado licenses`);

cURL

curl -X POST "https://api.apify.com/v2/acts/haketa~colorado-professional-license-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"licenseTypes":["REB"],"statuses":["Active"],"cities":["Denver","Aurora","Lakewood"],"maxRecords":2500}'

💡 Pro tips for B2B lead gen & compliance

  • Capture new licensees weekly with issuedAfter: Schedule a weekly run with issuedAfter set to 7 days ago and statuses: ["Active"] to feed brand-new Colorado contractors, brokers, and clinicians directly into HubSpot, Salesforce, or Clay.
  • Discover all 60+ license type codes: Leave licenseTypes: [] on a 500-record sample run and group by licenseType to inspect every specialty code DORA publishes beyond the 33 most popular dropdown entries.
  • Filter in-state vs. out-of-state licensees: Some Colorado license holders maintain an out-of-state mailing address (state != "CO"). Filter state === "CO" downstream if your campaign only targets Colorado-resident professionals.
  • Monitor sanctions & revocations: Set statuses: ["Suspended", "Revoked", "Surrendered", "Active - With Conditions"] to run automated risk and disciplinary screening across regulated professions.

❓ FAQ

How many Colorado license records can I extract in one run?

From a 100-record sample up to hundreds of thousands of records. Set maxRecords: 1000 (or 5000, 25000, or 0 for unlimited) and the actor will automatically paginate through the entire matching dataset.

How fast is the scraper?

Because it uses lightweight pure-HTTP requests without browser overhead, a 100-record prefill run completes in ~3–6 seconds, and a 1,000+ record export finishes in ~10–20 seconds.

Do I need proxies or a DORA login?

No. Neither proxies nor login credentials are required. Standard Apify datacenter execution works reliably at full speed.

How fresh is the Colorado license data?

The underlying DORA licensing dataset is refreshed nightly by the State of Colorado, so every run reflects license issuances, renewals, and status changes within 24 hours.

Are phone numbers or email addresses included?

DORA does not publish licensee phone numbers or email addresses in the public licensing record. Each record provides full individual or entity name, city, state, ZIP code, license type, status, issue/renewal/expiration dates, academic degrees (for healthcare), and the direct verifyUrl. Pair with our Angi Scraper or BBB Business Scraper to enrich contractor phone numbers and ratings.

Why are entityName or firstName/lastName sometimes null?

Individual licenses populate firstName, middleName, lastName, and suffix (leaving entityName as null), whereas corporate/firm licenses populate entityName (leaving individual name fields as null).



📋 Changelog

VersionDateNotes
1.2.02026-11Unlocked 1,000+ deep pagination & deterministic sorting. Fixed $offset pagination loop so deduplicated records never stop a run short of maxRecords, added secondary sort key (licensenumber ASC) to prevent boundary duplicates on same-day issuances, changed maxRecords default to 0 (unlimited when filters are provided, 100-record fast sample on empty runs), and expanded documentation.
1.1.02026-11Healthcare enrichment & field normalization. Added cleaned degrees and healthcareProfileUrl extraction, normalized Socrata URL objects to plain strings, and ensured licensefirstissuedate IS NOT NULL ordering surfaces complete, recently issued records first.
1.0.02026-04Initial public release of Colorado Professional License Scraper covering 60+ DORA license types with profession, status, city, and issue-date filtering.
⌂ 换网址