@urbankitstudio/atlas 0.6.1 → 0.6.3

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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 Leo Yong
3
+ Copyright (c) 2026 UrbanKit Studio
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -132,7 +132,7 @@ Omit `?fips=` to get every tracked county in one call.
132
132
 
133
133
  ## Coverage today
134
134
 
135
- The atlas currently bundles **170 counties across all 50 US states**, covering the largest counties in each. Call `listStates()` to enumerate the full set; every state is now populated with at least one verified county endpoint.
135
+ The atlas bundles **171 counties across all 50 US states** (174 verified endpoints), covering the largest counties in each. Call `listStates()` to enumerate the full set. Every state is now populated with at least one verified county endpoint.
136
136
 
137
137
  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.
138
138
 
@@ -140,7 +140,7 @@ The live, browseable atlas lives at [urbankitstudio.com/parcel-atlas](https://ur
140
140
 
141
141
  ## License
142
142
 
143
- MIT — see [LICENSE](./LICENSE). © 2026 Leo Yong.
143
+ MIT — see [LICENSE](./LICENSE). © 2026 UrbanKit Studio.
144
144
 
145
145
  This package's atlas dataset (the open **discovery layer** — county → REST endpoint
146
146
  mappings and field metadata) is provided under MIT. Live, always-fresh and enriched
@@ -238,38 +238,50 @@
238
238
  "hasPublicRest": true,
239
239
  "endpoints": [
240
240
  {
241
- "url": "https://webmaps.sandiego.gov/arcgis/rest/services/GeocoderMerged/MapServer/1",
241
+ "url": "https://gis-public.sandiegocounty.gov/arcgis/rest/services/cosd_warehouse/parcels_all_for_public_use/MapServer/0",
242
242
  "serviceType": "MapServer",
243
- "layerIndex": 1,
244
- "layerName": "PARCELS_ALL",
243
+ "layerIndex": 0,
244
+ "layerName": "Parcels",
245
245
  "supportsQuery": true,
246
246
  "corsEnabled": null,
247
247
  "searchFields": [
248
248
  { "name": "APN", "label": "Assessor Parcel Number", "searchable": true },
249
249
  { "name": "APN_8", "label": "APN (8-digit)", "searchable": true },
250
- { "name": "OWN_NAME1", "label": "Owner Name (Primary)", "searchable": true },
251
- { "name": "OWN_NAME2", "label": "Owner Name 2", "searchable": true },
252
- { "name": "OWN_NAME3", "label": "Owner Name 3", "searchable": true },
253
- { "name": "OWN_ADDR1", "label": "Owner Address 1", "searchable": true },
254
250
  { "name": "SITUS_ADDRESS", "label": "Situs Street Number", "searchable": true },
255
251
  { "name": "SITUS_STREET", "label": "Situs Street Name", "searchable": true },
256
- { "name": "SITUS_COMMUNITY", "label": "Situs Community/City", "searchable": true },
257
- { "name": "SITUS_ZIP", "label": "Situs ZIP", "searchable": true }
252
+ { "name": "SITUS_SUFFIX", "label": "Situs Street Suffix", "searchable": false },
253
+ { "name": "SITUS_PRE_DIR", "label": "Situs Pre-direction", "searchable": false },
254
+ { "name": "SITUS_POST_DIR", "label": "Situs Post-direction", "searchable": false },
255
+ { "name": "SITUS_BUILDING", "label": "Situs Building", "searchable": false },
256
+ { "name": "SITUS_SUITE", "label": "Situs Suite", "searchable": false },
257
+ { "name": "SITUS_ZIP", "label": "Situs ZIP", "searchable": true },
258
+ { "name": "SITUS_JURIS", "label": "Situs Jurisdiction Code", "searchable": false },
259
+ { "name": "ACREAGE", "label": "Acreage", "searchable": false }
258
260
  ],
259
- "sampleQuery": "https://webmaps.sandiego.gov/arcgis/rest/services/GeocoderMerged/MapServer/1/query?where=UPPER(OWN_NAME1)+LIKE+UPPER('%25SMITH%25')&outFields=APN,OWN_NAME1,SITUS_ADDRESS,SITUS_STREET,SITUS_COMMUNITY,SITUS_ZIP&returnGeometry=false&f=json&resultRecordCount=10",
261
+ "sampleQuery": "https://gis-public.sandiegocounty.gov/arcgis/rest/services/cosd_warehouse/parcels_all_for_public_use/MapServer/0/query?where=APN%3D%274982603900%27&outFields=APN,APN_8,SITUS_ADDRESS,SITUS_STREET,SITUS_SUFFIX,SITUS_ZIP&returnGeometry=false&f=json&resultRecordCount=10",
260
262
  "license": "public",
261
- "licenseUrl": "https://gis-public.sandiegocounty.gov/",
263
+ "licenseUrl": "http://web.sangis.org/Legal_Notice.htm",
262
264
  "status": "live",
263
- "lastVerified": "2026-05-15",
265
+ "lastVerified": "2026-09-03",
264
266
  "verifiedBy": "manual"
265
267
  }
266
268
  ],
267
269
  "contact": {
268
- "department": "SanGIS / San Diego County GIS",
270
+ "department": "SanGIS / County of San Diego Assessor",
269
271
  "url": "https://gis-public.sandiegocounty.gov/",
270
272
  "email": null
271
273
  },
272
- "notes": "65 fields confirmed including APN, APN_8, PARCELID, OWN_NAME1/2/3, OWN_ADDR1-4, OWN_ZIP, SITUS_ADDRESS (house number), SITUS_STREET, SITUS_SUFFIX, SITUS_PRE_DIR, SITUS_POST_DIR, SITUS_BUILDING, SITUS_SUITE, SITUS_COMMUNITY, SITUS_ZIP, SITUS_JURIS, OWNEROCC, NUCLEUS_SITUS_FROM_NBR/THRU_NBR, NUCLEUS_USE_CD, NUCLEUS_ZONE_CD. Owner query tested and confirmed, OWN_NAME1 returns real names (e.g., 'SMITH MARY ANN'). The display field is OWN_NAME1. Copyright: 'SanGIS using legal recorded data provided by the County Recorders and Assessor's Office.' This is the GeocoderMerged MapServer layer 1, which combines assessor parcel data. A sibling PARCELS_ALL service exists at gis-public.sandiegocounty.gov/arcgis/rest/services/sdep_warehouse/PARCELS_ALL/MapServer but returns HTTP 403 to external callers; the webmaps.sandiego.gov endpoint is the publicly accessible equivalent."
274
+ "notes": "16 fields confirmed 2026-09-03 on the County of San Diego's public parcel layer (service copyright 'SanGIS, County of San Diego Assessor', service description 'County of San Diego Assessors Parcels (PARCELS_ALL) redacted for public use', ~1.09M rows, maxRecordCount 1000, native State Plane feet, add outSR=4326 for lon/lat): APN, APN_8, SITUS_ADDRESS (house number), SITUS_PRE_DIR, SITUS_STREET, SITUS_SUFFIX, SITUS_POST_DIR, SITUS_FRACTION, SITUS_BUILDING, SITUS_SUITE, SITUS_ZIP, SITUS_JURIS, ACREAGE, QUAL_CLASS_SHAPE and geometry. No owner name, mailing address, sale date, value or community name: the county redacts them on every public derivative. Until 2026-09-03 this entry pointed at the City of San Diego's GeocoderMerged/MapServer/1 (65 fields including OWN_NAME1-3 and OWN_ADDR1-4), which has answered ArcGIS error 500 'Service GeocoderMerged/MapServer not started' since 2026-09-02 20:45Z (autoheal #581); a made-up service name on that host errors differently, so the service exists and is stopped. If the city restarts it, it can return as the owner-bearing endpoint.",
275
+ "capabilityOverrides": {
276
+ "owner_name": {
277
+ "status": "not_published",
278
+ "basis": {
279
+ "type": "endpoint_schema",
280
+ "note": "The County of San Diego's public parcel layer (cosd_warehouse/parcels_all_for_public_use) carries APN and situs address only; owner name, owner mailing address, sale date and assessed value are removed by county policy. The county's owner-attributed layer exists but its own metadata says it is not authorized for public use, so the atlas does not point at it.",
281
+ "sourceUrl": "http://web.sangis.org/Legal_Notice.htm"
282
+ }
283
+ }
284
+ }
273
285
  },
