@urbankitstudio/atlas 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +7 -2
  2. package/data/alabama.json +52 -6
  3. package/data/alaska.json +1 -1
  4. package/data/arizona.json +3 -3
  5. package/data/arkansas.json +143 -0
  6. package/data/california.json +65 -59
  7. package/data/colorado.json +6 -6
  8. package/data/connecticut.json +105 -3
  9. package/data/delaware.json +46 -0
  10. package/data/florida.json +31 -34
  11. package/data/georgia.json +42 -2
  12. package/data/hawaii.json +82 -0
  13. package/data/illinois.json +12 -11
  14. package/data/index.json +47 -47
  15. package/data/indiana.json +3 -3
  16. package/data/kansas.json +2 -2
  17. package/data/kentucky.json +1 -1
  18. package/data/louisiana.json +7 -7
  19. package/data/maine.json +1 -1
  20. package/data/maryland.json +94 -0
  21. package/data/massachusetts.json +1 -1
  22. package/data/michigan.json +5 -5
  23. package/data/minnesota.json +5 -5
  24. package/data/mississippi.json +8 -10
  25. package/data/missouri.json +49 -2
  26. package/data/montana.json +196 -0
  27. package/data/nebraska.json +3 -3
  28. package/data/nevada.json +1 -1
  29. package/data/new-jersey.json +2 -2
  30. package/data/new-mexico.json +49 -0
  31. package/data/new-york.json +7 -7
  32. package/data/north-carolina.json +5 -5
  33. package/data/north-dakota.json +57 -0
  34. package/data/ohio.json +3 -3
  35. package/data/oklahoma.json +49 -0
  36. package/data/oregon.json +10 -16
  37. package/data/pennsylvania.json +3 -3
  38. package/data/rhode-island.json +1 -1
  39. package/data/south-carolina.json +18 -19
  40. package/data/south-dakota.json +58 -0
  41. package/data/tennessee.json +9 -8
  42. package/data/texas.json +33 -26
  43. package/data/utah.json +4 -4
  44. package/data/vermont.json +2 -2
  45. package/data/virginia.json +43 -1
  46. package/data/washington.json +9 -9
  47. package/data/west-virginia.json +176 -0
  48. package/data/wisconsin.json +1 -1
  49. package/data/wyoming.json +58 -0
  50. package/dist/index.cjs +1698 -377
  51. package/dist/index.js +1698 -377
  52. package/package.json +1 -1
@@ -0,0 +1,49 @@
1
+ {
2
+ "stateSlug": "oklahoma",
3
+ "stateName": "Oklahoma",
4
+ "stateAbbrev": "OK",
5
+ "lastUpdated": "2026-06-05",
6
+ "counties": [
7
+ {
8
+ "id": "ok-oklahoma",
9
+ "state": "OK",
10
+ "stateName": "Oklahoma",
11
+ "stateSlug": "oklahoma",
12
+ "county": "Oklahoma",
13
+ "countySlug": "oklahoma-county",
14
+ "countyFips": "40109",
15
+ "hasPublicRest": true,
16
+ "endpoints": [
17
+ {
18
+ "url": "https://services8.arcgis.com/euhkr1dAJeQBIjV0/arcgis/rest/services/TaxParcelsPublics_view/FeatureServer/0",
19
+ "serviceType": "FeatureServer",
20
+ "layerIndex": 0,
21
+ "layerName": "TaxParcelPublic",
22
+ "supportsQuery": true,
23
+ "corsEnabled": null,
24
+ "searchFields": [
25
+ { "name": "accountno", "label": "Account Number (APN)", "searchable": true },
26
+ { "name": "name1", "label": "Owner Name (Primary)", "searchable": true },
27
+ { "name": "name2", "label": "Owner Name 2", "searchable": true },
28
+ { "name": "name3", "label": "Owner Name 3", "searchable": true },
29
+ { "name": "location", "label": "Property Address", "searchable": true },
30
+ { "name": "locationcity", "label": "Property City", "searchable": true },
31
+ { "name": "mailingaddress1", "label": "Mailing Address", "searchable": true }
32
+ ],
33
+ "sampleQuery": "https://services8.arcgis.com/euhkr1dAJeQBIjV0/arcgis/rest/services/TaxParcelsPublics_view/FeatureServer/0/query?where=UPPER(name1)+LIKE+UPPER('%25SMITH%25')&outFields=accountno,name1,name2,mailingaddress1,city,location,locationcity&returnGeometry=false&f=json&resultRecordCount=10",
34
+ "license": "public",
35
+ "licenseUrl": "https://ok-county-gis-hub-ok-co.hub.arcgis.com/",
36
+ "status": "live",
37
+ "lastVerified": "2026-06-05",
38
+ "verifiedBy": "automated"
39
+ }
40
+ ],
41
+ "contact": {
42
+ "department": "Oklahoma County GIS",
43
+ "url": "https://ok-county-gis-hub-ok-co.hub.arcgis.com/",
44
+ "email": null
45
+ },
46
+ "notes": "Oklahoma County is Oklahoma's most populous county (pop. 810,000; county seat Oklahoma City). The TaxParcelsPublics_view FeatureServer is hosted on ArcGIS Online (services8.arcgis.com, org ID euhkr1dAJeQBIjV0) and published via the OK County GIS Hub at ok-county-gis-hub-ok-co.hub.arcgis.com. Live query confirmed 336,922 parcels and owner-name exposure. Key fields: accountno (R-prefixed account number, e.g. 'R189878000'), name1/name2/name3 (up to three owners), mailingaddress1, city (mailing city), location (combined property address when populated, e.g. '17622 N INDIAN MERIDIAN RD OKLAHOMA CITY'), locationcity (property city), propertyid (numeric internal ID), taxdistrict, taxdistrictname, currentmarket, currentassessed, currenttaxable, landvalue, legal (legal description), subname, lot, block, section, township, range, acreage. Note: location and locationcity fields may be null for some rural parcels, when null, use legal/section/township/range for location. The former county ArcGIS Server at oklahomacounty.geocortex.com is no longer reachable (DNS fails as of 2026-06); the ArcGIS Online hosted view is the current canonical public layer. Oklahoma County Assessor portal at assessor.oklahomacounty.org provides the full record with appeals and valuation history."
47
+ }
48
+ ]
49
+ }
package/data/oregon.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "oregon",
3
3
  "stateName": "Oregon",
4
4
  "stateAbbrev": "OR",
5
- "lastUpdated": "2026-05-15",
5
+ "lastUpdated": "2026-06-06",
6
6
  "counties": [
7
7
  {
8
8
  "id": "or-multnomah",
@@ -34,7 +34,7 @@
34
34
  { "name": "SITUS_CITY", "label": "Situs City", "searchable": true },
35
35
  { "name": "SITUS_ZIP", "label": "Situs ZIP", "searchable": false },
36
36
  { "name": "RMV_PROPER", "label": "Real Market Value (Property)", "searchable": false },
37
- { "name": "PROP_TYPE", "label": "Property Type", "searchable": false }
37
+ { "name": "PROPERTY_C", "label": "Property Class", "searchable": false }
38
38
  ],
39
39
  "sampleQuery": "https://services3.arcgis.com/tNPgIZWOB0Efvm0g/ArcGIS/rest/services/Tax_Lots/FeatureServer/0/query?where=UPPER(MAILING_NA)+LIKE+UPPER('%25SMITH%25')&outFields=TLID,MAILING_NA,M_ADDRESS,SITUS_HOUS,SITUS_STRE,SITUS_CITY&returnGeometry=false&f=json&resultRecordCount=10",
40
40
  "license": "public",
@@ -45,11 +45,11 @@
45
45
  }
46
46
  ],
47
47
  "contact": {
48
- "department": "Multnomah County Department of Assessment, Recording and Taxation — GIS",
48
+ "department": "Multnomah County Department of Assessment, Recording and Taxation, GIS",
49
49
  "url": "https://gis-multco.opendata.arcgis.com/",
50
50
  "email": null
51
51
  },
