@urbankitstudio/atlas 0.6.9 → 0.6.11

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.
package/README.md CHANGED
@@ -134,9 +134,9 @@ Omit `?fips=` to get every tracked county in one call.
134
134
 
135
135
  ## Coverage today
136
136
 
137
- The atlas bundles **235 counties across all 50 US states and DC** (247 verified endpoints), covering the largest counties in each. Call `listStates()` to enumerate the full set.
137
+ The atlas bundles **239 counties across all 50 US states and DC** (251 verified endpoints), covering the largest counties in each. Call `listStates()` to enumerate the full set.
138
138
 
139
- Every state has at least one county on record, and 229 of the 235 carry a verified endpoint. The other 6 have `hasPublicRest: false` and an empty `endpoints` array, with `notes` recording the reason and who to contact. Those reasons vary: a subscription-only regional GIS partner, a statewide server that requires an auth token, a state with no county-level parcel authority, a county viewer with no public query API, a county that does not publish owner names online. They ship rather than being omitted, so `findCounty()` still resolves them. **Check `hasPublicRest`** rather than assuming every county has an endpoint; `totals.countiesWithEndpoint` gives the queryable count directly.
139
+ Every state has at least one county on record, and 233 of the 239 carry a verified endpoint. The other 6 have `hasPublicRest: false` and an empty `endpoints` array, with `notes` recording the reason and who to contact. Those reasons vary: a subscription-only regional GIS partner, a statewide server that requires an auth token, a state with no county-level parcel authority, a county viewer with no public query API, a county that does not publish owner names online. They ship rather than being omitted, so `findCounty()` still resolves them. **Check `hasPublicRest`** rather than assuming every county has an endpoint; `totals.countiesWithEndpoint` gives the queryable count directly.
140
140
 
141
141
  Counties are added as their public REST endpoints are verified. Package versions bump when data refreshes — pin to a minor range (`^0.x`) to receive new counties without breaking changes.
142
142
 
package/data/alabama.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "alabama",
3
3
  "stateName": "Alabama",
4
4
  "stateAbbrev": "AL",
5
- "lastUpdated": "2026-06-20",
5
+ "lastUpdated": "2026-10-03",
6
6
  "counties": [
7
7
  {
8
8
  "id": "al-shelby",
@@ -98,6 +98,48 @@
98
98
  "email": null
99
99
  },
100
100
  "notes": "Jefferson County AL (Birmingham, pop. 670,000; FIPS 01073) Basemap/Parcels layer. Data maintained by Jefferson County Tax Assessor Office and updated nightly. 76 fields in live schema as of 2026-06-27: OBJECTID, Unique_ID, PID, TAX_TOWNSH, ISP_SECTION, SEC, QSECTION, BLOCK, PARCEL, PARCELID, APP_PID, DISTRICT, ESN_NUM, ADDR_PSPR, Bldg_Number, Street_Name, Street_Type, Street_Dir, APARTMENT, ADDRAPT_PS, OWNERNAME, PROP_MAIL, CITYMAIL, ZIP_MAIL, STATE_Mail, Legal_Desc, Property_City, Property_State, NEIGHBOR_N, SUBDIV_NAME, ADDR_APR, ZIP, TotalMHValue, PrevParcelLand/Imp/Total, Water, Sewer, Gas, ACRES_APR, GIS_ACRES, Remarks, Name2, Plat_Book/Page (×2), NbhdCd, Ownership, Topography, RoadAcc, MaintDate, CITY, NbhName, PriMunCode, SecMunCode, PriAcreage, SecAcreage, LegalRemarks, ParcelNo, Division, RecordYear, SchDist, MapNumber, Sqft, FIREDEPTNAME, Cls, BLDG_IND, TAX_CODE, OBY_IND, AssdValue, Territory, FireFee_District. NOTE 2026-06-27: ZONING_BOE is no longer in the live schema (schema drift), removed from searchFields. OWNERNAME field returns padded fixed-width strings (trim on use). Note: distinct from Jefferson County CO (FIPS 08059) and Jefferson County KY (Louisville; FIPS 21111) already in atlas. Verified 2026-06-27: metadata 200, query 200, 410K+ parcels."
101
+ },
102
+ {
103
+ "id": "al-mobile",
104
+ "state": "AL",
105
+ "stateName": "Alabama",
106
+ "stateSlug": "alabama",
107
+ "county": "Mobile",
108
+ "countySlug": "mobile-county",
109
+ "countyFips": "01097",
110
+ "hasPublicRest": true,
111
+ "endpoints": [
112
+ {
113
+ "url": "https://services8.arcgis.com/HND1NcQt6vgOGn1z/arcgis/rest/services/MCRC_Public_Parcels/FeatureServer/0",
114
+ "serviceType": "FeatureServer",
115
+ "layerIndex": 0,
116
+ "layerName": "MCRC_Public_Parcels",
117
+ "supportsQuery": true,
118
+ "corsEnabled": true,
119
+ "searchFields": [
120
+ { "name": "Name1", "label": "Owner Name 1", "searchable": true },
121
+ { "name": "Name2", "label": "Owner Name 2", "searchable": true },
122
+ { "name": "Parcel_Number", "label": "Parcel ID", "searchable": true },
123
+ { "name": "Account_Number", "label": "Account Number", "searchable": true },
124
+ { "name": "PropAddr1", "label": "Site Address", "searchable": true },
125
+ { "name": "PropCity", "label": "Site City", "searchable": true },
126
+ { "name": "PropZip", "label": "Site ZIP", "searchable": false },
127
+ { "name": "Acreage", "label": "Acres", "searchable": false }
128
+ ],
129
+ "sampleQuery": "https://services8.arcgis.com/HND1NcQt6vgOGn1z/arcgis/rest/services/MCRC_Public_Parcels/FeatureServer/0/query?where=UPPER(Name1)%20LIKE%20%27SMITH%25%27&outFields=*&returnGeometry=false&resultRecordCount=10&f=json",
130
+ "license": "unknown",
131
+ "licenseUrl": "https://www.arcgis.com/home/item.html?id=07c93ca64bbf4fb8a8d49b7ea80ef067",
132
+ "status": "live",
133
+ "lastVerified": "2026-10-03",
134
+ "verifiedBy": "manual"
135
+ }
136
+ ],
137
+ "contact": {
138
+ "department": "Mapping Department, Mobile County Revenue Commission",
139
+ "url": null,
140
+ "email": null
141
+ },
142
+ "notes": "Mobile County, Alabama (Mobile; FIPS 01097) publishes its parcels as the 'Mobile County Alabama Tax Parcels' FeatureServer, authored by the Mobile County Revenue Commission's Mapping Department and updated 2026-09-22. 214,040 parcels, countywide. The owner is in Name1 (and Name2), the parcel id in Parcel_Number (ParcelNo is the formatted form), and the site address in PropAddr1 with PropCity and PropZip. The layer has NO owner mailing-address fields (its columns are OBJECTID, Parcel_Number, Account_Number, ParcelNo, Name1, Name2, PropAddr1, PropAddr2, PropCity, PropState, PropZip, Acreage, Sqft, KeyNum), so it serves owner names and site addresses, not mailing addresses. String fields are heavily space padded (Name1 is 255 wide), so trim them and search with UPPER(Name1) LIKE 'SMITH%', never equality. The spatial reference is wkid 102630, so send outSR=4326 if you need longitude and latitude. CORS answers Access-Control-Allow-Origin *. No open-data license is stated; the item carries only an informational-use disclaimer. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH BONNIE G, 0104430000006.000, 20240 HIGHWAY 43, Mount Vernon)."
101
143
  }
