Roofing permit records exist for most of Florida, but they are not in one place, not in one format, and not equally deep. This is a plain account of which jurisdictions publish them, what software each one runs, how far back the records reach, and where the gaps are — written from the work of actually collecting them.
Building permits are issued by the local building department, which means a city if the property is inside city limits and the county if it is not. There are 67 counties and over 400 municipalities, and a large share of them run their own permitting office.
This is the first thing that surprises people looking for Florida roof permit data: there is no state-level roofing permit database. The Florida Building Code is statewide, but the records are held locally, and a county's permit records usually cover the unincorporated area only. Hernando County's records, for example, exclude the City of Brooksville because Brooksville permits its own construction.
So covering a metro means collecting from the county and from each incorporated city inside it, separately, from whatever system each one happens to run.
Florida jurisdictions run at least eight different permitting systems. Each exposes its records differently, and a method that works for one is useless for the next.
| Platform | How records are exposed |
|---|---|
| Tyler EnerGov | A JSON search API behind the public self-service portal. The most tractable of the eight. Some jurisdictions are hosted by Tyler, others self-host, but the API shape is the same. |
| Accela ACA | An ASP.NET portal. Some installs offer a "Download results" export; others require walking a paged result grid. Record types vary — some have a roofing type, some file roofing under a general building permit. |
| Socrata | Open-data portals with a documented API. Where a city publishes here, collection is straightforward. |
| CitizenServe | Report-based exports rather than a search API. |
| iMS | Type-filtered exports. |
| Click2Gov | An older system, typically navigated by descending through subdivision or street prefixes. |
| MGO Connect | Hosts a number of Florida jurisdictions behind one login; exports are a JSON request returning CSV. |
| eGovPlus | A two-stage scrape: a grid of permits, then a detail page per permit for the address. |
Several jurisdictions also run two systems at once — a legacy one holding the history and a newer one holding everything since the migration. Hollywood's older portal holds records from 1988 to 2025; permits issued after the cutover live in a different system entirely. Anyone collecting a full history has to find both and join them at the seam.
This is the question that matters most and is answered least often. Depth varies enormously:
A roof is expected to last 15–25 years in Florida. So a jurisdiction whose records start in 2018 cannot tell you whether a roof was replaced in 2009, and "no permit on record" there means something entirely different from the same answer in a jurisdiction with records to 1990.
Any roof permit dataset is only as useful as its stated depth. A permit count with no floor year attached cannot be interpreted: it might be complete, or it might be three years of a thirty-year question. That is why Permiva publishes the earliest year, permit count, newest permit and date completeness for every jurisdiction it holds, rather than a platform-wide average.
Where a portal is shallow, the jurisdiction often still holds the older records — they simply were never put online. A public-records request can recover them. One Florida county's portal held about five months of roofing permits; a records request produced roughly 89,000 going back to 1990.
The catch is that a records request is a snapshot. Without a way to keep collecting new permits, the file is stale the day it arrives, so it is only worth requesting where there is also an ongoing source.
A permit that was pulled and then cancelled, withdrawn or voided is not a roof replacement. Many jurisdictions publish a status field that says so; some publish none at all. Where status is missing, an abandoned permit is indistinguishable from a completed one, and the address will read as reroofed when it wasn't.
Even with a clean status, a permit records that work was authorised. Unless the jurisdiction publishes inspection results, the record cannot confirm what happened on the roof. A minority of Florida jurisdictions do publish a passed final roof inspection, which is the strongest evidence available in this data.
Jurisdictions describe the same work in very different words. A single
county's roofing vocabulary can include REROOF,
RESHINGLE, ROOF OVER, ROOF RECOVER
and ROOF REPLACEMENT — and, in the same list,
ROOF REPAIR and ROOF COATING, which are not
replacements. Others file roofing under a general building permit where the
only clue is a free-text description written by staff.
Any dataset therefore embeds decisions: whether a roof-over counts, whether a repair counts, whether new construction counts, whether siding filed under a combined "roofing and siding" permit type counts. Reasonable people draw some of those lines differently, and a dataset that doesn't say where it drew them is hiding something you need to know.
The same property appears as 14550 E 43rd Ave in one system and
14550 43 AVE E in another. Unit numbers, address ranges,
renumbered streets and condominium buildings sharing one parcel all produce
misses. And a number of street addresses exist in more than one Florida
jurisdiction, so a match found in the wrong place is worse than no match.
There are three routes, and they suit different needs.
Direct from the jurisdiction. Free, authoritative, and the right answer for a handful of addresses. Most portals allow a search by address. For anything at scale it means building and maintaining a separate collection method per jurisdiction.
A public-records request. The way to reach history that was never put online. Slow, and it produces a snapshot rather than a feed.
A compiled dataset. Worth it if you need many addresses, kept current, across jurisdictions. The questions to ask any provider are the same ones this page is about: how far back does each jurisdiction go, what share of records carry a usable date, how recently was each one refreshed, and what exactly was counted as a roof permit.
Permiva is a Florida roof permit database compiled directly from municipal permitting systems and normalised into one format. Coverage depth, date completeness and freshness are published for every jurisdiction rather than averaged — so an answer can be read against the records it came from.
See coverage by jurisdictionWritten by Gabor Pal, a licensed Florida property and casualty adjuster and the founder of Permiva. Corrections are welcome — gabor@permiva.ai.