52
- "notes": "46 fields confirmed including TLID, GlobalID, StatedArea, ID, account_id, tax_status, map_tax, MAP, Taxlot, S_I_TYPE, SI_NUMBER, MAILING_NA, IN_CARE_OF, AGENT, M_ADDRESS, M_CITY, M_STATE, zip, YEAR, ma, sa, nh, RMV_PROPER, PROPERTY_C, CODE_AREA, SUM_OF_ACR, SUM_OF_SQF, SITUS_HOUS (house number), SITUS_STRE, SITUS_ST_1, SITUS_DIRE, SITUS_UNIT, SITUS_CITY, SITUS_STAT, SITUS_ZIP, SITUS_PRE_. Owner name search via UPPER() LIKE on MAILING_NA returns real results (e.g., 'SMITH TIMOTHY BLAIR & KAREN KAY'). Hosted on ArcGIS Online (services3.arcgis.com/tNPgIZWOB0Efvm0g). Parcel boundaries are approximated — not for determining legal property boundaries. This data is from Multnomah County Assessment, Recording and Taxation, covering Portland and all of Multnomah County (pop. 830,000). Capabilities: Query, Sync."
52
+ "notes": "46 fields confirmed including TLID, GlobalID, StatedArea, ID, account_id, tax_status, map_tax, MAP, Taxlot, S_I_TYPE, SI_NUMBER, MAILING_NA, IN_CARE_OF, AGENT, M_ADDRESS, M_CITY, M_STATE, zip, YEAR, ma, sa, nh, RMV_PROPER, PROPERTY_C, CODE_AREA, SUM_OF_ACR, SUM_OF_SQF, SITUS_HOUS (house number), SITUS_STRE, SITUS_ST_1, SITUS_DIRE, SITUS_UNIT, SITUS_CITY, SITUS_STAT, SITUS_ZIP, SITUS_PRE_. Owner name search via UPPER() LIKE on MAILING_NA returns real results (e.g., 'SMITH TIMOTHY BLAIR & KAREN KAY'). Hosted on ArcGIS Online (services3.arcgis.com/tNPgIZWOB0Efvm0g). Parcel boundaries are approximated, not for determining legal property boundaries. This data is from Multnomah County Assessment, Recording and Taxation, covering Portland and all of Multnomah County (pop. 830,000). Capabilities: Query, Sync."
53
53
  },
54
54
  {
55
55
  "id": "or-lane",
@@ -62,7 +62,7 @@
62
62
  "hasPublicRest": true,
63
63
  "endpoints": [
64
64
  {
65
- "url": "http://lcmaps.lanecounty.org/arcgis/rest/services/AT/AddressParcelSales/MapServer/2",
65
+ "url": "https://lcgispubags.lanecountyor.gov/arcgis/rest/services/LaneCountyMaps/AddressParcel/MapServer/2",
66
66
  "serviceType": "MapServer",
67
67
  "layerIndex": 2,
68
68
  "layerName": "Parcels",
@@ -77,28 +77,22 @@
77
77
  { "name": "ADDR3", "label": "Owner Address Line 3", "searchable": true },
78
78
  { "name": "OWNERCITY", "label": "Owner City", "searchable": false },
79
79
  { "name": "OWNERPRVST", "label": "Owner State", "searchable": false },
80
- { "name": "OWNERZIP", "label": "Owner ZIP", "searchable": false },
81
- { "name": "SITUS", "label": "Situs Address", "searchable": true },
82
- { "name": "GEOCITY", "label": "Geographic City", "searchable": true },
83
- { "name": "MAPACRES", "label": "Map Acreage", "searchable": false },
84
- { "name": "RMVLND", "label": "Real Market Value (Land)", "searchable": false },
85
- { "name": "RMVIMP", "label": "Real Market Value (Improvements)", "searchable": false },
86
- { "name": "RMVTOTAL", "label": "Real Market Value (Total)", "searchable": false }
80
+ { "name": "OWNERZIP", "label": "Owner ZIP", "searchable": false }
87
81
  ],
88
- "sampleQuery": "http://lcmaps.lanecounty.org/arcgis/rest/services/AT/AddressParcelSales/MapServer/2/query?where=UPPER(OWNNAME)+LIKE+UPPER('%25SMITH%25')&outFields=RLID,MAPTAXLOT,OWNNAME,SITUS,GEOCITY,MAPACRES,RMVTOTAL&returnGeometry=false&f=json&resultRecordCount=10",
82
+ "sampleQuery": "https://lcgispubags.lanecountyor.gov/arcgis/rest/services/LaneCountyMaps/AddressParcel/MapServer/2/query?where=UPPER(OWNNAME)+LIKE+UPPER('%25SMITH%25')&outFields=RLID,MAPTAXLOT,OWNNAME,ADDR1&returnGeometry=false&f=json&resultRecordCount=10",
89
83
  "license": "public",
90
84
  "licenseUrl": "https://www.lanecounty.org/business/maps",
91
85
  "status": "live",
92
- "lastVerified": "2026-05-15",
86
+ "lastVerified": "2026-06-06",
93
87
  "verifiedBy": "manual"
94
88
  }
95
89
  ],
96
90
  "contact": {
97
- "department": "Lane County Information Services — Maps & GIS",
91
+ "department": "Lane County Information Services, Maps & GIS",
98
92
  "url": "https://www.lanecounty.org/business/maps",
99
93
  "email": null
100
94
  },
101
- "notes": "24 fields confirmed including OBJECTID, RLID, PROPACCT, MAPTAXLOT, MAPNUMBER, TAXLOT, ACCTNO, OWNNAME, ADDR1, ADDR2, ADDR3, OWNERCITY, OWNERPRVST, OWNERZIP, OWNERCNTRY, MAPACRES, GEOCITY, UGB, AscendAcres, Shape_Length, Shape_Area, zoningdesc, plandesdesc. Owner name confirmed live: OWNNAME field returns real owner names (e.g., 'SMITH, BENJAMIN C 25%...'). This is Layer 2 (Parcels polygon) on the AddressParcelSales MapServer; Layer 0 is Site Address points; Layer 1 is recent sales. The base URL uses HTTP (not HTTPS) — the server redirects HTTPS to HTTP. RLID is the Regional Land Information Database identifier. Real Market Value fields are available (RMVLND, RMVIMP, RMVTOTAL). maxRecordCount=1000. Capabilities: Map, Query, Data."
95
+ "notes": "24 fields confirmed including OBJECTID, RLID, PROPACCT, MAPTAXLOT, MAPNUMBER, TAXLOT, ACCTNO, OWNNAME, ADDR1, ADDR2, ADDR3, OWNERCITY, OWNERPRVST, OWNERZIP, OWNERCNTRY, MAPACRES, GEOCITY, UGB, AscendAcres, Shape_Length, Shape_Area, zoningdesc, plandesdesc. Owner name confirmed live: OWNNAME field returns real owner names (e.g., 'SMITH, BENJAMIN C 25%...'). MIGRATED 2026-06-06: lcmaps.lanecounty.org was retired (HTTP 500) -- the service moved to lcgispubags.lanecountyor.gov LaneCountyMaps/AddressParcel/MapServer/2 over HTTPS (159,028 parcels; OWNNAME search re-verified live). Situs and market-value columns from the old layer are not yet confirmed on the new one -- searchFields trimmed to confirmed columns. RLID is the Regional Land Information Database identifier. Real Market Value fields are available (RMVLND, RMVIMP, RMVTOTAL). maxRecordCount=1000. Capabilities: Map, Query, Data."
102
96
  },
103
97
  {
104
98
  "id": "or-marion",
@@ -34,11 +34,11 @@
34
34
  }
35
35
  ],
36
36
  "contact": {
37
- "department": "Allegheny County Department of Information Technology — GIS Division",
37
+ "department": "Allegheny County Department of Information Technology, GIS Division",
38
38
  "url": "https://openac-alcogis.opendata.arcgis.com/",
39
39
  "email": "gis@alleghenycounty.us"
40
40
  },
41
- "notes": "Only 5 fields on the public Web_Parcels endpoint: OBJECTID, PIN, MAPBLOCKLOT, SHAPE, SHAPE.STArea(), SHAPE.STLength(). This is geometry + parcel ID only — owner name is NOT exposed on the public REST layer. The EGIS folder on gisdata.alleghenycounty.us contains only 4 services (Web_Parcels, Buildings, Municipalities, AC_AddressPointsWithLabels). Full owner/address data is accessible through the Allegheny County Real Estate portal at alleghenyco.us/property-assessment and the county's block-lot lookup at property.alleghenycounty.us — these are browser-only, not REST-queryable. The WPRDC open data portal at data.wprdc.org has property assessment data as a CSV/API download."
41
+ "notes": "Only 5 fields on the public Web_Parcels endpoint: OBJECTID, PIN, MAPBLOCKLOT, SHAPE, SHAPE.STArea(), SHAPE.STLength(). This is geometry + parcel ID only. Owner name is NOT exposed on the public REST layer. The EGIS folder on gisdata.alleghenycounty.us contains only 4 services (Web_Parcels, Buildings, Municipalities, AC_AddressPointsWithLabels). Full owner/address data is accessible through the Allegheny County Real Estate portal at alleghenyco.us/property-assessment and the county's block-lot lookup at property.alleghenycounty.us. These are browser-only, not REST-queryable. The WPRDC open data portal at data.wprdc.org has property assessment data as a CSV/API download."
42
42
  },