102
144
  ]
103
145
  }
package/data/arizona.json CHANGED
@@ -117,24 +117,29 @@
117
117
  "supportsQuery": true,
118
118
  "corsEnabled": null,
119
119
  "searchFields": [
120
- { "name": "PARCELID", "label": "Parcel ID (APN)", "searchable": true },
121
- { "name": "LOWPARCELID", "label": "Lower Parcel ID", "searchable": true },
122
- { "name": "OWNERNME1", "label": "Owner Name (Primary)", "searchable": true },
123
- { "name": "OWNERNME2", "label": "Owner Name (Secondary)", "searchable": true },
124
- { "name": "SITEADDRESS", "label": "Site Address", "searchable": true },
125
- { "name": "CVTTXCD", "label": "Converted Tax Code", "searchable": false },
126
- { "name": "CVTTXDSCRP", "label": "Tax Code Description", "searchable": false },
127
- { "name": "USECD", "label": "Use Code", "searchable": false },
128
- { "name": "USEDSCRP", "label": "Use Description", "searchable": false },
129
- { "name": "CLASSCD", "label": "Class Code", "searchable": false },
130
- { "name": "CLASSDSCRP", "label": "Class Description", "searchable": false },
131
- { "name": "PRPRTYDSCRP", "label": "Property Description", "searchable": false }
120
+ { "name": "Parcel_Identification_Number", "label": "Parcel ID (APN)", "searchable": true },
121
+ { "name": "Lowest_Parcel_Identification_Number", "label": "Lower Parcel ID", "searchable": true },
122
+ { "name": "First_Owner_Name", "label": "Owner Name (Primary)", "searchable": true },
123
+ { "name": "Second_Owner_Name", "label": "Owner Name (Secondary)", "searchable": true },
124
+ { "name": "Site_Address", "label": "Site Address", "searchable": true },
125
+ { "name": "Postal_Address", "label": "Owner Mailing Address", "searchable": true },
126
+ { "name": "Postal_City", "label": "Owner Mailing City", "searchable": true },
127
+ { "name": "Postal_State", "label": "Owner Mailing State", "searchable": false },
128
+ { "name": "Postal_Zip_Code_5", "label": "Owner Mailing ZIP", "searchable": false },
129
+ { "name": "Postal_Zip_Code_4", "label": "Owner Mailing ZIP+4", "searchable": false },
130
+ { "name": "Tax_District_Code", "label": "Converted Tax Code", "searchable": false },
131
+ { "name": "Tax_District_Description", "label": "Tax Code Description", "searchable": false },
132
+ { "name": "Assessing_Use_Code", "label": "Use Code", "searchable": false },
133
+ { "name": "Assessing_Use_Description", "label": "Use Description", "searchable": false },
134
+ { "name": "Property_Class_Code", "label": "Class Code", "searchable": false },
135
+ { "name": "Property_Class", "label": "Class Description", "searchable": false },
136
+ { "name": "Property_Description", "label": "Property Description", "searchable": false }
132
137
  ],
133
- "sampleQuery": "https://rogue.casagrandeaz.gov/arcgis/rest/services/Pinal_County/Pinal_County_Parcels/MapServer/0/query?where=PARCELID+LIKE+'%25302%25'&outFields=PARCELID,SITEADDRESS,OWNERNME1,CLASSCD,CLASSDSCRP&returnGeometry=false&f=json&resultRecordCount=10",
138
+ "sampleQuery": "https://rogue.casagrandeaz.gov/arcgis/rest/services/Pinal_County/Pinal_County_Parcels/MapServer/0/query?where=Parcel_Identification_Number+LIKE+'%25302%25'&outFields=Parcel_Identification_Number,Site_Address,First_Owner_Name,Property_Class_Code,Property_Class&returnGeometry=false&f=json&resultRecordCount=10",
134
139
  "license": "public",
135
140
  "licenseUrl": "https://www.pinal.gov/630/GIS",
136
141
  "status": "live",
137
- "lastVerified": "2026-05-15",
142
+ "lastVerified": "2026-10-03",
138
143
  "verifiedBy": "manual"
139
144
  }
140
145
  ],
@@ -143,7 +148,7 @@
143
148
  "url": "https://www.pinal.gov/630/GIS",
144
149
  "email": null
145
150
  },