274
286
  {
275
287
  "id": "ca-santa-clara",
package/data/index.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "version": "0.3.0",
3
- "lastUpdated": "2026-08-26",
3
+ "lastUpdated": "2026-09-02",
4
4
  "totals": {
5
5
  "states": 50,
6
- "counties": 170,
7
- "endpoints": 173,
8
- "countiesWithEndpoint": 165
6
+ "counties": 171,
7
+ "endpoints": 174,
8
+ "countiesWithEndpoint": 166
9
9
  },
10
10
  "states": [
11
11
  {
@@ -300,8 +300,8 @@
300
300
  "slug": "oregon",
301
301
  "name": "Oregon",
302
302
  "abbrev": "OR",
303
- "countyCount": 3,
304
- "endpointCount": 3,
303
+ "countyCount": 4,
304
+ "endpointCount": 4,
305
305
  "populated": true
306
306
  },
307
307
  {
package/data/oregon.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "oregon",
3
3
  "stateName": "Oregon",
4
4
  "stateAbbrev": "OR",
5
- "lastUpdated": "2026-06-06",
5
+ "lastUpdated": "2026-09-02",
6
6
  "counties": [
7
7
  {
8
8
  "id": "or-multnomah",
@@ -15,32 +15,31 @@
15
15
  "hasPublicRest": true,
16
16
  "endpoints": [
17
17
  {
18
- "url": "https://services3.arcgis.com/tNPgIZWOB0Efvm0g/ArcGIS/rest/services/Tax_Lots/FeatureServer/0",
18
+ "url": "https://services5.arcgis.com/x7DNZL1YqNQVNykA/arcgis/rest/services/Multnomah_County_Taxlot_Parcels/FeatureServer/0",
19
19
  "serviceType": "FeatureServer",
20
20
  "layerIndex": 0,
21
- "layerName": "Tax Lots",
21
+ "layerName": "Multnomah County Tax Parcels",
22
22
  "supportsQuery": true,
23
23
  "corsEnabled": null,
24
24
  "searchFields": [
25
- { "name": "TLID", "label": "Tax Lot ID", "searchable": true },
26
- { "name": "account_id", "label": "Account ID", "searchable": true },
27
- { "name": "MAILING_NA", "label": "Mailing Name (Owner)", "searchable": true },
28
- { "name": "M_ADDRESS", "label": "Mailing Address", "searchable": true },
29
- { "name": "M_CITY", "label": "Mailing City", "searchable": false },
30
- { "name": "M_STATE", "label": "Mailing State", "searchable": false },
31
- { "name": "zip", "label": "Mailing ZIP", "searchable": false },
32
- { "name": "SITUS_HOUS", "label": "Situs House Number", "searchable": false },
33
- { "name": "SITUS_STRE", "label": "Situs Street Name", "searchable": true },
34
- { "name": "SITUS_CITY", "label": "Situs City", "searchable": true },
35
- { "name": "SITUS_ZIP", "label": "Situs ZIP", "searchable": false },
36
- { "name": "RMV_PROPER", "label": "Real Market Value (Property)", "searchable": false },
37
- { "name": "PROPERTY_C", "label": "Property Class", "searchable": false }
25
+ { "name": "MAPTAXLOT", "label": "Map-Taxlot", "searchable": true },
26
+ { "name": "PROPID", "label": "Property ID", "searchable": true },
27
+ { "name": "NAME", "label": "Owner Name", "searchable": true },
28
+ { "name": "NAME2", "label": "Owner Name 2", "searchable": false },
29
+ { "name": "ADDR1", "label": "Owner Address", "searchable": true },
30
+ { "name": "CITY", "label": "Owner City", "searchable": false },
31
+ { "name": "STATE", "label": "Owner State", "searchable": false },
32
+ { "name": "ZIP", "label": "Owner ZIP", "searchable": false },
33
+ { "name": "SITUSADDR", "label": "Site Address", "searchable": true },
34
+ { "name": "SITUSCITY", "label": "Site City", "searchable": false },
35
+ { "name": "SALE_DATE", "label": "Sale Date", "searchable": false },
36
+ { "name": "SALE_PRICE", "label": "Sale Price", "searchable": false }
38
37
  ],
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",
38
+ "sampleQuery": "https://services5.arcgis.com/x7DNZL1YqNQVNykA/arcgis/rest/services/Multnomah_County_Taxlot_Parcels/FeatureServer/0/query?where=UPPER(NAME)+LIKE+UPPER('%25SMITH%25')&outFields=MAPTAXLOT,PROPID,NAME,ADDR1,CITY,SITUSADDR&returnGeometry=false&f=json&resultRecordCount=10",
40
39
  "license": "public",
41
40
  "licenseUrl": "https://gis-multco.opendata.arcgis.com/",
42
41
  "status": "live",
43
- "lastVerified": "2026-05-15",
42
+ "lastVerified": "2026-09-02",
44
43
  "verifiedBy": "manual"
45
44
  }
46
45
  ],
@@ -49,7 +48,7 @@
49
48
  "url": "https://gis-multco.opendata.arcgis.com/",
50
49
  "email": null
51
50
  },
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."
51
+ "notes": "56 fields confirmed 2026-09-02 including MAPTAXLOT, PROPID, ALTACCTNUM, NAME, NAME2, ADDR1, ADDR2, CITY, STATE, ZIP, SITUSADDR, SITUSCITY, SITUSZIP, LEGAL, DEED_TYPE, INST_NUM, DEED_DATE, SALE_PRICE, SALE_DATE, ZONING, SIZEACRES, ROLLYEAR, ROLLLAND, ROLLIMP. Owner name confirmed live (NAME, e.g. 'SMITH,JENNIFER Q & SMITH,JEREMY C' with ADDR1 and SITUSADDR). Until 2026-09-02 this entry carried the Umatilla County Tax Lots layer (services3.arcgis.com/tNPgIZWOB0Efvm0g), whose own description names Umatilla. That layer now lives under Umatilla County."
53
52
  },
54
53
  {
55
54
  "id": "or-lane",
@@ -83,7 +82,7 @@
83
82
  "license": "public",
84
83
  "licenseUrl": "https://www.lanecounty.org/business/maps",
85
84
  "status": "live",
86
- "lastVerified": "2026-06-06",
85
+ "lastVerified": "2026-09-02",
87
86
  "verifiedBy": "manual"
88
87
  }
89
88
  ],
@@ -92,7 +91,7 @@
92
91
  "url": "https://www.lanecounty.org/business/maps",
93
92
  "email": null
94
93
  },
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."
94
+ "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. OUTAGE 2026-09-01: this path answered 404 'Service not found' for the Oregon probe; live again on 2026-09-02 (200, 75 fields, owner query returns rows). The county also publishes the same parcels at AT/AddressParcelSales/MapServer/2 (26 fields, weekly RLIDgeo publish); use it if this path drops again."
96
95
  },
