Utah ADU Builder
Data · 102 cities · updated 2026-10-17
Utah ADU data for developers and AI assistants
The same city research and Utah Code rules behind the property map, as a free JSON API, an MCP server for AI assistants, and a checker you can embed on your own site.
Endpoints
No key needed. Responses are JSON with CORS enabled, cached for an hour, and rebuilt on every deploy.
| Method | Path | Returns |
|---|---|---|
| GET | /api/v1/cities | Every city and town on file with its full rules record (JSON). |
| GET | /api/v1/cities/{slug} | One city, for example /api/v1/cities/orem. Unknown slugs return 404. |
| GET | /utah-adu-rules-by-city.csv | The rules table as CSV, one row per city. |
| GET | /changes/feed.json | Dated rule changes as a JSON Feed (RSS at /changes/feed.xml). |
| GET | /cities/{slug}/index.md | Each city page as Markdown, with sources. |
| GET | /openapi.json | OpenAPI 3.1 description of the API. |
| POST | /api/mcp | Model Context Protocol server for AI assistants (JSON-RPC 2.0). |
curl https://utahadubuilder.com/api/v1/cities/oremResponse excerpt, generated from today’s data for Orem. The full record also has size limits, setbacks, height, zones, process, pending proposals and sources.
{
"version": "1.0",
"city": {
"slug": "orem",
"name": "Orem",
"county": "Utah",
"specifiedMunicipalitySB284": true,
"internal": {
"status": "generally-allowed",
"lotRule": "none",
"minLotSqft": null,
"ownerOccupancy": "The owner must live in either the main home or the ADU as their primary residence (listed as such on their property taxes, tax returns and driver's license). The people living there must hold at least 50% ownership (trusts and companies qualify only in limited cases), and a temporary absence of up to three years for a job assignment, sabbatical or voluntary service is allowed. The city's accessory-apartment checklist also asks the owner to sign an affidavit not to rent both units."
},
"detached": {
"status": "generally-allowed",
"lotRule": "minimum",
"minLotSqft": 11000,
"parking": "Two dedicated spaces must be verified for the main home, plus one more for a unit of 200-650 sq ft or two more for a unit over 650 sq ft (each at least 8 x 16 ft and paved). Garage spaces count only if the garage holds more than two cars. ADU parking can't be in the home's front setback or farther back on the lot than the ADU's front-facing wall."
},
"verifiedAt": "2026-10-17",
"page": "https://utahadubuilder.com/cities/orem"
}
}Lot minimums are numbers in sq ft. A value ending in 001, such as 6001, means the lot must be larger than the round number; lotRule says whether a city minimum is on file (minimum), a city source shows no separate minimum (none), or no rule has been confirmed (not_verified). How each rule was checked is in certainty and the city’s verifiedAt date. Pending proposals are listed separately and are not law.
MCP server for AI assistants
Add the endpoint below as a remote MCP server (Streamable HTTP) in any client that supports one. It is read-only and needs no sign-in.
https://utahadubuilder.com/api/mcp| Tool | Arguments | Returns |
|---|---|---|
| get_city_adu_rules | city | Internal and detached rules for one city, with review date and official sources. |
| list_utah_adu_cities | none | Every city with status, lot rule and S.B. 284 status. |
| recent_adu_rule_changes | since, limit | Adopted ordinances, proposals and denials, newest first. |
| screen_utah_property | address | Preliminary internal and detached screen for a Utah address, with the rule trace and flood, fault, landslide and wildfire map checks. 60 per hour per client. |
curl -X POST https://utahadubuilder.com/api/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_city_adu_rules","arguments":{"city":"Orem"}}}'Embeddable checker
For city websites, brokerages and lenders: a small form that answers “Can I add an ADU here?” for any Utah address and links to the full rule trace. It follows the visitor’s light or dark setting.
<iframe src="https://utahadubuilder.com/embed/check"
title="Utah ADU property check"
width="100%" height="430" loading="lazy"
style="border:0;border-radius:16px;max-width:720px"></iframe>Terms, license and attribution
Planning information from Utah ADU Builder, not legal advice or a permit. Attribute https://utahadubuilder.com and link the city page when you republish. Confirm rules with the city before relying on them.
The city rules data (the API, the CSV, the Markdown city pages and the Utah ADU Index figures) is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). Credit “Utah ADU Builder (utahadubuilder.com)” and link the city page you used. Parcel screens draw on public county records through UGRC, which carry their own terms. Site text, design and tools stay under our terms of use.
How the screen decides: how it works. Rules for every city in one table: Utah ADU rules by city. Found an error in a city record? Tell us and include the ordinance or page that shows the correct rule.