146
- "notes": "74 fields confirmed including OBJECTID, LOWPARCELID, PARCELID, BUILDING, UNIT, LGLSTARTDT, CVTTXCD, CVTTXDSCRP, SCHLTXCD, SCHLDSCRP, USECD, USEDSCRP, NGHBRHDCD, CLASSCD, CLASSDSCRP, SITEADDRESS, PRPRTYDSCRP, CNVYNAME, OWNERNME1, OWNERNME2. Owner name confirmed live: PARCELID LIKE '%302%' returns OWNERNME1='FELDMEIER BRIAN' in Arizona City AZ 85123. PARCELID format is typically 9-digit numeric string. Hosted on the City of Casa Grande ArcGIS server (rogue.casagrandeaz.gov) which serves Pinal County parcel data for the Phoenix metro south area (Chandler/Gilbert/Queen Creek/Maricopa City/Casa Grande). Capabilities: Query, Map, Data. maxRecordCount=1000. Note: the gismaps.pinalcountyaz.gov server is currently not externally accessible (HTTP 000); the Casa Grande mirror is the reliable public endpoint."
151
+ "notes": "74 fields confirmed including OBJECTID, Lowest_Parcel_Identification_Number, Parcel_Identification_Number, Building_Number, Unit_Number, Legal_Start_Date, Tax_District_Code, Tax_District_Description, School_District_Code, School_District_Description, Assessing_Use_Code, Assessing_Use_Description, Assessing_Neighborhood_Code, Property_Class_Code, Property_Class, Site_Address, Property_Description, Sub_or_Condo_Name, First_Owner_Name, Second_Owner_Name, Postal_Address, Postal_City, Postal_State, Postal_Zip_Code_5, Postal_Zip_Code_4. In September 2026 the county renamed every field to these long-form names (field count, ids and values unchanged; e.g. PARCELID became Parcel_Identification_Number, OWNERNME1 became First_Owner_Name, SITEADDRESS became Site_Address, CLASSCD became Property_Class_Code), which broke every declared field and the old sampleQuery; the record was re-mapped on 2026-10-03. The rename also exposed owner mailing address for the first time (Postal_Address, Postal_City, Postal_State, Postal_Zip_Code_5, Postal_Zip_Code_4). Site_Address now carries city, state and ZIP in one string (e.g. 9865 W BATTAGLIA DR ARIZONA CITY, AZ 85123). Owner name confirmed live: Parcel_Identification_Number LIKE '%302%' returns First_Owner_Name='FELDMEIER BRIAN' in Arizona City AZ 85123. Parcel_Identification_Number is typically a 9-digit numeric string; a where=1=1 probe returns a placeholder row with Parcel_Identification_Number 'NAP', which is still a valid features array. Named outFields work on this server. Hosted on the City of Casa Grande ArcGIS server (rogue.casagrandeaz.gov) which serves Pinal County parcel data for the Phoenix metro south area (Chandler/Gilbert/Queen Creek/Maricopa City/Casa Grande). Capabilities: Query, Map, Data. maxRecordCount=2000 (was 1000 before the September 2026 republish). Note: the gismaps.pinalcountyaz.gov server is currently not externally accessible (HTTP 000; last checked before 2026-10-03, not re-tested then); the Casa Grande mirror is the reliable public endpoint."
147
152
  }
148
153
  ]
149
154
  }
@@ -59,7 +59,7 @@
59
59
  },
60
60
  {
61
61
  "name": "countyfips",
62
- "label": "County FIPS (05119 = Pulaski)",
62
+ "label": "County FIPS (119 = Pulaski)",
63
63
  "searchable": false
64
64
  },
65
65
  {
@@ -78,13 +78,13 @@
78
78
  "searchable": false
79
79
  }
80
80
  ],
81
- "sampleQuery": "https://gis.arkansas.gov/arcgis/rest/services/FEATURESERVICES/Planning_Cadastre/FeatureServer/6/query?where=countyfips%3D'05119'+AND+UPPER(ownername)+LIKE+UPPER('%25SMITH%25')&outFields=parcelid,ownername,adrlabel,countyfips&returnGeometry=false&f=json&resultRecordCount=10",
81
+ "sampleQuery": "https://gis.arkansas.gov/arcgis/rest/services/FEATURESERVICES/Planning_Cadastre/FeatureServer/6/query?where=countyfips%3D'119'+AND+UPPER(ownername)+LIKE+UPPER('%25SMITH%25')&outFields=parcelid,ownername,adrlabel,countyfips&returnGeometry=false&f=json&resultRecordCount=10",
82
82
  "license": "public",
83
83
  "licenseUrl": "https://gis.arkansas.gov/",
84
84
  "status": "live",
85
- "lastVerified": "2026-06-20",
86
- "verifiedBy": "automated",
87
- "scopeWhere": "countyfips = '05119'"
85
+ "lastVerified": "2026-10-03",
86
+ "verifiedBy": "manual",
87
+ "scopeWhere": "countyfips = '119'"
88
88
  }
89
89
  ],
90
90
  "contact": {
@@ -92,7 +92,7 @@
92
92
  "url": "https://gis.arkansas.gov/",
93
93
  "email": null
94
94
  },
95
- "notes": "Pulaski County AR (Little Rock, pop. 400,000; state capital; county seat Little Rock; FIPS 05119) is served by the Arkansas statewide parcel layer hosted by the Arkansas GIS Office (AGISO). The Planning_Cadastre/FeatureServer/6 layer aggregates parcels from all 75 AR counties, filter by countyfips='05119' to query Pulaski County specifically. Key fields: parcelid (parcel identifier), ownername (owner name), adrnum+pstrnam+adrcity+adrzip5 (address components), adrlabel (full address string), countyfips (5-digit FIPS, '05119' for Pulaski), countyid, county (county name text), parceltype, assessvalue, impvalue, landvalue, totalvalue, subdivision, section/township/range, camakey, dataprov, pubdate. Owner-name search via UPPER(ownername) LIKE works across all AR counties. Verified 2026-06-20: countyfips='05119' AND SMITH returns Little Rock addresses. The statewide layer is compiled from county assessor data and may lag 6–12 months from deed recording."
95
+ "notes": "Pulaski County AR (Little Rock, pop. 400,000; state capital; county seat Little Rock; FIPS 05119) is served by the Arkansas statewide parcel layer hosted by the Arkansas GIS Office (AGISO). The Planning_Cadastre/FeatureServer/6 layer aggregates parcels from all 75 AR counties, filter by countyfips='119' to query Pulaski County specifically. Key fields: parcelid (parcel identifier), ownername (owner name), adrnum+pstrnam+adrcity+adrzip5 (address components), adrlabel (full address string), countyfips (3-digit county code, '119' for Pulaski), countyid, county (county name text), parceltype, assessvalue, impvalue, landvalue, totalvalue, subdivision, section/township/range, camakey, dataprov, pubdate. Owner-name search via UPPER(ownername) LIKE works across all AR counties. Verified 2026-06-20: countyfips='05119' AND SMITH returns Little Rock addresses. 2026-10-03: the state changed countyfips from the 5-digit state+county FIPS to the 3-digit county code, so the old scope countyfips='05119' matched 0 rows and every attribute search here returned nothing without an error; countyfips='119' counts 180,229 rows, and the scope and sampleQuery now use it (SMITH returns SMITH HALLIE M, 4 OAKRIDGE DR). The statewide layer is compiled from county assessor data and may lag 6–12 months from deed recording."
96
96
  },
