Colorado Professional License Scraper
Pricing
from $3.50 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Features
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.
⚡ At a glance
| Feature | Details |
|---|---|
| Regulator Covered | Colorado Department of Regulatory Agencies (DORA) |
| Professions & Trades | 60+ 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 Modes | Multi-select dropdowns for Profession, License Status, Colorado City, plus custom cities and First-Issue Date Range (issuedAfter / issuedBefore) |
| Pagination & Scale | Automatic deep pagination (1,000+ to 100,000+ records per run) with deterministic sorting and 0 duplicates |
| Core Output Fields | licenseNumber, licenseType, status, firstName, lastName, entityName, city, state, zipCode, firstIssueDate, lastRenewedDate, expirationDate, verifyUrl, healthcareProfileUrl |
| Refresh Cadence | Updated nightly by the State of Colorado |
| Proxy Requirement | None — runs at full speed on standard Apify datacenter IPs |
| Export Formats | JSON, CSV, Excel, HTML, XML, JSON Lines, RSS, Apify REST API |
🧭 Table of contents
- Why scrape Colorado DORA licenses?
- What this Colorado license scraper does
- Supported professions & license codes
- High-value use cases
- Input parameters
- Output schema & field reference
- Sample output records
- Pagination & 1,000+ scale
- How to use & API examples
- Pro tips for B2B lead gen & compliance
- FAQ
- Related state license scrapers
- Changelog
🔎 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
verifyUrlpointing 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 directhealthcareProfileUrlsnapshot 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
issuedAfterto 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 viacitiesCustom), 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 thehealthcareProfileUrlsnapshot 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, or100,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
| Code | Profession / License Type | Typical Use Case |
|---|---|---|
EC | Electrical Contractor | Commercial/residential subcontractor vetting, B2B equipment & fleet sales |
PC | Plumbing Contractor | Plumbing supply outreach, GC compliance verification, home-service directories |
ME | Mechanical / HVAC | HVAC dealer networks, commercial maintenance sourcing |
JW | Journeyman Wireman (Electrical) | Skilled-trade recruiting, electrical workforce analytics |
MP | Master Plumber | Senior trade recruiting, contractor qualification |
JP | Journeyman Plumber | Plumbing technician hiring and verification |
PE | Professional Engineer | Engineering firm verification, AEC recruiting, infrastructure bidding |
PLS | Professional Land Surveyor | Land development, GIS, and surveying partnerships |
ARC | Architect | Architectural specification outreach, design-build partnering |
🩺 Healthcare, Medical & Behavioral Health
| Code | Profession / License Type | Typical Use Case |
|---|---|---|
RN | Registered Nurse | Travel nursing, hospital credentialing, clinician recruiting |
PN | Practical Nurse (LPN) | Long-term care, clinic, and home-health staffing |
APN | Advanced Practice Nurse (NP/CNS/CRNA) | Primary-care provider recruiting, telehealth credentialing |
NA | Nurse Aide (CNA) | Senior-living and healthcare facility staffing |
PA | Physician Assistant | Medical group recruiting, urgent-care staffing |
DR / MD | Doctor / Medical Physician | Provider directory enrichment, payer credentialing, medical device sales |
DEN | Dentist | Dental DSO acquisition targeting, dental supply sales |
DH | Dental Hygienist | Dental practice recruiting |
PHA | Pharmacist | Retail & hospital pharmacy staffing, pharmacy compliance |
VET | Veterinarian | Veterinary clinic outreach, animal-health B2B sales |
PSY | Psychologist | Behavioral health network building, telehealth onboarding |
LPC | Licensed Professional Counselor | Mental-health group practice recruiting & verification |
LCSW | Clinical Social Worker | Healthcare & behavioral-health staffing |
OT / PT / SLP | Occupational / Physical / Speech Therapist | Rehab staffing, pediatric & outpatient therapy networks |
MT / CHR / AP | Massage Therapist / Chiropractor / Acupuncturist | Wellness clinic lead generation & credential verification |
💼 Real Estate, Finance & Personal Services
| Code | Profession / License Type | Typical Use Case |
|---|---|---|
REB | Real Estate Broker | PropTech lead generation, mortgage/title partnerships, brokerage recruiting |
CPA | Certified Public Accountant | B2B SaaS partnerships, financial/advisory directory building |
COS | Cosmetologist | Salon supply distribution, beauty-tech prospecting |
BAR | Barber | Barbershop & 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.
| Parameter | Type | Default / Prefill | Description |
|---|---|---|---|
licenseTypes | array<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. |
statuses | array<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. |
cities | array<string> | [] (All cities) | Select from 30 major Colorado cities (Denver, Colorado Springs, Aurora, Fort Collins, Lakewood, Boulder, Pueblo, Grand Junction, etc.). |
citiesCustom | array<string> | [] | Type any additional Colorado city names not listed in the dropdown (case-insensitive). |
issuedAfter | string | "" | Only return licenses first issued on or after YYYY-MM-DD (e.g., "2025-01-01"). Ideal for net-new licensee discovery. |
issuedBefore | string | "" | Only return licenses first issued on or before YYYY-MM-DD. |
maxRecords | integer | Default 0, Prefill 100 | Maximum number of unique license records to collect. Set 1000+ for large exports or 0 for unlimited. |
pageSize | integer | 1000 | Number of records fetched per batch request (100–50000). Default 1000 is optimal for both small and 10,000+ runs. |
requestDelay | integer | 200 | Pause 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
| Field | Type | Coverage | Description |
|---|---|---|---|
licenseNumber | string | 🟢 High (100%) | Official DORA license or registration number (used as primary deduplication key) |
licenseType | string | 🟢 High (100%) | DORA license prefix code (e.g., RN, EC, PC, PE, REB, CPA) |
subCategory | string | null | 🟡 Conditional (~15%) | Sub-category code where applicable (e.g., NP, CNS, TEMP) |
status | string | 🟢 High (100%) | Current license status (Active, Expired, Suspended, Revoked, etc.) |
👤 Licensee Name & Organization
| Field | Type | Coverage | Description |
|---|---|---|---|
firstName | string | null | 🟢 High (~95% individuals) | Licensee given name (null on corporate/entity licenses) |
middleName | string | null | 🟡 Conditional (~60%) | Licensee middle name or initial |
lastName | string | null | 🟢 High (~95% individuals) | Licensee family name (null on corporate/entity licenses) |
suffix | string | null | 🟡 Conditional (~3%) | Name suffix (Jr, Sr, III, etc.) |
entityName | string | null | 🟡 Conditional (Firm licenses) | Registered company, LLC, corporation, or DBA name for business licenses |
📍 Location & Credentials
| Field | Type | Coverage | Description |
|---|---|---|---|
city | string | 🟢 High (~100%) | Mailing city on file with DORA |
state | string | 🟢 High (~99%) | Two-letter state code (CO for in-state; mailing state for out-of-state holders) |
zipCode | string | 🟢 High (~99%) | 5-digit or 9-digit mailing ZIP code |
specialty | string | null | 🟡 Conditional (~20%) | Clinical or trade specialty area where recorded by the board |
degrees | string | null | 🟡 Conditional (Healthcare) | Semicolon-separated academic degrees (e.g., Bachelors of Science in Nursing; Masters of Science in Nursing) |
📅 Dates & Verification Links
| Field | Type | Coverage | Description |
|---|---|---|---|
firstIssueDate | string | 🟢 High (100%) | Date the license was originally issued (YYYY-MM-DD) |
lastRenewedDate | string | null | 🟢 High (~99%) | Date of most recent license renewal (YYYY-MM-DD) |
expirationDate | string | null | 🟢 High (~97%) | Current license expiration date (YYYY-MM-DD) |
verifyUrl | string | 🟢 High (100%) | Direct link to the official DORA license verification detail page |
healthcareProfileUrl | string | null | 🟡 Conditional (~60% healthcare) | Direct link to DORA's Healthcare Professions Profile snapshot viewer |
scrapedAt | string | 🟢 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 ASCand fetched in batches ofpageSize(default1,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
$offsetacross batch pages untiltotalSavedreaches your requestedmaxRecords(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
- Open Colorado Professional License Scraper in Apify Console.
- Select your target Professions, License statuses, and Cities (or leave blank for a statewide mix).
- Set Max records (
100for a quick test,1000–50000for bulk exports, or0for unlimited). - Click Start and download your results in JSON, CSV, or Excel.
Python (apify-client)
from apify_client import ApifyClientclient = 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 withissuedAfterset to 7 days ago andstatuses: ["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 bylicenseTypeto 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"). Filterstate === "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).
🔗 Related state license scrapers
- California DCA Professional License Scraper
- Ohio eLicense Professional License Scraper
- Texas Pharmacy License Scraper (TSBP)
- Illinois IDFPR License Scraper
- Virginia DPOR Professional License Scraper
- Minnesota DLI Professional License Scraper
- Washington L&I Contractor License Scraper
- Arizona ROC Contractor License Scraper
- NC Licensing Board for General Contractors Scraper
- Angi Scraper — US Home Service Pros & Contractors
📋 Changelog
| Version | Date | Notes |
|---|---|---|
| 1.2.0 | 2026-11 | Unlocked 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.0 | 2026-11 | Healthcare 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.0 | 2026-04 | Initial public release of Colorado Professional License Scraper covering 60+ DORA license types with profession, status, city, and issue-date filtering. |