@urbankitstudio/atlas 0.5.0 → 0.5.2

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 (56) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +110 -110
  3. package/data/alabama.json +103 -103
  4. package/data/alaska.json +51 -51
  5. package/data/arizona.json +149 -148
  6. package/data/arkansas.json +143 -143
  7. package/data/california.json +435 -435
  8. package/data/colorado.json +150 -150
  9. package/data/connecticut.json +164 -164
  10. package/data/delaware.json +46 -46
  11. package/data/florida.json +455 -455
  12. package/data/georgia.json +176 -175
  13. package/data/hawaii.json +82 -82
  14. package/data/idaho.json +54 -54
  15. package/data/illinois.json +337 -333
  16. package/data/index.json +411 -411
  17. package/data/indiana.json +132 -132
  18. package/data/iowa.json +51 -51
  19. package/data/kansas.json +49 -49
  20. package/data/kentucky.json +52 -52
  21. package/data/louisiana.json +102 -102
  22. package/data/maine.json +138 -138
  23. package/data/maryland.json +94 -94
  24. package/data/massachusetts.json +78 -78
  25. package/data/michigan.json +92 -92
  26. package/data/minnesota.json +94 -94
  27. package/data/mississippi.json +98 -98
  28. package/data/missouri.json +99 -99
  29. package/data/montana.json +196 -196
  30. package/data/nebraska.json +137 -137
  31. package/data/nevada.json +98 -98
  32. package/data/new-hampshire.json +42 -42
  33. package/data/new-jersey.json +493 -493
  34. package/data/new-mexico.json +49 -49
  35. package/data/new-york.json +318 -318
  36. package/data/north-carolina.json +303 -303
  37. package/data/north-dakota.json +57 -57
  38. package/data/ohio.json +304 -304
  39. package/data/oklahoma.json +49 -49
  40. package/data/oregon.json +144 -144
  41. package/data/pennsylvania.json +86 -86
  42. package/data/rhode-island.json +25 -25
  43. package/data/south-carolina.json +101 -101
  44. package/data/south-dakota.json +58 -58
  45. package/data/tennessee.json +154 -154
  46. package/data/texas.json +430 -430
  47. package/data/utah.json +193 -193
  48. package/data/vermont.json +59 -59
  49. package/data/virginia.json +88 -88
  50. package/data/washington.json +183 -183
  51. package/data/west-virginia.json +172 -176
  52. package/data/wisconsin.json +374 -374
  53. package/data/wyoming.json +58 -58
  54. package/dist/index.cjs +46 -44
  55. package/dist/index.js +46 -44
  56. package/package.json +68 -68