97
97
  {
98
98
  "id": "ar-benton",
@@ -149,7 +149,7 @@
149
149
  },
150
150
  {
151
151
  "name": "countyfips",
152
- "label": "County FIPS (05007 = Benton)",
152
+ "label": "County FIPS (007 = Benton)",
153
153
  "searchable": false
154
154
  },
155
155
  {
@@ -168,13 +168,13 @@
168
168
  "searchable": false
169
169
  }
170
170
  ],
171
- "sampleQuery": "https://gis.arkansas.gov/arcgis/rest/services/FEATURESERVICES/Planning_Cadastre/FeatureServer/6/query?where=countyfips%3D'05007'+AND+UPPER(ownername)+LIKE+UPPER('%25SMITH%25')&outFields=parcelid,ownername,adrlabel,countyfips&returnGeometry=false&f=json&resultRecordCount=10",
171
+ "sampleQuery": "https://gis.arkansas.gov/arcgis/rest/services/FEATURESERVICES/Planning_Cadastre/FeatureServer/6/query?where=countyfips%3D'007'+AND+UPPER(ownername)+LIKE+UPPER('%25SMITH%25')&outFields=parcelid,ownername,adrlabel,countyfips&returnGeometry=false&f=json&resultRecordCount=10",
172
172
  "license": "public",
173
173
  "licenseUrl": "https://gis.arkansas.gov/",
174
174
  "status": "live",
175
- "lastVerified": "2026-06-20",
176
- "verifiedBy": "automated",
177
- "scopeWhere": "countyfips = '05007'"
175
+ "lastVerified": "2026-10-03",
176
+ "verifiedBy": "manual",
177
+ "scopeWhere": "countyfips = '007'"
178
178
  }
179
179
  ],
180
180
  "contact": {
@@ -182,7 +182,7 @@
182
182
  "url": "https://gis.arkansas.gov/",
183
183
  "email": null
184
184
  },
185
- "notes": "Benton County AR (Bentonville/Rogers/Fayetteville metro north; county seat Bentonville; FIPS 05007; home to Walmart HQ) is served by the Arkansas statewide parcel layer. Filter countyfips='05007' to scope to Benton County. Same schema and endpoint as Pulaski County (AR statewide FeatureServer/6). Benton County is the fastest-growing county in Arkansas. Verified 2026-06-20: SMITH query returns Bentonville-area addresses."
185
+ "notes": "Benton County AR (Bentonville/Rogers/Fayetteville metro north; county seat Bentonville; FIPS 05007; home to Walmart HQ) is served by the Arkansas statewide parcel layer. Filter countyfips='007' to scope to Benton County. Same schema and endpoint as Pulaski County (AR statewide FeatureServer/6). Benton County is the fastest-growing county in Arkansas. Verified 2026-06-20: SMITH query returns Bentonville-area addresses. 2026-10-03: the state changed countyfips from the 5-digit state+county FIPS to the 3-digit county code, so the old scope countyfips='05007' matched 0 rows and every attribute search here returned nothing without an error; countyfips='007' counts 175,795 rows, and the scope and sampleQuery now use it (SMITH returns SMITH REVOCABLE TRUST, CRAIG MARTIN)."
186
186
  },
187
187
  {
188
188
  "id": "ar-washington",
@@ -239,7 +239,7 @@
239
239
  },
240
240
  {
241
241
  "name": "countyfips",
242
- "label": "County FIPS (05143 = Washington)",
242
+ "label": "County FIPS (143 = Washington)",
243
243
  "searchable": false
244
244
  },
245
245
  {
@@ -258,13 +258,13 @@
258
258
  "searchable": false
259
259
  }
260
260
  ],
261
- "sampleQuery": "https://gis.arkansas.gov/arcgis/rest/services/FEATURESERVICES/Planning_Cadastre/FeatureServer/6/query?where=countyfips%3D'05143'+AND+UPPER(ownername)+LIKE+UPPER('%25SMITH%25')&outFields=parcelid,ownername,adrlabel,countyfips&returnGeometry=false&f=json&resultRecordCount=10",
261
+ "sampleQuery": "https://gis.arkansas.gov/arcgis/rest/services/FEATURESERVICES/Planning_Cadastre/FeatureServer/6/query?where=countyfips%3D'143'+AND+UPPER(ownername)+LIKE+UPPER('%25SMITH%25')&outFields=parcelid,ownername,adrlabel,countyfips&returnGeometry=false&f=json&resultRecordCount=10",
262
262
  "license": "public",
263
263
  "licenseUrl": "https://gis.arkansas.gov/",
264
264
  "status": "live",
265
- "lastVerified": "2026-06-20",
266
- "verifiedBy": "automated",
267
- "scopeWhere": "countyfips = '05143'"
265
+ "lastVerified": "2026-10-03",
266
+ "verifiedBy": "manual",
267
+ "scopeWhere": "countyfips = '143'"
268
268
  }
269
269
  ],
270
270
  "contact": {
@@ -272,7 +272,7 @@
272
272
  "url": "https://gis.arkansas.gov/",
273
273
  "email": null
274
274
  },
275
- "notes": "Washington County AR (Fayetteville metro; county seat Fayetteville; FIPS 05143; home to University of Arkansas) is served by the Arkansas statewide parcel layer. Filter countyfips='05143' to scope to Washington County. Same schema and endpoint as Pulaski and Benton counties (AR statewide FeatureServer/6). Washington County AR must not be confused with Washington County in other states. Verified 2026-06-20: SMITH query returns Fayetteville-area addresses."
275
+ "notes": "Washington County AR (Fayetteville metro; county seat Fayetteville; FIPS 05143; home to University of Arkansas) is served by the Arkansas statewide parcel layer. Filter countyfips='143' to scope to Washington County. Same schema and endpoint as Pulaski and Benton counties (AR statewide FeatureServer/6). Washington County AR must not be confused with Washington County in other states. Verified 2026-06-20: SMITH query returns Fayetteville-area addresses. 2026-10-03: the state changed countyfips from the 5-digit state+county FIPS to the 3-digit county code, so the old scope countyfips='05143' matched 0 rows and every attribute search here returned nothing without an error; countyfips='143' counts 114,791 rows, and the scope and sampleQuery now use it (SMITH returns SMITH, ANNE B, 601 N HIGHLAND AVE)."
276
276
  }
277
277
  ]
278
278
  }
package/data/georgia.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "georgia",
3
3
  "stateName": "Georgia",
4
4
  "stateAbbrev": "GA",
