US state universal occupational license recognition laws — conditions and scope
Which US states have passed universal occupational license recognition laws, what conditions they impose (minimum years licensed, good standing, criminal background, exam requirements), which professions are excluded, and whether military spouse provisions are included. Each record is one state's law with its specific conditions. Answers 'does [state] recognize my out-of-state professional license?', 'how long do I need to have been licensed to qualify?', 'are there professions excluded from universal recognition in [state]?', and 'does [state] have a military spouse licensing provision?' — questions where the answer is rapidly changing as states adopt new laws (22+ states as of mid-2026), and where the conditions differ meaningfully between states.
The data
| State | Law citation | Effective date | Scope | Minimum years licensed | Good standing required | Criminal background check | State-specific exam allowed | Excluded professions | Military spouse provision |
|---|---|---|---|---|---|---|---|---|---|
| Arizona | ARS § 32-4302 | 2019-04-10 | universal | 1 | yes | disqualifying criminal history as determined by the regulating entity; fingerprint clearance card required | yes | license or registration certificate issued pursuant to chapter 24 or 26 of this title; criteria established by an interstate compact | yes |
| Arkansas | ACA § 17-1-108 | 2019-07-24 | universal | none | yes | if a criminal background check is required of an applicant for an initial occupational license, then the occupational licensing entity may require the same | yes | reciprocity or license by endorsement provisions under numerous specific sections (§§ 17-12-308, 17-26-315, 17-27-308, 17-28-306, 17-31-308, 17-36-304, 17-42-305, 17-43-307, 17-83-305, 17-88-305, 17-89-305, 17-90-302, 17-92-114, 17-92-308, 17-93-414, 17-97-306, 17-99-304, 17-100-304, and 17-103-302) | no |
| Georgia | OCGA § 43-1-35 | 2022-07-01 | universal | none | yes | none specified in this section | yes | firefighter, healthcare provider, or a law enforcement officer; attorneys | yes |
| Iowa | Iowa Code § 272C.12 | 2020-07-01 | universal | none | yes | criminal history that would prevent the person from holding the license in this state | yes | license issued by the department of transportation; criteria established by an interstate compact; license through a national licensing organization | yes |
| Missouri | RSMo § 324.009 | 2018-08-28 | universal | 1 | yes | criminal record that would disqualify him or her for licensure in Missouri | yes | business, professional, or occupational licenses issued or required by political subdivisions; electrical contractor licensed under sections 324.900 to 324.945; interstate compacts | yes |
| Montana | MCA § 37-1-304 | 2019-10-01 | universal | none | yes | none specified in this section | yes | licensure of schools or facilities regulated by boards and programs | no |
| Ohio | ORC § 4796.03 | 2023-12-29 | universal | 1 | yes | convicted of, found guilty pursuant to a judicial finding of, or plead guilty to a criminal offense for which a licensing authority may deny an application | yes | interstate licensure compact professions | yes |
| Pennsylvania | 63 Pa.C.S. § 3111 | 2019-07-01 | universal | 2 | yes | has not committed any act that constitutes grounds for refusal, suspension or revocation of a license | yes | no | |
| Utah | UCA § 58-1-302 | 2019-05-14 | universal | 1 | yes | none specified in this section | yes | no | |
| Virginia | Va. Code § 54.1-118 | 2023-07-01 | universal | 3 | yes | none specified | yes | yes |
Where this came from
Every record above links the page it was taken from and quotes the sentence that states it. These are the 10 sources this dataset was assembled from.
- azleg.govhttps://www.azleg.gov/ars/32/04302.htm
- codes.findlaw.comhttps://codes.findlaw.com/ar/title-17-professions-occupations-and-businesses/ar-code-sect-17-1-108/
- codes.findlaw.comhttps://codes.findlaw.com/ga/title-43-professions-and-businesses/ga-code-sect-43-1-35/
- legis.iowa.govhttps://www.legis.iowa.gov/docs/code/2026/272C.12.pdf
- revisor.mo.govhttps://revisor.mo.gov/main/OneSection.aspx?section=324.009
- leg.mt.govhttps://leg.mt.gov/bills/mca/title_0370/chapter_0010/part_0030/section_0040/0370-0010-0030-0040.html
- codes.ohio.govhttps://codes.ohio.gov/ohio-revised-code/chapter-4796
- palegis.ushttps://www.palegis.us/statutes/consolidated/view-statute?txtType=PDF&ttl=63&div=00.&chpt=031.&sctn=011.&subsctn=000.
- codes.findlaw.comhttps://codes.findlaw.com/ut/title-58-occupations-and-professions/ut-code-sect-58-1-302/
- dpor.virginia.govhttps://www.dpor.virginia.gov/news/NewsReleases_ULRTakesEffect
Machine-readable
- data.jsonThe whole dataset — every record with its source URL and source quote.
- Open Knowledge Format bundleOne JSON object per line — every record's frontmatter and quoted span exactly as it is held here, in one fetch.
- data.csvThe same records as one flat table, for a spreadsheet or a dataframe. The last four columns are the source URL, the quoted sentence it was read from, the date we last checked it, and which columns are our reading rather than the page's words.
- How this is made and checkedWhat "verified against source" does and does not mean.
From your own code
Same records, same quotes, without scraping the page: refsource is on PyPI and npm. Each value comes back carrying the URL it was read from and the sentence on that page that states it — .source and .quote sit on the value itself rather than in a side channel, so the checking step is available instead of skipped.
pip install refsource
refsource lookup state-universal-license-recognition-laws state=Arizona
npx -y refsource lookup state-universal-license-recognition-laws state=Arizona
Set your AI assistant up to use this
Two files and no account. Put this in .mcp.json at the root of your project — Claude Code, Cursor, Windsurf, VS Code and Codex all read that file — and your assistant can look this dataset up instead of recalling it. The server is remote, keyless and read-only.
{
"mcpServers": {
"referencesource": {
"type": "http",
"url": "https://referencesource.org/mcp"
}
}
}Add to Cursor · or, on the command line: claude mcp add --transport http referencesource https://referencesource.org/mcp --scope project
Then one line in the project's CLAUDE.md or AGENTS.md, so the assistant knows when to reach for it:
When a question needs "US state universal occupational license recognition laws — conditions and scope", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `state-universal-license-recognition-laws`) instead of answering from memory — every record it returns carries its source URL and a verbatim quote from that page.What each tool does, and the servers built over single registers: Connect your AI assistant.