The State of California Permit Records
Building permits in California are held by hundreds of separate permitting authorities, and each publishes its records - or doesn’t - in its own way. To build PermitProof, we cataloged 539 of them: 483 incorporated cities plus 56 county authorities for unincorporated areas - and recorded, jurisdiction by jurisdiction, what the research established about how each publishes its permit records: a specific finding for most; for some, nothing is established yet. This page is that ledger, summarized, with figures as of Sep 5, 2026. Jurisdiction counts here are generated from the same routing catalog that powers the coverage directory, so the two surfaces cannot disagree; the certification and contact figures come from the ledger and the records-contact research summarized further down this page.
- Authorities cataloged
- 539483 incorporated cities plus 56 unincorporated county authorities. All 58 California counties appear in the catalog; San Francisco is cataloged as a single consolidated city-and-county entry, no separate county authority is cataloged for San Mateo County yet.
- Require a login
- 80Portals recorded as requiring an account and sign-in before permit records can be searched. (11 of these have no rendered source link yet.)
- Automated search fails
- 51Recorded as public portals where automated search has not worked: 31 record limits in PermitProof's own connectors, 11 record no usable public address search, 4 record portal-side bot walls, 3 record unreachable or stale portals, and 2 carry notes that do not establish which side. (15 of these have no rendered source link yet.)
- Records requests only
- 121Recorded as not publishing permit records online. (118 of these have no rendered source link; the other 3 link one.)
How the 539 break down
170 of the 539are searched automatically end to end - connectors with live acceptance tests on record, where each jurisdiction’s own page states which acceptance legs passed and, for a measured run, when. For 170 of the 170, those tests include a passed negative check in which the portal itself returned a no-record answer. The ledger records measured acceptance runs for 170 of the 170, dated between Jul 23, 2026 and Sep 2, 2026. A further 3run automation that has not yet passed those tests: their searches publish what they read, label an unfinished read incomplete, and never answer with an uncertified “no permits found”.
That leaves 366 with no automated search. The catalog records a specific barrier for 261 of them: 80 are recorded as requiring an account before any search; 51 run public portals that automated search has not worked against - 31recorded as limits in PermitProof’s own connectors, 11 as portals with no usable public address search, 4 as portal-side bot walls, 3 as unreachable or stale portals, and 2 whose notes do not establish which side; 121 are recorded as taking records requests only; and 9 carry a separate recorded reason - the portal responds, but no certifiable permit search could be established against what it returns. For the remaining 105, the catalog records no barrier yet.
On a separate axis: for 165 of the 539, the catalog’s official-source link field - the link a jurisdiction’s page renders as its official source - is empty. That count overlaps the barriers above: it includes 26 jurisdictions whose recorded barrier says a portal exists, and for some of the 165the research notes name a portal that has not been promoted to the link field either. It counts that one field - a department page or records-request link can still appear on those jurisdictions’ pages - and it does not measure how many jurisdictions have no records online.
Among the 56 county authorities, 21 are searched automatically and 2 more run automation that has not yet passed certification. For the remaining 33, the catalog records a specific barrier for 15 and no barrier yet for 18.
To make the records-request path usable, 122 records-request contacts were collected; 103 of them are recorded as verified, and each of the 93published email addresses among them was re-fetched from the government page it was read from - shown on its jurisdiction’s page beside a link to that page (see an example). Where the published address is a department or city-hall mailbox rather than a records desk, the jurisdiction’s page says so.
What software serves the 170 PermitProof searches automatically
Portal families among the automated set only - the portals PermitProof’s connectors search end to end, not a vendor’s customer list.
- Accela Citizen Access59
- Tyler EnerGov Self Service50
- eTRAKiT35
- official ArcGIS Feature Services7
- Citizenserve7
- SmartGov7
- CitySmart1
- CityView1
- ePALS1
- LADBS1
- Socrata open data1
Method, and what these numbers are not
Counts are generated at build time from PermitProof’s routing catalog - the same data that decides how a real search runs - and from its certification ledger and records-contact research. A jurisdiction is counted as automated when its connector ships as live coverage or the certification ledger records a passing live acceptance test; what each jurisdiction’s tests covered is described on its own page, and the sourcing rules are on the data sources page. A stored result from an identical search in the last 30 days may be reused - 7 days for a no-record result, one day for an incomplete read - and any other search runs live against the official source. A search that could not finish, or whose address could not be confirmed to the jurisdiction confidently enough, is labeled incomplete alongside whatever it did read - never presented as a completed permit history, and never as "no permits found".Recorded barriers reflect differing research depth - some were established with a full search attempt against a real address, others from a triage pass over the jurisdiction’s public pages - so each is a research finding, not a certification.
“No rendered source link” is a statement about this research, not about the jurisdiction: a jurisdiction may publish something the research has not recorded, or recorded only in its notes without promoting it to the link field the pages render. Every jurisdiction appears under /coverage: the ones where a search runs or a records-request contact is recorded have a page of their own stating what its tests covered or where to write; the rest are listed in their county’s section with a tag for the recorded barrier and the official source link where one is recorded, so any gap is visible rather than hidden. Figures change as portals change and as more connectors certify; they refresh when the site is next built and deployed, and this page shows them as of Sep 5, 2026.
Citing this page: link it directly and note the as-of date above - the numbers refresh with each site build, and each jurisdiction’s detail lives on its own page or on its county’s section of the directory.
The dataset itself is downloadable as CSV - one row per authority, with the recorded finding, the official source link where one is recorded, and the records-request contact at verified confidence only, each beside the government page it was read from. It carries exactly what the pages here render, regenerated on the same schedule. Use it with attribution to this page (CC BY 4.0).