Verify a provider’s license against the state board’s own register: license status, issue and expiration dates, and any disciplinary actions, with an evidence screenshot of the board’s record. Primary-source verification, built board by board.
Go-live in as little as 30 minBrowser agentPublic source
We map your process, volume, and exception paths, then recommend a practical first scope.
Building internally? Read the docs →
Overview
License verification is board-by-board work because the sources are board-by-board: roughly fifty state boards per profession, each with its own register, search flow, and status vocabulary. A browser agent runs the check a credentialing coordinator runs today: it opens the board’s own license search, finds the license, and reads the full record back, status normalized to active, expired, inactive, revoked, or suspended, plus the license number and type, issue and expiration dates, and the board’s disciplinary-action history.
The workflow is built per board and per license type, California RN today via the state’s DCA license search, and extended board by board the same way the state Medicaid exclusion coverage grows. A request for a board that isn’t built yet ends with a clear scoped error naming what’s supported, never a wrong answer.
How Asteroid runs this workflow
A provider's identity, profession, and state enter the queue, Asteroid opens the right state board's own register, reads the full license record with its disciplinary history, and returns it normalized to your roster, with outages, ambiguous matches, and unexpected restrictions routed to your credentialing team.
How it actually runs
Provider identity, profession, state, and available license details enter the queue
Delivered to your credentialing roster
License status, type, expiry, and the disciplinary history land in the roster with the evidence screenshot and timestamp, driving the renewal calendar instead of trailing it.
Board outage or ambiguous match: Unresolved matches, unexpected restrictions, and boards that won't respond return with the board's own record or an explicit error; a person resolves it once, or re-runs with the license number for an exact answer.
Closing the loop
Nobody on your team reads this JSON. Your system does. Each run delivers its record wherever the work already lives, and the loop closes on its own: requests in, records back, no one in the middle.
{ "source": "CA DCA License Search", "status": "found", "checked_at": "2026-07-16T14:02:11Z", "result": { "license_status": "Current", "license_number": "RN •••482", "license_type": "Registered Nurse", "name": "SAMPLE, JANE", "issue_date": "2014-06-12", "expiration_date": "2027-06-30", "disciplinary_actions": [] }, "evidence_screenshot_url": "https://…/evidence/run_51de….png"}National aggregators like Nursys and the FSMB Physician Data Center cover nurses and physicians, and if your roster stops there, they’re a reasonable rail. It usually doesn’t. Psychologists, LCSWs, LPCs, LMFTs, and most of the behavioral-health license mix have no national aggregator at all, so verification for them is the board’s own register or nothing. And even where an aggregator exists, the board’s register is the primary source, which is the standard credentialing files are held to. This workflow runs against the primary source directly, and captures the disciplinary history most aggregate feeds flatten into a flag.
Pair it with the NPPES NPI lookup to pin the provider’s identity before a name-based board search.
At scale
A single run verifies one license on one board. As a program, verifications run on the roster’s renewal cycle, licenses expire on the board’s schedule, not yours, and the exceptions, expirations, disciplinary actions, unmatched licenses, land with your credentialing team with the board’s own record attached. License verification is part of the credentialing and verification workflow library. The same primary-source discipline covers DEA registration verification and, outside the US, AHPRA registration in Australia.
Human in the loop
License checks run on SOC 2 Type II, HIPAA-compliant infrastructure, each with a logged result per board, which is what a delegated-credentialing audit wants to see. See the security page.
A disciplinary action on the record.
Reported with its date, type, and description; what it means for the provider is a judgment, and it’s yours.
Multiple matches on a name.
Reported for a person to resolve, or re-run with the license number for an exact answer.
Bot protection that won’t clear.
The run errors honestly, never fabricates a token, and never records a check that didn’t happen.
A board that isn’t built yet.
A clear scoped error naming what’s supported.
Questions
License verification is one workflow in the credentialing and verification workflow library. A license that expired on the board’s schedule, not yours, is a finding you want first, not one you want explained to you.
Disclaimer
Third-party names, including government agencies and registries, are used only to identify systems commonly involved in healthcare operations workflows. Asteroid is not affiliated with, endorsed by, sponsored by, or certified by those third parties unless expressly stated. Workflow availability depends on customer authorization, account permissions, configuration, and applicable system terms.