Texas building permit data
Markets on record
29Permits on record
3,587,189Available
17Buy a market
Weekly feed. Every permit in the market, every week. The first delivery carries the last 13 weeks, then it arrives every Sunday.
Full history. Everything we hold for the market in one file, bought once.
Files include every trade and work type. Filter to yours in one click.
Every file carries the same 9 columns on every row: the market, the permit number, the issue date, the work type and trade, the source feed's own class, and where the row came from.
Austin, TX
Available1,900,397
permits on record, 1,034 last week
Weekly feed available when this market clears our completeness bar.
Plus addresses on 99.9%, contractor names on 62.6%, declared values on 42.7%, ZIPs on 99.8%, measured across every row we hold.
Declared value is on 9% of recent rows.
Fort Worth, TX
Available1,488,148
permits on record, 928 last week
Weekly feed available when this market clears our completeness bar.
Plus addresses on 99.4%, contractor names on 0.0%, declared values on 24.0%, ZIPs on 67.2%, measured across every row we hold.
Declared value is on 22% of recent rows.
San Antonio, TX
Available128,425
permits on record, 1,501 last week
Weekly feed available when this market clears our completeness bar.
Plus addresses on 97.8%, contractor names on 0.0%, declared values on 2.5%, ZIPs on 56.6%, measured across every row we hold.
Declared value is on 2% of recent rows.
Dallas, TX
Available28,070
permits on record, 1,613 last week
Weekly feed available when this market clears our completeness bar.
Plus addresses on 100.0%, contractor names on 0.0%, declared values on 0.0%, ZIPs on 100.0%, measured across every row we hold.
Names are on 0% for the contractor and 55% for the owner of recent rows. Declared value is on 0% of recent rows.
College Station, TX
Available5,867
permits on record, 10 last week
Weekly feed available when this market clears our completeness bar.
Plus addresses on 100.0%, contractor names on 0.0%, declared values on 44.6%, ZIPs on 100.0%, measured across every row we hold.
Names are on 0% for the contractor and 70% for the owner of recent rows. Declared value is on 44% of recent rows.
Allen, TX
Available5,618
permits on record, through 2026-09-10
Weekly feed available when this market clears our completeness bar.
Plus addresses on 99.9%, contractor names on 29.7%, declared values on 13.1%, ZIPs on 99.9%, measured across every row we hold.
Declared value is on 49% of recent rows.
History runs to 2026-09-10 and stops there, so that is what the file holds.
Sugar Land, TX
Available4,258
permits on record, 125 last week
Plus addresses on 100.0%, contractor names on 93.7%, declared values on 69.8%, ZIPs on 100.0%, measured across every row we hold.
Cedarhill, TX
Available3,688
permits on record, through 2026-08-08
Weekly feed available when this market clears our completeness bar.
Plus addresses on 99.9%, contractor names on 60.5%, declared values on 28.6%, ZIPs on 99.8%, measured across every row we hold.
This market's newest permit is 49 days behind the freshest data we hold. Declared value is on 19% of recent rows.
History runs to 2026-08-08 and stops there, so that is what the file holds.
Collin County, TX
Available3,116
permits on record, 2 last week
Weekly feed available when this market clears our completeness bar.
Plus addresses on 99.7%, contractor names on 48.1%, declared values on 39.3%, ZIPs on 99.1%, measured across every row we hold.
Names are on 52% for the contractor and 63% for the owner of recent rows. Declared value is on 36% of recent rows.
North Richland Hills, TX
Available3,084
permits on record, through 2026-08-07
Weekly feed available when this market clears our completeness bar.
Plus addresses on 99.8%, contractor names on 41.3%, declared values on 37.2%, ZIPs on 99.8%, measured across every row we hold.
This market's newest permit is 50 days behind the freshest data we hold.
History runs to 2026-08-07 and stops there, so that is what the file holds.
La Porte, TX
Available2,215
permits on record, through 2026-08-09
Weekly feed available when this market clears our completeness bar.
Plus addresses on 99.1%, contractor names on 99.4%, declared values on 85.9%, ZIPs on 99.1%, measured across every row we hold.
This market's newest permit is 48 days behind the freshest data we hold.
History runs to 2026-08-09 and stops there, so that is what the file holds.
Denton, TX
Available1,984
permits on record, through 2026-08-31
Weekly feed available when this market clears our completeness bar.
Plus addresses on 99.9%, contractor names on 99.2%, declared values on 85.2%, ZIPs on 92.5%, measured across every row we hold.
We do not yet hold a prior period for this market, so there is no baseline to measure change against.
History runs to 2026-08-31 and stops there, so that is what the file holds.
Pasadena, TX
Available1,887
permits on record, through 2026-08-07
Weekly feed available when this market clears our completeness bar.
Plus addresses on 100.0%, contractor names on 78.8%, declared values on 2.6%, ZIPs on 99.9%, measured across every row we hold.
This market's newest permit is 50 days behind the freshest data we hold. Declared value is on 1% of recent rows.
History runs to 2026-08-07 and stops there, so that is what the file holds.
De Soto, TX
Available1,535
permits on record, through 2026-08-08
Weekly feed available when this market clears our completeness bar.
Plus addresses on 99.2%, contractor names on 89.6%, declared values on 25.8%, ZIPs on 99.7%, measured across every row we hold.
This market's newest permit is 49 days behind the freshest data we hold. Declared value is on 9% of recent rows.
History runs to 2026-08-08 and stops there, so that is what the file holds.
Arlington, TX
Available1,411
permits on record, 71 last week
Weekly feed available when this market clears our completeness bar.
Plus addresses on 100.0%, contractor names on 0.0%, declared values on 89.8%, ZIPs on 97.9%, measured across every row we hold.
Names are on 0% for the contractor and 0% for the owner of recent rows.
Kyle, TX
Available1,286
permits on record, through 2026-08-09
Weekly feed available when this market clears our completeness bar.
Plus addresses on 100.0%, contractor names on 33.0%, declared values on 38.4%, ZIPs on 98.8%, measured across every row we hold.
This market's newest permit is 48 days behind the freshest data we hold. Names are on 29% for the contractor and 1% for the owner of recent rows.
History runs to 2026-08-09 and stops there, so that is what the file holds.
Keller, TX
Available1,091
permits on record, through 2026-08-10
Weekly feed available when this market clears our completeness bar.
Plus addresses on 100.0%, contractor names on 42.1%, declared values on 4.0%, ZIPs on 100.0%, measured across every row we hold.
This market's newest permit is 47 days behind the freshest data we hold. Names are on 45% for the contractor and 21% for the owner of recent rows. Declared value is on 8% of recent rows.
History runs to 2026-08-10 and stops there, so that is what the file holds.
Get a Texas sample
Pick the markets you want to see, and we will email you real rows from them. Markets below our completeness bar can still be sampled; they are marked so you know before you look.
Every number here is computed from what we hold. See exactly what we cover.
Markets and completeness
1 of 29 markets here can be bought as a feed. The rest are sample only, and what each one is short of is on its row below.
Every figure is computed from what we actually hold. A market with no permits on record is not listed.
| Market | Permits | Recent | Availability |
|---|---|---|---|
Austin, TX
CompletenessAddress 99.9% all timeContractor 62.6% all timeDeclared value 42.7% all timeZIP 99.8% all timeData since 1990-01
|
1,900,397 | 1,034 last week | Available |
Fort Worth, TX
CompletenessAddress 99.4% all timeContractor not published by this feedDeclared value 24.0% all timeZIP 67.2% all timeData since 2001-07
|
1,488,148 | 928 last week | Available |
San Antonio, TX
CompletenessAddress 97.8% all timeContractor not published by this feedDeclared value 2.5% all timeZIP 56.6% all timeData since 2025-01
|
128,425 | 1,501 last week | Available |
Dallas, TX
CompletenessAddress 100.0% all timeContractor not published by this feedDeclared value 0.0% all timeZIP 100.0% all timeData since 2026-05
|
28,070 | 1,613 last week | Available |
College Station, TX
CompletenessAddress 100.0% all timeContractor not published by this feedDeclared value 44.6% all timeZIP 100.0% all timeData since 2025-07
|
5,867 | 10 last week | Available |
Allen, TX
CompletenessAddress 99.9% all timeContractor 29.7% all timeDeclared value 13.1% all timeZIP 99.9% all timeData since 2025-07
|
5,618 | through 2026-09-10 | Available |
Sugar Land, TX
CompletenessAddress 100.0% all timeContractor 93.7% all timeDeclared value 69.8% all timeZIP 100.0% all timeData since 2026-01
|
4,258 | 125 last week | Available |
Cedarhill, TX
CompletenessAddress 99.9% all timeContractor 60.5% all timeDeclared value 28.6% all timeZIP 99.8% all timeData since 2025-07
|
3,688 | through 2026-08-08 | Available |
Collin County, TX
CompletenessAddress 99.7% all timeContractor 48.1% all timeDeclared value 39.3% all timeZIP 99.1% all timeData since 2026-01
|
3,116 | 2 last week | Available |
North Richland Hills, TX
CompletenessAddress 99.8% all timeContractor 41.3% all timeDeclared value 37.2% all timeZIP 99.8% all timeData since 2025-07
|
3,084 | through 2026-08-07 | Available |
La Porte, TX
CompletenessAddress 99.1% all timeContractor 99.4% all timeDeclared value 85.9% all timeZIP 99.1% all timeData since 2025-07
|
2,215 | through 2026-08-09 | Available |
Denton, TX
CompletenessAddress 99.9% all timeContractor 99.2% all timeDeclared value 85.2% all timeZIP 92.5% all timeData since 2026-01
|
1,984 | through 2026-08-31 | Available |
Pasadena, TX
CompletenessAddress 100.0% all timeContractor 78.8% all timeDeclared value 2.6% all timeZIP 99.9% all timeData since 2025-07
|
1,887 | through 2026-08-07 | Available |
De Soto, TX
CompletenessAddress 99.2% all timeContractor 89.6% all timeDeclared value 25.8% all timeZIP 99.7% all timeData since 2025-08
|
1,535 | through 2026-08-08 | Available |
Arlington, TX
CompletenessAddress 100.0% all timeContractor not published by this feedDeclared value 89.8% all timeZIP 97.9% all timeData since 2026-01
|
1,411 | 71 last week | Available |
Kyle, TX
CompletenessAddress 100.0% all timeContractor 33.0% all timeDeclared value 38.4% all timeZIP 98.8% all timeData since 2026-01
|
1,286 | through 2026-08-09 | Available |
Keller, TX
CompletenessAddress 100.0% all timeContractor 42.1% all timeDeclared value 4.0% all timeZIP 100.0% all timeData since 2026-01
|
1,091 | through 2026-08-10 | Available |
Del Rio, TX
CompletenessAddress 100.0% all timeContractor not published by this feedDeclared value 0.0% all timeZIP 100.0% all timeData since 2026-01
This market's newest permit is 50 days behind the freshest data we hold, past the 30 day limit for a feed we sell. Names are on 0% for the contractor and 0% for the owner of recent rows, and a feed we sell needs one of them above 70%. Declared value is on 0% of recent rows, under the 50% floor, and this market carries no published note explaining the absence. |
944 | through 2026-08-07 | Sample only |
San Marcos, TX
CompletenessAddress 100.0% all timeContractor 0.0% all timeDeclared value 0.0% all timeZIP 78.3% all timeData since 2025-06
Names are on 0% for the contractor and 0% for the owner of recent rows, and a feed we sell needs one of them above 70%. Declared value is on 0% of recent rows, under the 50% floor, and this market carries no published note explaining the absence. Our own extraction is currently dropping a field this market publishes, so it is held back until that is healed. |
903 | 36 last week | Sample only |
Deer Park, TX
CompletenessAddress 100.0% all timeContractor 88.5% all timeDeclared value 9.6% all timeZIP 99.5% all timeData since 2026-01
This market runs 119 permits in a recent period, below the 120 we require before selling a feed. This market's newest permit is 48 days behind the freshest data we hold, past the 30 day limit for a feed we sell. Names are on 68% for the contractor and 68% for the owner of recent rows, and a feed we sell needs one of them above 70%. Declared value is on 30% of recent rows, under the 50% floor, and this market carries no published note explaining the absence. |
846 | through 2026-08-09 | Sample only |
Gainesville, TX
CompletenessAddress 99.1% all timeContractor 87.9% all timeDeclared value 8.2% all timeZIP 99.8% all timeData since 2025-10
This market runs 84 permits in a recent period, below the 120 we require before selling a feed. This market's newest permit is 50 days behind the freshest data we hold, past the 30 day limit for a feed we sell. Declared value is on 22% of recent rows, under the 50% floor, and this market carries no published note explaining the absence. |
536 | through 2026-08-07 | Sample only |
Leander, TX
CompletenessAddress 99.8% all timeContractor 62.0% all timeDeclared value 15.0% all timeZIP 99.8% all timeData since 2026-03
This market's newest permit is 50 days behind the freshest data we hold, past the 30 day limit for a feed we sell. Names are on 58% for the contractor and 38% for the owner of recent rows, and a feed we sell needs one of them above 70%. Declared value is on 24% of recent rows, under the 50% floor, and this market carries no published note explaining the absence. |
508 | through 2026-08-07 | Sample only |
Laredo, TX
CompletenessAddress 100.0% all timeContractor 0.6% all timeDeclared value 42.9% all timeZIP 91.1% all timeData since 2026-03
This market runs 107 permits in a recent period, below the 120 we require before selling a feed. Names are on 0% for the contractor and 0% for the owner of recent rows, and a feed we sell needs one of them above 70%. Declared value is on 39% of recent rows, under the 50% floor, and this market carries no published note explaining the absence. We do not yet hold a prior period for this market, so there is no baseline to measure change against. Our own extraction is currently dropping a field this market publishes, so it is held back until that is healed. |
506 | 0 last week | Sample only |
Kerrville, TX
CompletenessAddress 100.0% all timeContractor 0.0% all timeDeclared value 0.0% all timeZIP 100.0% all timeData since 2026-02
This market runs 79 permits in a recent period, below the 120 we require before selling a feed. This market's newest permit is 122 days behind the freshest data we hold, past the 30 day limit for a feed we sell. We have not measured site address fill for this market, and a feed we sell needs addresses on more than 50% of rows. We have not measured name fill for this market, and a feed we sell needs a contractor or owner name on more than 70% of rows. We have not measured declared value fill for this market, and it carries no published note explaining the absence. |
289 | through 2026-05-27 | Sample only |
CCDOT, TX
CompletenessAddress 99.2% all timeContractor 60.5% all timeDeclared value 0.0% all timeZIP 98.8% all timeData since 2026-01
This market runs 42 permits in a recent period, below the 120 we require before selling a feed. This market's newest permit is 50 days behind the freshest data we hold, past the 30 day limit for a feed we sell. Names are on 12% for the contractor and 25% for the owner of recent rows, and a feed we sell needs one of them above 70%. Declared value is on 0% of recent rows, under the 50% floor, and this market carries no published note explaining the absence. |
258 | through 2026-08-07 | Sample only |
Denton County, TX
CompletenessAddress 99.6% all timeContractor 17.9% all timeDeclared value 19.8% all timeZIP 99.6% all timeData since 2026-01
This market runs 55 permits in a recent period, below the 120 we require before selling a feed. This market's newest permit is 49 days behind the freshest data we hold, past the 30 day limit for a feed we sell. Names are on 19% for the contractor and 4% for the owner of recent rows, and a feed we sell needs one of them above 70%. Declared value is on 39% of recent rows, under the 50% floor, and this market carries no published note explaining the absence. |
252 | through 2026-08-08 | Sample only |
Bowie, TX
CompletenessAddress 100.0% all timeContractor 0.0% all timeDeclared value 0.0% all timeZIP 90.9% all timeData since 2026-07
This market runs 42 permits in a recent period, below the 120 we require before selling a feed. This market's newest permit is 51 days behind the freshest data we hold, past the 30 day limit for a feed we sell. Names are on 0% for the contractor and 0% for the owner of recent rows, and a feed we sell needs one of them above 70%. Declared value is on 0% of recent rows, under the 50% floor, and this market carries no published note explaining the absence. |
44 | through 2026-08-06 | Sample only |
El Paso, TX
CompletenessAddress 100.0% all timeContractor 0.0% all timeDeclared value 0.0% all timeZIP 88.2% all timeData since 2026-02
This market runs 3 permits in a recent period, below the 120 we require before selling a feed. This market's newest permit is 37 days behind the freshest data we hold, past the 30 day limit for a feed we sell. Names are on 0% for the contractor and 0% for the owner of recent rows, and a feed we sell needs one of them above 70%. Declared value is on 0% of recent rows, under the 50% floor, and this market carries no published note explaining the absence. |
17 | through 2026-08-20 | Sample only |
Sherman, TX
CompletenessAddress 100.0% all timeContractor 0.0% all timeDeclared value 0.0% all timeZIP 100.0% all timeData since 2026-07
This market runs 6 permits in a recent period, below the 120 we require before selling a feed. This market's newest permit is 60 days behind the freshest data we hold, past the 30 day limit for a feed we sell. Names are on 0% for the contractor and 0% for the owner of recent rows, and a feed we sell needs one of them above 70%. Declared value is on 0% of recent rows, under the 50% floor, and this market carries no published note explaining the absence. We do not yet hold a prior period for this market, so there is no baseline to measure change against. |
6 | through 2026-07-28 | Sample only |
Reference
What a feed includes, the exact columns, where the rows come from, and what we will not claim. Open what you need.
What a feed includes
A feed is the underlying permit records for the markets you name, delivered on a schedule you set, as one row per permit with the columns listed below. It is the same data behind every number on this page, without the product wrapped around it: you get the file and use it inside the terms you agree to. For Texas that means every market listed above, or any subset of them, with the completeness shown per market rather than promised in general.
What every file includes, 18 columns
| Column | Type | What it holds |
|---|---|---|
| city_slug | text | Our stable identifier for the jurisdiction that issued the permit. |
| city_name | text | Display name of that jurisdiction. |
| permit_number | text | The issuing authority's own permit identifier, verbatim. |
| issue_date | date | Date the permit was issued, as published by the source. |
| address | text | Site address of the work, as published. |
| zip | text | Site ZIP. Published by the feed where available, otherwise derived from the address by the Census geocoder. zip_source records which. |
| latitude | text | Census geocoder latitude, present only for confident address matches. |
| longitude | text | Census geocoder longitude, present only for confident address matches. |
| permit_type | text | Work type axis: RENOVATION, REMODEL, ADDITION or REPAIR. Null when the row is a specialty trade instead. |
| trade | text | Trade axis: ROOFING, ELECTRICAL, HVAC, PLUMBING, SOLAR or POOL. Null when the row is a work type instead. |
| source_class | text | The source feed's own work class, verbatim and upper cased. The closest thing in the row to the issuing authority's own taxonomy. |
| category | text | TRADE when a specialty trade was detected, RESIDENTIAL when a work type was detected. Not a building occupancy flag. |
| declared_cost | integer | Applicant declared job value in whole dollars. An estimate supplied at application, never an actual cost. |
| contractor | text | Contractor of record, as published. |
| contractor_license | text | Contractor licence or registration number where the source publishes one. |
| owner | text | Owner of record, as published. In the files you buy only, never shown on a page, in an email, or in the dashboard. |
| ward | text | Ward or council district where the source publishes one. |
| source | text | Where the row came from: straight from the city, the city's open data, or an aggregated feed. |
Where these rows come from
Direct. We pull the issuing authority's own publication ourselves, on our own schedule. Fastest to reflect a change at the source, and the shape of the file is whatever that authority publishes.
City open data. The jurisdiction publishes its permits as an open dataset under terms that grant reuse, and we ingest it under those terms. Every one of these was read by a person before it was switched on, and the licence is recorded per city.
Aggregated feed. The records reach us through a permit data aggregator that has already gathered them from the issuing authority. Broadest reach and the most normalisation applied before we see it, which is why the source column tells you which rows came this way.
One row per permit, not one row per update. A permit that is amended, re-inspected or re-issued does not become a second record: rows are collapsed on the issuing authority's own permit number within a jurisdiction, and where two sources both describe the same permit we keep one and compare the rest. What that means for you is that a count of rows is a count of permits, so you can bill, forecast and prospect off it without deduplicating anything yourself.
The honest part
Building permits carry no phone numbers and no email addresses, so no honest permit feed includes them. How complete each field is varies by jurisdiction because publication varies by jurisdiction: some authorities publish contractor names and some do not, and where one does not you get an explicit note rather than an empty column you might mistake for a bad extraction. Every completeness figure on this page is computed from what we actually hold.
Why is a market sample only?
We only sell markets with complete data. Every figure on this page is computed from what we actually hold, and you see exactly what a market carries before you pay. Anything short of complete is sample only until it clears the bar.
Custom feeds and embedded use are quoted per deal. Email us and a person will answer.
Our coverage and field fill, every city / All permit data feeds