Miami-Dade County publishes its building-permit records as a free, open, no-key public API. This page shows you the endpoint, the field names, and a query you can paste into a browser right now. It also says plainly what the record does not contain, which is the part most "permit search" pages leave out.
Miami-Dade's permit data sits on an ArcGIS FeatureServer layer. This is the layer EarlyFloor reads, and it is the same one you can read:
https://services.arcgis.com/8Pc9XBTAsYuxx9Ny/arcgis/rest/services/miamidade_permit_data/FeatureServer/0
Append ?f=pjson to that URL to see the layer's own field list and record count
straight from the county:
layer metadata.
Everything issued since a date, with the fields that matter for remodel work. Change the date and you have a different week:
https://services.arcgis.com/8Pc9XBTAsYuxx9Ny/arcgis/rest/services/miamidade_permit_data/FeatureServer/0/query
?where=PermitIssuedDate >= DATE '2026-07-23'
&outFields=PermitNumber,PermitIssuedDate,PropertyAddress,City,EstimatedValue,
ContractorName,ContractorPhone,ContractorNumber,SquareFootage,
FolioNumber,DetailDescriptionComments,ProposedUseDescription
&orderByFields=PermitIssuedDate DESC
&resultRecordCount=100
&f=json
Paste it as one line (browsers will encode the spaces for you). Swap f=json for
f=html if you would rather read it as a table than as JSON.
| County field | What it actually is |
|---|---|
| PermitNumber | The permit ID. This is your receipt — anything anyone tells you about a Miami-Dade permit can be checked against this number. |
| PermitIssuedDate | Epoch milliseconds, not a date string. Divide by 1000 to get a Unix timestamp. |
| PropertyAddress | The job site. |
| City | The county's own city label on the permit record. It is often the mailing city rather than the incorporated municipality — see the caveat below. |
| EstimatedValue | The declared value of the whole permitted job, not of any one trade's share. |
| ContractorName / ContractorPhone | The firm that filed the permit, and a phone number where the county has one. On alteration and repair permits this is frequently a trade sub, not the general contractor. |
| ContractorNumber | The Florida DBPR licence number, e.g. CGC1524060. You can look this up on DBPR's public licensee search to see the class and status. |
| SquareFootage | Square footage as declared on the permit. |
| FolioNumber | The parcel folio. This is the join key into Miami-Dade's free parcel layer, which is where year built, true municipality and owner of record live. |
| DetailDescriptionComments | The free-text scope. This is the only place the actual work is described, and it is inconsistent by design — different filers write it differently. |
Miami-Dade County is 34 municipalities plus unincorporated county, and the City of Miami runs its own permit system on its own endpoint. If you only query the county layer you will miss City of Miami permits, and vice versa. The City of Miami layer is:
https://services1.arcgis.com/CvuPhqcTQpZPT9qY/arcgis/rest/services/Building_Permits_Since_2014/FeatureServer/0
Its date field is IssuedDate and its scope text is in WorkItems and
ScopeofWork. Its records carry BuildingPermitStatusDescription and
IsPermitFinal, which the county layer does not publish at all. It publishes
no contractor phone number on any record — it publishes the filer's company mailing address
instead.
The permit record tells you almost nothing about the property. Miami-Dade publishes a separate
free parcel layer keyed on FOLIO, and that is where you find year built, the true
incorporated municipality, building area, and the owner of record:
https://services.arcgis.com/8Pc9XBTAsYuxx9Ny/arcgis/rest/services/ParcelsView_gdb/FeatureServer/0
Useful fields: TRUE_SITE_CITY, YEAR_BUILT,
BUILDING_ACTUAL_AREA, TRUE_OWNER1, TRUE_MAILING_ADDR1.
The honest version of the pitch: this query is free, and if you run it yourself you have most of what EarlyFloor sells. What we do is run it every day, filter it to interior-remodel work, drop the rows where the filer is a flooring firm, keep the rows that carry a phone, and publish the count so you can check it. If that is worth $79 a month to you, the sample is below. If it is not, the endpoint above is genuinely yours — take it.
See a real week of filtered rows →
Ground truth about this product: EarlyFloor has never had a paying subscriber. Nothing is billable yet. Everything on this site is a published dataset and an argument, not a track record.