43
43
  {
44
44
  "id": "pa-philadelphia",
@@ -76,7 +76,7 @@
76
76
  }
77
77
  ],
78
78
  "contact": {
79
- "department": "City of Philadelphia — Office of Innovation and Technology (OIT) CityGeo / Philadelphia Water Department",
79
+ "department": "City of Philadelphia, Office of Innovation and Technology (OIT) CityGeo / Philadelphia Water Department",
80
80
  "url": "https://data-phl.opendata.arcgis.com/",
81
81
  "email": null
82
82
  },
@@ -19,7 +19,7 @@
19
19
  "url": "https://www.rigis.org/",
20
20
  "email": null
21
21
  },
22
- "notes": "No public queryable REST endpoint found for Providence County parcel data. Rhode Island has no county government — GIS and parcel authority rests with individual municipalities. RIGIS (risegis.ri.gov) hosts only a MuniGIS_Resources MapServer that tracks metadata (last-updated status) per municipality, not actual parcel polygons. The state GIS server at gis.ri.gov/arcgis/rest/services/RIDOA/Muni_Parcel/MapServer was unreachable at time of research. Providence City has its own GIS portal (webgis.providenceri.gov, pvdgis.maps.arcgis.com) with parcel data, but the server was refusing connections in May 2026. Fallback: download shapefiles for individual RI cities and towns from RIGIS data distribution (rigis.org). Commercial options: Regrid covers RI with full parcel attribute data."
22
+ "notes": "No public queryable REST endpoint found for Providence County parcel data. Rhode Island has no county government, GIS and parcel authority rests with individual municipalities. RIGIS (risegis.ri.gov) hosts only a MuniGIS_Resources MapServer that tracks metadata (last-updated status) per municipality, not actual parcel polygons. The state GIS server at gis.ri.gov/arcgis/rest/services/RIDOA/Muni_Parcel/MapServer was unreachable at time of research. Providence City has its own GIS portal (webgis.providenceri.gov, pvdgis.maps.arcgis.com) with parcel data, but the server was refusing connections in May 2026. Fallback: download shapefiles for individual RI cities and towns from RIGIS data distribution (rigis.org). Commercial options: Regrid covers RI with full parcel attribute data."
23
23
  }
24
24
  ]
25
25
  }
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "south-carolina",
3
3
  "stateName": "South Carolina",
4
4
  "stateAbbrev": "SC",
5
- "lastUpdated": "2026-05-15",
5
+ "lastUpdated": "2026-06-06",
6
6
  "counties": [
7
7
  {
8
8
  "id": "sc-greenville",
@@ -50,7 +50,7 @@
50
50
  "url": "https://www.gcgis.org/",
51
51
  "email": "gis@greenvillecounty.org"
52
52
  },
53
- "notes": "Greenville County (pop. 530,000; seat: Greenville) Tax Parcel layer is within the Map_Layers_JS composite MapServer at layer index 52. 20 fields confirmed: PIN, OWNAM1/2, STREET, CITY, STATE, ZIP5, NAMECO, POWNNM, DEEDDATE, CUBOOK, CUPAGE, PLTBK1, PPAGE1, DIST, MKTAREA, JURIS, LANDUSE, DESCR, SUBDIV. Verified 2026-05-15: SMITH returns Greenville SC addresses (e.g., '124 MCDANIEL GREENE', '218 BUTLER AVE'). The same MapServer contains 95+ other layers (zoning, census, drainage, etc.) — layer 52 is specifically Tax Parcel. The GCGIS GreenvilleJS MapServer is the public-facing viewer service."
53
+ "notes": "Greenville County (pop. 530,000; seat: Greenville) Tax Parcel layer is within the Map_Layers_JS composite MapServer at layer index 52. 20 fields confirmed: PIN, OWNAM1/2, STREET, CITY, STATE, ZIP5, NAMECO, POWNNM, DEEDDATE, CUBOOK, CUPAGE, PLTBK1, PPAGE1, DIST, MKTAREA, JURIS, LANDUSE, DESCR, SUBDIV. Verified 2026-05-15: SMITH returns Greenville SC addresses (e.g., '124 MCDANIEL GREENE', '218 BUTLER AVE'). The same MapServer contains 95+ other layers (zoning, census, drainage, etc.). Layer 52 is specifically Tax Parcel. The GCGIS GreenvilleJS MapServer is the public-facing viewer service."
54
54
  },
55
55
  {
56
56
  "id": "sc-charleston",
@@ -63,31 +63,30 @@
63
63
  "hasPublicRest": true,
64
64
  "endpoints": [
65
65
  {
66
- "url": "https://gisccapps.charlestoncounty.org/arcgis/rest/services/GIS_VIEWER/Parcel_Search/MapServer/4",
66
+ "url": "https://gisccapps.charlestoncounty.org/arcgis/rest/services/GIS_VIEWER/New_Parcel_Search/MapServer/61",
67
67
  "serviceType": "MapServer",
68
- "layerIndex": 4,
68
+ "layerIndex": 61,
69
69
  "layerName": "Parcels",
70
70
  "supportsQuery": true,
71
71
  "corsEnabled": null,
72
72
  "searchFields": [
73
- { "name": "PID", "label": "Parcel ID (FEATURES.SDE.P_POLY_PARCEL.PID)", "searchable": true },
74
- { "name": "GPIN", "label": "GIS Parcel ID (FEATURES.SDE.P_POLY_PARCEL.GPIN)", "searchable": true },
75
- { "name": "OWNER1", "label": "Owner Name 1 (FEATURES.SDE.CAMA.OWNER1)", "searchable": true },
76
- { "name": "OWNER2", "label": "Owner Name 2 (FEATURES.SDE.CAMA.OWNER2)", "searchable": false },
77
- { "name": "MAIL_ST_NAME", "label": "Mailing Street Name (FEATURES.SDE.CAMA.MAIL_ST_NAME)", "searchable": false },
78
- { "name": "MAIL_ST_NO", "label": "Mailing Street Number (FEATURES.SDE.CAMA.MAIL_ST_NO)", "searchable": false },
79
- { "name": "MAIL_CITY", "label": "Mailing City (FEATURES.SDE.CAMA.MAIL_CITY)", "searchable": false },
80
- { "name": "MAIL_STATE", "label": "Mailing State (FEATURES.SDE.CAMA.MAIL_STATE)", "searchable": false },
81
- { "name": "MAIL_ZIP", "label": "Mailing ZIP (FEATURES.SDE.CAMA.MAIL_ZIP)", "searchable": false },
82
- { "name": "TAX_DISTRICT", "label": "Tax District (FEATURES.SDE.CAMA.TAX_DISTRICT)", "searchable": false },
83
- { "name": "LEGAL_DESCR", "label": "Legal Description (FEATURES.SDE.CAMA.LEGAL_DESCR)", "searchable": false },
84
- { "name": "SUBDIVISION", "label": "Subdivision (FEATURES.SDE.CAMA.SUBDIVISION)", "searchable": false }
73
+ { "name": "PID", "label": "Parcel ID", "searchable": true },
74
+ { "name": "OWNER1", "label": "Owner Name 1", "searchable": true },
75
+ { "name": "OWNER2", "label": "Owner Name 2", "searchable": false },
76
+ { "name": "MAIL_ST_NAME", "label": "Mailing Street Name", "searchable": false },
77
+ { "name": "MAIL_ST_NO", "label": "Mailing Street Number", "searchable": false },
78
+ { "name": "MAIL_CITY", "label": "Mailing City", "searchable": false },
79
+ { "name": "MAIL_STATE", "label": "Mailing State", "searchable": false },
80
+ { "name": "MAIL_ZIP", "label": "Mailing ZIP", "searchable": false },
81
+ { "name": "TAX_DISTRICT", "label": "Tax District", "searchable": false },
82
+ { "name": "LEGAL_DESCR", "label": "Legal Description", "searchable": false },
83
+ { "name": "SUBDIVISION", "label": "Subdivision", "searchable": false }
85
84
  ],
86
- "sampleQuery": "https://gisccapps.charlestoncounty.org/arcgis/rest/services/GIS_VIEWER/Parcel_Search/MapServer/4/query?where=UPPER%28%22FEATURES.SDE.CAMA.OWNER1%22%29+LIKE+UPPER%28%27%25SMITH%25%27%29&outFields=FEATURES.SDE.P_POLY_PARCEL.PID%2CFEATURES.SDE.CAMA.OWNER1%2CFEATURES.SDE.CAMA.MAIL_ST_NAME%2CFEATURES.SDE.CAMA.MAIL_CITY&returnGeometry=false&f=json&resultRecordCount=10",
85
+ "sampleQuery": "https://gisccapps.charlestoncounty.org/arcgis/rest/services/GIS_VIEWER/New_Parcel_Search/MapServer/61/query?where=UPPER(OWNER1)+LIKE+UPPER(%27%25SMITH%25%27)&outFields=PID,OWNER1,OWNER2,MAIL_ST_NAME&returnGeometry=false&f=json&resultRecordCount=10",
87
86
  "license": "public",
88
87
  "licenseUrl": "https://charleston-county-gis-chascogis.hub.arcgis.com/",
89
88
  "status": "live",
90
- "lastVerified": "2026-05-15",
89
+ "lastVerified": "2026-06-06",
91
90
  "verifiedBy": "manual"
92
91
  }
93
92
  ],
@@ -96,7 +95,7 @@
96
95
  "url": "https://charleston-county-gis-chascogis.hub.arcgis.com/",
97
96
  "email": null
98
97
  },