5
- "lastUpdated": "2026-08-25",
5
+ "lastUpdated": "2026-10-03",
6
6
  "counties": [
7
7
  {
8
8
  "id": "ga-fulton",
@@ -369,6 +369,51 @@
369
369
  "email": null
370
370
  },
371
371
  "notes": "Savannah and Chatham County, published by SAGIS. 125,326 parcels with owner names on 124,952 rows (99.7 percent), and the fullest field set in this batch: parcel id, two owner columns, a complete mailing address, a combined situs and split situs parts. IMPORTANT for maintenance: this service holds 28 year-versioned layers, 0 to 17 being Historic Parcels 1998 to 2015 and 18 to 27 being Parcel Digest 2016 to 2025. Layer 27 is the newest today. When SAGIS publishes Parcel Digest 2026 it will be layer 28 and this entry will silently go a year stale, so the layer index needs checking whenever this record is reverified."
372
+ },
373
+ {
374
+ "id": "ga-dougherty",
375
+ "state": "GA",
376
+ "stateName": "Georgia",
377
+ "stateSlug": "georgia",
378
+ "county": "Dougherty",
379
+ "countySlug": "dougherty-county",
380
+ "countyFips": "13095",
381
+ "hasPublicRest": true,
382
+ "endpoints": [
383
+ {
384
+ "url": "https://services6.arcgis.com/VKHi8CC6pMIyYUIs/arcgis/rest/services/Parcels_Public_View/FeatureServer/0",
385
+ "serviceType": "FeatureServer",
386
+ "layerIndex": 0,
387
+ "layerName": "Parcels",
388
+ "supportsQuery": true,
389
+ "corsEnabled": true,
390
+ "searchFields": [
391
+ { "name": "Name", "label": "Owner Name", "searchable": true },
392
+ { "name": "ParcelNum", "label": "Parcel ID", "searchable": true },
393
+ { "name": "Address", "label": "Site Address", "searchable": true },
394
+ { "name": "SiteCity", "label": "Site City", "searchable": true },
395
+ { "name": "SiteZip", "label": "Site ZIP", "searchable": false },
396
+ { "name": "MailAddress1", "label": "Owner Mailing Address", "searchable": true },
397
+ { "name": "MailCity", "label": "Owner Mailing City", "searchable": true },
398
+ { "name": "MailState", "label": "Owner Mailing State", "searchable": false },
399
+ { "name": "MailZip", "label": "Owner Mailing ZIP", "searchable": false },
400
+ { "name": "Jurisdiction", "label": "Jurisdiction (City or County)", "searchable": false },
401
+ { "name": "TotalAcerage", "label": "Acres", "searchable": false }
402
+ ],
403
+ "sampleQuery": "https://services6.arcgis.com/VKHi8CC6pMIyYUIs/arcgis/rest/services/Parcels_Public_View/FeatureServer/0/query?where=UPPER(Name)%20LIKE%20%27SMITH%25%27&outFields=*&returnGeometry=false&resultRecordCount=10&f=json",
404
+ "license": "unknown",
405
+ "licenseUrl": "https://www.arcgis.com/home/item.html?id=9729f520dfab47fab85484908994ef1f",
406
+ "status": "live",
407
+ "lastVerified": "2026-10-03",
408
+ "verifiedBy": "manual"
409
+ }
410
+ ],
411
+ "contact": {
412
+ "department": "Albany GIS (Albany-Dougherty Geographic Information System)",
413
+ "url": null,
414
+ "email": null
415
+ },
416
+ "notes": "Dougherty County, Georgia (county seat Albany) publishes its parcels as the 'Dougherty County Land Parcels Dataset' FeatureServer, maintained by Albany GIS, covering both the CITY and COUNTY jurisdictions (the Jurisdiction column says which). 38,007 parcels as of 2026-10-03. The owner is in Name, the parcel id in ParcelNum, the site address in Address (with SiteCity and SiteZip) and the owner mailing address in MailAddress1/MailCity/MailState/MailZip; MailAddress1 was empty on the first rows sampled. String fields are space padded to their full width, so trim them and search with UPPER(Name) LIKE 'SMITH%', never equality. The layer's spatial reference is wkid 102667 (latestWkid 2240), so send outSR=4326 if you need longitude and latitude. CORS answers Access-Control-Allow-Origin *. No open-data license is stated; the item carries only a disclaimer that Albany GIS makes every effort at accuracy and that all data is subject to change. A third-party count of 39,443 parcels is slightly higher than the layer's, so the public view may be a subset. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH SHIRLEY PEARL, 0000S/00003/03A, 2803 ELTON ST, Albany)."
372
417
  }
373
418
  ]
374
419
  }
package/data/index.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "version": "0.3.0",
3
- "lastUpdated": "2026-09-26",
3
+ "lastUpdated": "2026-10-03",
4
4
  "totals": {
5
5
  "states": 51,
6
- "counties": 235,
7
- "endpoints": 247,
8
- "countiesWithEndpoint": 229,
6
+ "counties": 239,
7
+ "endpoints": 251,
8
+ "countiesWithEndpoint": 233,
9
9
  "countiesUnprobeable": 1
10
10
  },
11
11
  "states": [
@@ -13,8 +13,8 @@
13
13
  "slug": "alabama",
14
14
  "name": "Alabama",
15
15
  "abbrev": "AL",
16
- "countyCount": 2,
17
- "endpointCount": 2,
16
+ "countyCount": 3,
17
+ "endpointCount": 3,
18
18
  "populated": true
19
19
  },
20
20
  {
@@ -93,8 +93,8 @@
93
93
  "slug": "georgia",
94
94
  "name": "Georgia",
95
95
  "abbrev": "GA",
96
- "countyCount": 5,
97
- "endpointCount": 5,
96
+ "countyCount": 6,
97
+ "endpointCount": 6,
98
98
  "populated": true
99
99
  },
100
100
  {
@@ -309,8 +309,8 @@
309
309
  "slug": "oregon",
310
310
  "name": "Oregon",
311
311
  "abbrev": "OR",
312
- "countyCount": 6,
313
- "endpointCount": 5,
312
+ "countyCount": 7,
313
+ "endpointCount": 6,
314
314
  "populated": true
315
315
  },
316
316
  {
@@ -389,8 +389,8 @@
389
389
  "slug": "washington",
390
390
  "name": "Washington",
391
391
  "abbrev": "WA",
392
- "countyCount": 4,
393
- "endpointCount": 4,
392
+ "countyCount": 5,
393
+ "endpointCount": 5,
394
394
  "populated": true
395
395
  },