package/data/wyoming.json CHANGED
@@ -1,58 +1,58 @@
1
- {
2
- "stateSlug": "wyoming",
3
- "stateName": "Wyoming",
4
- "stateAbbrev": "WY",
5
- "lastUpdated": "2026-06-20",
6
- "counties": [
7
- {
8
- "id": "wy-laramie",
9
- "state": "WY",
10
- "stateName": "Wyoming",
11
- "stateSlug": "wyoming",
12
- "county": "Laramie",
13
- "countySlug": "laramie-county",
14
- "countyFips": "56021",
15
- "hasPublicRest": true,
16
- "endpoints": [
17
- {
18
- "url": "https://maps.laramiecounty.com/arcgis/rest/services/Planning/SmartGovParcels/MapServer/1",
19
- "serviceType": "MapServer",
20
- "layerIndex": 1,
21
- "layerName": "SmartGovParcels",
22
- "supportsQuery": true,
23
- "corsEnabled": null,
24
- "searchFields": [
25
- { "name": "statepidn", "label": "State Parcel ID Number", "searchable": true },
26
- { "name": "accountno", "label": "Account Number", "searchable": true },
27
- { "name": "owner_name1", "label": "Owner Name 1", "searchable": true },
28
- { "name": "owner_name2", "label": "Owner Name 2", "searchable": false },
29
- { "name": "owner_address", "label": "Owner Address", "searchable": false },
30
- { "name": "owner_town", "label": "Owner Town", "searchable": false },
31
- { "name": "owner_state", "label": "Owner State", "searchable": false },
32
- { "name": "owner_zip", "label": "Owner ZIP", "searchable": false },
33
- { "name": "site_address1", "label": "Site Address", "searchable": true },
34
- { "name": "site_address2", "label": "Site Address 2", "searchable": false },
35
- { "name": "site_town", "label": "Site Town", "searchable": false },
36
- { "name": "site_state", "label": "Site State", "searchable": false },
37
- { "name": "site_zip", "label": "Site ZIP", "searchable": false },
38
- { "name": "trsec", "label": "Township/Range/Section", "searchable": false },
39
- { "name": "fema_zone", "label": "FEMA Flood Zone", "searchable": false },
40
- { "name": "latitude", "label": "Latitude", "searchable": false }
41
- ],
42
- "sampleQuery": "https://maps.laramiecounty.com/arcgis/rest/services/Planning/SmartGovParcels/MapServer/1/query?where=UPPER(owner_name1)+LIKE+UPPER('%25SMITH%25')&outFields=statepidn,owner_name1,owner_name2,owner_address,owner_town,site_address1,site_town&returnGeometry=false&f=json&resultRecordCount=10",
43
- "license": "public",
44
- "licenseUrl": "https://maps.laramiecounty.com/",
45
- "status": "live",
46
- "lastVerified": "2026-06-20",
47
- "verifiedBy": "automated"
48
- }
49
- ],
50
- "contact": {
51
- "department": "Laramie County GIS / Laramie County Planning and Development",
52
- "url": "https://www.laramiecounty.com/171/GIS",
53
- "email": null
54
- },
55
- "notes": "Laramie County WY (Cheyenne; county seat Cheyenne; state capital; FIPS 56021; most populous county in WY, pop. 100,000) provides parcel data via maps.laramiecounty.com. The Planning/SmartGovParcels/MapServer layer at layerIndex=1 (NOT layer 0) exposes 20 fields: objectid, statepidn (14-digit state parcel ID, e.g., '12600210000200'), accountno, fema_zone, trsec, site_address1/2, site_town, site_state, site_zip, owner_name1, owner_name2, owner_address, owner_town, owner_state, owner_zip, latitude, and shape fields. CRITICAL: use layerIndex=1 (the /1 suffix). Layer 0 is a different geometry layer. Owner search via UPPER(owner_name1) LIKE works well. Verified 2026-06-20: SMITH query returns Cheyenne-area addresses (e.g., owner_name1 'BAKER, KATHARINE M LIVING TR' at '261 ROAD 164' Pine Bluffs). Laramie County WY (FIPS 56021) must not be confused with the City of Laramie (Albany County WY). The county seat is Cheyenne, not Laramie city."
56
- }
57
- ]
58
- }
1
+ {
2
+ "stateSlug": "wyoming",
3
+ "stateName": "Wyoming",
4
+ "stateAbbrev": "WY",
5
+ "lastUpdated": "2026-06-20",
6
+ "counties": [
7
+ {
8
+ "id": "wy-laramie",
9
+ "state": "WY",
10
+ "stateName": "Wyoming",
11
+ "stateSlug": "wyoming",
12
+ "county": "Laramie",
13
+ "countySlug": "laramie-county",
14
+ "countyFips": "56021",
15
+ "hasPublicRest": true,
16
+ "endpoints": [
17
+ {
18
+ "url": "https://maps.laramiecounty.com/arcgis/rest/services/Planning/SmartGovParcels/MapServer/1",
19
+ "serviceType": "MapServer",
20
+ "layerIndex": 1,
21
+ "layerName": "SmartGovParcels",
22
+ "supportsQuery": true,
23
+ "corsEnabled": null,
24
+ "searchFields": [
25
+ { "name": "statepidn", "label": "State Parcel ID Number", "searchable": true },
26
+ { "name": "accountno", "label": "Account Number", "searchable": true },
27
+ { "name": "owner_name1", "label": "Owner Name 1", "searchable": true },
28
+ { "name": "owner_name2", "label": "Owner Name 2", "searchable": false },
29
+ { "name": "owner_address", "label": "Owner Address", "searchable": false },
30
+ { "name": "owner_town", "label": "Owner Town", "searchable": false },
31
+ { "name": "owner_state", "label": "Owner State", "searchable": false },
32
+ { "name": "owner_zip", "label": "Owner ZIP", "searchable": false },
33
+ { "name": "site_address1", "label": "Site Address", "searchable": true },
34
+ { "name": "site_address2", "label": "Site Address 2", "searchable": false },
35
+ { "name": "site_town", "label": "Site Town", "searchable": false },
36
+ { "name": "site_state", "label": "Site State", "searchable": false },
37
+ { "name": "site_zip", "label": "Site ZIP", "searchable": false },
38
+ { "name": "trsec", "label": "Township/Range/Section", "searchable": false },
39
+ { "name": "fema_zone", "label": "FEMA Flood Zone", "searchable": false },
40
+ { "name": "latitude", "label": "Latitude", "searchable": false }
41
+ ],
42
+ "sampleQuery": "https://maps.laramiecounty.com/arcgis/rest/services/Planning/SmartGovParcels/MapServer/1/query?where=UPPER(owner_name1)+LIKE+UPPER('%25SMITH%25')&outFields=statepidn,owner_name1,owner_name2,owner_address,owner_town,site_address1,site_town&returnGeometry=false&f=json&resultRecordCount=10",
43
+ "license": "public",
44
+ "licenseUrl": "https://maps.laramiecounty.com/",
45
+ "status": "live",
46
+ "lastVerified": "2026-06-20",
47
+ "verifiedBy": "automated"
48
+ }
49
+ ],
50
+ "contact": {
51
+ "department": "Laramie County GIS / Laramie County Planning and Development",
52
+ "url": "https://www.laramiecounty.com/171/GIS",
53
+ "email": null
54
+ },
55
+ "notes": "Laramie County WY (Cheyenne; county seat Cheyenne; state capital; FIPS 56021; most populous county in WY, pop. 100,000) provides parcel data via maps.laramiecounty.com. The Planning/SmartGovParcels/MapServer layer at layerIndex=1 (NOT layer 0) exposes 20 fields: objectid, statepidn (14-digit state parcel ID, e.g., '12600210000200'), accountno, fema_zone, trsec, site_address1/2, site_town, site_state, site_zip, owner_name1, owner_name2, owner_address, owner_town, owner_state, owner_zip, latitude, and shape fields. CRITICAL: use layerIndex=1 (the /1 suffix). Layer 0 is a different geometry layer. Owner search via UPPER(owner_name1) LIKE works well. Verified 2026-06-20: SMITH query returns Cheyenne-area addresses (e.g., owner_name1 'BAKER, KATHARINE M LIVING TR' at '261 ROAD 164' Pine Bluffs). Laramie County WY (FIPS 56021) must not be confused with the City of Laramie (Albany County WY). The county seat is Cheyenne, not Laramie city."
56
+ }
57
+ ]
58
+ }
package/dist/index.cjs CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  // data/index.json
4
4
  var data_default = {
5
- version: "0.5.0",
6
- lastUpdated: "2026-06-20",
5
+ version: "0.3.0",
6
+ lastUpdated: "2026-08-04",
7
7
  totals: {
8
8
  states: 50,
9
9
  counties: 155,
@@ -585,6 +585,7 @@ var arizona_default = {
585
585
  stateSlug: "arizona",
586
586
  county: "Maricopa",
587
587
  countySlug: "maricopa-county",
588
+ relatedPropertyCitySlug: "phoenix",
588
589
  countyFips: "04013",
589
590
  hasPublicRest: true,
590
591
  endpoints: [
@@ -2139,6 +2140,7 @@ var georgia_default = {
2139
2140
  stateSlug: "georgia",
2140
2141
  county: "Fulton",
2141
2142
  countySlug: "fulton-county",
2143
+ relatedPropertyCitySlug: "atlanta",
2142
2144
  countyFips: "13121",
2143
2145
  hasPublicRest: true,
2144
2146
  endpoints: [
@@ -2637,7 +2639,11 @@ var illinois_default = {
2637
2639
  url: "https://willcounty.gov/County-Offices/Administration/GIS-Division",
2638
2640
  email: "gis@willcounty.gov"
2639
2641
  },
2640
- notes: "NOTE 2026-06-27: Parcels_21/MapServer became a zombie service (service listed but layers:[]. All layer queries return HTTP 500 'json' error). Parcels_20/MapServer/0 is the active fallback (prior-year snapshot, 276,644 parcels confirmed live). No Parcels_22 or newer service exists on the server as of 2026-06-27. URL updated from Parcels_21 to Parcels_20. Owner-name and address fields are NOT exposed in this public endpoint, only PIN and subtype metadata (Base Parcel, Condo, Leasehold, Mineral Rights, etc.). Owner/address data exists in the county's Geocortex viewer at gisapp.willcountyillinois.com but is not queryable via REST without a token. The ParcelFabric folder on the same server is token-gated. FIPS 17197 (Joliet / Chicago south suburbs). Contact GIS Division at gis@willcounty.gov for endpoint status updates."
2642
+ notes: "NOTE 2026-06-27: Parcels_21/MapServer became a zombie service (service listed but layers:[]. All layer queries return HTTP 500 'json' error). Parcels_20/MapServer/0 is the active fallback (prior-year snapshot, 276,644 parcels confirmed live). No Parcels_22 or newer service exists on the server as of 2026-06-27. URL updated from Parcels_21 to Parcels_20. Owner-name and address fields are NOT exposed in this public endpoint, only PIN and subtype metadata (Base Parcel, Condo, Leasehold, Mineral Rights, etc.). Owner/address data exists in the county's Geocortex viewer at gisapp.willcountyillinois.com but is not queryable via REST without a token. The ParcelFabric folder on the same server is token-gated. FIPS 17197 (Joliet / Chicago south suburbs). Contact GIS Division at gis@willcounty.gov for endpoint status updates.",
2643
+ ownerFieldNote: {
2644
+ body: "Will County's public parcel REST layer exposes only the Parcel Identification Number (PIN), no owner-name or address field. Search by PIN below, or look up the owner of record at the Will County Supervisor of Assessments.",
2645
+ source: { label: "Property search at willcountysoa.com", url: "https://www.willcountysoa.com/PropertySearchPortal" }
2646
+ }
2641
2647
  },
2642
2648
  {
2643
2649
  id: "il-mchenry",
@@ -3074,7 +3080,7 @@ var louisiana_default = {
3074
3080
  stateSlug: "louisiana",
3075
3081
  stateName: "Louisiana",
3076
3082
  stateAbbrev: "LA",
3077
- lastUpdated: "2026-05-15",
3083
+ lastUpdated: "2026-08-04",
3078
3084
  counties: [
3079
3085
  {
3080
3086
  id: "la-east-baton-rouge-parish",
@@ -3168,7 +3174,7 @@ var louisiana_default = {
3168
3174
  url: "https://gis.nola.gov/",
3169
3175
  email: null
3170
3176
  },
3171
- notes: "Orleans Parish (New Orleans, pop. 383,000) Property Information layer at index 15 of the apps/property3 composite MapServer. Note: the 'LandBase/Parcels' MapServer at gis.nola.gov only exposes GEOPIN (parcel geometry key, no attributes). For owner + address data, use apps/property3/MapServer/15 which is an assessor join. 20 fields confirmed: OBJECTID, BUILDING, UNIT, SITEADDRESS, OWNERNME1/2, PSTLADDRESS/CITY/STATE/ZIP5/ZIP4, USECD, PRPRTYDSCRP, PARCELID, TAXBILLID, LOT, SQUARE, BLOCK, PARID. New Orleans uses a Square/Lot system (not typical street address) for legal parcel identification. NOTE 2026-06-27: the liveness check 'fetch failed' was transient (metadata at /MapServer/15?f=json now returns 200). However, this ArcGIS Server 10.4 instance has two persistent query limitations: (1) LIKE/UPPER() queries return HTTP 400; (2) count-all queries (where=1=1&returnCountOnly=true) timeout >35s. PARCELID equality queries (where=PARCELID='...') return valid JSON structure. OWNERNME1 and SITEADDRESS marked searchable:false accordingly; sampleQuery changed to IS NOT NULL filter. For PARCELID-based lookups use the PARCELID or PARID fields. The countySlug 'orleans-parish' matches countySlugFromName('Orleans Parish') per atlas slugify rules."
3177
+ notes: "Orleans Parish's public parcel layer still serves metadata, but its attribute-query operation is currently failing on the county's ArcGIS server. Owner and address searches are unavailable while the county repairs the service; automatic probes continue to check for recovery. New Orleans uses Square/Lot identifiers for legal parcels. The city also publishes a weekly situs-and-geometry dataset on data.nola.gov, but it does not include owner names. An older 2018 parcel snapshot was not substituted because its ownership data is dated and the service was unstable during verification. LIVENESS 2026-08-04: the layer's metadata still loads, but EVERY query against it times out, including a bare returnCountOnly count. 161 consecutive failed checks and last_ok_at has never been set. This is a county-side outage, not a schema drift; there is nothing to fix on our side and the endpoint stays honestly degraded until New Orleans repairs it."
3172
3178
  }
3173
3179
  ]
3174
3180
  };
@@ -3885,7 +3891,7 @@ var montana_default = {
3885
3891
  stateSlug: "montana",
3886
3892
  stateName: "Montana",
3887
3893
  stateAbbrev: "MT",
3888
- lastUpdated: "2026-06-20",
3894
+ lastUpdated: "2026-08-04",
3889
3895
  counties: [
3890
3896
  {
3891
3897
  id: "mt-yellowstone",
@@ -3898,10 +3904,10 @@ var montana_default = {
3898
3904
  hasPublicRest: true,
3899
3905
  endpoints: [
3900
3906
  {
3901
- url: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0",
3907
+ url: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1",
3902
3908
  serviceType: "MapServer",
3903
- layerIndex: 0,
3904
- layerName: "Parcels",
3909
+ layerIndex: 1,
3910
+ layerName: "Montana Parcels",
3905
3911
  supportsQuery: true,
3906
3912
  corsEnabled: null,
3907
3913
  searchFields: [
@@ -3919,9 +3925,9 @@ var montana_default = {
3919
3925
  { name: "TotalValue", label: "Total Assessed Value", searchable: false },
3920
3926
  { name: "TaxYear", label: "Tax Year", searchable: false }
3921
3927
  ],
3922
- sampleQuery: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0/query?where=CountyName%3D'Yellowstone'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
3928
+ sampleQuery: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Yellowstone'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
3923
3929
  license: "public",
3924
- licenseUrl: "https://gisservicemt.gov/",
3930
+ licenseUrl: "https://gisservice.mt.gov/",
3925
3931
  status: "live",
3926
3932
  lastVerified: "2026-06-20",
3927
3933
  verifiedBy: "automated"
@@ -3945,10 +3951,10 @@ var montana_default = {
3945
3951
  hasPublicRest: true,
3946
3952
  endpoints: [
3947
3953
  {
3948
- url: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0",
3954
+ url: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1",
3949
3955
  serviceType: "MapServer",
3950
- layerIndex: 0,
3951
- layerName: "Parcels",
3956
+ layerIndex: 1,
3957
+ layerName: "Montana Parcels",
3952
3958
  supportsQuery: true,
3953
3959
  corsEnabled: null,
3954
3960
  searchFields: [
@@ -3966,9 +3972,9 @@ var montana_default = {
3966
3972
  { name: "TotalValue", label: "Total Assessed Value", searchable: false },
3967
3973
  { name: "TaxYear", label: "Tax Year", searchable: false }
3968
3974
  ],
3969
- sampleQuery: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0/query?where=CountyName%3D'Missoula'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
3975
+ sampleQuery: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Missoula'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
3970
3976
  license: "public",
3971
- licenseUrl: "https://gisservicemt.gov/",
3977
+ licenseUrl: "https://gisservice.mt.gov/",
3972
3978
  status: "live",
3973
3979
  lastVerified: "2026-06-20",
3974
3980
  verifiedBy: "automated"
@@ -3992,10 +3998,10 @@ var montana_default = {
3992
3998
  hasPublicRest: true,
3993
3999
  endpoints: [
3994
4000
  {
3995
- url: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0",
4001
+ url: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1",
3996
4002
  serviceType: "MapServer",
3997
- layerIndex: 0,
3998
- layerName: "Parcels",
4003
+ layerIndex: 1,
4004
+ layerName: "Montana Parcels",
3999
4005
  supportsQuery: true,
4000
4006
  corsEnabled: null,
4001
4007
  searchFields: [
@@ -4013,9 +4019,9 @@ var montana_default = {
4013
4019
  { name: "TotalValue", label: "Total Assessed Value", searchable: false },
4014
4020
  { name: "TaxYear", label: "Tax Year", searchable: false }
4015
4021
  ],
4016
- sampleQuery: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0/query?where=CountyName%3D'Cascade'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
4022
+ sampleQuery: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Cascade'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
4017
4023
  license: "public",
4018
- licenseUrl: "https://gisservicemt.gov/",
4024
+ licenseUrl: "https://gisservice.mt.gov/",
4019
4025
  status: "live",
4020
4026
  lastVerified: "2026-06-20",
4021
4027
  verifiedBy: "automated"
@@ -4039,10 +4045,10 @@ var montana_default = {
4039
4045
  hasPublicRest: true,
4040
4046
  endpoints: [
4041
4047
  {
4042
- url: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0",
4048
+ url: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1",
4043
4049
  serviceType: "MapServer",
4044
- layerIndex: 0,
4045
- layerName: "Parcels",
4050
+ layerIndex: 1,
4051
+ layerName: "Montana Parcels",
4046
4052
  supportsQuery: true,
4047
4053
  corsEnabled: null,
4048
4054
  searchFields: [
@@ -4060,9 +4066,9 @@ var montana_default = {
4060
4066
  { name: "TotalValue", label: "Total Assessed Value", searchable: false },
4061
4067
  { name: "TaxYear", label: "Tax Year", searchable: false }
4062
4068
  ],
4063
- sampleQuery: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0/query?where=CountyName%3D'Flathead'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
4069
+ sampleQuery: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Flathead'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
4064
4070
  license: "public",
4065
- licenseUrl: "https://gisservicemt.gov/",
4071
+ licenseUrl: "https://gisservice.mt.gov/",
4066
4072
  status: "live",
4067
4073
  lastVerified: "2026-06-20",
4068
4074
  verifiedBy: "automated"
@@ -6316,7 +6322,7 @@ var south_dakota_default = {
6316
6322
  stateSlug: "south-dakota",
6317
6323
  stateName: "South Dakota",
6318
6324
  stateAbbrev: "SD",
6319
- lastUpdated: "2026-06-20",
6325
+ lastUpdated: "2026-08-04",
6320
6326
  counties: [
6321
6327
  {
6322
6328
  id: "sd-minnehaha",
@@ -6329,7 +6335,7 @@ var south_dakota_default = {
6329
6335
  hasPublicRest: true,
6330
6336
  endpoints: [
6331
6337
  {
6332
- url: "https://gis.minnehahacounty.org/minnemap/rest/services/Parcels/MapServer/0",
6338
+ url: "https://gis.minnehahacounty.gov/minnemap/rest/services/Parcels/MapServer/0",
6333
6339
  serviceType: "MapServer",
6334
6340
  layerIndex: 0,
6335
6341
  layerName: "Parcels",
@@ -6353,9 +6359,9 @@ var south_dakota_default = {
6353
6359
  { name: "TRACT", label: "Tract", searchable: false },
6354
6360
  { name: "SUBDIVISION", label: "Subdivision", searchable: false }
6355
6361
  ],
6356
- 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",
6362
+ sampleQuery: "https://gis.minnehahacounty.gov/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",
6357
6363
  license: "public",
6358
- licenseUrl: "https://gis.minnehahacounty.org/",
6364
+ licenseUrl: "https://gis.minnehahacounty.gov/",
6359
6365
  status: "live",
6360
6366
  lastVerified: "2026-06-20",
6361
6367
  verifiedBy: "automated"
@@ -6366,7 +6372,7 @@ var south_dakota_default = {
6366
6372
  url: "https://www.minnehahacounty.org/dept/eq/eq.php",
6367
6373
  email: null
6368
6374
  },
6369
- 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."
6375
+ 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.gov. 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."
6370
6376
  }
6371
6377
  ]
6372
6378
  };
@@ -6479,7 +6485,7 @@ var tennessee_default = {
6479
6485
  url: "https://www.shelbycountytn.gov/467/REGIS-Regional-GIS",
6480
6486
  email: null
6481
6487
  },
6482
- 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."
6488
+ 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). RESOLVED (2026-07-21): the canonical liveness prober (api/cron/liveness.ts) and the server-side parcel fetch (api/_lib/atlas-resilient-fetch.ts) both use a narrow legacy-TLS path scoped to this hostname alone, so the endpoint probes and fetches correctly; global TLS behavior is unchanged."
6483
6489
  },
6484
6490
  {
6485
6491
  id: "tn-hamilton",
@@ -7218,7 +7224,7 @@ var virginia_default = {
7218
7224
  stateSlug: "virginia",
7219
7225
  stateName: "Virginia",
7220
7226
  stateAbbrev: "VA",
7221
- lastUpdated: "2026-06-20",
7227
+ lastUpdated: "2026-08-04",
7222
7228
  counties: [
7223
7229
  {
7224
7230
  id: "va-fairfax",
@@ -7298,7 +7304,7 @@ var virginia_default = {
7298
7304
  url: "https://www.pwcva.gov/department/geographic-information-systems-gis",
7299
7305
  email: null
7300
7306
  },
7301
- notes: "Prince William County (Northern Virginia, pop. ~490,000; county seat unincorporated, courts in Manassas) publishes an Open Data parcel MapServer at gisweb.pwcva.gov (note the host is gisweb.pwcva.gov, NOT pwcgov.org). Layer 0 exposes 49 fields and -- unlike neighboring Fairfax County -- includes owner name directly: CAMA_OWNER_CUR (current owner from the CAMA system) and CAMA_DEEDOWNER (deed owner). Parcel identifier is GPIN, a hyphenated geographic id (e.g. '7201-09-8851'). Site address is split across ST_NO / ST_NAME / ST_TYPE / CITY / ZIP. Verified 2026-06-20: 159,174 parcels; UPPER(CAMA_OWNER_CUR) LIKE '%SMITH%' returns real owners with Haymarket/Manassas-area addresses and ZIPs. IMPORTANT: this entry covers Prince William COUNTY only. The independent cities of Manassas (FIPS 51683) and Manassas Park (FIPS 51685) sit within the county's geographic bounds but are separate Census FIPS jurisdictions, governed and assessed independently. For authoritative assessment records use the PWC Real Estate Assessments office."
7307
+ notes: "Prince William County (Northern Virginia, pop. ~490,000; county seat unincorporated, courts in Manassas) publishes an Open Data parcel MapServer at gisweb.pwcva.gov (note the host is gisweb.pwcva.gov, NOT pwcgov.org). Layer 0 exposes 49 fields and -- unlike neighboring Fairfax County -- includes owner name directly: CAMA_OWNER_CUR (current owner from the CAMA system) and CAMA_DEEDOWNER (deed owner). Parcel identifier is GPIN, a hyphenated geographic id (e.g. '7201-09-8851'). Site address is split across ST_NO / ST_NAME / ST_TYPE / CITY / ZIP. Verified 2026-06-20: 159,174 parcels; UPPER(CAMA_OWNER_CUR) LIKE '%SMITH%' returns real owners with Haymarket/Manassas-area addresses and ZIPs. IMPORTANT: this entry covers Prince William COUNTY only. The independent cities of Manassas (FIPS 51683) and Manassas Park (FIPS 51685) sit within the county's geographic bounds but are separate Census FIPS jurisdictions, governed and assessed independently. For authoritative assessment records use the PWC Real Estate Assessments office. LIVENESS 2026-08-04: answers a home-network probe in ~2.6s with 10 correct parcel rows, but exceeds even the raised 15s host budget from the Vercel probe region on 112 consecutive checks. That pattern reads as datacenter-IP throttling rather than a slow server, so raising the budget further would risk the 60s shard ceiling for no gain. Stays honestly degraded."
7302
7308
  }
7303
7309
  ]
7304
7310
  };
@@ -7345,7 +7351,7 @@ var washington_default = {
7345
7351
  url: "https://kingcounty.gov/services/gis.aspx",
7346
7352
  email: null
7347
7353
  },
7348
- notes: "King County, Washington (Seattle metro, pop. 2.3M, county seat Seattle) is the most populous Washington county, containing Seattle, Bellevue, Redmond, Renton, and Kent. The KingCo_Parcels MapServer layer publishes parcel polygons with three identifier fields: PIN (10-digit Parcel Identification Number), MAJOR (first 6 digits of PIN, identifying the parcel block), and MINOR (last 4 digits, the parcel within the block). No owner name, situs address, or assessment values are on this public REST layer. Washington State law broadly restricts owner-name exposure on public REST endpoints; King County follows this consistently. Confirmed live 2026-06-06 -- 638,577 parcels, PIN-searchable. For ownership lookups, use the King County Assessor's eReal Property portal at info.kingcounty.gov/assessor/emap/ (search by address, PIN, or complex name). The interactive Parcel Viewer is at gismaps.kingcounty.gov/parcelviewer2/. Bulk GIS downloads: kingcounty.gov/services/gis/GISData.aspx.",
7354
+ notes: "King County, Washington (Seattle metro, pop. 2.3M, county seat Seattle) is the most populous Washington county, containing Seattle, Bellevue, Redmond, Renton, and Kent. The KingCo_Parcels MapServer layer publishes parcel polygons with three identifier fields: PIN (10-digit Parcel Identification Number), MAJOR (first 6 digits of PIN, identifying the parcel block), and MINOR (last 4 digits, the parcel within the block). No owner name, situs address, or assessment values are on this public REST layer. Washington State law broadly restricts owner-name exposure on public REST endpoints; King County follows this consistently. Confirmed live 2026-06-06 -- 638,577 parcels, PIN-searchable. For ownership lookups, use the King County Assessor's eReal Property portal at info.kingcounty.gov/assessor/emap/ (search by address, PIN, or complex name). The interactive Parcel Viewer is at gismaps.kingcounty.gov/parcelviewer2/. Bulk GIS downloads: kingcounty.gov/services/gis/GISData.aspx.\n\nKing County's open-data portal at data.kingcounty.gov runs on Socrata and does not carry a live, address-searchable parcel master table. The id tise-fzs9 surfaces in King County parcel searches; it identifies a Metro vanpool-ridership dataset, not parcels. Two Socrata tables carry the same PIN format used above and stay current: Property Legal Descriptions (id 4854-i48r, filter by parcel_number, https://data.kingcounty.gov/resource/4854-i48r.csv) and Real Property Tax Receivables (id dkna-i698, filter by account_number, https://data.kingcounty.gov/resource/dkna-i698.csv). Resolve an address to a PIN with eReal Property or Parcel Viewer above, then query either table with that PIN as the filter value. Parcel 0000200001, the same PIN in the ArcGIS sample query, returns its legal description at https://data.kingcounty.gov/resource/4854-i48r.csv?parcel_number=0000200001.",
7349
7355
  relatedPropertyCitySlug: "seattle"
7350
7356
  },
7351
7357
  {
@@ -7493,7 +7499,7 @@ var west_virginia_default = {
7493
7499
  stateSlug: "west-virginia",
7494
7500
  stateName: "West Virginia",
7495
7501
  stateAbbrev: "WV",
7496
- lastUpdated: "2026-06-20",
7502
+ lastUpdated: "2026-08-04",
7497
7503
  counties: [
7498
7504
  {
7499
7505
  id: "wv-kanawha",
@@ -7519,8 +7525,7 @@ var west_virginia_default = {
7519
7525
  { name: "FullOwnerAddress", label: "Owner Mailing Address", searchable: false },
7520
7526
  { name: "FullLegalDescription", label: "Legal Description", searchable: false },
7521
7527
  { name: "CountyID", label: "County ID string ('20' = Kanawha)", searchable: false },
7522
- { name: "GISPID", label: "GIS Parcel ID", searchable: false },
7523
- { name: "Acres_C", label: "Calculated Acres", searchable: false }
7528
+ { name: "GISPID", label: "GIS Parcel ID", searchable: false }
7524
7529
  ],
7525
7530
  sampleQuery: "https://services.wvgis.wvu.edu/arcgis/rest/services/Planning_Cadastre/WV_Parcels/MapServer/0/query?where=CountyID%3D'20'+AND+UPPER(FullOwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=CleanParcelID,FullOwnerName,FullPhysicalAddress,FullOwnerAddress,CountyID&returnGeometry=false&f=json&resultRecordCount=10",
7526
7531
  license: "public",
@@ -7561,8 +7566,7 @@ var west_virginia_default = {
7561
7566
  { name: "FullOwnerAddress", label: "Owner Mailing Address", searchable: false },
7562
7567
  { name: "FullLegalDescription", label: "Legal Description", searchable: false },
7563
7568
  { name: "CountyID", label: "County ID string ('31' = Monongalia)", searchable: false },
7564
- { name: "GISPID", label: "GIS Parcel ID", searchable: false },
7565
- { name: "Acres_C", label: "Calculated Acres", searchable: false }
7569
+ { name: "GISPID", label: "GIS Parcel ID", searchable: false }
7566
7570
  ],
7567
7571
  sampleQuery: "https://services.wvgis.wvu.edu/arcgis/rest/services/Planning_Cadastre/WV_Parcels/MapServer/0/query?where=CountyID%3D'31'+AND+UPPER(FullOwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=CleanParcelID,FullOwnerName,FullPhysicalAddress,FullOwnerAddress,CountyID&returnGeometry=false&f=json&resultRecordCount=10",
7568
7572
  license: "public",
@@ -7603,8 +7607,7 @@ var west_virginia_default = {
7603
7607
  { name: "FullOwnerAddress", label: "Owner Mailing Address", searchable: false },
7604
7608
  { name: "FullLegalDescription", label: "Legal Description", searchable: false },
7605
7609
  { name: "CountyID", label: "County ID string ('40' = Raleigh)", searchable: false },
7606
- { name: "GISPID", label: "GIS Parcel ID", searchable: false },
7607
- { name: "Acres_C", label: "Calculated Acres", searchable: false }
7610
+ { name: "GISPID", label: "GIS Parcel ID", searchable: false }
7608
7611
  ],
7609
7612
  sampleQuery: "https://services.wvgis.wvu.edu/arcgis/rest/services/Planning_Cadastre/WV_Parcels/MapServer/0/query?where=CountyID%3D'40'+AND+UPPER(FullOwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=CleanParcelID,FullOwnerName,FullPhysicalAddress,FullOwnerAddress,CountyID&returnGeometry=false&f=json&resultRecordCount=10",
7610
7613
  license: "public",
@@ -7645,8 +7648,7 @@ var west_virginia_default = {
7645
7648
  { name: "FullOwnerAddress", label: "Owner Mailing Address", searchable: false },
7646
7649
  { name: "FullLegalDescription", label: "Legal Description", searchable: false },
7647
7650
  { name: "CountyID", label: "County ID string ('06' = Cabell)", searchable: false },
7648
- { name: "GISPID", label: "GIS Parcel ID", searchable: false },
7649
- { name: "Acres_C", label: "Calculated Acres", searchable: false }
7651
+ { name: "GISPID", label: "GIS Parcel ID", searchable: false }
7650
7652
  ],
7651
7653
  sampleQuery: "https://services.wvgis.wvu.edu/arcgis/rest/services/Planning_Cadastre/WV_Parcels/MapServer/0/query?where=CountyID%3D'06'+AND+UPPER(FullOwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=CleanParcelID,FullOwnerName,FullPhysicalAddress,FullOwnerAddress,CountyID&returnGeometry=false&f=json&resultRecordCount=10",
7652
7654
  license: "public",