99
- "notes": "Charleston County (pop. 430,000; includes Charleston, North Charleston, Mount Pleasant) Parcel_Search MapServer layer 4. This layer is a spatial join of parcel geometry (FEATURES.SDE.P_POLY_PARCEL) with CAMA assessor data (FEATURES.SDE.CAMA), so field names are fully qualified with schema prefix. 20 fields confirmed: PID, GPIN, ACRES_CAL, OWNER1/2, TAX_DISTRICT, CLASS_CODE, MAIL_ST_NO/ST_NAME/ST_TYPE, MAIL_2ND_ADDR/ADDT, MAIL_CITY/STATE/ZIP/COUNTRY, LEGAL_DESCR, SUBDIVISION. IMPORTANT: field names in WHERE clause must be double-quoted due to dot notation (e.g., UPPER(\"FEATURES.SDE.CAMA.OWNER1\") LIKE ...). Verified 2026-05-15: SMITH returns Edisto Island and Spring City area addresses."
98
+ "notes": "Charleston County (pop. 430,000; includes Charleston, North Charleston, Mount Pleasant) Parcel_Search MapServer layer 4. This layer is a spatial join of parcel geometry (FEATURES.SDE.P_POLY_PARCEL) with CAMA assessor data (FEATURES.SDE.CAMA), so field names are fully qualified with schema prefix. 20 fields confirmed: PID, GPIN, ACRES_CAL, OWNER1/2, TAX_DISTRICT, CLASS_CODE, MAIL_ST_NO/ST_NAME/ST_TYPE, MAIL_2ND_ADDR/ADDT, MAIL_CITY/STATE/ZIP/COUNTRY, LEGAL_DESCR, SUBDIVISION. IMPORTANT: field names in WHERE clause must be double-quoted due to dot notation (e.g., UPPER(\"FEATURES.SDE.CAMA.OWNER1\") LIKE ...). Verified 2026-05-15: SMITH returns Edisto Island and Spring City area addresses. MIGRATED 2026-06-06: GIS_VIEWER/Parcel_Search/MapServer/4 was retired (ArcGIS 404) -- parcels now at GIS_VIEWER/New_Parcel_Search/MapServer/61 (197,306 parcels; OWNER1 search re-verified live). Field names are unqualified on the new layer (PID, OWNER1, ...); the FEATURES.SDE.* prefixes no longer apply and GPIN is not in the new schema."
100
99
  }
101
100
  ]
102
101
  }
@@ -0,0 +1,58 @@
1
+ {
2
+ "stateSlug": "south-dakota",
3
+ "stateName": "South Dakota",
4
+ "stateAbbrev": "SD",
5
+ "lastUpdated": "2026-06-20",
6
+ "counties": [
7
+ {
8
+ "id": "sd-minnehaha",
9
+ "state": "SD",
10
+ "stateName": "South Dakota",
11
+ "stateSlug": "south-dakota",
12
+ "county": "Minnehaha",
13
+ "countySlug": "minnehaha-county",
14
+ "countyFips": "46099",
15
+ "hasPublicRest": true,
16
+ "endpoints": [
17
+ {
18
+ "url": "https://gis.minnehahacounty.org/minnemap/rest/services/Parcels/MapServer/0",
19
+ "serviceType": "MapServer",
20
+ "layerIndex": 0,
21
+ "layerName": "Parcels",
22
+ "supportsQuery": true,
23
+ "corsEnabled": null,
24
+ "searchFields": [
25
+ { "name": "TAG", "label": "Parcel Tag (Parcel ID)", "searchable": true },
26
+ { "name": "MRTNM1", "label": "Owner Name 1", "searchable": true },
27
+ { "name": "MRTNM2", "label": "Owner Name 2", "searchable": false },
28
+ { "name": "MRTCTY", "label": "Owner City", "searchable": false },
29
+ { "name": "MRTSTATE", "label": "Owner State", "searchable": false },
30
+ { "name": "MRTZPC", "label": "Owner ZIP", "searchable": false },
31
+ { "name": "FULL_ADDRESS", "label": "Property Full Address", "searchable": true },
32
+ { "name": "NWLOCN", "label": "New Location (property street number)", "searchable": false },
33
+ { "name": "NWPRED", "label": "Street Pre-directional", "searchable": false },
34
+ { "name": "NWLOCS", "label": "Street Name", "searchable": true },
35
+ { "name": "NWSTYP", "label": "Street Type", "searchable": false },
36
+ { "name": "MAP_ID", "label": "Map ID", "searchable": false },
37
+ { "name": "LOT", "label": "Lot", "searchable": false },
38
+ { "name": "BLOCK", "label": "Block", "searchable": false },
39
+ { "name": "TRACT", "label": "Tract", "searchable": false },
40
+ { "name": "SUBDIVISION", "label": "Subdivision", "searchable": false }
41
+ ],
42
+ "sampleQuery": "https://gis.minnehahacounty.org/minnemap/rest/services/Parcels/MapServer/0/query?where=UPPER(MRTNM1)+LIKE+UPPER('%25SMITH%25')&outFields=TAG,MRTNM1,MRTNM2,MRTCTY,FULL_ADDRESS&returnGeometry=false&f=json&resultRecordCount=10",
43
+ "license": "public",
44
+ "licenseUrl": "https://gis.minnehahacounty.org/",
45
+ "status": "live",
46
+ "lastVerified": "2026-06-20",
47
+ "verifiedBy": "automated"
48
+ }
49
+ ],
50
+ "contact": {
51
+ "department": "Minnehaha County GIS / Minnehaha County Equalization",
52
+ "url": "https://www.minnehahacounty.org/dept/eq/eq.php",
53
+ "email": null
54
+ },
55
+ "notes": "Minnehaha County SD (Sioux Falls metro; county seat Sioux Falls; FIPS 46099; most populous county in SD, pop. 210,000) provides parcel data via gis.minnehahacounty.org. The Parcels/MapServer/0 layer exposes 20 fields: OBJECTID, FULL_ADDRESS, TAG (parcel ID), MAP_ID, MRRDID, MRTNM1 (owner name 1), MRTNM2 (owner name 2), MRTCTY (owner city), MRTSTATE, MRTZPC (ZIP), MRTZPC2, NWLOCN, NWPRED, NWLOCS (street name), NWSTYP, NWPOSD, LOT, BLOCK, TRACT, SUBDIVISION. Owner search via UPPER(MRTNM1) LIKE on MRTNM1. To get both owners, also query MRTNM2. Verified 2026-06-20: SMITH query returns Sioux Falls addresses. Minnehaha County SD (FIPS 46099) must not be confused with Minnehaha County in any other state."
56
+ }
57
+ ]
58
+ }
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "tennessee",
3
3
  "stateName": "Tennessee",
4
4
  "stateAbbrev": "TN",
5
- "lastUpdated": "2026-05-15",
5
+ "lastUpdated": "2026-06-06",
6
6
  "counties": [
7
7
  {
8
8
  "id": "tn-davidson",
@@ -53,11 +53,12 @@
53
53
  }
54
54
  ],
55
55
  "contact": {
56
- "department": "Metro Nashville GIS — Planning Department",
56
+ "department": "Metro Nashville GIS, Planning Department",
57
57
  "url": "https://maps.nashville.gov/",
58
58
  "email": null
59
59
  },