396
396
  {
@@ -96,12 +96,12 @@
96
96
  "hasPublicRest": true,
97
97
  "endpoints": [
98
98
  {
99
- "url": "https://gis.princegeorgescountymd.gov/arcgis/rest/services/Property/Property_Flattened/MapServer/0",
100
- "serviceType": "MapServer",
99
+ "url": "https://services1.arcgis.com/qS7AYixGtf3sv8B6/arcgis/rest/services/Property_Flattened_Py/FeatureServer/0",
100
+ "serviceType": "FeatureServer",
101
101
  "layerIndex": 0,
102
- "layerName": "Property Flattened",
102
+ "layerName": "Property_Flattened_Py",
103
103
  "supportsQuery": true,
104
- "corsEnabled": null,
104
+ "corsEnabled": true,
105
105
  "searchFields": [
106
106
  {
107
107
  "name": "ACCOUNT",
@@ -164,12 +164,12 @@
164
164
  "searchable": false
165
165
  }
166
166
  ],
167
- "sampleQuery": "https://gis.princegeorgescountymd.gov/arcgis/rest/services/Property/Property_Flattened/MapServer/0/query?where=UPPER(OWNER_NAME)+LIKE+UPPER('%25SMITH%25')&outFields=ACCOUNT,PROPERTY_ID,OWNER_NAME,HOUSE_NUMBER,STREET_NAME,STREET_TYPE,MAIL_STREET,MAIL_CITY,MAIL_ZIP5&returnGeometry=false&f=json&resultRecordCount=10",
167
+ "sampleQuery": "https://services1.arcgis.com/qS7AYixGtf3sv8B6/arcgis/rest/services/Property_Flattened_Py/FeatureServer/0/query?where=UPPER(OWNER_NAME)+LIKE+UPPER('%25SMITH%25')&outFields=ACCOUNT,PROPERTY_ID,OWNER_NAME,HOUSE_NUMBER,STREET_NAME,STREET_TYPE,MAIL_STREET,MAIL_CITY,MAIL_ZIP5&returnGeometry=false&f=json&resultRecordCount=10",
168
168
  "license": "public",
169
169
  "licenseUrl": "https://www.princegeorgescountymd.gov/665/Geographic-Information-Systems-GIS",
170
170
  "status": "live",
171
- "lastVerified": "2026-06-05",
172
- "verifiedBy": "automated"
171
+ "lastVerified": "2026-10-03",
172
+ "verifiedBy": "manual"
173
173
  }
174
174
  ],
175
175
  "contact": {
@@ -177,7 +177,7 @@
177
177
  "url": "https://www.princegeorgescountymd.gov/665/Geographic-Information-Systems-GIS",
178
178
  "email": null
179
179
  },
180
- "notes": "Prince George's County is Maryland's second-most populous county (pop. 910,000; county seat Upper Marlboro). The Property_Flattened MapServer on gis.princegeorgescountymd.gov (ArcGIS Server 11.5) is the county's canonical public property layer with 112 fields and 352,791 parcels. Live query confirmed OWNER_NAME exposure. Key fields: ACCOUNT (county account number, 7 digits), PROPERTY_ID (prefixed as '12' + ACCOUNT for the full 9-digit SDAT account number), OWNER_NAME, ICO_NAME (in-care-of), HOUSE_NUMBER (zero-padded 6-digit, e.g. '002909'), STREET_NAME, STREET_TYPE, STREET_DIRECTION, MAIL_STREET/CITY/STATE/ZIP5 (owner mailing address), ASSESS_DIST (assessment district), LAND_AREA_ACRE, LAND_AREA_SQFT, LIBER, FOLIO, SUB_NAME, CONDO_UNIT_NUMBER, TAXMAPGRID. The situs address is split across HOUSE_NUMBER + STREET_NAME + STREET_TYPE. There is no single combined site address field on this layer. The county belongs to the M-NCPPC (Maryland-National Capital Park and Planning Commission) planning region and uses Maryland SDAT for the authoritative ownership record. Prince George's County borders DC and contains the University of Maryland (College Park) and Joint Base Andrews."
180
+ "notes": "Prince George's County is Maryland's second-most populous county (pop. 910,000; county seat Upper Marlboro). The Property_Flattened MapServer on gis.princegeorgescountymd.gov (ArcGIS Server 11.5) is the county's canonical public property layer with 112 fields and 352,791 parcels. Live query confirmed OWNER_NAME exposure. Key fields: ACCOUNT (county account number, 7 digits), PROPERTY_ID (prefixed as '12' + ACCOUNT for the full 9-digit SDAT account number), OWNER_NAME, ICO_NAME (in-care-of), HOUSE_NUMBER (zero-padded 6-digit, e.g. '002909'), STREET_NAME, STREET_TYPE, STREET_DIRECTION, MAIL_STREET/CITY/STATE/ZIP5 (owner mailing address), ASSESS_DIST (assessment district), LAND_AREA_ACRE, LAND_AREA_SQFT, LIBER, FOLIO, SUB_NAME, CONDO_UNIT_NUMBER, TAXMAPGRID. The situs address is split across HOUSE_NUMBER + STREET_NAME + STREET_TYPE. There is no single combined site address field on this layer. The county belongs to the M-NCPPC (Maryland-National Capital Park and Planning Commission) planning region and uses Maryland SDAT for the authoritative ownership record. Prince George's County borders DC and contains the University of Maryland (College Park) and Joint Base Andrews. 2026-10-03: the registered endpoint moved from the county MapServer to the Planning Department's hosted ArcGIS Online copy of the same layer (Property_Flattened_Py FeatureServer on services1.arcgis.com, owner Planning_PGCO_MD, CORS open, maxRecordCount 2000, 353,381 parcels). The reason is a county-side defect, not a schema change: gis.princegeorgescountymd.gov is load-balanced and one backend node lacks the layers, so about every second request to any service on the host (Property_Flattened, Property_Centroids, Property, AddressPoints) answers HTTP 200 with a Layer not found error body, metadata and queries alike, whatever the where clause. The liveness cron does not retry an HTTP 200 error body, so the county flapped between live and degraded. The hosted copy has the same field names (every declared searchField present, plus MAIL_STATE) and returned the same first row as the county host on its good turns, with 18 of 18 probes answering. The old host is deliberately not kept as a second endpoint, because the cron grades a county by its worst endpoint. Caveat: the hosted copy is a periodic refresh by the Planning Department (stamped Updated 20260923), so its freshness is days, not minutes; switch back once the county host answers consistently."
181
181
  },
