@urbankitstudio/atlas 0.6.11 → 0.6.12
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 +2 -2
- package/data/index.json +7 -7
- package/data/minnesota.json +45 -1
- package/data/missouri.json +44 -1
- package/dist/index.cjs +96 -9
- package/dist/index.js +96 -9
- package/package.json +2 -2
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 **
|
|
137
|
+
The atlas bundles **241 counties across all 50 US states and DC** (253 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
|
|
139
|
+
Every state has at least one county on record, and 235 of the 241 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/index.json
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"lastUpdated": "2026-10-03",
|
|
4
4
|
"totals": {
|
|
5
5
|
"states": 51,
|
|
6
|
-
"counties":
|
|
7
|
-
"endpoints":
|
|
8
|
-
"countiesWithEndpoint":
|
|
6
|
+
"counties": 241,
|
|
7
|
+
"endpoints": 253,
|
|
8
|
+
"countiesWithEndpoint": 235,
|
|
9
9
|
"countiesUnprobeable": 1
|
|
10
10
|
},
|
|
11
11
|
"states": [
|
|
@@ -197,8 +197,8 @@
|
|
|
197
197
|
"slug": "minnesota",
|
|
198
198
|
"name": "Minnesota",
|
|
199
199
|
"abbrev": "MN",
|
|
200
|
-
"countyCount":
|
|
201
|
-
"endpointCount":
|
|
200
|
+
"countyCount": 3,
|
|
201
|
+
"endpointCount": 3,
|
|
202
202
|
"populated": true
|
|
203
203
|
},
|
|
204
204
|
{
|
|
@@ -213,8 +213,8 @@
|
|
|
213
213
|
"slug": "missouri",
|
|
214
214
|
"name": "Missouri",
|
|
215
215
|
"abbrev": "MO",
|
|
216
|
-
"countyCount":
|
|
217
|
-
"endpointCount":
|
|
216
|
+
"countyCount": 3,
|
|
217
|
+
"endpointCount": 3,
|
|
218
218
|
"populated": true
|
|
219
219
|
},
|
|
220
220
|
{
|
package/data/minnesota.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"stateSlug": "minnesota",
|
|
3
3
|
"stateName": "Minnesota",
|
|
4
4
|
"stateAbbrev": "MN",
|
|
5
|
-
"lastUpdated": "2026-
|
|
5
|
+
"lastUpdated": "2026-10-03",
|
|
6
6
|
"counties": [
|
|
7
7
|
{
|
|
8
8
|
"id": "mn-ramsey",
|
|
@@ -166,6 +166,50 @@
|
|
|
166
166
|
"email": null
|
|
167
167
|
},
|
|
168
168
|
"notes": "448,036 polygon parcels covering Minneapolis and the rest of Hennepin County. Verified 2026-05-11: UPPER(OWNER_NM) LIKE '%SMITH%' returns real owners (e.g., 'ALEX D SMITH', 'PAUL LOUIS SMITH'). Owner names are space-padded fixed-width, wrap searches in UPPER() and trim whitespace client-side. Full residential address columns present (HOUSE_NO, FRAC_HOUSE_NO, STREET_NM, MAILING_MUNIC_NM, ZIP_CD). PID is 13-digit composite (parcel-fragment-municipality-section). TORRENS_TYP flag distinguishes Torrens vs. Abstract land per Minnesota's dual-title system. OUTAGE RESOLVED 2026-06-06: the 2026-05 county-side outage cleared -- service re-verified live (448,083 parcels; OWNER_NM queries return real owners)."
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"id": "mn-mille-lacs",
|
|
172
|
+
"state": "MN",
|
|
173
|
+
"stateName": "Minnesota",
|
|
174
|
+
"stateSlug": "minnesota",
|
|
175
|
+
"county": "Mille Lacs",
|
|
176
|
+
"countySlug": "mille-lacs-county",
|
|
177
|
+
"countyFips": "27095",
|
|
178
|
+
"hasPublicRest": true,
|
|
179
|
+
"endpoints": [
|
|
180
|
+
{
|
|
181
|
+
"url": "https://gis.co.mille-lacs.mn.us/arcgis/rest/services/MilleLacs_Public_101/MapServer/35",
|
|
182
|
+
"serviceType": "MapServer",
|
|
183
|
+
"layerIndex": 35,
|
|
184
|
+
"layerName": "Parcels",
|
|
185
|
+
"supportsQuery": true,
|
|
186
|
+
"corsEnabled": true,
|
|
187
|
+
"searchFields": [
|
|
188
|
+
{ "name": "TAXPAYER_NAME", "label": "Taxpayer Name", "searchable": true },
|
|
189
|
+
{ "name": "PARCELID", "label": "Parcel Number", "searchable": true },
|
|
190
|
+
{ "name": "PROPERTY_ADDRESS", "label": "Property Address", "searchable": true },
|
|
191
|
+
{ "name": "PROPERTY_ZIP", "label": "Property ZIP", "searchable": false },
|
|
192
|
+
{ "name": "CITY_TWP_NAME", "label": "City/Township Name", "searchable": true },
|
|
193
|
+
{ "name": "TAXPAYER_ADDRESS_1", "label": "Taxpayer Mailing Address 1", "searchable": true },
|
|
194
|
+
{ "name": "TAXPAYER_ADDRESS_2", "label": "Taxpayer Mailing Address 2", "searchable": false },
|
|
195
|
+
{ "name": "TAXPAYER_ADDRESS_3", "label": "Taxpayer Mailing Address 3", "searchable": false },
|
|
196
|
+
{ "name": "TAXPAYER_ADDRESS_4", "label": "Taxpayer Mailing Address 4", "searchable": false },
|
|
197
|
+
{ "name": "DEEDED_ACRES", "label": "Deeded Acres", "searchable": false }
|
|
198
|
+
],
|
|
199
|
+
"sampleQuery": "https://gis.co.mille-lacs.mn.us/arcgis/rest/services/MilleLacs_Public_101/MapServer/35/query?where=UPPER(TAXPAYER_NAME)%20LIKE%20%27%25SMITH%25%27&outFields=PARCELID,TAXPAYER_NAME,PROPERTY_ADDRESS,TAXPAYER_ADDRESS_1,CITY_TWP_NAME&returnGeometry=false&resultRecordCount=10&f=json",
|
|
200
|
+
"license": "unknown",
|
|
201
|
+
"licenseUrl": "https://www.millelacs.mn.gov/",
|
|
202
|
+
"status": "live",
|
|
203
|
+
"lastVerified": "2026-10-03",
|
|
204
|
+
"verifiedBy": "manual"
|
|
205
|
+
}
|
|
206
|
+
],
|
|
207
|
+
"contact": {
|
|
208
|
+
"department": "Mille Lacs County GIS / Assessor's Office",
|
|
209
|
+
"url": "https://www.millelacs.mn.gov/1185/Assessors-Office",
|
|
210
|
+
"email": null
|
|
211
|
+
},
|
|
212
|
+
"notes": "Mille Lacs County, Minnesota (county seat Milaca) publishes its parcels on its own ArcGIS Server 11.3 as MilleLacs_Public_101/MapServer layer 35 (Parcels), 20,083 rows with a taxpayer name on 2026-10-03. THE OWNER IS IN TAXPAYER_NAME, stored LAST/FIRST with a slash (SMITH/BRIAN & ASHLEY). A column called OWNER_NAME exists but is an empty string on about 97 percent of rows (544 of 20,083 populated on 2026-10-03; not NULL, so IS NOT NULL passes while the value is blank), and where it is populated it names a different party from TAXPAYER_NAME (a contract-for-deed holder or an LLC, for example), so the taxpayer is not always the owner of record. UPPER(OWNER_NAME) LIKE 'SMITH%' returns 0 features. OWNER_NAME is deliberately NOT listed as a search field here: the enrichment classifier takes the first owner-looking field, so listing it would route owner lookups to a mostly blank column. The mailing address is TAXPAYER_ADDRESS_1 to _4 (use _1 for the street); the matching OWNER_ADDRESS_1 to _4 columns were not checked. The site address is PROPERTY_ADDRESS with PROPERTY_ZIP and CITY_TWP_NAME. Search with UPPER(TAXPAYER_NAME) LIKE '%SMITH%'. maxRecordCount is 2000. CORS reflects the request Origin (Access-Control-Allow-Origin echoed back, credentials true), and named outFields work. No license text was found. Do not use the statewide Minnesota parcel layers for owner search: the DNR plan_parcels_minnesota layer has owner_name but no county, parcel id or address field, so a query bleeds into neighbouring counties, and the MnGeo plan_parcels_open layer filters by co_code 27095 (20,928 rows) but its owner_name is blank for all but 550 rows (control: Itasca 27061, 0 populated). The same county server also lists Assessors/TaxParcels/MapServer/0, which has only a parcel name and geometry. Verified live 2026-10-03: taxpayer SMITH returned rows (first SMITH/BRIAN & ASHLEY, parcel 11-010-0100, 17903 130TH AVE, Milaca Township)."
|
|
169
213
|
}
|
|
170
214
|
]
|
|
171
215
|
}
|
package/data/missouri.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"stateSlug": "missouri",
|
|
3
3
|
"stateName": "Missouri",
|
|
4
4
|
"stateAbbrev": "MO",
|
|
5
|
-
"lastUpdated": "2026-
|
|
5
|
+
"lastUpdated": "2026-10-03",
|
|
6
6
|
"counties": [
|
|
7
7
|
{
|
|
8
8
|
"id": "mo-jackson",
|
|
@@ -94,6 +94,49 @@
|
|
|
94
94
|
"email": null
|
|
95
95
|
},
|
|
96
96
|
"notes": "St. Louis County MO (St. Louis metro west/south, county seat Clayton, NOT the independent City of St. Louis) provides AGS_Parcels/MapServer/0 with 30+ fields: LOCATOR (parcel ID), PARENT_LOC, TAXYR, OWNER_NAME, PROP_ADRNUM, PROP_ADD, PROP_ZIP, OWN_ADD, OWN_CITY, OWN_STATE, OWN_ZIP, SCHSUB (school subdivision), MUNYCODE (municipality code), TAXCODE, ASSTIMPVAL, TOTASSMT, APPLANDVAL, APPIMPVAL, TOTAPVAL, PROPCLASS, LUC, LANDUSE2, LUCODE, TENURE, BLDGNAME, TWPNAME. Query confirmed live: UPPER(OWNER_NAME) LIKE '%SMITH%' returns real results (e.g., 'SMITH KIMBERLY & ANTHONY T/E' at '11041 LILAC AVE'). St. Louis County MO (FIPS 29189) is a separate entity from the City of St. Louis (FIPS 29510, an independent city not part of any county). The GeoData portal at data-stlcogis.opendata.arcgis.com provides open data downloads and GeoServices API links. The maps.stlouisco.com server is the live REST host."
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"id": "mo-st-louis-city",
|
|
100
|
+
"state": "MO",
|
|
101
|
+
"stateName": "Missouri",
|
|
102
|
+
"stateSlug": "missouri",
|
|
103
|
+
"county": "St. Louis city",
|
|
104
|
+
"countySlug": "st-louis-city",
|
|
105
|
+
"countyFips": "29510",
|
|
106
|
+
"hasPublicRest": true,
|
|
107
|
+
"endpoints": [
|
|
108
|
+
{
|
|
109
|
+
"url": "https://maps8.stlouis-mo.gov/arcgis/rest/services/ASSESSOR/Assessor_Public_Parcels/MapServer/11",
|
|
110
|
+
"serviceType": "MapServer",
|
|
111
|
+
"layerIndex": 11,
|
|
112
|
+
"layerName": "Parcels",
|
|
113
|
+
"supportsQuery": true,
|
|
114
|
+
"corsEnabled": false,
|
|
115
|
+
"searchFields": [
|
|
116
|
+
{ "name": "OwnerName", "label": "Owner Name", "searchable": true },
|
|
117
|
+
{ "name": "OwnerName2", "label": "Owner Name 2", "searchable": false },
|
|
118
|
+
{ "name": "ParcelId", "label": "Parcel ID", "searchable": true },
|
|
119
|
+
{ "name": "SITEADDR", "label": "Site Address", "searchable": true },
|
|
120
|
+
{ "name": "OwnerAddr", "label": "Owner Mailing Address", "searchable": true },
|
|
121
|
+
{ "name": "OwnerCity", "label": "Owner Mailing City", "searchable": false },
|
|
122
|
+
{ "name": "OwnerState", "label": "Owner Mailing State", "searchable": false },
|
|
123
|
+
{ "name": "OwnerZIP", "label": "Owner Mailing ZIP", "searchable": false },
|
|
124
|
+
{ "name": "ZIP", "label": "Site ZIP", "searchable": false }
|
|
125
|
+
],
|
|
126
|
+
"sampleQuery": "https://maps8.stlouis-mo.gov/arcgis/rest/services/ASSESSOR/Assessor_Public_Parcels/MapServer/11/query?where=UPPER(OwnerName)%20LIKE%20%27SMITH%25%27&outFields=ParcelId,OwnerName,OwnerAddr,OwnerCity,SITEADDR&returnGeometry=false&resultRecordCount=10&f=json",
|
|
127
|
+
"license": "unknown",
|
|
128
|
+
"licenseUrl": "https://www.stlouis-mo.gov/data/parcels.cfm",
|
|
129
|
+
"status": "live",
|
|
130
|
+
"lastVerified": "2026-10-03",
|
|
131
|
+
"verifiedBy": "manual"
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
"contact": {
|
|
135
|
+
"department": "City of St. Louis Assessor's Office",
|
|
136
|
+
"url": "https://www.stlouis-mo.gov/data/parcels.cfm",
|
|
137
|
+
"email": null
|
|
138
|
+
},
|
|
139
|
+
"notes": "City of St. Louis, Missouri (FIPS 29510) is an independent city that belongs to no county, and it is NOT St. Louis County (29189, a separate record in this file on a different server). The Assessor's public parcels layer is ASSESSOR/Assessor_Public_Parcels/MapServer layer 11 (Parcels) on ArcGIS Server 11.2, listed on the city's data page. SERVER-SIDE ONLY: the server sends Access-Control-Allow-Origin only to its own origin (www.stlouis-mo.gov); for any other Origin a GET and its preflight return only Vary: Origin and Access-Control-Allow-Private-Network: true, so a browser on another site cannot read it and corsEnabled is false. Query it from a server, the metered API or the MCP, not from page script. The owner is OwnerName (max 40 characters, so long names are truncated at the source) with OwnerName2; the mailing address is OwnerAddr plus OwnerCity (max 13 characters, can read ST LOUIS MO) with OwnerState, OwnerZIP and OwnerCountry; the parcel id is ParcelId (11 digits, LowerParcelId also exists). SITEADDR carries runs of internal spaces (2233 PARK AV) and trailing padding, so a LIKE on a full street string misses; search on the house number plus a street word, or collapse whitespace on the client. Search with UPPER(OwnerName) LIKE 'SMITH%'; broad searches return exceededTransferLimit true at the 2000-row page. The layer has 194 fields and this record lists a subset. Layer 11 includes condominium master parcels, and the sub-accounts are layer 10 (not examined). No license or terms text is published on the data page. Verified live 2026-10-03: owner SMITH returned rows (first SMITH, DAVID E & SANDRA L TRS, parcel 22669130000, 2233 PARK AVE)."
|
|
97
140
|
}
|
|
98
141
|
]
|
|
99
142
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -18,9 +18,9 @@ var data_default = {
|
|
|
18
18
|
lastUpdated: "2026-10-03",
|
|
19
19
|
totals: {
|
|
20
20
|
states: 51,
|
|
21
|
-
counties:
|
|
22
|
-
endpoints:
|
|
23
|
-
countiesWithEndpoint:
|
|
21
|
+
counties: 241,
|
|
22
|
+
endpoints: 253,
|
|
23
|
+
countiesWithEndpoint: 235,
|
|
24
24
|
countiesUnprobeable: 1
|
|
25
25
|
},
|
|
26
26
|
states: [
|
|
@@ -212,8 +212,8 @@ var data_default = {
|
|
|
212
212
|
slug: "minnesota",
|
|
213
213
|
name: "Minnesota",
|
|
214
214
|
abbrev: "MN",
|
|
215
|
-
countyCount:
|
|
216
|
-
endpointCount:
|
|
215
|
+
countyCount: 3,
|
|
216
|
+
endpointCount: 3,
|
|
217
217
|
populated: true
|
|
218
218
|
},
|
|
219
219
|
{
|
|
@@ -228,8 +228,8 @@ var data_default = {
|
|
|
228
228
|
slug: "missouri",
|
|
229
229
|
name: "Missouri",
|
|
230
230
|
abbrev: "MO",
|
|
231
|
-
countyCount:
|
|
232
|
-
endpointCount:
|
|
231
|
+
countyCount: 3,
|
|
232
|
+
endpointCount: 3,
|
|
233
233
|
populated: true
|
|
234
234
|
},
|
|
235
235
|
{
|
|
@@ -15449,7 +15449,7 @@ var minnesota_default = {
|
|
|
15449
15449
|
stateSlug: "minnesota",
|
|
15450
15450
|
stateName: "Minnesota",
|
|
15451
15451
|
stateAbbrev: "MN",
|
|
15452
|
-
lastUpdated: "2026-
|
|
15452
|
+
lastUpdated: "2026-10-03",
|
|
15453
15453
|
counties: [
|
|
15454
15454
|
{
|
|
15455
15455
|
id: "mn-ramsey",
|
|
@@ -15613,6 +15613,50 @@ var minnesota_default = {
|
|
|
15613
15613
|
email: null
|
|
15614
15614
|
},
|
|
15615
15615
|
notes: "448,036 polygon parcels covering Minneapolis and the rest of Hennepin County. Verified 2026-05-11: UPPER(OWNER_NM) LIKE '%SMITH%' returns real owners (e.g., 'ALEX D SMITH', 'PAUL LOUIS SMITH'). Owner names are space-padded fixed-width, wrap searches in UPPER() and trim whitespace client-side. Full residential address columns present (HOUSE_NO, FRAC_HOUSE_NO, STREET_NM, MAILING_MUNIC_NM, ZIP_CD). PID is 13-digit composite (parcel-fragment-municipality-section). TORRENS_TYP flag distinguishes Torrens vs. Abstract land per Minnesota's dual-title system. OUTAGE RESOLVED 2026-06-06: the 2026-05 county-side outage cleared -- service re-verified live (448,083 parcels; OWNER_NM queries return real owners)."
|
|
15616
|
+
},
|
|
15617
|
+
{
|
|
15618
|
+
id: "mn-mille-lacs",
|
|
15619
|
+
state: "MN",
|
|
15620
|
+
stateName: "Minnesota",
|
|
15621
|
+
stateSlug: "minnesota",
|
|
15622
|
+
county: "Mille Lacs",
|
|
15623
|
+
countySlug: "mille-lacs-county",
|
|
15624
|
+
countyFips: "27095",
|
|
15625
|
+
hasPublicRest: true,
|
|
15626
|
+
endpoints: [
|
|
15627
|
+
{
|
|
15628
|
+
url: "https://gis.co.mille-lacs.mn.us/arcgis/rest/services/MilleLacs_Public_101/MapServer/35",
|
|
15629
|
+
serviceType: "MapServer",
|
|
15630
|
+
layerIndex: 35,
|
|
15631
|
+
layerName: "Parcels",
|
|
15632
|
+
supportsQuery: true,
|
|
15633
|
+
corsEnabled: true,
|
|
15634
|
+
searchFields: [
|
|
15635
|
+
{ name: "TAXPAYER_NAME", label: "Taxpayer Name", searchable: true },
|
|
15636
|
+
{ name: "PARCELID", label: "Parcel Number", searchable: true },
|
|
15637
|
+
{ name: "PROPERTY_ADDRESS", label: "Property Address", searchable: true },
|
|
15638
|
+
{ name: "PROPERTY_ZIP", label: "Property ZIP", searchable: false },
|
|
15639
|
+
{ name: "CITY_TWP_NAME", label: "City/Township Name", searchable: true },
|
|
15640
|
+
{ name: "TAXPAYER_ADDRESS_1", label: "Taxpayer Mailing Address 1", searchable: true },
|
|
15641
|
+
{ name: "TAXPAYER_ADDRESS_2", label: "Taxpayer Mailing Address 2", searchable: false },
|
|
15642
|
+
{ name: "TAXPAYER_ADDRESS_3", label: "Taxpayer Mailing Address 3", searchable: false },
|
|
15643
|
+
{ name: "TAXPAYER_ADDRESS_4", label: "Taxpayer Mailing Address 4", searchable: false },
|
|
15644
|
+
{ name: "DEEDED_ACRES", label: "Deeded Acres", searchable: false }
|
|
15645
|
+
],
|
|
15646
|
+
sampleQuery: "https://gis.co.mille-lacs.mn.us/arcgis/rest/services/MilleLacs_Public_101/MapServer/35/query?where=UPPER(TAXPAYER_NAME)%20LIKE%20%27%25SMITH%25%27&outFields=PARCELID,TAXPAYER_NAME,PROPERTY_ADDRESS,TAXPAYER_ADDRESS_1,CITY_TWP_NAME&returnGeometry=false&resultRecordCount=10&f=json",
|
|
15647
|
+
license: "unknown",
|
|
15648
|
+
licenseUrl: "https://www.millelacs.mn.gov/",
|
|
15649
|
+
status: "live",
|
|
15650
|
+
lastVerified: "2026-10-03",
|
|
15651
|
+
verifiedBy: "manual"
|
|
15652
|
+
}
|
|
15653
|
+
],
|
|
15654
|
+
contact: {
|
|
15655
|
+
department: "Mille Lacs County GIS / Assessor's Office",
|
|
15656
|
+
url: "https://www.millelacs.mn.gov/1185/Assessors-Office",
|
|
15657
|
+
email: null
|
|
15658
|
+
},
|
|
15659
|
+
notes: "Mille Lacs County, Minnesota (county seat Milaca) publishes its parcels on its own ArcGIS Server 11.3 as MilleLacs_Public_101/MapServer layer 35 (Parcels), 20,083 rows with a taxpayer name on 2026-10-03. THE OWNER IS IN TAXPAYER_NAME, stored LAST/FIRST with a slash (SMITH/BRIAN & ASHLEY). A column called OWNER_NAME exists but is an empty string on about 97 percent of rows (544 of 20,083 populated on 2026-10-03; not NULL, so IS NOT NULL passes while the value is blank), and where it is populated it names a different party from TAXPAYER_NAME (a contract-for-deed holder or an LLC, for example), so the taxpayer is not always the owner of record. UPPER(OWNER_NAME) LIKE 'SMITH%' returns 0 features. OWNER_NAME is deliberately NOT listed as a search field here: the enrichment classifier takes the first owner-looking field, so listing it would route owner lookups to a mostly blank column. The mailing address is TAXPAYER_ADDRESS_1 to _4 (use _1 for the street); the matching OWNER_ADDRESS_1 to _4 columns were not checked. The site address is PROPERTY_ADDRESS with PROPERTY_ZIP and CITY_TWP_NAME. Search with UPPER(TAXPAYER_NAME) LIKE '%SMITH%'. maxRecordCount is 2000. CORS reflects the request Origin (Access-Control-Allow-Origin echoed back, credentials true), and named outFields work. No license text was found. Do not use the statewide Minnesota parcel layers for owner search: the DNR plan_parcels_minnesota layer has owner_name but no county, parcel id or address field, so a query bleeds into neighbouring counties, and the MnGeo plan_parcels_open layer filters by co_code 27095 (20,928 rows) but its owner_name is blank for all but 550 rows (control: Itasca 27061, 0 populated). The same county server also lists Assessors/TaxParcels/MapServer/0, which has only a parcel name and geometry. Verified live 2026-10-03: taxpayer SMITH returned rows (first SMITH/BRIAN & ASHLEY, parcel 11-010-0100, 17903 130TH AVE, Milaca Township)."
|
|
15616
15660
|
}
|
|
15617
15661
|
]
|
|
15618
15662
|
};
|
|
@@ -15718,7 +15762,7 @@ var missouri_default = {
|
|
|
15718
15762
|
stateSlug: "missouri",
|
|
15719
15763
|
stateName: "Missouri",
|
|
15720
15764
|
stateAbbrev: "MO",
|
|
15721
|
-
lastUpdated: "2026-
|
|
15765
|
+
lastUpdated: "2026-10-03",
|
|
15722
15766
|
counties: [
|
|
15723
15767
|
{
|
|
15724
15768
|
id: "mo-jackson",
|
|
@@ -15810,6 +15854,49 @@ var missouri_default = {
|
|
|
15810
15854
|
email: null
|
|
15811
15855
|
},
|
|
15812
15856
|
notes: "St. Louis County MO (St. Louis metro west/south, county seat Clayton, NOT the independent City of St. Louis) provides AGS_Parcels/MapServer/0 with 30+ fields: LOCATOR (parcel ID), PARENT_LOC, TAXYR, OWNER_NAME, PROP_ADRNUM, PROP_ADD, PROP_ZIP, OWN_ADD, OWN_CITY, OWN_STATE, OWN_ZIP, SCHSUB (school subdivision), MUNYCODE (municipality code), TAXCODE, ASSTIMPVAL, TOTASSMT, APPLANDVAL, APPIMPVAL, TOTAPVAL, PROPCLASS, LUC, LANDUSE2, LUCODE, TENURE, BLDGNAME, TWPNAME. Query confirmed live: UPPER(OWNER_NAME) LIKE '%SMITH%' returns real results (e.g., 'SMITH KIMBERLY & ANTHONY T/E' at '11041 LILAC AVE'). St. Louis County MO (FIPS 29189) is a separate entity from the City of St. Louis (FIPS 29510, an independent city not part of any county). The GeoData portal at data-stlcogis.opendata.arcgis.com provides open data downloads and GeoServices API links. The maps.stlouisco.com server is the live REST host."
|
|
15857
|
+
},
|
|
15858
|
+
{
|
|
15859
|
+
id: "mo-st-louis-city",
|
|
15860
|
+
state: "MO",
|
|
15861
|
+
stateName: "Missouri",
|
|
15862
|
+
stateSlug: "missouri",
|
|
15863
|
+
county: "St. Louis city",
|
|
15864
|
+
countySlug: "st-louis-city",
|
|
15865
|
+
countyFips: "29510",
|
|
15866
|
+
hasPublicRest: true,
|
|
15867
|
+
endpoints: [
|
|
15868
|
+
{
|
|
15869
|
+
url: "https://maps8.stlouis-mo.gov/arcgis/rest/services/ASSESSOR/Assessor_Public_Parcels/MapServer/11",
|
|
15870
|
+
serviceType: "MapServer",
|
|
15871
|
+
layerIndex: 11,
|
|
15872
|
+
layerName: "Parcels",
|
|
15873
|
+
supportsQuery: true,
|
|
15874
|
+
corsEnabled: false,
|
|
15875
|
+
searchFields: [
|
|
15876
|
+
{ name: "OwnerName", label: "Owner Name", searchable: true },
|
|
15877
|
+
{ name: "OwnerName2", label: "Owner Name 2", searchable: false },
|
|
15878
|
+
{ name: "ParcelId", label: "Parcel ID", searchable: true },
|
|
15879
|
+
{ name: "SITEADDR", label: "Site Address", searchable: true },
|
|
15880
|
+
{ name: "OwnerAddr", label: "Owner Mailing Address", searchable: true },
|
|
15881
|
+
{ name: "OwnerCity", label: "Owner Mailing City", searchable: false },
|
|
15882
|
+
{ name: "OwnerState", label: "Owner Mailing State", searchable: false },
|
|
15883
|
+
{ name: "OwnerZIP", label: "Owner Mailing ZIP", searchable: false },
|
|
15884
|
+
{ name: "ZIP", label: "Site ZIP", searchable: false }
|
|
15885
|
+
],
|
|
15886
|
+
sampleQuery: "https://maps8.stlouis-mo.gov/arcgis/rest/services/ASSESSOR/Assessor_Public_Parcels/MapServer/11/query?where=UPPER(OwnerName)%20LIKE%20%27SMITH%25%27&outFields=ParcelId,OwnerName,OwnerAddr,OwnerCity,SITEADDR&returnGeometry=false&resultRecordCount=10&f=json",
|
|
15887
|
+
license: "unknown",
|
|
15888
|
+
licenseUrl: "https://www.stlouis-mo.gov/data/parcels.cfm",
|
|
15889
|
+
status: "live",
|
|
15890
|
+
lastVerified: "2026-10-03",
|
|
15891
|
+
verifiedBy: "manual"
|
|
15892
|
+
}
|
|
15893
|
+
],
|
|
15894
|
+
contact: {
|
|
15895
|
+
department: "City of St. Louis Assessor's Office",
|
|
15896
|
+
url: "https://www.stlouis-mo.gov/data/parcels.cfm",
|
|
15897
|
+
email: null
|
|
15898
|
+
},
|
|
15899
|
+
notes: "City of St. Louis, Missouri (FIPS 29510) is an independent city that belongs to no county, and it is NOT St. Louis County (29189, a separate record in this file on a different server). The Assessor's public parcels layer is ASSESSOR/Assessor_Public_Parcels/MapServer layer 11 (Parcels) on ArcGIS Server 11.2, listed on the city's data page. SERVER-SIDE ONLY: the server sends Access-Control-Allow-Origin only to its own origin (www.stlouis-mo.gov); for any other Origin a GET and its preflight return only Vary: Origin and Access-Control-Allow-Private-Network: true, so a browser on another site cannot read it and corsEnabled is false. Query it from a server, the metered API or the MCP, not from page script. The owner is OwnerName (max 40 characters, so long names are truncated at the source) with OwnerName2; the mailing address is OwnerAddr plus OwnerCity (max 13 characters, can read ST LOUIS MO) with OwnerState, OwnerZIP and OwnerCountry; the parcel id is ParcelId (11 digits, LowerParcelId also exists). SITEADDR carries runs of internal spaces (2233 PARK AV) and trailing padding, so a LIKE on a full street string misses; search on the house number plus a street word, or collapse whitespace on the client. Search with UPPER(OwnerName) LIKE 'SMITH%'; broad searches return exceededTransferLimit true at the 2000-row page. The layer has 194 fields and this record lists a subset. Layer 11 includes condominium master parcels, and the sub-accounts are layer 10 (not examined). No license or terms text is published on the data page. Verified live 2026-10-03: owner SMITH returned rows (first SMITH, DAVID E & SANDRA L TRS, parcel 22669130000, 2233 PARK AVE)."
|
|
15813
15900
|
}
|
|
15814
15901
|
]
|
|
15815
15902
|
};
|
package/dist/index.js
CHANGED
|
@@ -16,9 +16,9 @@ var data_default = {
|
|
|
16
16
|
lastUpdated: "2026-10-03",
|
|
17
17
|
totals: {
|
|
18
18
|
states: 51,
|
|
19
|
-
counties:
|
|
20
|
-
endpoints:
|
|
21
|
-
countiesWithEndpoint:
|
|
19
|
+
counties: 241,
|
|
20
|
+
endpoints: 253,
|
|
21
|
+
countiesWithEndpoint: 235,
|
|
22
22
|
countiesUnprobeable: 1
|
|
23
23
|
},
|
|
24
24
|
states: [
|
|
@@ -210,8 +210,8 @@ var data_default = {
|
|
|
210
210
|
slug: "minnesota",
|
|
211
211
|
name: "Minnesota",
|
|
212
212
|
abbrev: "MN",
|
|
213
|
-
countyCount:
|
|
214
|
-
endpointCount:
|
|
213
|
+
countyCount: 3,
|
|
214
|
+
endpointCount: 3,
|
|
215
215
|
populated: true
|
|
216
216
|
},
|
|
217
217
|
{
|
|
@@ -226,8 +226,8 @@ var data_default = {
|
|
|
226
226
|
slug: "missouri",
|
|
227
227
|
name: "Missouri",
|
|
228
228
|
abbrev: "MO",
|
|
229
|
-
countyCount:
|
|
230
|
-
endpointCount:
|
|
229
|
+
countyCount: 3,
|
|
230
|
+
endpointCount: 3,
|
|
231
231
|
populated: true
|
|
232
232
|
},
|
|
233
233
|
{
|
|
@@ -15447,7 +15447,7 @@ var minnesota_default = {
|
|
|
15447
15447
|
stateSlug: "minnesota",
|
|
15448
15448
|
stateName: "Minnesota",
|
|
15449
15449
|
stateAbbrev: "MN",
|
|
15450
|
-
lastUpdated: "2026-
|
|
15450
|
+
lastUpdated: "2026-10-03",
|
|
15451
15451
|
counties: [
|
|
15452
15452
|
{
|
|
15453
15453
|
id: "mn-ramsey",
|
|
@@ -15611,6 +15611,50 @@ var minnesota_default = {
|
|
|
15611
15611
|
email: null
|
|
15612
15612
|
},
|
|
15613
15613
|
notes: "448,036 polygon parcels covering Minneapolis and the rest of Hennepin County. Verified 2026-05-11: UPPER(OWNER_NM) LIKE '%SMITH%' returns real owners (e.g., 'ALEX D SMITH', 'PAUL LOUIS SMITH'). Owner names are space-padded fixed-width, wrap searches in UPPER() and trim whitespace client-side. Full residential address columns present (HOUSE_NO, FRAC_HOUSE_NO, STREET_NM, MAILING_MUNIC_NM, ZIP_CD). PID is 13-digit composite (parcel-fragment-municipality-section). TORRENS_TYP flag distinguishes Torrens vs. Abstract land per Minnesota's dual-title system. OUTAGE RESOLVED 2026-06-06: the 2026-05 county-side outage cleared -- service re-verified live (448,083 parcels; OWNER_NM queries return real owners)."
|
|
15614
|
+
},
|
|
15615
|
+
{
|
|
15616
|
+
id: "mn-mille-lacs",
|
|
15617
|
+
state: "MN",
|
|
15618
|
+
stateName: "Minnesota",
|
|
15619
|
+
stateSlug: "minnesota",
|
|
15620
|
+
county: "Mille Lacs",
|
|
15621
|
+
countySlug: "mille-lacs-county",
|
|
15622
|
+
countyFips: "27095",
|
|
15623
|
+
hasPublicRest: true,
|
|
15624
|
+
endpoints: [
|
|
15625
|
+
{
|
|
15626
|
+
url: "https://gis.co.mille-lacs.mn.us/arcgis/rest/services/MilleLacs_Public_101/MapServer/35",
|
|
15627
|
+
serviceType: "MapServer",
|
|
15628
|
+
layerIndex: 35,
|
|
15629
|
+
layerName: "Parcels",
|
|
15630
|
+
supportsQuery: true,
|
|
15631
|
+
corsEnabled: true,
|
|
15632
|
+
searchFields: [
|
|
15633
|
+
{ name: "TAXPAYER_NAME", label: "Taxpayer Name", searchable: true },
|
|
15634
|
+
{ name: "PARCELID", label: "Parcel Number", searchable: true },
|
|
15635
|
+
{ name: "PROPERTY_ADDRESS", label: "Property Address", searchable: true },
|
|
15636
|
+
{ name: "PROPERTY_ZIP", label: "Property ZIP", searchable: false },
|
|
15637
|
+
{ name: "CITY_TWP_NAME", label: "City/Township Name", searchable: true },
|
|
15638
|
+
{ name: "TAXPAYER_ADDRESS_1", label: "Taxpayer Mailing Address 1", searchable: true },
|
|
15639
|
+
{ name: "TAXPAYER_ADDRESS_2", label: "Taxpayer Mailing Address 2", searchable: false },
|
|
15640
|
+
{ name: "TAXPAYER_ADDRESS_3", label: "Taxpayer Mailing Address 3", searchable: false },
|
|
15641
|
+
{ name: "TAXPAYER_ADDRESS_4", label: "Taxpayer Mailing Address 4", searchable: false },
|
|
15642
|
+
{ name: "DEEDED_ACRES", label: "Deeded Acres", searchable: false }
|
|
15643
|
+
],
|
|
15644
|
+
sampleQuery: "https://gis.co.mille-lacs.mn.us/arcgis/rest/services/MilleLacs_Public_101/MapServer/35/query?where=UPPER(TAXPAYER_NAME)%20LIKE%20%27%25SMITH%25%27&outFields=PARCELID,TAXPAYER_NAME,PROPERTY_ADDRESS,TAXPAYER_ADDRESS_1,CITY_TWP_NAME&returnGeometry=false&resultRecordCount=10&f=json",
|
|
15645
|
+
license: "unknown",
|
|
15646
|
+
licenseUrl: "https://www.millelacs.mn.gov/",
|
|
15647
|
+
status: "live",
|
|
15648
|
+
lastVerified: "2026-10-03",
|
|
15649
|
+
verifiedBy: "manual"
|
|
15650
|
+
}
|
|
15651
|
+
],
|
|
15652
|
+
contact: {
|
|
15653
|
+
department: "Mille Lacs County GIS / Assessor's Office",
|
|
15654
|
+
url: "https://www.millelacs.mn.gov/1185/Assessors-Office",
|
|
15655
|
+
email: null
|
|
15656
|
+
},
|
|
15657
|
+
notes: "Mille Lacs County, Minnesota (county seat Milaca) publishes its parcels on its own ArcGIS Server 11.3 as MilleLacs_Public_101/MapServer layer 35 (Parcels), 20,083 rows with a taxpayer name on 2026-10-03. THE OWNER IS IN TAXPAYER_NAME, stored LAST/FIRST with a slash (SMITH/BRIAN & ASHLEY). A column called OWNER_NAME exists but is an empty string on about 97 percent of rows (544 of 20,083 populated on 2026-10-03; not NULL, so IS NOT NULL passes while the value is blank), and where it is populated it names a different party from TAXPAYER_NAME (a contract-for-deed holder or an LLC, for example), so the taxpayer is not always the owner of record. UPPER(OWNER_NAME) LIKE 'SMITH%' returns 0 features. OWNER_NAME is deliberately NOT listed as a search field here: the enrichment classifier takes the first owner-looking field, so listing it would route owner lookups to a mostly blank column. The mailing address is TAXPAYER_ADDRESS_1 to _4 (use _1 for the street); the matching OWNER_ADDRESS_1 to _4 columns were not checked. The site address is PROPERTY_ADDRESS with PROPERTY_ZIP and CITY_TWP_NAME. Search with UPPER(TAXPAYER_NAME) LIKE '%SMITH%'. maxRecordCount is 2000. CORS reflects the request Origin (Access-Control-Allow-Origin echoed back, credentials true), and named outFields work. No license text was found. Do not use the statewide Minnesota parcel layers for owner search: the DNR plan_parcels_minnesota layer has owner_name but no county, parcel id or address field, so a query bleeds into neighbouring counties, and the MnGeo plan_parcels_open layer filters by co_code 27095 (20,928 rows) but its owner_name is blank for all but 550 rows (control: Itasca 27061, 0 populated). The same county server also lists Assessors/TaxParcels/MapServer/0, which has only a parcel name and geometry. Verified live 2026-10-03: taxpayer SMITH returned rows (first SMITH/BRIAN & ASHLEY, parcel 11-010-0100, 17903 130TH AVE, Milaca Township)."
|
|
15614
15658
|
}
|
|
15615
15659
|
]
|
|
15616
15660
|
};
|
|
@@ -15716,7 +15760,7 @@ var missouri_default = {
|
|
|
15716
15760
|
stateSlug: "missouri",
|
|
15717
15761
|
stateName: "Missouri",
|
|
15718
15762
|
stateAbbrev: "MO",
|
|
15719
|
-
lastUpdated: "2026-
|
|
15763
|
+
lastUpdated: "2026-10-03",
|
|
15720
15764
|
counties: [
|
|
15721
15765
|
{
|
|
15722
15766
|
id: "mo-jackson",
|
|
@@ -15808,6 +15852,49 @@ var missouri_default = {
|
|
|
15808
15852
|
email: null
|
|
15809
15853
|
},
|
|
15810
15854
|
notes: "St. Louis County MO (St. Louis metro west/south, county seat Clayton, NOT the independent City of St. Louis) provides AGS_Parcels/MapServer/0 with 30+ fields: LOCATOR (parcel ID), PARENT_LOC, TAXYR, OWNER_NAME, PROP_ADRNUM, PROP_ADD, PROP_ZIP, OWN_ADD, OWN_CITY, OWN_STATE, OWN_ZIP, SCHSUB (school subdivision), MUNYCODE (municipality code), TAXCODE, ASSTIMPVAL, TOTASSMT, APPLANDVAL, APPIMPVAL, TOTAPVAL, PROPCLASS, LUC, LANDUSE2, LUCODE, TENURE, BLDGNAME, TWPNAME. Query confirmed live: UPPER(OWNER_NAME) LIKE '%SMITH%' returns real results (e.g., 'SMITH KIMBERLY & ANTHONY T/E' at '11041 LILAC AVE'). St. Louis County MO (FIPS 29189) is a separate entity from the City of St. Louis (FIPS 29510, an independent city not part of any county). The GeoData portal at data-stlcogis.opendata.arcgis.com provides open data downloads and GeoServices API links. The maps.stlouisco.com server is the live REST host."
|
|
15855
|
+
},
|
|
15856
|
+
{
|
|
15857
|
+
id: "mo-st-louis-city",
|
|
15858
|
+
state: "MO",
|
|
15859
|
+
stateName: "Missouri",
|
|
15860
|
+
stateSlug: "missouri",
|
|
15861
|
+
county: "St. Louis city",
|
|
15862
|
+
countySlug: "st-louis-city",
|
|
15863
|
+
countyFips: "29510",
|
|
15864
|
+
hasPublicRest: true,
|
|
15865
|
+
endpoints: [
|
|
15866
|
+
{
|
|
15867
|
+
url: "https://maps8.stlouis-mo.gov/arcgis/rest/services/ASSESSOR/Assessor_Public_Parcels/MapServer/11",
|
|
15868
|
+
serviceType: "MapServer",
|
|
15869
|
+
layerIndex: 11,
|
|
15870
|
+
layerName: "Parcels",
|
|
15871
|
+
supportsQuery: true,
|
|
15872
|
+
corsEnabled: false,
|
|
15873
|
+
searchFields: [
|
|
15874
|
+
{ name: "OwnerName", label: "Owner Name", searchable: true },
|
|
15875
|
+
{ name: "OwnerName2", label: "Owner Name 2", searchable: false },
|
|
15876
|
+
{ name: "ParcelId", label: "Parcel ID", searchable: true },
|
|
15877
|
+
{ name: "SITEADDR", label: "Site Address", searchable: true },
|
|
15878
|
+
{ name: "OwnerAddr", label: "Owner Mailing Address", searchable: true },
|
|
15879
|
+
{ name: "OwnerCity", label: "Owner Mailing City", searchable: false },
|
|
15880
|
+
{ name: "OwnerState", label: "Owner Mailing State", searchable: false },
|
|
15881
|
+
{ name: "OwnerZIP", label: "Owner Mailing ZIP", searchable: false },
|
|
15882
|
+
{ name: "ZIP", label: "Site ZIP", searchable: false }
|
|
15883
|
+
],
|
|
15884
|
+
sampleQuery: "https://maps8.stlouis-mo.gov/arcgis/rest/services/ASSESSOR/Assessor_Public_Parcels/MapServer/11/query?where=UPPER(OwnerName)%20LIKE%20%27SMITH%25%27&outFields=ParcelId,OwnerName,OwnerAddr,OwnerCity,SITEADDR&returnGeometry=false&resultRecordCount=10&f=json",
|
|
15885
|
+
license: "unknown",
|
|
15886
|
+
licenseUrl: "https://www.stlouis-mo.gov/data/parcels.cfm",
|
|
15887
|
+
status: "live",
|
|
15888
|
+
lastVerified: "2026-10-03",
|
|
15889
|
+
verifiedBy: "manual"
|
|
15890
|
+
}
|
|
15891
|
+
],
|
|
15892
|
+
contact: {
|
|
15893
|
+
department: "City of St. Louis Assessor's Office",
|
|
15894
|
+
url: "https://www.stlouis-mo.gov/data/parcels.cfm",
|
|
15895
|
+
email: null
|
|
15896
|
+
},
|
|
15897
|
+
notes: "City of St. Louis, Missouri (FIPS 29510) is an independent city that belongs to no county, and it is NOT St. Louis County (29189, a separate record in this file on a different server). The Assessor's public parcels layer is ASSESSOR/Assessor_Public_Parcels/MapServer layer 11 (Parcels) on ArcGIS Server 11.2, listed on the city's data page. SERVER-SIDE ONLY: the server sends Access-Control-Allow-Origin only to its own origin (www.stlouis-mo.gov); for any other Origin a GET and its preflight return only Vary: Origin and Access-Control-Allow-Private-Network: true, so a browser on another site cannot read it and corsEnabled is false. Query it from a server, the metered API or the MCP, not from page script. The owner is OwnerName (max 40 characters, so long names are truncated at the source) with OwnerName2; the mailing address is OwnerAddr plus OwnerCity (max 13 characters, can read ST LOUIS MO) with OwnerState, OwnerZIP and OwnerCountry; the parcel id is ParcelId (11 digits, LowerParcelId also exists). SITEADDR carries runs of internal spaces (2233 PARK AV) and trailing padding, so a LIKE on a full street string misses; search on the house number plus a street word, or collapse whitespace on the client. Search with UPPER(OwnerName) LIKE 'SMITH%'; broad searches return exceededTransferLimit true at the 2000-row page. The layer has 194 fields and this record lists a subset. Layer 11 includes condominium master parcels, and the sub-accounts are layer 10 (not examined). No license or terms text is published on the data page. Verified live 2026-10-03: owner SMITH returned rows (first SMITH, DAVID E & SANDRA L TRS, parcel 22669130000, 2233 PARK AVE)."
|
|
15811
15898
|
}
|
|
15812
15899
|
]
|
|
15813
15900
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@urbankitstudio/atlas",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"description": "JS SDK for the UrbanKit County Parcel REST API Atlas:
|
|
3
|
+
"version": "0.6.12",
|
|
4
|
+
"description": "JS SDK for the UrbanKit County Parcel REST API Atlas: 241 counties across all 50 US states and DC, 253 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",
|