60
- "notes": "57 fields confirmed including ParID, DateEst, IsActive, FeatureType, Tract, Council, TaxDist, ParType, Owner, OwnDate, SaleCode, SaleSrc, ValidSale, OwnInstr, OwnAddr1/2/3, OwnCity, OwnState, OwnCountry, OwnZip, PropAddr, PropHouse, PropStreet, PropSuite, PropCity, PropState, PropZip, LegalDesc, PropInstr, PropDate, Front, Side, IsRegular, LUCode, LUDesc, AssessDate, PropFraction, StatedArea, SalePrice, Acres, LandAppr, ImprAppr, TotlAppr, LandAssd, ImprAssd, TotlAssd, STANPAR, DeededAcreage, APN. Owner query tested and confirmed: returns real Nashville addresses (e.g., 'SMITH, BRADLEY N JR' at '8300 SAWYER BROWN RD A-304 NASHVILLE'). Davidson County is a consolidated city-county with Nashville as the metro seat (pop. 715,000). APN is the assessor parcel number; STANPAR is the state parcel number. A separate Parcels_SP (State Plane) service exists at the same path with different spatial reference."
60
+ "notes": "57 fields confirmed including ParID, DateEst, IsActive, FeatureType, Tract, Council, TaxDist, ParType, Owner, OwnDate, SaleCode, SaleSrc, ValidSale, OwnInstr, OwnAddr1/2/3, OwnCity, OwnState, OwnCountry, OwnZip, PropAddr, PropHouse, PropStreet, PropSuite, PropCity, PropState, PropZip, LegalDesc, PropInstr, PropDate, Front, Side, IsRegular, LUCode, LUDesc, AssessDate, PropFraction, StatedArea, SalePrice, Acres, LandAppr, ImprAppr, TotlAppr, LandAssd, ImprAssd, TotlAssd, STANPAR, DeededAcreage, APN. Owner query tested and confirmed: returns real Nashville addresses (e.g., 'SMITH, BRADLEY N JR' at '8300 SAWYER BROWN RD A-304 NASHVILLE'). Davidson County is a consolidated city-county with Nashville as the metro seat (pop. 715,000). APN is the assessor parcel number; STANPAR is the state parcel number. A separate Parcels_SP (State Plane) service exists at the same path with different spatial reference.",
61
+ "relatedPropertyCitySlug": "nashville"
61
62
  },
62
63
  {
63
64
  "id": "tn-shelby",
@@ -95,7 +96,7 @@
95
96
  "license": "public",
96
97
  "licenseUrl": "https://www.shelbycountytn.gov/467/REGIS-Regional-GIS",
97
98
  "status": "live",
98
- "lastVerified": "2026-05-15",
99
+ "lastVerified": "2026-06-06",
99
100
  "verifiedBy": "manual"
100
101
  }
101
102
  ],
@@ -104,7 +105,7 @@
104
105
  "url": "https://www.shelbycountytn.gov/467/REGIS-Regional-GIS",
105
106
  "email": null
106
107
  },
107
- "notes": "Shelby County (Memphis and suburbs, pop. 934,000) hosts parcel data through ReGIS (Regional Geographic Information Systems), a multi-jurisdictional GIS consortium established by the Shelby County Commission in 2004. The CurrentParcels MapServer at scgis.shelbycountytn.gov exposes 47 confirmed fields. Parcel identifiers: PARCELID (primary display key) and PARID (the CAMA account ID used by the Shelby County Assessor of Property). Owner field is OWNER; OWNER_EXT holds overflow text. Mailing address is split across OWN_ADRNO, ADRPREDIR, ADRSTR, ADRSUF, ADRPOSTDIR for the street component, plus OWN_CITY, OWN_STATE, OWN_ZIP/ZIP4; also available concatenated as OWN_ADDR1/2/3. The MUNI field identifies the municipality -- Memphis, Bartlett, Collierville, Germantown, Lakeland, Millington, or blank for unincorporated Shelby County. That distinction carries real workflow consequences: Memphis's Division of Planning handles incorporated parcels, while the Shelby County Land Use Control Board handles unincorporated ones. Verified 2026-05-15: SMITH returns results from Germantown, Arlington, and unincorporated areas. Last countywide reappraisal was 2025; next scheduled 2029."
108
+ "notes": "Shelby County (Memphis and suburbs, pop. 934,000) hosts parcel data through ReGIS (Regional Geographic Information Systems), a multi-jurisdictional GIS consortium established by the Shelby County Commission in 2004. The CurrentParcels MapServer at scgis.shelbycountytn.gov exposes 47 confirmed fields. Parcel identifiers: PARCELID (primary display key) and PARID (the CAMA account ID used by the Shelby County Assessor of Property). Owner field is OWNER; OWNER_EXT holds overflow text. Mailing address is split across OWN_ADRNO, ADRPREDIR, ADRSTR, ADRSUF, ADRPOSTDIR for the street component, plus OWN_CITY, OWN_STATE, OWN_ZIP/ZIP4; also available concatenated as OWN_ADDR1/2/3. The MUNI field identifies the municipality -- Memphis, Bartlett, Collierville, Germantown, Lakeland, Millington, or blank for unincorporated Shelby County. That distinction carries real workflow consequences: Memphis's Division of Planning handles incorporated parcels, while the Shelby County Land Use Control Board handles unincorporated ones. Verified 2026-05-15: SMITH returns results from Germantown, Arlington, and unincorporated areas. Last countywide reappraisal was 2025; next scheduled 2029. LEGACY TLS (first documented 2026-06-06, confirmed 2026-06-27): scgis.shelbycountytn.gov requires legacy TLS renegotiation (UNSAFE_LEGACY_RENEGOTIATION). Modern runtimes (Node.js 18+, undici fetch, Python 3.10+ ssl, standard curl) reject the handshake; curl --legacy-server-connect or OpenSSL OP_LEGACY_SERVER_CONNECT succeeds. The endpoint itself is live (353,448 parcels). The atlas liveness check will always flag this endpoint FAIL because Node's native fetch rejects the TLS handshake. This is expected behavior, NOT a server outage. FIX NEEDED (flagged for lead): add a narrow per-host legacy-TLS fetch path in atlas-liveness-check.mjs and in the server-side parcel fetch for this specific host. Weakening TLS globally is not an option."
108
109
  },
109
110
  {
110
111
  "id": "tn-hamilton",
@@ -137,8 +138,8 @@
137
138
  "sampleQuery": "https://mapsdev.hamiltontn.gov/hcwa03/rest/services/Live_Parcels/MapServer/0/query?where=UPPER(OWNERNAME1)+LIKE+UPPER('%25SMITH%25')&outFields=PBA_NUM,OWNERNAME1,ADDRESS,GISLINK&returnGeometry=false&f=json&resultRecordCount=10",
138
139
  "license": "public",
139
140
  "licenseUrl": "https://gis.hamiltontn.gov/",
140
- "status": "live",
141
- "lastVerified": "2026-05-15",
141
+ "status": "unreachable",
142
+ "lastVerified": "2026-06-06",
142
143
  "verifiedBy": "manual"
143
144
  }
144
145
  ],
@@ -147,7 +148,7 @@
147
148
  "url": "https://gis.hamiltontn.gov/",
148
149
  "email": null
149
150
  },
150
- "notes": "Hamilton County (Chattanooga, pop. 375,000) Live_Parcels layer — service name 'Live' indicates real-time feed from the assessor. Service is on mapsdev.hamiltontn.gov (hcwa03 subdirectory). 15 fields confirmed: OBJECTID, PARCEL_TYP, PBA_NUM, GISLINK, OWNERNAME1/2, STNUM, DIRPFX, STNAME, TYPESFX, ADDRESS, MAP, GROUP_, PARCEL. PBA_NUM is the full parcel book/account number (e.g., '033006 00302P000'); GISLINK is the trimmed parcel ID. Verified 2026-05-15: SMITH returns addresses like '16909 DAYTON PIKE', '703 GRAYSVILLE RD'. Note: distinct from Hamilton County OH (Cincinnati, FIPS 39061) in the atlas."
151
+ "notes": "Hamilton County (Chattanooga, pop. 375,000) Live_Parcels layer, service name 'Live' indicates real-time feed from the assessor. Service is on mapsdev.hamiltontn.gov (hcwa03 subdirectory). 15 fields confirmed: OBJECTID, PARCEL_TYP, PBA_NUM, GISLINK, OWNERNAME1/2, STNUM, DIRPFX, STNAME, TYPESFX, ADDRESS, MAP, GROUP_, PARCEL. PBA_NUM is the full parcel book/account number (e.g., '033006 00302P000'); GISLINK is the trimmed parcel ID. Verified 2026-05-15: SMITH returns addresses like '16909 DAYTON PIKE', '703 GRAYSVILLE RD'. Note: distinct from Hamilton County OH (Cincinnati, FIPS 39061) in the atlas. SERVICE RETIRED (verified 2026-06-06): Live_Parcels/MapServer was removed from mapsdev.hamiltontn.gov ('Could not find service'). No public REST replacement exists -- Live_RealProperty is a 155-record county-owned-property inventory, not a parcel layer, and assessor.hamiltontn.gov has no REST API. Status set to unreachable pending a county-side replacement."
151
152
  }