182
182
  {
183
183
  "id": "md-baltimore",
package/data/nevada.json CHANGED
@@ -62,8 +62,8 @@
62
62
  "corsEnabled": null,
63
63
  "searchFields": [
64
64
  { "name": "APN", "label": "Assessor Parcel Number", "searchable": true },
65
- { "name": "FIRSTNAME", "label": "Owner First Name", "searchable": true },
66
65
  { "name": "LASTNAME", "label": "Owner Last Name", "searchable": true },
66
+ { "name": "FIRSTNAME", "label": "Owner First Name", "searchable": true },
67
67
  { "name": "STREET", "label": "Situs Street Name", "searchable": true },
68
68
  { "name": "STREETNUM", "label": "Situs Street Number", "searchable": false },
69
69
  { "name": "CITY", "label": "Situs City", "searchable": true },
@@ -92,7 +92,7 @@
92
92
  "url": "https://explore-washoe.opendata.arcgis.com/",
93
93
  "email": null
94
94
  },
95
- "notes": "71 fields confirmed including OBJECTID, APN, REGION, PIN, RECMAP, BOOK, PAGE, BLOCK, PARCEL, SUBNAME, TOWNSHIP, RANGE, SECTION_, FLOOR, MAPLINK, FLR, Shape, Shape.STArea(), STREETNUM, STREETDIR, STREET, CITY, SITUSZIP, FIRSTNAME, LASTNAME, MAILING1, MAILING2, MAILCITY, MAILSTATE, MAILZIP, LAND_USE, Zoning, WATER, SEWER, ACREAGE, TAXDIST, BEDROOMS, BATHS, YEARBLT, LANDASS, BUILDASS, TOTALASS, LANDAPR, BUILDAPR, TOTALAPR, DEPRECIATION, SALEDATE, SALEPRICE, OCCUPANCY, PROPCODE, TAXYEAR, STORIES, TOWNHOUSE, SQFEET, UNITS, AVCONSYEAR, BUILDINGTYPE, NBHD, SPECPROPCODE, QC, LAND_BASE, NBC, Fireplaces, HeatType, SecHeatType, Agency, AG_ABBR, FullAddress, ZoningWithDetail, Zoning_GIS, STRAP. Owner name available as FIRSTNAME + LASTNAME (split fields). Live query confirmed: APN 134087 returns 'MIEKO E SPAHR' in RENO 89503. maxRecordCount=1000. Covers Reno, Sparks, and unincorporated Washoe County (pop. 480,000). Note: owner name is public per Nevada law (unlike Clark County which also has a public layer but no owner). Current version 11.4."
95
+ "notes": "71 fields confirmed including OBJECTID, APN, REGION, PIN, RECMAP, BOOK, PAGE, BLOCK, PARCEL, SUBNAME, TOWNSHIP, RANGE, SECTION_, FLOOR, MAPLINK, FLR, Shape, Shape.STArea(), STREETNUM, STREETDIR, STREET, CITY, SITUSZIP, FIRSTNAME, LASTNAME, MAILING1, MAILING2, MAILCITY, MAILSTATE, MAILZIP, LAND_USE, Zoning, WATER, SEWER, ACREAGE, TAXDIST, BEDROOMS, BATHS, YEARBLT, LANDASS, BUILDASS, TOTALASS, LANDAPR, BUILDAPR, TOTALAPR, DEPRECIATION, SALEDATE, SALEPRICE, OCCUPANCY, PROPCODE, TAXYEAR, STORIES, TOWNHOUSE, SQFEET, UNITS, AVCONSYEAR, BUILDINGTYPE, NBHD, SPECPROPCODE, QC, LAND_BASE, NBC, Fireplaces, HeatType, SecHeatType, Agency, AG_ABBR, FullAddress, ZoningWithDetail, Zoning_GIS, STRAP. Owner name available as FIRSTNAME + LASTNAME (split fields). 2026-10-03: LASTNAME is now declared before FIRSTNAME, because the site's owner-field classifier and the stdio MCP server both search the FIRST owner-matching field, so a surname search was running against first names (FIRSTNAME holds values like EDWARD M III; LASTNAME holds SMITH). The sampleQuery already searched LASTNAME and still returns rows. Live query confirmed: APN 134087 returns 'MIEKO E SPAHR' in RENO 89503. maxRecordCount=1000. Covers Reno, Sparks, and unincorporated Washoe County (pop. 480,000). Note: owner name is public per Nevada law (unlike Clark County which also has a public layer but no owner). Current version 11.4."
96
96
  }
97
97
  ]
98
98
  }
@@ -138,25 +138,25 @@
138
138
  "hasPublicRest": true,
