CO Professional Licenses - Nurses, MDs, Engineers avatar

CO Professional Licenses - Nurses, MDs, Engineers

Pricing

from $0.06 / 1,000 co professional license records

Go to Apify Store
CO Professional Licenses - Nurses, MDs, Engineers

CO Professional Licenses - Nurses, MDs, Engineers

Colorado professional and occupational licenses (public open data, 1.6M records, 40+ license types): the state's register of licensed nurses, physicians, engineers, CPAs and more - licensee, license number, status, first-issued / last-renewed / expiration dates, specialty and discipline.

Pricing

from $0.06 / 1,000 co professional license records

Rating

0.0

(0)

Developer

Wenhao Yang

Wenhao Yang

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Categories

Share

Colorado Professional Licenses - Nurses, MDs, Engineers

Colorado licenses its professions through the Division of Professions and Occupations, and the license register is public open data. This actor turns it into a charged-per-record search, filter and aggregate tool: verify a license by number or name, pull a whole profession or a city, filter by status or expiration, or aggregate the register.

Built for: healthcare and staffing credentialing, license verification and compliance screening, workforce research, and anyone who wants Colorado's licensed-professional roster without paging a portal one name at a time.

What it covers

1,608,059 license records across 313 license types and 23 status values. Rows are licenses, and a number can repeat (an entity license plus its endorsements), so the register holds 669,686 distinct license numbers.

The depth is the license lifecycle:

  • type - RN (238,749), NA (195,495), APE, COS, DR (physician 69,185), PE (engineer 63,335), PN, AP, CPA, JW, MT, LPC, CSW, EC (electrician), and the other 300+
  • status (exact, 23 values) - Active 605,876, Expired 912,462, Cancelled, Revoked, Surrendered, Suspended, Retired, and the Active variants kept distinct: Active - With Conditions, Active - Provisional, Active - Telehealth ONLY, Active - Restricted, ...
  • dates - first issued, last renewed and expiration
  • licensee - person name or entity name, with city / state / zip, plus specialty and degree (the source's title column is empty on every row, so it is carried but never claimed as depth)
  • discipline - the case number and program action, where a board has acted

The fine print that matters

Two quirks are handled for you. The register holds impossible far-future renewal dates - a last-renewed out to year 9020 - which are excluded from every query and blanked on output, so a newest-first pull can never surface a year-9020 row. And status has 23 values where "Active" is not one thing - Active, Active - With Conditions, Active - Provisional, Active - Telehealth ONLY, Active - Restricted - so the actor matches the exact status, never a bare substring (a %Active% match would silently conflate six different statuses).

Typical questions

  • "Verify one license by number."
  • "Every active RN in Denver."
  • "Licenses expiring in the next 90 days."
  • "A person's license history by name."
  • "Aggregate the register by type, status or specialty."

Inputs

InputWhat it does
moderows (default) / aggregate
licenseNumberexact license number
namelicensee person or entity name
licenseType / status / specialtytype, exact status, specialty
city / state / zipwhere
issuedFrom/To / expiresFrom/Tofirst-issued and expiration ranges
groupByaggregate over type / status / state / specialty
maxResultscap records (default 50)

Default run = the 50 most recently renewed licenses - fast for the daily auto-test. For a targeted query add a filter; for a broad view use aggregate.

Example inputs

Verify one licence by its number - licenseNumber is exact.

{ "licenseNumber": "1617657" }

Every active RN in Denver - status is matched exactly, so Active - With Conditions is never folded into Active.

{ "licenseType": "RN", "status": "Active", "city": "Denver",
"maxResults": 50 }

Licences expiring in the next 90 days - an expiration window with the current roster.

{ "status": "Active", "expiresFrom": "2026-09-25",
"expiresTo": "2026-12-24", "maxResults": 50 }

The register by licence type - one count per group.

{ "mode": "aggregate", "groupBy": "licenseType" }

Low cost

From $0.0001 per record, down to $0.00006 at Gold - billed only for the rows you use, at the low end of the store. Cost scales with what you pull, not with the size of the register, and each record is metered individually.

What a thin scraper misses is the status granularity and the runaway dates. "Active" is six different statuses in this register and a substring match collapses them into one wrong answer; the register also carries renewal dates out to year 9020, so a date-sorted pull puts junk at the top; and a license number is not unique to a row once endorsements are counted. Normalizing the exact-status set, the far-future dates and the license-vs-row grain into a schema where a licenseType / status / specialty query returns exactly the licensees you mean is the actual product. Every pull is integrity-checked against the register's known shape, so a degraded source fails loudly instead of returning bad rows.

Example output

One licence - licenseNumber=1617657 returns the record for that licence. Every record also carries platform, source, mode, and the aggregate columns groupKey / groupCount / groupBy, which are "" outside aggregate mode:

{
"platform": "co-professional-licenses",
"source": "colorado-dora-professional-licenses",
"mode": "rows",
"groupKey": "", "groupCount": "", "groupBy": "",
"licenseNumber": "1617657",
"licenseType": "RN",
"licenseTypeName": "",
"status": "Active",
"lastName": "Vandenberg-Harrison",
"firstName": "Kristen",
"middleName": "Montgomery",
"suffix": "",
"entityName": "",
"city": "Avon",
"state": "CO",
"zip": "81620",
"firstIssuedDate": "2012-08-10",
"lastRenewedDate": "2026-10-01",
"expirationDate": "2028-09-30",
"specialty": "",
"title": "",
"degrees": "~Diploma in Nursing",
"caseNumber": "",
"programAction": ""
}

mode=aggregate, groupBy=licenseType - one row per type (the record fields are ""; the group lands in groupKey / groupCount):

RN 238,749
NA 195,495
DR 69,185
PE 63,335

Source

  • Colorado: Professional and Occupational Licenses - the Division of Professions and Occupations license register. Public open data. Records are the state's own published fields; not an endorsement of any licensee, and not a substitute for the board's official verification.