152
153
  ]
153
154
  }
package/data/texas.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "texas",
3
3
  "stateName": "Texas",
4
4
  "stateAbbrev": "TX",
5
- "lastUpdated": "2026-05-14",
5
+ "lastUpdated": "2026-06-06",
6
6
  "counties": [
7
7
  {
8
8
  "id": "tx-harris",
@@ -45,7 +45,7 @@
45
45
  "url": "https://geo-harriscounty.opendata.arcgis.com/",
46
46
  "email": null
47
47
  },
48
- "notes": "Harris County, Texas (Houston metro, pop. 4.7M, county seat Houston) is the most populous Texas county and third-most populous in the US. The data authority is HCAD — Harris Central Appraisal District — which maintains property appraisal records independently of the county government. 62 fields confirmed, including HCAD_NUM (parcel ID), acct_num, owner_name_1/2/3 (up to three ownership slots with own_pct_1/2/3 percentage shares), site_str_num, site_str_name, site_city, site_zip, mail_addr_1/2/3, mail_city, mail_state, mail_zip, land_use, land_value, bld_value, total_appraised_val, new_owner_date, and yr_impr. Owner name is public under the Texas Public Information Act; Texas Tax Code §25.025 allows certain categories of persons (peace officers, judges, domestic violence victims, and others) to request suppression of their home address from appraisal district records. Owner-name LIKE query confirmed live. Max record count = 1000 per query. The HCAD open-data hub at geo-harriscounty.opendata.arcgis.com provides bulk downloads. A sibling service on the same server covers HCAD_MUD (Municipal Utility District) boundaries."
48
+ "notes": "Harris County, Texas (Houston metro, pop. 4.7M, county seat Houston) is the most populous Texas county and third-most populous in the US. The data authority is HCAD, Harris Central Appraisal District, which maintains property appraisal records independently of the county government. 62 fields confirmed, including HCAD_NUM (parcel ID), acct_num, owner_name_1/2/3 (up to three ownership slots with own_pct_1/2/3 percentage shares), site_str_num, site_str_name, site_city, site_zip, mail_addr_1/2/3, mail_city, mail_state, mail_zip, land_use, land_value, bld_value, total_appraised_val, new_owner_date, and yr_impr. Owner name is public under the Texas Public Information Act; Texas Tax Code §25.025 allows certain categories of persons (peace officers, judges, domestic violence victims, and others) to request suppression of their home address from appraisal district records. Owner-name LIKE query confirmed live. Max record count = 1000 per query. The HCAD open-data hub at geo-harriscounty.opendata.arcgis.com provides bulk downloads. A sibling service on the same server covers HCAD_MUD (Municipal Utility District) boundaries."
49
49
  },
50
50
  {
51
51
  "id": "tx-travis",
@@ -58,26 +58,22 @@
58
58
  "hasPublicRest": true,
59
59
  "endpoints": [
60
60
  {
61
- "url": "https://gis.traviscountytx.gov/server1/rest/services/Boundaries_and_Jurisdictions/TCAD_public/MapServer/0",
62
- "serviceType": "MapServer",
61
+ "url": "https://services.arcgis.com/0L95CJ0VTaxqcmED/arcgis/rest/services/EXTERNAL_tcad_parcel/FeatureServer/0",
62
+ "serviceType": "FeatureServer",
63
63
  "layerIndex": 0,
64
64
  "layerName": "TCAD Parcels",
65
65
  "supportsQuery": true,
66
66
  "corsEnabled": null,
67
67
  "searchFields": [
68
68
  { "name": "PROP_ID", "label": "Property ID", "searchable": true },
69
- { "name": "geo_id", "label": "Geo ID", "searchable": true },
70
- { "name": "situs_address", "label": "Situs Address (combined)", "searchable": true },
71
- { "name": "situs_num", "label": "Situs Street Number", "searchable": true },
72
- { "name": "situs_street", "label": "Situs Street Name", "searchable": true },
73
- { "name": "situs_city", "label": "Situs City", "searchable": true },
74
- { "name": "situs_zip", "label": "Situs ZIP", "searchable": true }
69
+ { "name": "PID_10", "label": "Parcel ID (10-char)", "searchable": true },
70
+ { "name": "SITUS", "label": "Situs Address", "searchable": true }
75
71
  ],
76
- "sampleQuery": "https://gis.traviscountytx.gov/server1/rest/services/Boundaries_and_Jurisdictions/TCAD_public/MapServer/0/query?where=situs_address+LIKE+'%25CONGRESS%25'&outFields=PROP_ID,geo_id,situs_address,situs_city&returnGeometry=false&f=json&resultRecordCount=10",
72
+ "sampleQuery": "https://services.arcgis.com/0L95CJ0VTaxqcmED/arcgis/rest/services/EXTERNAL_tcad_parcel/FeatureServer/0/query?where=SITUS+LIKE+'%25CONGRESS%25'&outFields=PROP_ID,PID_10,SITUS&returnGeometry=false&f=json&resultRecordCount=10",
77
73
  "license": "public",
78
74
  "licenseUrl": "https://tnr-traviscountytx.opendata.arcgis.com/",
79
75
  "status": "live",
80
- "lastVerified": "2026-05-11",
76
+ "lastVerified": "2026-06-20",
81
77
  "verifiedBy": "manual"
82
78
  }
83
79
  ],
@@ -86,7 +82,13 @@
86
82
  "url": "https://tnr-traviscountytx.opendata.arcgis.com/",
87
83
  "email": null
88
84
  },
89
- "notes": "Travis County, Texas (Austin metro, pop. 1.3M, county seat Austin) is home to the state capital and the University of Texas at Austin. The REST layer is sourced from Travis Central Appraisal District (TCAD) and published by Travis County Transportation and Natural Resources (TNR) GIS. 20 fields confirmed: geometry, PROP_ID, geo_id, situs_address (combined), situs_num, situs_street, situs_city, situs_zip, and a handful of district fields — owner name is NOT included. Travis County publishes the parcel geometry and identifiers as a public planning layer while keeping ownership data behind TCAD's property search portal at tcad.org. For owner-name lookups, search tcad.org by address or property ID. Texas Tax Code §25.025 permits certain persons (peace officers, judges, domestic violence victims, and similar categories) to request that their home address be withheld from appraisal records; such records may appear with address fields redacted at TCAD's portal. A second endpoint at taxmaps.traviscountytx.gov/arcgis/rest/services/Parcels/MapServer did not respond in testing. Open-data hub: tnr-traviscountytx.opendata.arcgis.com."
85
+ "notes": "Travis County, Texas (Austin metro, pop. 1.3M, county seat Austin) is home to the state capital and the University of Texas at Austin. The REST layer (\"TCAD Parcels\", an ArcGIS Online hosted FeatureServer, ~386,682 parcels) is sourced from Travis Central Appraisal District (TCAD) and published through Travis County Transportation and Natural Resources (TNR) GIS. Searchable fields: PROP_ID (property ID), PID_10 (10-character parcel key), and SITUS (combined situs address). Owner name is NOT included. Travis County publishes the parcel geometry and identifiers as a public layer while keeping ownership data behind TCAD's property search portal at traviscad.org. For owner-name lookups, search traviscad.org by address or property ID. Texas Tax Code §25.025 permits certain persons (peace officers, judges, domestic violence victims, and similar categories) to request that their home address be withheld from appraisal records; such records may appear with address fields redacted at TCAD's portal. The county's former on-premise endpoint at gis.traviscountytx.gov/server1 went offline in 2026 (the ArcGIS host returned an HTTP 500 .NET host error); this hosted FeatureServer is the current public source. Open-data hub: tnr-traviscountytx.opendata.arcgis.com.",
86
+ "ownerFieldNote": {
87
+ "body": "Owner name isn't in Travis County / TCAD's public REST layer. It exposes Property ID (PROP_ID), the 10-character parcel key, and situs address only. Search by property ID or address below, or look up the owner of record at the Travis Central Appraisal District.",
88
+ "source": { "label": "Owner search at traviscad.org", "url": "https://traviscad.org/propertysearch/" }
89
+ },
90
+ "relatedZoningCitySlug": "austin",
91
+ "relatedPropertyCitySlug": "austin"
90
92
  },