139
139
  "endpoints": [
140
140
  {
141
- "url": "https://services9.arcgis.com/GCI7uwdn5grdMNX1/arcgis/rest/services/GEO_MC_Parcels/FeatureServer/9",
141
+ "url": "https://services1.arcgis.com/PsDtSYIjNsyfjwcX/arcgis/rest/services/Monmouth_County_Parcels/FeatureServer/0",
142
142
  "serviceType": "FeatureServer",
143
- "layerIndex": 9,
144
- "layerName": "GEO.MC.Parcels",
143
+ "layerIndex": 0,
144
+ "layerName": "Parcels",
145
145
  "supportsQuery": true,
146
- "corsEnabled": null,
146
+ "corsEnabled": true,
147
147
  "searchFields": [
148
148
  {
149
- "name": "PAMS_PIN",
149
+ "name": "PAMSPIN",
150
150
  "label": "Property Account Management System PIN",
151
151
  "searchable": true
152
152
  },
153
153
  {
154
- "name": "OwnersName",
154
+ "name": "Owner_Name",
155
155
  "label": "Owner Name",
156
156
  "searchable": true
157
157
  },
158
158
  {
159
- "name": "PropertyLocation",
159
+ "name": "Location",
160
160
  "label": "Property Location / Address",
161
161
  "searchable": true
162
162
  },
@@ -186,61 +186,61 @@
186
186
  "searchable": true
187
187
  },
188
188
  {
189
- "name": "PropertyClass",
189
+ "name": "Class",
190
190
  "label": "Property Class Code",
191
191
  "searchable": false
192
192
  },
193
193
  {
194
- "name": "Acreage",
195
- "label": "Acreage",
196
- "searchable": false
197
- },
198
- {
199
- "name": "TotalAssmnt",
200
- "label": "Total Assessment",
194
+ "name": "Net_Value",
195
+ "label": "Net Taxable Value",
201
196
  "searchable": false
202
197
  },
203
198
  {
204
- "name": "LandAssmnt",
199
+ "name": "Land_Value",
205
200
  "label": "Land Assessment",
206
201
  "searchable": false
207
202
  },
208
203
  {
209
- "name": "BuildingAssmnt",
210
- "label": "Building Assessment",
204
+ "name": "Impr_Value",
205
+ "label": "Improvement Assessment",
211
206
  "searchable": false
212
207
  },
213
208
  {
214
- "name": "SaleDate",
209
+ "name": "Sale_Date",
215
210
  "label": "Last Sale Date",
216
211
  "searchable": false
217
212
  },
218
213
  {
219
- "name": "SalePrice",
214
+ "name": "Sale_Price",
220
215
  "label": "Last Sale Price",
221
216
  "searchable": false
222
217
  },
223
218
  {
224
- "name": "YrBuilt",
219
+ "name": "Year_Built",
225
220
  "label": "Year Built",
226
221
  "searchable": false
227
222
  },
228
223
  {
229
- "name": "Zone_",
224
+ "name": "Zone",
230
225
  "label": "Zoning Code",
231
226
  "searchable": false
232
227
  },
233
228
  {
234
- "name": "CityStateZip",
229
+ "name": "Owner_Street",
230
+ "label": "Owner Mailing Street",
231
+ "searchable": true
232
+ },
233
+ {
234
+ "name": "Owner_Csz",
235
235
  "label": "Owner Mailing City/State/ZIP",
236
236
  "searchable": false
237
237
  }
238
238
  ],
239
- "sampleQuery": "https://services9.arcgis.com/GCI7uwdn5grdMNX1/arcgis/rest/services/GEO_MC_Parcels/FeatureServer/9/query?where=UPPER(OwnersName)+LIKE+UPPER('%25SMITH%25')&outFields=PAMS_PIN,OwnersName,PropertyLocation,MUN_NAME,TotalAssmnt,SalePrice&returnGeometry=false&f=json&resultRecordCount=10",
239
+ "sampleQuery": "https://services1.arcgis.com/PsDtSYIjNsyfjwcX/arcgis/rest/services/Monmouth_County_Parcels/FeatureServer/0/query?where=UPPER(Owner_Name)+LIKE+UPPER('%25SMITH%25')&outFields=PAMSPIN,Owner_Name,Location,MUN_NAME,Net_Value,Sale_Price&returnGeometry=false&f=json&resultRecordCount=10",
240
240
  "license": "public",
241
241
  "licenseUrl": "https://gis-monmouthnj.opendata.arcgis.com/",
242
242
  "status": "live",
243
- "lastVerified": "2026-05-15",
243
+ "lastVerified": "2026-10-03",
244
244
  "verifiedBy": "manual"
245
245
  }
246
246
  ],
@@ -249,7 +249,7 @@
249
249
  "url": "https://gis-monmouthnj.opendata.arcgis.com/",
250
250
  "email": null
251
251
  },
252
- "notes": "Monmouth County (pop. 643,000; Jersey Shore and inland suburbs) uses a county-direct FeatureServer separate from the NJOGIS statewide layer. The service at services9.arcgis.com (GEO_MC_Parcels, layer 9) reflects Monmouth County GIS's own MOD-IV data pull. PAMS_PIN is the statewide identifier, structured as county code + municipality code + block + lot + qualifier code (QCODE). OwnersName is public and queryable. Assessment fields include TotalAssmnt, LandAssmnt, BuildingAssmnt, SaleDate, SalePrice, and YrBuilt. CityStateZip is a single concatenated field for owner mailing address. The MUN and MUN_NAME fields identify the 53-municipality breakdown within the county (e.g., Freehold Borough, Long Branch, Red Bank, Asbury Park). Note: NJ Daniel's Law (P.L. 2021, c.371) allows protected individuals -- judges, law enforcement, domestic-violence victims -- to suppress their address from public records; the county layer may return null or redacted values for mailing addresses on affected parcels. For unredacted deed and transfer records, the Monmouth County Clerk's office portal at mcgifts.co.monmouth.nj.us is the authoritative source."
252
+ "notes": "Monmouth County (pop. 643,000; Jersey Shore and inland suburbs) uses a county-direct FeatureServer separate from the NJOGIS statewide layer, whose OWNER_NAME is blank for every Monmouth row. As of 2026-10-03 the county publishes from a new ArcGIS Online org (MonmouthNJGIS): Monmouth_County_Parcels, layer 0 (Parcels) at services1.arcgis.com, item modified 2026-09-25, CORS open, about 265,000 rows. The older services9.arcgis.com GEO_MC_Parcels service now answers Invalid URL and is gone from that org's service list, and the services6.arcgis.com monmouth_county_nj_parcels copy the item search still lists is unshared (Token Required); neither should be re-registered. The layer is Monmouth County GIS's own MOD-IV data pull. PAMSPIN is the statewide identifier, structured as county code + municipality code + block + lot + qualifier code (QCODE). Owner_Name is public and queryable. Assessment fields include Net_Value, Land_Value, Impr_Value, Sale_Date, Sale_Price, and Year_Built; every one of them is a STRING on this layer (Sale_Date reads like 12/09/99), so numeric compares and sorts will not behave. Owner mailing address is split into Owner_Street and Owner_Csz, a single padded city/state/ZIP string; the separate City/State/Zip columns appear to hold a situs postal city and are not declared as mailing fields. The old Acreage field has no reliable twin (Lot_Size read 0.0000 on a sampled row) and was dropped. The layer carries Duplicate and Error flag columns and has more rows than the state composite (265,259 vs 249,796), so duplicate parcels exist and pickers should expect tied rows. The MUN and MUN_NAME fields identify the 53-municipality breakdown within the county (e.g., Freehold Borough, Long Branch, Red Bank, Asbury Park). Note: NJ Daniel's Law (P.L. 2021, c.371) allows protected individuals -- judges, law enforcement, domestic-violence victims -- to suppress their address from public records; the county layer may return null or redacted values for mailing addresses on affected parcels. For unredacted deed and transfer records, the Monmouth County Clerk's office portal at mcgifts.co.monmouth.nj.us is the authoritative source."
253
253
  },
254
254
  {
255
255
  "id": "nj-ocean",