97
96
  {
98
97
  "id": "or-marion",
@@ -139,6 +138,53 @@
139
138
  "email": null
140
139
  },
141
140
  "notes": "46 fields confirmed including OBJECTID, SHAPE, TAXLOT, TAXACCT, OTHERACCTS, ALT_TAXLOT, ALT_TAXACCT, STREETNUM, PRE_DIR, STREETNAME, STREETTYPE, POST_DIR, UNITNUM, SITUS, SITUSCSZ, PLATNAME, BLOCK, LOT, ACRES, LASTUPDATE, INSTNUM, INSTTYPE, INSTDATE, SALEPRICE, OWNERNAME, OWNERADDR, OWNERCSZ, ZONECODE, ZONEAUTH, ZONEWEB, YEARBUILT, BLDGAREA, LIVINGAREA, PROPCLASS, PRPCLSDESC, RMVLND, RMVIMP, RMVTOTAL, ASSDVAL, TAXCODE, CITY, SCHLDIST, FIREDIST, REFLINK, MAPLINK, TAXLOTNS. Owner name confirmed live: OWNERNAME field returns real owner names (e.g., 'SMITH, BENJAMIN C 25% & SMITH, CYNTHIA 25%...'). Covers Salem metro and all of Marion County. SITUS is the combined situs address string; SITUSCSZ is the city-state-ZIP. Capabilities: Map, Query, Data. maxRecordCount=1000."
141
+ },
142
+ {
143
+ "id": "or-umatilla",
144
+ "state": "OR",
145
+ "stateName": "Oregon",
146
+ "stateSlug": "oregon",
147
+ "county": "Umatilla",
148
+ "countySlug": "umatilla-county",
149
+ "countyFips": "41059",
150
+ "hasPublicRest": true,
151
+ "endpoints": [
152
+ {
153
+ "url": "https://services3.arcgis.com/tNPgIZWOB0Efvm0g/ArcGIS/rest/services/Tax_Lots/FeatureServer/0",
154
+ "serviceType": "FeatureServer",
155
+ "layerIndex": 0,
156
+ "layerName": "Tax Lots",
157
+ "supportsQuery": true,
158
+ "corsEnabled": null,
159
+ "searchFields": [
160
+ { "name": "TLID", "label": "Tax Lot ID", "searchable": true },
161
+ { "name": "account_id", "label": "Account ID", "searchable": true },
162
+ { "name": "MAILING_NA", "label": "Mailing Name (Owner)", "searchable": true },
163
+ { "name": "M_ADDRESS", "label": "Mailing Address", "searchable": true },
164
+ { "name": "M_CITY", "label": "Mailing City", "searchable": false },
165
+ { "name": "M_STATE", "label": "Mailing State", "searchable": false },
166
+ { "name": "zip", "label": "Mailing ZIP", "searchable": false },
167
+ { "name": "SITUS_HOUS", "label": "Situs House Number", "searchable": false },
168
+ { "name": "SITUS_STRE", "label": "Situs Street Name", "searchable": true },
169
+ { "name": "SITUS_CITY", "label": "Situs City", "searchable": true },
170
+ { "name": "SITUS_ZIP", "label": "Situs ZIP", "searchable": false },
171
+ { "name": "RMV_PROPER", "label": "Real Market Value (Property)", "searchable": false },
172
+ { "name": "PROPERTY_C", "label": "Property Class", "searchable": false }
173
+ ],
174
+ "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",
175
+ "license": "public",
176
+ "licenseUrl": "https://www.umatillacounty.gov/departments/at/gis",
177
+ "status": "live",
178
+ "lastVerified": "2026-09-02",
179
+ "verifiedBy": "manual"
180
+ }
181
+ ],
182
+ "contact": {
183
+ "department": "Umatilla County Assessment and Taxation, GIS",
184
+ "url": "https://www.umatillacounty.gov/departments/at/gis",
185
+ "email": null
186
+ },
187
+ "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 Umatilla County GIS (Assessment and Taxation) and covers all of Umatilla County. Capabilities: Query, Sync. Filed under Multnomah until 2026-09-02: the layer's own description reads 'a Umatilla County GIS layer depicting land partition and ownership within Umatilla County' (copyright Umatilla County GIS, service TaxLot_situs_08_06_2025, 44,849 tax lots)."
142
188
  }
143
189
  ]
144
190
  }
package/dist/index.cjs CHANGED
@@ -15,12 +15,12 @@ var LIVE_STATUS_URL = "https://urbankitstudio.com/api/atlas/status";
15
15
  // data/index.json