91
93
  {
92
94
  "id": "tx-tarrant",
@@ -127,7 +129,7 @@
127
129
  "url": "https://gis-tad.opendata.arcgis.com/",
128
130
  "email": null
129
131
  },
130
- "notes": "Tarrant County, Texas (Fort Worth / Arlington metro, pop. 2.1M, county seat Fort Worth) is the fourth-most populous Texas county. The data authority is TAD — Tarrant Appraisal District. 56 fields confirmed including TAXPIN, ACCOUNT, OWNER_NAME, SITUS_ADDR, OWNER_ADDR, OWNER_CITY, ZIPCODE, DEED_DATE, DEED_BOOK, DEED_PAGE, YEAR_BUILT, LIVING_ARE, BEDROOMS, BATHROOMS, SW_POOL, LAND_ACRES, APPRAISEDV, LAND_VALUE, IMPR_VALUE, and TOTAL_VALU. Owner-name query via UPPER() LIKE on OWNER_NAME returns real results. Texas Tax Code §25.025 (address-confidentiality program) permits certain protected persons — peace officers, judges, domestic violence victims, and similar categories — to request that their address be withheld from public appraisal records; records subject to §25.025 may not appear in REST query results or may appear with address fields suppressed. A sibling TADParcelsApp/MapServer/0 exists on the same server but carries only TAXPIN geometry — it is the display layer for TAD's parcel viewer and has no attribute data. TAD open-data hub: gis-tad.opendata.arcgis.com. Tarrant County open data: data-tarrantcounty.opendata.arcgis.com."
132
+ "notes": "Tarrant County, Texas (Fort Worth / Arlington metro, pop. 2.1M, county seat Fort Worth) is the fourth-most populous Texas county. The data authority is TAD, Tarrant Appraisal District. 56 fields confirmed including TAXPIN, ACCOUNT, OWNER_NAME, SITUS_ADDR, OWNER_ADDR, OWNER_CITY, ZIPCODE, DEED_DATE, DEED_BOOK, DEED_PAGE, YEAR_BUILT, LIVING_ARE, BEDROOMS, BATHROOMS, SW_POOL, LAND_ACRES, APPRAISEDV, LAND_VALUE, IMPR_VALUE, and TOTAL_VALU. Owner-name query via UPPER() LIKE on OWNER_NAME returns real results. Texas Tax Code §25.025 (address-confidentiality program) permits certain protected persons, peace officers, judges, domestic violence victims, and similar categories, to request that their address be withheld from public appraisal records; records subject to §25.025 may not appear in REST query results or may appear with address fields suppressed. A sibling TADParcelsApp/MapServer/0 exists on the same server but carries only TAXPIN geometry. It is the display layer for TAD's parcel viewer and has no attribute data. TAD open-data hub: gis-tad.opendata.arcgis.com. Tarrant County open data: data-tarrantcounty.opendata.arcgis.com."
131
133
  }
132
134
  ,
133
135
  {
@@ -176,7 +178,12 @@
176
178
  "url": "https://www.dallascad.org/",
177
179
  "email": null
178
180
  },
179
- "notes": "41 fields confirmed including ACCT (17-digit DCAD account number), TAXPANAME1/2 (taxpayer names), TAXPAADD1-4, TAXPACITY, TAXPASTA, TAXPAZIP, ST_NUM, ST_NAME, ST_TYPE, ST_DIR, CITY, COUNTY, SCHOOL, SPTBCODE (special purpose district), PROP_CL, BLDG_CL, LEGAL_1-5, MAPSCO_GR, TOTEXEMPT, BUSNAME, PROPNAM, ResCom, APPRAISALYEAR. Owner search uses TAXPANAME1 (the taxpayer of record). APPRAISALYEAR in live records reads 2019 — this is the snapshot vintage of the City of Dallas GIS's DallasTaxParcels layer, which sources from DCAD annual export. The authoritative real-time DCAD parcel lookup is at dcad.org; the gis.dallascounty.org REST server does NOT expose a public parcel service (only SampleWorldCities and CommissionerDistricts). This layer covers all of Dallas County, not just the City of Dallas city limits — CITY field contains the incorporated municipality (Dallas, Rowlett, Garland, Irving, etc.). The COUNTY field confirms 'DALLAS COUNTY' for all records. Texas Tax Code §25.025 (address-confidentiality program for protected persons — peace officers, judges, victims of family violence, etc.) may suppress some owner names in a future data refresh; query TAXPANAME2 as fallback. maxRecordCount=1000."
181
+ "notes": "41 fields confirmed including ACCT (17-digit DCAD account number), TAXPANAME1/2 (taxpayer names), TAXPAADD1-4, TAXPACITY, TAXPASTA, TAXPAZIP, ST_NUM, ST_NAME, ST_TYPE, ST_DIR, CITY, COUNTY, SCHOOL, SPTBCODE (special purpose district), PROP_CL, BLDG_CL, LEGAL_1-5, MAPSCO_GR, TOTEXEMPT, BUSNAME, PROPNAM, ResCom, APPRAISALYEAR. Owner search uses TAXPANAME1 (the taxpayer of record). APPRAISALYEAR in live records reads 2019. This is the snapshot vintage of the City of Dallas GIS's DallasTaxParcels layer, which sources from DCAD annual export. The authoritative real-time DCAD parcel lookup is at dcad.org; the gis.dallascounty.org REST server does NOT expose a public parcel service (only SampleWorldCities and CommissionerDistricts). This layer covers all of Dallas County, not just the City of Dallas city limits. CITY field contains the incorporated municipality (Dallas, Rowlett, Garland, Irving, etc.). The COUNTY field confirms 'DALLAS COUNTY' for all records. Texas Tax Code §25.025 (address-confidentiality program for protected persons, peace officers, judges, victims of family violence, etc.) may suppress some owner names in a future data refresh; query TAXPANAME2 as fallback. maxRecordCount=1000.",
182
+ "dataVintage": {
183
+ "body": "This layer is a DCAD annual-export snapshot, its APPRAISALYEAR field reads 2019. Account numbers, owner names, and addresses still locate a parcel, but for the current owner of record and 2025 appraised value, use DCAD's live records. It covers every incorporated city in Dallas County via the CITY field (Dallas, Garland, Irving, Rowlett, and the rest), not just the City of Dallas.",
184
+ "source": { "label": "Current records at dallascad.org", "url": "https://www.dallascad.org/" }
185
+ },
186
+ "relatedPropertyCitySlug": "dallas"
180
187
  },
181
188
  {
182
189
  "id": "tx-bexar",
@@ -221,11 +228,11 @@
221
228
  }
222
229
  ],
223
230
  "contact": {
224
- "department": "Bexar County Information Technology — GIS Division / Bexar County Appraisal District (BCAD)",
231
+ "department": "Bexar County Information Technology, GIS Division / Bexar County Appraisal District (BCAD)",
225
232
  "url": "https://www.bexar.org/2720/GIS-Data",
226
233
  "email": null
227
234
  },
228
- "notes": "39 fields confirmed including PropID (numeric parcel ID), AcctNumb (BCAD formatted account number, e.g. '04126-236-0090'), Owner, Situs (situs address), AddrLn1/2/3, AddrCity, AddrSt, Country, Zip, Zip4, DBA, LglDesc, LandVal, ImprVal, TotVal, Nbhd (neighborhood code), GBA, TOT_GBA, YrBlt, Stories, NumRooms, Houses, Detached, State_cd, LglAcres, Acres, TaxUnits, Exempts, IS_UDI, UDIPARNT, Roll, SWP, PropUse. Owner LIKE search (including UPPER()) returns real results. The service description notes the data was sourced from BCAD FTP as of October 2022 and was last updated October 2021 — this is a periodic export, not a live feed. The current version is ArcGIS Server 11.3. The supportsQuery field shows null in layer-level metadata (common with this ArcGIS version); the service capabilities string 'Map,Query,Data' confirms query support. maps.bexar.org is the authoritative Bexar County GIS host; gis.bexar.org NXDOMAINs. BCAD's own server (bcad.org) does not expose a public REST parcel endpoint. maxRecordCount=1000. Texas Tax Code §25.025 (address-confidentiality program for protected persons) may suppress certain owner names."
235
+ "notes": "39 fields confirmed including PropID (numeric parcel ID), AcctNumb (BCAD formatted account number, e.g. '04126-236-0090'), Owner, Situs (situs address), AddrLn1/2/3, AddrCity, AddrSt, Country, Zip, Zip4, DBA, LglDesc, LandVal, ImprVal, TotVal, Nbhd (neighborhood code), GBA, TOT_GBA, YrBlt, Stories, NumRooms, Houses, Detached, State_cd, LglAcres, Acres, TaxUnits, Exempts, IS_UDI, UDIPARNT, Roll, SWP, PropUse. Owner LIKE search (including UPPER()) returns real results. The service description notes the data was sourced from BCAD FTP as of October 2022 and was last updated October 2021. This is a periodic export, not a live feed. The current version is ArcGIS Server 11.3. The supportsQuery field shows null in layer-level metadata (common with this ArcGIS version); the service capabilities string 'Map,Query,Data' confirms query support. maps.bexar.org is the authoritative Bexar County GIS host; gis.bexar.org NXDOMAINs. BCAD's own server (bcad.org) does not expose a public REST parcel endpoint. maxRecordCount=1000. Texas Tax Code §25.025 (address-confidentiality program for protected persons) may suppress certain owner names."
229
236
  },
