A real pull of the Miami reroof file
This is the actual deliverable, not a mock-up: every reroof permit 35 from City of Miami + 120 from Miami-Dade County published to their open-data feeds in our 2026-11-07 pull, filtered to the ones a solar installer would call. The issue dates on these records run 2026-10-31 to 2026-11-06 — the authorities publish days after they issue, and by how much is measured below. 25 rows are shown out of the 150 that passed this file's roofing selection, drawn from the 155 rows in that pull. 5 of those 155 rows were removed by that selection and by de-duplication, with the per-rule counts listed further down this page. The 25 are allocated to hold the pull's own residential/commercial mix rather than being simply the largest jobs. The evidence column is the exact rule that matched, so you can check why each row is here.
| Permit # | Declared value | Contractor of record | Issued | Evidence — the rule that matched | Address | Work | State licence | Phone | Owner of record | Status at source |
|---|---|---|---|---|---|---|---|---|---|---|
| 2027007213 | $1,750,000 | WICK CONSTRUCTION LLC | 2026-11-03 | matched /\broof(?!.*solar)/ in "BLDG ALDI BUILDOUT ROOF — RETAIL SALES" | 11030 NW 7 AVE, Miami | roofing | CCC1337010 Cert Roofing | •••-••14 withheld from the paid file — free on the county’s own record | 11010 LAND ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| BD26020098001BR001 | $583,162 | BEST ROOFING SERVICES LLC | 2026-11-03 | matched /\broof(?!.*solar)/ in "BUILDING ROOFING FLAT ROOF — Commercial" | 234 NE 3 ST, Miami | roofing | not published by City of Miami | not published in the City of Miami open-data layer — that layer has no phone field | not published in the City of Miami open-data layer — that layer has no owner field | Active · final: NO |
| 2027007042 | $500,000 | EH WATERPROOFING PLUS, INC | 2026-11-03 | matched /\broof(?!.*solar)/ in "BLDG FLAT LQUID ROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | 5822 SW 60 ST, Miami | roofing | CCC1335584 Cert Roofing | •••-••66 withheld from the paid file — free on the county’s own record | LARA HOME ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| BD26020661001BR001 | $371,903 | RHI Construction Inc. | 2026-11-05 | matched /\broof(?!.*solar)/ in "BUILDING ROOFING FLAT ROOF — Commercial" | 140 NE 39 ST, Miami | roofing | not published by City of Miami | not published in the City of Miami open-data layer — that layer has no phone field | not published in the City of Miami open-data layer — that layer has no owner field | Active · final: NO |
| 2027007231 | $350,000 | EXTREME ROOFING INC | 2026-11-03 | matched /\broof(?!.*solar)/ in "BLDG NEW ROOFDEL — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | 8775 SW 81 ST, Miami | roofing | CCC1326021 Cert Roofing | •••-••35 withheld from the paid file — free on the county’s own record | RICARDO X ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027006645 | $246,200 | M. ROMERO'S ROOFING & INSPECTIONS INC | 2026-11-01 | matched /\broof(?!.*solar)/ in "BLDG NEW ROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | 10459 SW 174 TER, Miami | roofing | CCC044016 Cert Roofing | •••-••04 withheld from the paid file — free on the county’s own record | SUSAN CLAIRE ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027007740 | $100,010 | EDGE 2 EDGE ROOFING LLC | 2026-11-05 | matched /re-?roof/ in "MBLD BLDG 5 REROOF TILE — 5 UNITS OR MORE - RESIDENTIAL" | 10755 NW 50 ST, Miami | roofing | CCC1330977 Cert Roofing | •••-••43 withheld from the paid file — free on the county’s own record | 10825 NW ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027006631 | $87,000 | CROWN DESIGN BUILDERS CORP | 2026-10-31 | matched /re-?roof/ in "BLDG METAL REROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | 9445 SW 100 ST, Miami | roofing | CCC1332402 Cert Roofing | •••-••76 withheld from the paid file — free on the county’s own record | LILLIAN M ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027007601 | $68,980 | LOCK TIGHT IMPACT WINDOWS DOORS & ROOF | 2026-11-05 | matched /re-?roof/ in "BLDG REROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | 12821 SW 216 TER, Miami | roofing | CCC1328915 Cert Roofing | •••-••11 withheld from the paid file — free on the county’s own record | LARRY N ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027007257 | $64,200 | TOP SEAL SERVICES CORP | 2026-11-04 | matched /re-?roof/ in "BLDG METAL RE-ROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | matched /\broof(?!.*solar)/ in "BLDG METAL RE-ROOF — SINGLE FAM RES-CLUS | 9534 SW 125 TER, Miami | roofing | CCC1330119 Cert Roofing | •••-••88 withheld from the paid file — free on the county’s own record | MICHELLE BEYER ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027007675 | $63,000 | S&S ROOFING CORPORATION | 2026-11-05 | matched /re-?roof/ in "BLDG RE-ROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | matched /\broof(?!.*solar)/ in "BLDG RE-ROOF — SINGLE FAM RES-CLUST-ZERO LOT-T | 27410 SW 167 AVE, Miami | roofing | CCC1332780 Cert Roofing | •••-••93 withheld from the paid file — free on the county’s own record | ROBERTO ANTONIO ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027007532 | $61,250 | RANKED-1 ROOFING LLC | 2026-11-04 | matched /re-?roof/ in "BLDG REROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | 7445 N AUGUSTA DR, Miami | roofing | CCC1336970 Cert Roofing | •••-••25 withheld from the paid file — free on the county’s own record | RAUL LOPEZ ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027006998 | $55,155 | TOP FLORIDA ROOFING LLC | 2026-11-03 | matched /re-?roof/ in "BLDG RE-ROOF METAL — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | matched /\broof(?!.*solar)/ in "BLDG RE-ROOF METAL — SINGLE FAM RES-CLUS | 9221 E CALUSA CLUB DR, Miami | roofing | CCC1332906 Cert Roofing | •••-••44 withheld from the paid file — free on the county’s own record | XAVIER MIRANDA ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| BD25024796005BR001 | $52,500 | M Romeros Roofing & Inspections Inc | 2026-11-06 | matched /\broof(?!.*solar)/ in "NEW CONSTRUCTION TILE ROOF — Residential" | matched /\btile roof/ in "NEW CONSTRUCTION TILE ROOF — Residential" | 4161 WOODRIDGE RD, Miami | roofing | not published by City of Miami | not published in the City of Miami open-data layer — that layer has no phone field | not published in the City of Miami open-data layer — that layer has no owner field | Active · final: NO |
| 2027007221 | $47,000 | P & L ROOFING CORP | 2026-11-03 | matched /re-?roof/ in "BLDG REROOF TILE — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | 9630 SW 122 ST, Miami | roofing | CCC1333667 Cert Roofing | •••-••35 withheld from the paid file — free on the county’s own record | HECTOR TRUJILLO ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027006742 | $44,655 | T & S ROOFING SYSTEMS INC | 2026-11-02 | matched /re-?roof/ in "BLDG REROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | 841 NW 129 AVE, Miami | roofing | CCC1326032 Cert Roofing | •••-••54 withheld from the paid file — free on the county’s own record | ALEXANDRA M ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027007298 | $43,740 | ACOSTA ROOFING CONTRACTOR CORP | 2026-11-04 | matched /re-?roof/ in "BLDG REROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | 23790 SW 214 PL, Miami | roofing | CCC1332783 Cert Roofing | •••-••96 withheld from the paid file — free on the county’s own record | ARMANDO LOPEZ ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027006656 | $43,533 | STATEWIDE ROOFING PARTNERS LLC | 2026-11-02 | matched /re-?roof/ in "BLDG RE-ROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | matched /\broof(?!.*solar)/ in "BLDG RE-ROOF — SINGLE FAM RES-CLUST-ZERO LOT-T | 5757 DEVONSHIRE BLVD, Miami | roofing | CCC1335805 Cert Roofing | •••-••12 withheld from the paid file — free on the county’s own record | LAUREL MARCHETTI ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| BD26025041001BR001 | $42,344 | Kairos Roofing LLC | 2026-11-02 | matched /\broof(?!.*solar)/ in "BUILDING ROOFING FLAT ROOF" | 1745 NW 32 ST, Miami | roofing | not published by City of Miami | not published in the City of Miami open-data layer — that layer has no phone field | not published in the City of Miami open-data layer — that layer has no owner field | Active · final: NO |
| BD25029865008BR001 | $42,200 | JF MARTINEZ LLC | 2026-11-06 | matched /\broof(?!.*solar)/ in "ADDITION AND REMODELING FLAT ROOF — Residential" | 3660 SW 20 ST, Miami | roofing | not published by City of Miami | not published in the City of Miami open-data layer — that layer has no phone field | not published in the City of Miami open-data layer — that layer has no owner field | Active · final: NO |
| 2027007619 | $42,000 | LOCK TIGHT IMPACT WINDOWS DOORS & ROOF | 2026-11-05 | matched /re-?roof/ in "BLDG REROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | 7300 SW 161 PL, Miami | roofing | CCC1328915 Cert Roofing | •••-••11 withheld from the paid file — free on the county’s own record | JULIO A ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| BD25003868004BR001 | $41,000 | MIAMI ROOFING SYSTEMS INC | 2026-11-02 | matched /\broof(?!.*solar)/ in "NEW CONSTRUCTION FLAT ROOF — Residential" | 2685 SW 17 AV, Miami | roofing | not published by City of Miami | not published in the City of Miami open-data layer — that layer has no phone field | not published in the City of Miami open-data layer — that layer has no owner field | Active · final: NO |
| 2027007590 | $40,000 | CROWN DESIGN BUILDERS CORP | 2026-11-05 | matched /re-?roof/ in "BLDG METAL RE-ROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | matched /\broof(?!.*solar)/ in "BLDG METAL RE-ROOF — SINGLE FAM RES-CLUS | 3830 SW 134 AVE, Miami | roofing | CCC1332402 Cert Roofing | •••-••76 withheld from the paid file — free on the county’s own record | ANAY VALDES ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027006871 | $40,000 | BENSIDE CONTRACTORS GROUP LLC | 2026-11-02 | matched /re-?roof/ in "BLDG RE-ROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | matched /\broof(?!.*solar)/ in "BLDG RE-ROOF — SINGLE FAM RES-CLUST-ZERO LOT-T | 3717 SW 149 AVE, Miami | roofing | CCC1328155 Cert Roofing | •••-••72 withheld from the paid file — free on the county’s own record | ROLANDO J ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
| 2027007731 | $39,562 | SAFEGUARD IMPACT WINDOWS, DOORS & ROOF | 2026-11-05 | matched /re-?roof/ in "BLDG RE-ROOF — SINGLE FAM RES-CLUST-ZERO LOT-TOWN HOUSE" | matched /\broof(?!.*solar)/ in "BLDG RE-ROOF — SINGLE FAM RES-CLUST-ZERO LOT-T | 15110 SW 62 ST, Miami | roofing | CCC1336241 Cert Roofing | •••-••00 withheld from the paid file — free on the county’s own record | GRACIELA HERNANDEZ ••• withheld from the paid file — free on the county’s own record | not mapped from this source · final: not mapped from this source |
How fresh this actually is
- City of Miami — the newest issue date it had published to us on the 2026-11-07 run was 2026-11-06 (1 day behind that run; 1–1 days across the last 10 runs)
- Miami-Dade County — the newest issue date it had published to us on the 2026-11-07 run was 2026-11-05 (2 days behind that run; 2–7 days across the last 10 runs)
- City of Orlando (other metro, shown for comparison) — the newest issue date it had published to us on the 2026-11-07 run was 2026-11-06 (1 day behind that run; 0–1 days across the last 10 runs)
The file on this page (2026-11-07 run) brought 35 permit numbers that were not in the previous run, out of 155 rows in the file.
Each nightly run re-pulls a rolling seven-day window, so consecutive files overlap heavily: a file is a snapshot, not a day's news. Measured over the 2026-10-31→2026-11-07 runs of this exact file, a run brought 0–148 permit numbers that were not in the previous run (median 34), and 1 of 7 runs brought none at all. That is the real refresh rate of this product, and the median is not a promise about any single day.
Orlando is the fast one; Miami-Dade is not. If you need same-week Miami issue dates, this file cannot give them to you, because the county has not published them at the moment we pull.
Why not just download it from the county?
| Field | Miami-Dade free layer | City of Miami free layer | This file |
|---|---|---|---|
| Permit #, address, work description, contractor name | yes | yes | yes |
| Declared value (this page ranks by it) | yes, where the applicant declared one | yes, where the applicant declared one | 132 of 155 rows in this pull — the rest were filed without a declared value at source, and we publish them blank rather than estimating one |
| Contractor phone | yes, free | no phone field exists in that layer | deliberately not included — we do not sell personal contact details. The county half of this pull carried one on 120 of 155 rows; the county’s own free layer is where to get it |
| Owner of record | yes, free | no owner field exists in that layer | deliberately not included — we do not sell personal contact details. The county half of this pull carried one on 120 of 155 rows; the county’s own free layer is where to get it |
| State licence number, and its class | number yes — class, no | not published | number as published, plus the DBPR class decoded from its prefix |
| Two authorities in one file, one schema | county only | city only | 35 from City of Miami + 120 from Miami-Dade County, merged |
| Parcel year built and building square footage | no — a separate parcel layer (ParcelsView), joined on the folio | no | 149 and 149 of 155 rows, joined on the folio printed on the permit — roof age and roof area, the two fields a roofing or solar crew qualifies on. The folio ships in the file so you can check the join against the county's own parcel search. |
| Residential vs commercial vs multifamily, per row | no | no | 153 of 155 rows classified residential, commercial or
multifamily — the column that lets you not call the warehouses. The remaining
2 carry the literal value unknown: the classifier could not decide
and says so instead of guessing. |
| Permit square footage | as published | as published | 120 of 155 rows, carried through as published |
| Trade classification, with the matching rule shown per row | no — unclassified, county-wide | no | every row |
| What changed since the previous pull | no | no | computed every run and published above — the count for this exact file is in “How fresh this actually is”. The delta rows themselves are not downloadable yet: there is no subscriber file-delivery URL on this site, so nothing here is offered as a file you receive. |
| Measured publisher lag, per source | no | no | published above, recomputed every run |
So the honest claim is a narrow one: the merge, the classification, the licence-class decode, the parcel join that supplies roof age and roof area, the occupancy class, and the delta are the work. The phone and the owner on the county half are the county's, and free. Until 2026-07-30 this paragraph left the parcel join and the occupancy class out and the free sample did not ship those columns at all — they were being computed, sold, and never mentioned. That is also why there is no card field anywhere on this site — see the founding list.
Every licence number in the table is checkable in the state's own register: DBPR licensee search. We publish the number and the class exactly as printed on the permit record. We do not assert that any licence is currently valid or in good standing — we have not queried DBPR, and you should before you rely on it.
What is held back, and what is missing
That assertion used to cover one day. The 14-day spool the same endpoint serves held three incompatible schemas — 13, 17 and 31 columns, with
contractor renamed to
permit_applicant and contractor_phone to applicant_phone
between them — so an importer written to this promise broke on thirteen of the fourteen days.
Since 2026-07-31 there is one declared schema, published at
/files-schema.json with the date each column first carries data, and
verify-spool-schema.py exits non-zero if any file the endpoint can serve does not carry
that exact header. A column added after a given day's run is present but empty in that day's file;
it is never back-filled with a guess.
What was dropped from this pull, and why. Every reason below describes a record. None describes a company: an earlier version of this page dropped rows by running a regex over the applicant's company name, then published that guess as a statement about a named business's licensed trade. Selection now uses the authority's own discipline coding and the state licence class printed on the record.
The reasons below are the roofing-file selection applied on top of an already-gated product file. The universal gates — government owner of record, MEP sub-permit, corrupt valuation — run in the pipeline that WRITES the CSV, not here. Until 2026-07-30 they ran only here, which meant this page could report rows as filtered while the delivered file still contained them. This page now asserts that the delivered file carries none of them and refuses to publish itself if it does.
- state licence class printed on the permit record is “unrecognised-prefix”, which is not a class that pulls roofing work — 5 rows
Permit status, read back from the source. 19 not mapped from this source, 6 Active across the 25 rows shown, and 6 of them had a status we could read at all — Miami-Dade publishes no status field in its layer, so those rows say so rather than sitting blank. Where finality is published, 6 of the shown rows are flagged not final. Nothing is filtered on status yet: the column ships first so you can see a withdrawn or expired permit, and so the vocabulary each authority actually uses can be watched before anything depends on it. Until it is, read a county row as "a permit with this issue date was in the published feed at our pull", nothing stronger. Declared valuations are the applicant's own figure and routinely understate real project cost. Coverage for this file is Miami-Dade County and the City of Miami only — see coverage for every jurisdiction and date range we hold. This is a lead list built from public records, not a vetted referral, and nothing here is legal or investment advice. Before you call anyone on it, scrub against the federal and Florida do-not-call registries — we have not; see terms.
Built 2026-11-07 from
out/permits/miami/solar-2026-11-07.csv ·
this week's free digest · EarlyDocket