Which edition of the International Building Code, Residential Code and 15 other I-Codes each US state enforces, from the ICC's own published adoption chart
Which edition of each International Code Council (ICC) code family is adopted in each US state and territory, taken from the ICC's own published adoption chart. The ICC publishes 17 code families (IBC, IRC, IFC, IMC, IPC, IPSDC, IFGC, IgCC, IPMC, IEBC, ISPSC, ICCPC, IWUIC, IZC, ICC 700), and states adopt different editions of each -- Ohio is on IBC 2015 but IRC 2018, Texas is on IBC 2012 but IRC 2012, Wyoming is on IBC 2021 but has adopted the IRC only locally. Each record is one state, with the adopted edition year for each code family. Answers 'what edition of the IBC is adopted in Ohio', 'which states are still on IBC 2012', 'does my state enforce the International Plumbing Code', 'what building code edition applies in Texas'. This is the ICC's own snapshot, dated on the chart and carried on every record as 'Chart as of'; a state that has adopted a newer edition since that date will still show the edition the chart recorded. Editions are printed as two-digit years, per the chart's own key: 21 = 2021, 18 = 2018, 15 = 2015, 12 = 2012, 09 = 2009, 06 = 2006, 04 = 2004, 03 = 2003, 00 = 2000. 'X' means one or more state or local agencies have adopted an edition of that code, but it is not used as a standard for all buildings, and a code family is left blank here when the chart shows no adoption in that state. Three cells are printed with an asterisk (Hawaii IPC 'X*', Idaho ISPSC '*15', Oregon IWUIC 'X*'); the chart carries no legend for it in any of the three ways the PDF can be read, so the asterisk is reproduced as printed and not interpreted. New Jersey's fire code cell reads '15 (IBC)' -- the chart's legend glosses parentheses as a stretch code, but here the parenthetical names the code the provisions come from, so it too is reproduced as printed. American Samoa's building code cell reads '1964 UBC', an edition of the Uniform Building Code rather than an I-Code. The two energy columns (IECC-R, IECC-C) are deliberately not published here: energy-code-adoption-by-state carries those from each state's adopting regulation, which is current, whereas this chart's energy values have gone stale since January 2024. NEC/NFPA 70 is covered by nec-edition-adoption-by-state. The other 15 code families (IBC, IRC, IFC, IMC, IPC, IPSDC, IFGC, IgCC, IPMC, IEBC, ISPSC, ICCPC, IWUIC, IZC, ICC 700) are not covered anywhere else in the portfolio.
The data
| State or territory | Chart as of | IBC edition | IRC edition | IFC edition | IMC edition | IPC edition | IPSDC edition | IFGC edition | IPMC edition | IEBC edition | ISPSC edition | ICCPC edition | IWUIC edition | IZC edition | IgCC edition | ICC 700 edition |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Alabama | January 2024 | 21 | 15 | 21 | 21 | 21 | X | 21 | X | 21 | X | X | X | X | ||
| Alaska | January 2024 | 21 | X | 21 | 21 | 21 | 21 | |||||||||
| American Samoa | January 2024 | 1964 UBC | ||||||||||||||
| Arizona | January 2024 | X | X | 18 | X | X | X | X | X | X | X | X | X | X | X | X |
| Arkansas | January 2024 | 21 | 21 | 21 | 21 | 18 | 18 | X | X | |||||||
| California | January 2024 | 21 | 21 | 21 | X | 21 | X | X | ||||||||
| Colorado | January 2024 | X | X | X | X | 21 | X | 21 | X | X | X | X | X | X | X | X |
| Connecticut | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | ||||||||
| Delaware | January 2024 | X | X | 21 | 21 | X | 21 | X | X | X | X | |||||
| District of Columbia | January 2024 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 12 | |||||
| Florida | January 2024 | 21 | 21 | 21 | 21 | X | 21 | X | 21 | X | ||||||
| Georgia | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | X | X | ||||
| Guam | January 2024 | 09 | 09 | 09 | 09 | 09 | 09 | 09 | 09 | |||||||
| Hawaii | January 2024 | 18 | 18 | X* | 18 | |||||||||||
| Idaho | January 2024 | 18 | 18 | 18 | 18 | 18 | X | 18 | *15 | X | X | X | ||||
| Illinois | January 2024 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
| Indiana | January 2024 | 12 | 18 | 12 | 12 | 06 | 12 | |||||||||
| Iowa | January 2024 | 15 | 15 | 15 | 21 | X | X | X | X | 15 | X | X | ||||
| Kansas | January 2024 | X | X | X | X | X | X | X | X | X | X | |||||
| Kentucky | January 2024 | 15 | 15 | 12 | 15 | X | 15 | |||||||||
| Louisiana | January 2024 | 21 | 21 | X | 21 | 21 | 21 | X | 21 | 21 | ||||||
| Maine | January 2024 | 15 | 15 | 15 | X | 15 | ||||||||||
| Maryland | January 2024 | 21 | 21 | 21 | 21 | X | 21 | X | 21 | 21 | X | |||||
| Massachusetts | January 2024 | 15 | 15 | X | 15 | 15 | 15 | |||||||||
| Michigan | January 2024 | 15 | 15 | X | 15 | 15 | X | 15 | X | 15 | 15 | X | 12 | |||
| Minnesota | January 2024 | 18 | 18 | 18 | 18 | 18 | X | 18 | X | X | ||||||
| Mississippi | January 2024 | 18 | 18 | 18 | 18 | 18 | X | 18 | X | 18 | X | X | ||||
| Missouri | January 2024 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |
| Montana | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | ||||||
| Nebraska | January 2024 | 18 | 18 | X | X | X | X | X | X | 18 | X | X | ||||
| Nevada | January 2024 | X | X | X | X | X | X | X | X | X | X | X | X | |||
| New Hampshire | January 2024 | 18 | 18 | 18 | 18 | X | 18 | 18 | X | |||||||
| New Jersey | January 2024 | 21 | 21 | 15 (IBC) | 21 | 21 | X | 21 | ||||||||
| New Mexico | January 2024 | 15 | 15 | 15 | X | X | X | X | 15 | X | X | |||||
| New York | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | |||||||
| North Carolina | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | ||||||||
| North Dakota | January 2024 | 21 | 21 | 21 | 21 | 21 | X | X | ||||||||
| Northern Mariana Islands | January 2024 | 18 | 18 | |||||||||||||
| Ohio | January 2024 | 15 | 18 | 15 | 15 | 15 | 15 | X | X | X | ||||||
| Oklahoma | January 2024 | 18 | 18 | 18 | 18 | 18 | X | 18 | X | 18 | X | X | X | |||
| Oregon | January 2024 | 21 | 21 | 21 | 21 | 21 | X* | |||||||||
| Pennsylvania | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | X | 18 | 18 | 18 | 18 | ||||
| Puerto Rico | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | ||||||
| Rhode Island | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 12 | |||||||
| South Carolina | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | X | X | X | X | |||||
| South Dakota | January 2024 | 21 | 21 | 15 | 15 | X | 21 | X | X | X | ||||||
| Tennessee | January 2024 | 12 | 18 | 12 | 12 | 12 | 12 | 12 | 12 | X | X | X | X | |||
| Texas | January 2024 | 12 | 12 | X | X | X | X | X | X | X | 18 | X | X | X | X | |
| U.S. Virgin Islands | January 2024 | 18 | 18 | 18 | 18 | 18 | ||||||||||
| Utah | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | X | ||||||
| Vermont | January 2024 | 15 | X | 15 | ||||||||||||
| Virginia | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | ||||||
| Washington | January 2024 | 18 | 18 | 18 | 18 | X | 18 | X | 18 | 18 | X | 18 | X | |||
| West Virginia | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | |||||||
| Wisconsin | January 2024 | 15 | X | 15 | 15 | 15 | ||||||||||
| Wyoming | January 2024 | 21 | X | 21 | 21 | X | X | 21 | X | 21 | X | X | X | X |
Where this came from
Every record above links the page it was taken from and quotes the sentence that states it. These are the 1 source this dataset was assembled from.
- iccsafe.orghttps://www.iccsafe.org/wp-content/uploads/Master-I-Code-Adoption-Chart-1.pdf
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 ibc-irc-code-edition-adoption-by-state state=Alabama
npx -y refsource lookup ibc-irc-code-edition-adoption-by-state state=Alabama
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 "Which edition of the International Building Code, Residential Code and 15 other I-Codes each US state enforces, from the ICC's own published adoption chart", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `ibc-irc-code-edition-adoption-by-state`) 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.