230
237
  {
231
238
  "id": "tx-collin",
@@ -263,7 +270,7 @@
263
270
  "url": "https://www.collincad.org/",
264
271
  "email": null
265
272
  },
266
- "notes": "Collin County, Texas (Plano / Frisco / McKinney, pop. ~1.1M — among the fastest-growing US counties) publishes Collin Central Appraisal District (CCAD) parcels through a City of Allen ArcGIS MapServer. Owner search uses the joined field GIS_DBO_AD_Entity_file_as_name; the situs (site) address is GIS_DBO_AD_Entity_situs_display; the parcel key is GIS_DBO_Parcel_PROP_ID. The GIS_DBO_ table-join prefixes must be used verbatim in WHERE clauses. Owner LIKE query confirmed live 2026-05-30. Texas Tax Code §25.025 lets protected persons (peace officers, judges, family-violence victims) suppress owner/address records."
273
+ "notes": "Collin County, Texas (Plano / Frisco / McKinney, pop. ~1.1M, among the fastest-growing US counties) publishes Collin Central Appraisal District (CCAD) parcels through a City of Allen ArcGIS MapServer. Owner search uses the joined field GIS_DBO_AD_Entity_file_as_name; the situs (site) address is GIS_DBO_AD_Entity_situs_display; the parcel key is GIS_DBO_Parcel_PROP_ID. The GIS_DBO_ table-join prefixes must be used verbatim in WHERE clauses. Owner LIKE query confirmed live 2026-05-30. Texas Tax Code §25.025 lets protected persons (peace officers, judges, family-violence victims) suppress owner/address records."
267
274
  },
268
275
  {
269
276
  "id": "tx-denton",
@@ -301,7 +308,7 @@
301
308
  "url": "https://gis.dentoncounty.gov/",
302
309
  "email": null
303
310
  },
304
- "notes": "Denton County, Texas (north Dallas–Fort Worth metroplex — Frisco, Flower Mound, Lewisville, pop. ~900K) serves parcels via a Denton County GIS MapServer. Owner search uses OWNER_NAME; the combined site address is SITUS; CITY holds the municipality; the appraisal-district identifier is prop_id. Owner LIKE query confirmed live 2026-05-30. Texas Tax Code §25.025 confidentiality provisions apply to protected persons."
311
+ "notes": "Denton County, Texas (north Dallas–Fort Worth metroplex, Frisco, Flower Mound, Lewisville, pop. ~900K) serves parcels via a Denton County GIS MapServer. Owner search uses OWNER_NAME; the combined site address is SITUS; CITY holds the municipality; the appraisal-district identifier is prop_id. Owner LIKE query confirmed live 2026-05-30. Texas Tax Code §25.025 confidentiality provisions apply to protected persons."
305
312
  },
306
313
  {
307
314
  "id": "tx-el-paso",
@@ -351,25 +358,25 @@
351
358
  "hasPublicRest": true,
352
359
  "endpoints": [
353
360
  {
354
- "url": "https://gisweb.fortbendcountytx.gov/arcgis/rest/services/General/Parcels/MapServer/0",
355
- "serviceType": "MapServer",
356
- "layerIndex": 0,
361
+ "url": "https://gisportal.fortbendcountytx.gov/arcgis/rest/services/InteractiveMap/Parcels_Public/FeatureServer/1",
362
+ "serviceType": "FeatureServer",
363
+ "layerIndex": 1,
357
364
  "layerName": "Parcels",
358
365
  "supportsQuery": true,
359
366
  "corsEnabled": null,
360
367
  "searchFields": [
361
- { "name": "CAD_Reference_Number", "label": "CAD Reference Number (R-number)", "searchable": true },
368
+ { "name": "CADReferenceNumber", "label": "CAD Reference Number (R-number)", "searchable": true },
362
369
  { "name": "PropertyNumber", "label": "Property Number", "searchable": true },
363
370
  { "name": "OwnerName", "label": "Owner Name", "searchable": true },
364
371
  { "name": "Situs", "label": "Situs Address", "searchable": true },
365
372
  { "name": "OwnerAddress1", "label": "Owner Mailing Address", "searchable": false },
366
373
  { "name": "OwnerCity", "label": "Owner City", "searchable": false }
367
374
  ],
368
- "sampleQuery": "https://gisweb.fortbendcountytx.gov/arcgis/rest/services/General/Parcels/MapServer/0/query?where=UPPER(OwnerName)%20LIKE%20UPPER('%25SMITH%25')&outFields=CAD_Reference_Number,OwnerName,Situs&returnGeometry=false&f=json&resultRecordCount=10",
375
+ "sampleQuery": "https://gisportal.fortbendcountytx.gov/arcgis/rest/services/InteractiveMap/Parcels_Public/FeatureServer/1/query?where=UPPER(OwnerName)%20LIKE%20UPPER('%25SMITH%25')&outFields=CADReferenceNumber,OwnerName,Situs&returnGeometry=false&f=json&resultRecordCount=10",
369
376
  "license": "public",
370
377
  "licenseUrl": "https://fbcad-open-data-hub-fortbend.hub.arcgis.com/",
371
378
  "status": "live",
372
- "lastVerified": "2026-05-30",
379
+ "lastVerified": "2026-06-06",
373
380
  "verifiedBy": "manual"
374
381
  }
375
382
  ],
@@ -378,7 +385,7 @@
378
385
  "url": "https://www.fbcad.org/",
379
386
  "email": null
380
387
  },
381
- "notes": "Fort Bend County, Texas (Katy / Sugar Land / Missouri City, southwest Houston metro, pop. ~880K) serves parcels from a Fort Bend County GIS MapServer sourced from Fort Bend Central Appraisal District (FBCAD). Owner name is OwnerName (the layer display field); owner mailing is OwnerAddress1/2/3 with OwnerCity/OwnerState/OwnerZip; the site address is Situs; identifiers are CAD_Reference_Number (R-number, e.g. R328356) and PropertyNumber. Owner search uses UPPER(OwnerName) LIKE. Verified live 2026-05-30 (OwnerName = Shimmel John). Under Texas Tax Code §25.025, protected persons (peace officers, judges, family-violence victims) may have their owner/address records withheld."
388
+ "notes": "Fort Bend County, Texas (Katy / Sugar Land / Missouri City, southwest Houston metro, pop. ~880K) serves parcels from a Fort Bend County GIS MapServer sourced from Fort Bend Central Appraisal District (FBCAD). Owner name is OwnerName (the layer display field); owner mailing is OwnerAddress1/2/3 with OwnerCity/OwnerState/OwnerZip; the site address is Situs; identifiers are CAD_Reference_Number (R-number, e.g. R328356) and PropertyNumber. Owner search uses UPPER(OwnerName) LIKE. Verified live 2026-05-30 (OwnerName = Shimmel John). Under Texas Tax Code §25.025, protected persons (peace officers, judges, family-violence victims) may have their owner/address records withheld. MIGRATED 2026-06-06: gisweb.fortbendcountytx.gov was decommissioned (Cloudflare 522) -- the public service moved to gisportal.fortbendcountytx.gov InteractiveMap/Parcels_Public/FeatureServer/1 (ArcGIS 11.3, 359,954 parcels; OwnerName search re-verified live). Field names dropped underscores (CAD_Reference_Number is now CADReferenceNumber)."
382
389
  },
383
390
  {
384
391
  "id": "tx-williamson",