16
16
  var data_default = {
17
17
  version: "0.3.0",
18
- lastUpdated: "2026-08-26",
18
+ lastUpdated: "2026-09-02",
19
19
  totals: {
20
20
  states: 50,
21
- counties: 170,
22
- endpoints: 173,
23
- countiesWithEndpoint: 165
21
+ counties: 171,
22
+ endpoints: 174,
23
+ countiesWithEndpoint: 166
24
24
  },
25
25
  states: [
26
26
  {
@@ -315,8 +315,8 @@ var data_default = {
315
315
  slug: "oregon",
316
316
  name: "Oregon",
317
317
  abbrev: "OR",
318
- countyCount: 3,
319
- endpointCount: 3,
318
+ countyCount: 4,
319
+ endpointCount: 4,
320
320
  populated: true
321
321
  },
322
322
  {
@@ -1255,38 +1255,50 @@ var california_default = {
1255
1255
  hasPublicRest: true,
1256
1256
  endpoints: [
1257
1257
  {
1258
- url: "https://webmaps.sandiego.gov/arcgis/rest/services/GeocoderMerged/MapServer/1",
1258
+ url: "https://gis-public.sandiegocounty.gov/arcgis/rest/services/cosd_warehouse/parcels_all_for_public_use/MapServer/0",
1259
1259
  serviceType: "MapServer",
1260
- layerIndex: 1,
1261
- layerName: "PARCELS_ALL",
1260
+ layerIndex: 0,
1261
+ layerName: "Parcels",
1262
1262
  supportsQuery: true,
1263
1263
  corsEnabled: null,
1264
1264
  searchFields: [
1265
1265
  { name: "APN", label: "Assessor Parcel Number", searchable: true },
1266
1266
  { name: "APN_8", label: "APN (8-digit)", searchable: true },
1267
- { name: "OWN_NAME1", label: "Owner Name (Primary)", searchable: true },
1268
- { name: "OWN_NAME2", label: "Owner Name 2", searchable: true },
1269
- { name: "OWN_NAME3", label: "Owner Name 3", searchable: true },
1270
- { name: "OWN_ADDR1", label: "Owner Address 1", searchable: true },
1271
1267
  { name: "SITUS_ADDRESS", label: "Situs Street Number", searchable: true },
1272
1268
  { name: "SITUS_STREET", label: "Situs Street Name", searchable: true },
1273
- { name: "SITUS_COMMUNITY", label: "Situs Community/City", searchable: true },
1274
- { name: "SITUS_ZIP", label: "Situs ZIP", searchable: true }
1269
+ { name: "SITUS_SUFFIX", label: "Situs Street Suffix", searchable: false },
1270
+ { name: "SITUS_PRE_DIR", label: "Situs Pre-direction", searchable: false },
1271
+ { name: "SITUS_POST_DIR", label: "Situs Post-direction", searchable: false },
1272
+ { name: "SITUS_BUILDING", label: "Situs Building", searchable: false },
1273
+ { name: "SITUS_SUITE", label: "Situs Suite", searchable: false },
1274
+ { name: "SITUS_ZIP", label: "Situs ZIP", searchable: true },
1275
+ { name: "SITUS_JURIS", label: "Situs Jurisdiction Code", searchable: false },
1276
+ { name: "ACREAGE", label: "Acreage", searchable: false }
1275
1277
  ],
1276
- sampleQuery: "https://webmaps.sandiego.gov/arcgis/rest/services/GeocoderMerged/MapServer/1/query?where=UPPER(OWN_NAME1)+LIKE+UPPER('%25SMITH%25')&outFields=APN,OWN_NAME1,SITUS_ADDRESS,SITUS_STREET,SITUS_COMMUNITY,SITUS_ZIP&returnGeometry=false&f=json&resultRecordCount=10",
1278
+ sampleQuery: "https://gis-public.sandiegocounty.gov/arcgis/rest/services/cosd_warehouse/parcels_all_for_public_use/MapServer/0/query?where=APN%3D%274982603900%27&outFields=APN,APN_8,SITUS_ADDRESS,SITUS_STREET,SITUS_SUFFIX,SITUS_ZIP&returnGeometry=false&f=json&resultRecordCount=10",
1277
1279
  license: "public",
1278
- licenseUrl: "https://gis-public.sandiegocounty.gov/",
1280
+ licenseUrl: "http://web.sangis.org/Legal_Notice.htm",
1279
1281
  status: "live",
1280
- lastVerified: "2026-05-15",
1282
+ lastVerified: "2026-09-03",
1281
1283
  verifiedBy: "manual"
1282
1284
  }
1283
1285
  ],
1284
1286
  contact: {
1285
- department: "SanGIS / San Diego County GIS",
1287
+ department: "SanGIS / County of San Diego Assessor",
1286
1288
  url: "https://gis-public.sandiegocounty.gov/",
1287
1289
  email: null
1288
1290
  },
1289
- notes: "65 fields confirmed including APN, APN_8, PARCELID, OWN_NAME1/2/3, OWN_ADDR1-4, OWN_ZIP, SITUS_ADDRESS (house number), SITUS_STREET, SITUS_SUFFIX, SITUS_PRE_DIR, SITUS_POST_DIR, SITUS_BUILDING, SITUS_SUITE, SITUS_COMMUNITY, SITUS_ZIP, SITUS_JURIS, OWNEROCC, NUCLEUS_SITUS_FROM_NBR/THRU_NBR, NUCLEUS_USE_CD, NUCLEUS_ZONE_CD. Owner query tested and confirmed, OWN_NAME1 returns real names (e.g., 'SMITH MARY ANN'). The display field is OWN_NAME1. Copyright: 'SanGIS using legal recorded data provided by the County Recorders and Assessor's Office.' This is the GeocoderMerged MapServer layer 1, which combines assessor parcel data. A sibling PARCELS_ALL service exists at gis-public.sandiegocounty.gov/arcgis/rest/services/sdep_warehouse/PARCELS_ALL/MapServer but returns HTTP 403 to external callers; the webmaps.sandiego.gov endpoint is the publicly accessible equivalent."
1291
+ notes: "16 fields confirmed 2026-09-03 on the County of San Diego's public parcel layer (service copyright 'SanGIS, County of San Diego Assessor', service description 'County of San Diego Assessors Parcels (PARCELS_ALL) redacted for public use', ~1.09M rows, maxRecordCount 1000, native State Plane feet, add outSR=4326 for lon/lat): APN, APN_8, SITUS_ADDRESS (house number), SITUS_PRE_DIR, SITUS_STREET, SITUS_SUFFIX, SITUS_POST_DIR, SITUS_FRACTION, SITUS_BUILDING, SITUS_SUITE, SITUS_ZIP, SITUS_JURIS, ACREAGE, QUAL_CLASS_SHAPE and geometry. No owner name, mailing address, sale date, value or community name: the county redacts them on every public derivative. Until 2026-09-03 this entry pointed at the City of San Diego's GeocoderMerged/MapServer/1 (65 fields including OWN_NAME1-3 and OWN_ADDR1-4), which has answered ArcGIS error 500 'Service GeocoderMerged/MapServer not started' since 2026-09-02 20:45Z (autoheal #581); a made-up service name on that host errors differently, so the service exists and is stopped. If the city restarts it, it can return as the owner-bearing endpoint.",
1292
+ capabilityOverrides: {
1293
+ owner_name: {
1294
+ status: "not_published",
1295
+ basis: {
1296
+ type: "endpoint_schema",
1297
+ note: "The County of San Diego's public parcel layer (cosd_warehouse/parcels_all_for_public_use) carries APN and situs address only; owner name, owner mailing address, sale date and assessed value are removed by county policy. The county's owner-attributed layer exists but its own metadata says it is not authorized for public use, so the atlas does not point at it.",
1298
+ sourceUrl: "http://web.sangis.org/Legal_Notice.htm"
1299
+ }
1300
+ }
1301
+ }
1290
1302
  },
1291
1303
  {
1292
1304
  id: "ca-santa-clara",
@@ -10076,7 +10088,7 @@ var oregon_default = {
10076
10088
  stateSlug: "oregon",
10077
10089
  stateName: "Oregon",
10078
10090
  stateAbbrev: "OR",
10079
- lastUpdated: "2026-06-06",
10091
+ lastUpdated: "2026-09-02",
10080
10092
  counties: [
10081
10093
  {
10082
10094
  id: "or-multnomah",
@@ -10089,32 +10101,31 @@ var oregon_default = {
10089
10101
  hasPublicRest: true,
10090
10102
  endpoints: [
10091
10103
  {
10092
- url: "https://services3.arcgis.com/tNPgIZWOB0Efvm0g/ArcGIS/rest/services/Tax_Lots/FeatureServer/0",
10104
+ url: "https://services5.arcgis.com/x7DNZL1YqNQVNykA/arcgis/rest/services/Multnomah_County_Taxlot_Parcels/FeatureServer/0",
10093
10105
  serviceType: "FeatureServer",
10094
10106
  layerIndex: 0,
10095
- layerName: "Tax Lots",
10107
+ layerName: "Multnomah County Tax Parcels",
10096
10108
  supportsQuery: true,
10097
10109
  corsEnabled: null,
10098
10110
  searchFields: [
10099
- { name: "TLID", label: "Tax Lot ID", searchable: true },
10100
- { name: "account_id", label: "Account ID", searchable: true },
10101
- { name: "MAILING_NA", label: "Mailing Name (Owner)", searchable: true },
10102
- { name: "M_ADDRESS", label: "Mailing Address", searchable: true },
10103
- { name: "M_CITY", label: "Mailing City", searchable: false },
10104
- { name: "M_STATE", label: "Mailing State", searchable: false },
10105
- { name: "zip", label: "Mailing ZIP", searchable: false },
10106
- { name: "SITUS_HOUS", label: "Situs House Number", searchable: false },
10107
- { name: "SITUS_STRE", label: "Situs Street Name", searchable: true },
10108
- { name: "SITUS_CITY", label: "Situs City", searchable: true },
10109
- { name: "SITUS_ZIP", label: "Situs ZIP", searchable: false },
10110
- { name: "RMV_PROPER", label: "Real Market Value (Property)", searchable: false },
10111
- { name: "PROPERTY_C", label: "Property Class", searchable: false }
10111
+ { name: "MAPTAXLOT", label: "Map-Taxlot", searchable: true },
10112
+ { name: "PROPID", label: "Property ID", searchable: true },
10113
+ { name: "NAME", label: "Owner Name", searchable: true },
10114
+ { name: "NAME2", label: "Owner Name 2", searchable: false },
10115
+ { name: "ADDR1", label: "Owner Address", searchable: true },
10116
+ { name: "CITY", label: "Owner City", searchable: false },
10117
+ { name: "STATE", label: "Owner State", searchable: false },
10118
+ { name: "ZIP", label: "Owner ZIP", searchable: false },
10119
+ { name: "SITUSADDR", label: "Site Address", searchable: true },
10120
+ { name: "SITUSCITY", label: "Site City", searchable: false },
10121
+ { name: "SALE_DATE", label: "Sale Date", searchable: false },
10122
+ { name: "SALE_PRICE", label: "Sale Price", searchable: false }
10112
10123
  ],
10113
- 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",
10124
+ sampleQuery: "https://services5.arcgis.com/x7DNZL1YqNQVNykA/arcgis/rest/services/Multnomah_County_Taxlot_Parcels/FeatureServer/0/query?where=UPPER(NAME)+LIKE+UPPER('%25SMITH%25')&outFields=MAPTAXLOT,PROPID,NAME,ADDR1,CITY,SITUSADDR&returnGeometry=false&f=json&resultRecordCount=10",
10114
10125
  license: "public",
10115
10126
  licenseUrl: "https://gis-multco.opendata.arcgis.com/",
10116
10127
  status: "live",
10117
- lastVerified: "2026-05-15",
10128
+ lastVerified: "2026-09-02",
10118
10129
  verifiedBy: "manual"
10119
10130
  }
10120
10131
  ],
@@ -10123,7 +10134,7 @@ var oregon_default = {
10123
10134
  url: "https://gis-multco.opendata.arcgis.com/",
10124
10135
  email: null
10125
10136
  },
10126
- 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."
10137
+ notes: "56 fields confirmed 2026-09-02 including MAPTAXLOT, PROPID, ALTACCTNUM, NAME, NAME2, ADDR1, ADDR2, CITY, STATE, ZIP, SITUSADDR, SITUSCITY, SITUSZIP, LEGAL, DEED_TYPE, INST_NUM, DEED_DATE, SALE_PRICE, SALE_DATE, ZONING, SIZEACRES, ROLLYEAR, ROLLLAND, ROLLIMP. Owner name confirmed live (NAME, e.g. 'SMITH,JENNIFER Q & SMITH,JEREMY C' with ADDR1 and SITUSADDR). Until 2026-09-02 this entry carried the Umatilla County Tax Lots layer (services3.arcgis.com/tNPgIZWOB0Efvm0g), whose own description names Umatilla. That layer now lives under Umatilla County."
10127
10138
  },
10128
10139
  {
10129
10140
  id: "or-lane",
@@ -10157,7 +10168,7 @@ var oregon_default = {
10157
10168
  license: "public",
10158
10169
  licenseUrl: "https://www.lanecounty.org/business/maps",
10159
10170
  status: "live",
10160
- lastVerified: "2026-06-06",
10171
+ lastVerified: "2026-09-02",
10161
10172
  verifiedBy: "manual"
10162
10173
  }
10163
10174
  ],
@@ -10166,7 +10177,7 @@ var oregon_default = {
10166
10177
  url: "https://www.lanecounty.org/business/maps",
10167
10178
  email: null
10168
10179
  },
10169
- 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."
10180
+ 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. OUTAGE 2026-09-01: this path answered 404 'Service not found' for the Oregon probe; live again on 2026-09-02 (200, 75 fields, owner query returns rows). The county also publishes the same parcels at AT/AddressParcelSales/MapServer/2 (26 fields, weekly RLIDgeo publish); use it if this path drops again."
10170
10181
  },
10171
10182
  {
10172
10183
  id: "or-marion",
@@ -10213,6 +10224,53 @@ var oregon_default = {
10213
10224
  email: null
10214
10225
  },
10215
10226
  notes: "46 fields confirmed including OBJECTID, SHAPE, TAXLOT, TAXACCT, OTHERACCTS, ALT_TAXLOT, ALT_TAXACCT, STREETNUM, PRE_DIR, STREETNAME, STREETTYPE, POST_DIR, UNITNUM, SITUS, SITUSCSZ, PLATNAME, BLOCK, LOT, ACRES, LASTUPDATE, INSTNUM, INSTTYPE, INSTDATE, SALEPRICE, OWNERNAME, OWNERADDR, OWNERCSZ, ZONECODE, ZONEAUTH, ZONEWEB, YEARBUILT, BLDGAREA, LIVINGAREA, PROPCLASS, PRPCLSDESC, RMVLND, RMVIMP, RMVTOTAL, ASSDVAL, TAXCODE, CITY, SCHLDIST, FIREDIST, REFLINK, MAPLINK, TAXLOTNS. Owner name confirmed live: OWNERNAME field returns real owner names (e.g., 'SMITH, BENJAMIN C 25% & SMITH, CYNTHIA 25%...'). Covers Salem metro and all of Marion County. SITUS is the combined situs address string; SITUSCSZ is the city-state-ZIP. Capabilities: Map, Query, Data. maxRecordCount=1000."
10227
+ },
10228
+ {
10229
+ id: "or-umatilla",
10230
+ state: "OR",
10231
+ stateName: "Oregon",
10232
+ stateSlug: "oregon",
10233
+ county: "Umatilla",
10234
+ countySlug: "umatilla-county",
10235
+ countyFips: "41059",
10236
+ hasPublicRest: true,
10237
+ endpoints: [
10238
+ {
10239
+ url: "https://services3.arcgis.com/tNPgIZWOB0Efvm0g/ArcGIS/rest/services/Tax_Lots/FeatureServer/0",
10240
+ serviceType: "FeatureServer",
10241
+ layerIndex: 0,
10242
+ layerName: "Tax Lots",
10243
+ supportsQuery: true,
10244
+ corsEnabled: null,
10245
+ searchFields: [
10246
+ { name: "TLID", label: "Tax Lot ID", searchable: true },
10247
+ { name: "account_id", label: "Account ID", searchable: true },
10248
+ { name: "MAILING_NA", label: "Mailing Name (Owner)", searchable: true },
10249
+ { name: "M_ADDRESS", label: "Mailing Address", searchable: true },
10250
+ { name: "M_CITY", label: "Mailing City", searchable: false },
10251
+ { name: "M_STATE", label: "Mailing State", searchable: false },
10252
+ { name: "zip", label: "Mailing ZIP", searchable: false },
10253
+ { name: "SITUS_HOUS", label: "Situs House Number", searchable: false },
10254
+ { name: "SITUS_STRE", label: "Situs Street Name", searchable: true },
10255
+ { name: "SITUS_CITY", label: "Situs City", searchable: true },
10256
+ { name: "SITUS_ZIP", label: "Situs ZIP", searchable: false },
10257
+ { name: "RMV_PROPER", label: "Real Market Value (Property)", searchable: false },
10258
+ { name: "PROPERTY_C", label: "Property Class", searchable: false }
10259
+ ],
10260
+ 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",
10261
+ license: "public",
10262
+ licenseUrl: "https://www.umatillacounty.gov/departments/at/gis",
10263
+ status: "live",
10264
+ lastVerified: "2026-09-02",
10265
+ verifiedBy: "manual"
10266
+ }
10267
+ ],
10268
+ contact: {
10269
+ department: "Umatilla County Assessment and Taxation, GIS",
10270
+ url: "https://www.umatillacounty.gov/departments/at/gis",
10271
+ email: null
10272
+ },
10273
+ 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 Umatilla County GIS (Assessment and Taxation) and covers all of Umatilla County. Capabilities: Query, Sync. Filed under Multnomah until 2026-09-02: the layer's own description reads 'a Umatilla County GIS layer depicting land partition and ownership within Umatilla County' (copyright Umatilla County GIS, service TaxLot_situs_08_06_2025, 44,849 tax lots)."
10216
10274
  }
10217
10275
  ]
10218
10276
  };
package/dist/index.js CHANGED
@@ -13,12 +13,12 @@ var LIVE_STATUS_URL = "https://urbankitstudio.com/api/atlas/status";
13
13
  // data/index.json
14
14
  var data_default = {
15
15
  version: "0.3.0",
16
- lastUpdated: "2026-08-26",
16
+ lastUpdated: "2026-09-02",
17
17
  totals: {
18
18
  states: 50,
19
- counties: 170,
20
- endpoints: 173,
21
- countiesWithEndpoint: 165
19
+ counties: 171,
20
+ endpoints: 174,
21
+ countiesWithEndpoint: 166
22
22
  },
23
23
  states: [
24
24
  {
@@ -313,8 +313,8 @@ var data_default = {
313
313
  slug: "oregon",
314
314
  name: "Oregon",
315
315
  abbrev: "OR",
316
- countyCount: 3,
317
- endpointCount: 3,
316
+ countyCount: 4,
317
+ endpointCount: 4,
318
318
  populated: true
319
319
  },
320
320
  {
@@ -1253,38 +1253,50 @@ var california_default = {
1253
1253
  hasPublicRest: true,
1254
1254
  endpoints: [
1255
1255
  {
1256
- url: "https://webmaps.sandiego.gov/arcgis/rest/services/GeocoderMerged/MapServer/1",
1256
+ url: "https://gis-public.sandiegocounty.gov/arcgis/rest/services/cosd_warehouse/parcels_all_for_public_use/MapServer/0",
1257
1257
  serviceType: "MapServer",
1258
- layerIndex: 1,
1259
- layerName: "PARCELS_ALL",
1258
+ layerIndex: 0,
1259
+ layerName: "Parcels",
1260
1260
  supportsQuery: true,
1261
1261
  corsEnabled: null,
1262
1262
  searchFields: [
1263
1263
  { name: "APN", label: "Assessor Parcel Number", searchable: true },
1264
1264
  { name: "APN_8", label: "APN (8-digit)", searchable: true },
1265
- { name: "OWN_NAME1", label: "Owner Name (Primary)", searchable: true },
1266
- { name: "OWN_NAME2", label: "Owner Name 2", searchable: true },
1267
- { name: "OWN_NAME3", label: "Owner Name 3", searchable: true },
1268
- { name: "OWN_ADDR1", label: "Owner Address 1", searchable: true },
1269
1265
  { name: "SITUS_ADDRESS", label: "Situs Street Number", searchable: true },
1270
1266
  { name: "SITUS_STREET", label: "Situs Street Name", searchable: true },
1271
- { name: "SITUS_COMMUNITY", label: "Situs Community/City", searchable: true },
1272
- { name: "SITUS_ZIP", label: "Situs ZIP", searchable: true }
1267
+ { name: "SITUS_SUFFIX", label: "Situs Street Suffix", searchable: false },
1268
+ { name: "SITUS_PRE_DIR", label: "Situs Pre-direction", searchable: false },
1269
+ { name: "SITUS_POST_DIR", label: "Situs Post-direction", searchable: false },
1270
+ { name: "SITUS_BUILDING", label: "Situs Building", searchable: false },
1271
+ { name: "SITUS_SUITE", label: "Situs Suite", searchable: false },
1272
+ { name: "SITUS_ZIP", label: "Situs ZIP", searchable: true },
1273
+ { name: "SITUS_JURIS", label: "Situs Jurisdiction Code", searchable: false },
1274
+ { name: "ACREAGE", label: "Acreage", searchable: false }
1273
1275
  ],
1274
- sampleQuery: "https://webmaps.sandiego.gov/arcgis/rest/services/GeocoderMerged/MapServer/1/query?where=UPPER(OWN_NAME1)+LIKE+UPPER('%25SMITH%25')&outFields=APN,OWN_NAME1,SITUS_ADDRESS,SITUS_STREET,SITUS_COMMUNITY,SITUS_ZIP&returnGeometry=false&f=json&resultRecordCount=10",
1276
+ sampleQuery: "https://gis-public.sandiegocounty.gov/arcgis/rest/services/cosd_warehouse/parcels_all_for_public_use/MapServer/0/query?where=APN%3D%274982603900%27&outFields=APN,APN_8,SITUS_ADDRESS,SITUS_STREET,SITUS_SUFFIX,SITUS_ZIP&returnGeometry=false&f=json&resultRecordCount=10",
1275
1277
  license: "public",
1276
- licenseUrl: "https://gis-public.sandiegocounty.gov/",
1278
+ licenseUrl: "http://web.sangis.org/Legal_Notice.htm",
1277
1279
  status: "live",
1278
- lastVerified: "2026-05-15",
1280
+ lastVerified: "2026-09-03",
1279
1281
  verifiedBy: "manual"
1280
1282
  }
1281
1283
  ],
1282
1284
  contact: {
1283
- department: "SanGIS / San Diego County GIS",
1285
+ department: "SanGIS / County of San Diego Assessor",
1284
1286
  url: "https://gis-public.sandiegocounty.gov/",
1285
1287
  email: null
1286
1288
  },
1287
- notes: "65 fields confirmed including APN, APN_8, PARCELID, OWN_NAME1/2/3, OWN_ADDR1-4, OWN_ZIP, SITUS_ADDRESS (house number), SITUS_STREET, SITUS_SUFFIX, SITUS_PRE_DIR, SITUS_POST_DIR, SITUS_BUILDING, SITUS_SUITE, SITUS_COMMUNITY, SITUS_ZIP, SITUS_JURIS, OWNEROCC, NUCLEUS_SITUS_FROM_NBR/THRU_NBR, NUCLEUS_USE_CD, NUCLEUS_ZONE_CD. Owner query tested and confirmed, OWN_NAME1 returns real names (e.g., 'SMITH MARY ANN'). The display field is OWN_NAME1. Copyright: 'SanGIS using legal recorded data provided by the County Recorders and Assessor's Office.' This is the GeocoderMerged MapServer layer 1, which combines assessor parcel data. A sibling PARCELS_ALL service exists at gis-public.sandiegocounty.gov/arcgis/rest/services/sdep_warehouse/PARCELS_ALL/MapServer but returns HTTP 403 to external callers; the webmaps.sandiego.gov endpoint is the publicly accessible equivalent."
1289
+ notes: "16 fields confirmed 2026-09-03 on the County of San Diego's public parcel layer (service copyright 'SanGIS, County of San Diego Assessor', service description 'County of San Diego Assessors Parcels (PARCELS_ALL) redacted for public use', ~1.09M rows, maxRecordCount 1000, native State Plane feet, add outSR=4326 for lon/lat): APN, APN_8, SITUS_ADDRESS (house number), SITUS_PRE_DIR, SITUS_STREET, SITUS_SUFFIX, SITUS_POST_DIR, SITUS_FRACTION, SITUS_BUILDING, SITUS_SUITE, SITUS_ZIP, SITUS_JURIS, ACREAGE, QUAL_CLASS_SHAPE and geometry. No owner name, mailing address, sale date, value or community name: the county redacts them on every public derivative. Until 2026-09-03 this entry pointed at the City of San Diego's GeocoderMerged/MapServer/1 (65 fields including OWN_NAME1-3 and OWN_ADDR1-4), which has answered ArcGIS error 500 'Service GeocoderMerged/MapServer not started' since 2026-09-02 20:45Z (autoheal #581); a made-up service name on that host errors differently, so the service exists and is stopped. If the city restarts it, it can return as the owner-bearing endpoint.",
1290
+ capabilityOverrides: {
1291
+ owner_name: {
1292
+ status: "not_published",
1293
+ basis: {
1294
+ type: "endpoint_schema",
1295
+ note: "The County of San Diego's public parcel layer (cosd_warehouse/parcels_all_for_public_use) carries APN and situs address only; owner name, owner mailing address, sale date and assessed value are removed by county policy. The county's owner-attributed layer exists but its own metadata says it is not authorized for public use, so the atlas does not point at it.",
1296
+ sourceUrl: "http://web.sangis.org/Legal_Notice.htm"
1297
+ }
1298
+ }
1299
+ }
1288
1300
  },
1289
1301
  {
1290
1302
  id: "ca-santa-clara",
@@ -10074,7 +10086,7 @@ var oregon_default = {
10074
10086
  stateSlug: "oregon",
10075
10087
  stateName: "Oregon",
10076
10088
  stateAbbrev: "OR",
10077
- lastUpdated: "2026-06-06",
10089
+ lastUpdated: "2026-09-02",
10078
10090
  counties: [
10079
10091
  {
10080
10092
  id: "or-multnomah",
@@ -10087,32 +10099,31 @@ var oregon_default = {
10087
10099
  hasPublicRest: true,
10088
10100
  endpoints: [
10089
10101
  {
10090
- url: "https://services3.arcgis.com/tNPgIZWOB0Efvm0g/ArcGIS/rest/services/Tax_Lots/FeatureServer/0",
10102
+ url: "https://services5.arcgis.com/x7DNZL1YqNQVNykA/arcgis/rest/services/Multnomah_County_Taxlot_Parcels/FeatureServer/0",
10091
10103
  serviceType: "FeatureServer",
10092
10104
  layerIndex: 0,
10093
- layerName: "Tax Lots",
10105
+ layerName: "Multnomah County Tax Parcels",
10094
10106
  supportsQuery: true,
10095
10107
  corsEnabled: null,
10096
10108
  searchFields: [
10097
- { name: "TLID", label: "Tax Lot ID", searchable: true },
10098
- { name: "account_id", label: "Account ID", searchable: true },
10099
- { name: "MAILING_NA", label: "Mailing Name (Owner)", searchable: true },
10100
- { name: "M_ADDRESS", label: "Mailing Address", searchable: true },
10101
- { name: "M_CITY", label: "Mailing City", searchable: false },
10102
- { name: "M_STATE", label: "Mailing State", searchable: false },
10103
- { name: "zip", label: "Mailing ZIP", searchable: false },
10104
- { name: "SITUS_HOUS", label: "Situs House Number", searchable: false },
10105
- { name: "SITUS_STRE", label: "Situs Street Name", searchable: true },
10106
- { name: "SITUS_CITY", label: "Situs City", searchable: true },
10107
- { name: "SITUS_ZIP", label: "Situs ZIP", searchable: false },
10108
- { name: "RMV_PROPER", label: "Real Market Value (Property)", searchable: false },
10109
- { name: "PROPERTY_C", label: "Property Class", searchable: false }
10109
+ { name: "MAPTAXLOT", label: "Map-Taxlot", searchable: true },
10110
+ { name: "PROPID", label: "Property ID", searchable: true },
10111
+ { name: "NAME", label: "Owner Name", searchable: true },
10112
+ { name: "NAME2", label: "Owner Name 2", searchable: false },
10113
+ { name: "ADDR1", label: "Owner Address", searchable: true },
10114
+ { name: "CITY", label: "Owner City", searchable: false },
10115
+ { name: "STATE", label: "Owner State", searchable: false },
10116
+ { name: "ZIP", label: "Owner ZIP", searchable: false },
10117
+ { name: "SITUSADDR", label: "Site Address", searchable: true },
10118
+ { name: "SITUSCITY", label: "Site City", searchable: false },
10119
+ { name: "SALE_DATE", label: "Sale Date", searchable: false },
10120
+ { name: "SALE_PRICE", label: "Sale Price", searchable: false }
10110
10121
  ],
10111
- 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",
10122
+ sampleQuery: "https://services5.arcgis.com/x7DNZL1YqNQVNykA/arcgis/rest/services/Multnomah_County_Taxlot_Parcels/FeatureServer/0/query?where=UPPER(NAME)+LIKE+UPPER('%25SMITH%25')&outFields=MAPTAXLOT,PROPID,NAME,ADDR1,CITY,SITUSADDR&returnGeometry=false&f=json&resultRecordCount=10",
10112
10123
  license: "public",
10113
10124
  licenseUrl: "https://gis-multco.opendata.arcgis.com/",
10114
10125
  status: "live",
10115
- lastVerified: "2026-05-15",
10126
+ lastVerified: "2026-09-02",
10116
10127
  verifiedBy: "manual"
10117
10128
  }
10118
10129
  ],
@@ -10121,7 +10132,7 @@ var oregon_default = {
10121
10132
  url: "https://gis-multco.opendata.arcgis.com/",
10122
10133
  email: null
10123
10134
  },
10124
- 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."
10135
+ notes: "56 fields confirmed 2026-09-02 including MAPTAXLOT, PROPID, ALTACCTNUM, NAME, NAME2, ADDR1, ADDR2, CITY, STATE, ZIP, SITUSADDR, SITUSCITY, SITUSZIP, LEGAL, DEED_TYPE, INST_NUM, DEED_DATE, SALE_PRICE, SALE_DATE, ZONING, SIZEACRES, ROLLYEAR, ROLLLAND, ROLLIMP. Owner name confirmed live (NAME, e.g. 'SMITH,JENNIFER Q & SMITH,JEREMY C' with ADDR1 and SITUSADDR). Until 2026-09-02 this entry carried the Umatilla County Tax Lots layer (services3.arcgis.com/tNPgIZWOB0Efvm0g), whose own description names Umatilla. That layer now lives under Umatilla County."
10125
10136
  },
10126
10137
  {
10127
10138
  id: "or-lane",
@@ -10155,7 +10166,7 @@ var oregon_default = {
10155
10166
  license: "public",
10156
10167
  licenseUrl: "https://www.lanecounty.org/business/maps",
10157
10168
  status: "live",
10158
- lastVerified: "2026-06-06",
10169
+ lastVerified: "2026-09-02",
10159
10170
  verifiedBy: "manual"
10160
10171
  }
10161
10172
  ],
@@ -10164,7 +10175,7 @@ var oregon_default = {
10164
10175
  url: "https://www.lanecounty.org/business/maps",
10165
10176
  email: null
10166
10177
  },
10167
- 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."
10178
+ 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. OUTAGE 2026-09-01: this path answered 404 'Service not found' for the Oregon probe; live again on 2026-09-02 (200, 75 fields, owner query returns rows). The county also publishes the same parcels at AT/AddressParcelSales/MapServer/2 (26 fields, weekly RLIDgeo publish); use it if this path drops again."
10168
10179
  },
10169
10180
  {
10170
10181
  id: "or-marion",
@@ -10211,6 +10222,53 @@ var oregon_default = {
10211
10222
  email: null
10212
10223
  },
10213
10224
  notes: "46 fields confirmed including OBJECTID, SHAPE, TAXLOT, TAXACCT, OTHERACCTS, ALT_TAXLOT, ALT_TAXACCT, STREETNUM, PRE_DIR, STREETNAME, STREETTYPE, POST_DIR, UNITNUM, SITUS, SITUSCSZ, PLATNAME, BLOCK, LOT, ACRES, LASTUPDATE, INSTNUM, INSTTYPE, INSTDATE, SALEPRICE, OWNERNAME, OWNERADDR, OWNERCSZ, ZONECODE, ZONEAUTH, ZONEWEB, YEARBUILT, BLDGAREA, LIVINGAREA, PROPCLASS, PRPCLSDESC, RMVLND, RMVIMP, RMVTOTAL, ASSDVAL, TAXCODE, CITY, SCHLDIST, FIREDIST, REFLINK, MAPLINK, TAXLOTNS. Owner name confirmed live: OWNERNAME field returns real owner names (e.g., 'SMITH, BENJAMIN C 25% & SMITH, CYNTHIA 25%...'). Covers Salem metro and all of Marion County. SITUS is the combined situs address string; SITUSCSZ is the city-state-ZIP. Capabilities: Map, Query, Data. maxRecordCount=1000."
10225
+ },
10226
+ {
10227
+ id: "or-umatilla",
10228
+ state: "OR",
10229
+ stateName: "Oregon",
10230
+ stateSlug: "oregon",
10231
+ county: "Umatilla",
10232
+ countySlug: "umatilla-county",
10233
+ countyFips: "41059",
10234
+ hasPublicRest: true,
10235
+ endpoints: [
10236
+ {
10237
+ url: "https://services3.arcgis.com/tNPgIZWOB0Efvm0g/ArcGIS/rest/services/Tax_Lots/FeatureServer/0",
10238
+ serviceType: "FeatureServer",
10239
+ layerIndex: 0,
10240
+ layerName: "Tax Lots",
10241
+ supportsQuery: true,
10242
+ corsEnabled: null,
10243
+ searchFields: [
10244
+ { name: "TLID", label: "Tax Lot ID", searchable: true },
10245
+ { name: "account_id", label: "Account ID", searchable: true },
10246
+ { name: "MAILING_NA", label: "Mailing Name (Owner)", searchable: true },
10247
+ { name: "M_ADDRESS", label: "Mailing Address", searchable: true },
10248
+ { name: "M_CITY", label: "Mailing City", searchable: false },
10249
+ { name: "M_STATE", label: "Mailing State", searchable: false },
10250
+ { name: "zip", label: "Mailing ZIP", searchable: false },
10251
+ { name: "SITUS_HOUS", label: "Situs House Number", searchable: false },
10252
+ { name: "SITUS_STRE", label: "Situs Street Name", searchable: true },
10253
+ { name: "SITUS_CITY", label: "Situs City", searchable: true },
10254
+ { name: "SITUS_ZIP", label: "Situs ZIP", searchable: false },
10255
+ { name: "RMV_PROPER", label: "Real Market Value (Property)", searchable: false },
10256
+ { name: "PROPERTY_C", label: "Property Class", searchable: false }
10257
+ ],
10258
+ 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",
10259
+ license: "public",
10260
+ licenseUrl: "https://www.umatillacounty.gov/departments/at/gis",
10261
+ status: "live",
10262
+ lastVerified: "2026-09-02",
10263
+ verifiedBy: "manual"
10264
+ }
10265
+ ],
10266
+ contact: {
10267
+ department: "Umatilla County Assessment and Taxation, GIS",
10268
+ url: "https://www.umatillacounty.gov/departments/at/gis",
10269
+ email: null
10270
+ },
10271
+ 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 Umatilla County GIS (Assessment and Taxation) and covers all of Umatilla County. Capabilities: Query, Sync. Filed under Multnomah until 2026-09-02: the layer's own description reads 'a Umatilla County GIS layer depicting land partition and ownership within Umatilla County' (copyright Umatilla County GIS, service TaxLot_situs_08_06_2025, 44,849 tax lots)."
10214
10272
  }
10215
10273
  ]
10216
10274
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@urbankitstudio/atlas",
3
- "version": "0.6.1",
4
- "description": "JS SDK for the UrbanKit County Parcel REST API Atlas — public ArcGIS REST endpoints for US county parcel data, with searchable field metadata, sample queries, and license info.",
3
+ "version": "0.6.3",
4
+ "description": "JS SDK for the UrbanKit County Parcel REST API Atlas: 171 counties across all 50 US states, 174 verified public ArcGIS REST endpoints for county parcel data, with searchable field metadata, sample queries and license info.",
5
5
  "keywords": [
6
6
  "parcel",
7
7
  "arcgis",
@@ -23,7 +23,7 @@
23
23
  "bugs": {
24
24
  "url": "https://github.com/LEOyrh/urbankitstudio/issues"
25
25
  },
26
- "author": "Leo Yong <leoyrhbiz@gmail.com>",
26
+ "author": "UrbanKit Studio <urbankitstudio@gmail.com>",
27
27
  "license": "MIT",
28
28
  "type": "module",
29
29
  "main": "./dist/index.cjs",