The City of Dallas publishes every issued building permit on dallasopendata.com (Socrata dataset e7gq-4sah). Between Oct 21 and Oct 28, 2026 it issued 1,499 permits:

Permit type Count
Residential plumbing 314
Commercial electrical 145
Residential electrical 141
Residential mechanical (HVAC) 121
Commercial alteration/addition 107
Commercial plumbing 99
Residential new construction 82
Residential alteration/addition 81
Commercial mechanical 70
Residential accessory structure 52

Each permit includes the work description (for example "Installation of roof mounted PV solar panels / 22 modules / 9.020 kW"), street address, ZIP code, square footage and issue date.

One gotcha: text dates

Dallas stores issued_date as text in MM/DD/YY format, so a normal SoQL date range (issued_date > '2026-10-21') silently returns the wrong rows. Query the exact date strings instead:

import datetime as dt, requests days = [(dt.date(2026,10,28)-dt.timedelta(d)).strftime("%m/%d/%y") for d in range(8)] where = "issued_date in(" + ",".join(f"'{d}'" for d in days) + ")" rows = requests.get("https://www.dallasopendata.com/resource/e7gq-4sah.json", params={"$where": where, "$limit": 5000}).json() print(len(rows), rows[0]["permit_type"], rows[0]["work_description"][:80]) 

For longer windows, split the request into chunks of about 31 dates.

Finding solar, roofing and HVAC jobs

Filter on the work description:

import re solar = [r for r in rows if re.search(r"\b(PV|solar)\b", r.get("work_description",""), re.I)] roof = [r for r in rows if re.search(r"re-?roof|shingle", r.get("work_description",""), re.I)] 

Note: Dallas leaves the contractor and valuation fields blank on most recent permits. Use this feed for the address, work type and timing (for example, homeowners who just pulled a re-roof or new-construction permit), not to look up a contractor.

No-code: 48 cities in one tool

Dallas is now one of 48 cities and counties in the Building Permits Scraper on Apify. Choose "cities": ["dallas_tx"] and set withinDays, or combine it with Austin, San Antonio and Fort Worth for a Texas-wide permit feed. It costs $2 per 1,000 permits, and the free plan covers a few thousand a month.

Sample data and field list: loomwise.app/data/building-permit-leads.

Data: City of Dallas Open Data, public. Owner and applicant names are not included.