@urbankitstudio/atlas 0.6.12 → 0.6.14
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/california.json +108 -1
- package/data/index.json +13 -13
- package/data/louisiana.json +13 -12
- package/data/nebraska.json +111 -1
- package/data/new-jersey.json +117 -2
- package/data/oklahoma.json +18 -1
- package/data/oregon.json +55 -3
- package/data/tennessee.json +86 -1
- package/dist/index.cjs +521 -34
- package/dist/index.js +521 -34
- 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 **246 counties across all 50 US states and DC** (258 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 240 of the 246 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/california.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"stateSlug": "california",
|
|
3
3
|
"stateName": "California",
|
|
4
4
|
"stateAbbrev": "CA",
|
|
5
|
-
"lastUpdated": "2026-
|
|
5
|
+
"lastUpdated": "2026-10-03",
|
|
6
6
|
"counties": [
|
|
7
7
|
{
|
|
8
8
|
"id": "ca-los-angeles",
|
|
@@ -517,6 +517,113 @@
|
|
|
517
517
|
}
|
|
518
518
|
}
|
|
519
519
|
}
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
"id": "ca-tulare",
|
|
523
|
+
"state": "CA",
|
|
524
|
+
"stateName": "California",
|
|
525
|
+
"stateSlug": "california",
|
|
526
|
+
"county": "Tulare",
|
|
527
|
+
"countySlug": "tulare-county",
|
|
528
|
+
"countyFips": "06107",
|
|
529
|
+
"ownerFieldNote": {
|
|
530
|
+
"body": "Tulare County's public parcel layer carries the APN, legal description, use code and acreage only: no owner name, no site address and no mailing address. Search by APN here. Ownership and addresses are held by the County Assessor. The City of Tulare's parcel layer at maps.tulare.ca.gov covers the city only and is not this county's layer.",
|
|
531
|
+
"source": {
|
|
532
|
+
"label": "Tulare County Assessor",
|
|
533
|
+
"url": "https://tularecounty.ca.gov/assessor/"
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
"capabilityOverrides": {
|
|
537
|
+
"owner_name": {
|
|
538
|
+
"status": "not_published",
|
|
539
|
+
"basis": {
|
|
540
|
+
"type": "endpoint_schema",
|
|
541
|
+
"note": "The county's public Parcels_(Public_View) layer carries APN, legal description, use code and acreage only; its field list has no owner-name column, and no other parcel service in the county's ArcGIS organisation carries one.",
|
|
542
|
+
"sourceUrl": "https://www.arcgis.com/home/item.html?id=8eb4a5d77ca64debbe9e391cd04cadf4"
|
|
543
|
+
}
|
|
544
|
+
},
|
|
545
|
+
"owner_mailing_address": {
|
|
546
|
+
"status": "not_published",
|
|
547
|
+
"basis": {
|
|
548
|
+
"type": "endpoint_schema",
|
|
549
|
+
"note": "The county's public Parcels_(Public_View) layer carries APN, legal description, use code and acreage only; its field list has no owner mailing-address column.",
|
|
550
|
+
"sourceUrl": "https://www.arcgis.com/home/item.html?id=8eb4a5d77ca64debbe9e391cd04cadf4"
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
"situs_address": {
|
|
554
|
+
"status": "not_published",
|
|
555
|
+
"basis": {
|
|
556
|
+
"type": "endpoint_schema",
|
|
557
|
+
"note": "The county's public Parcels_(Public_View) layer carries APN, legal description, use code and acreage only; its field list has no site-address column, so a parcel cannot be found by street address here.",
|
|
558
|
+
"sourceUrl": "https://www.arcgis.com/home/item.html?id=8eb4a5d77ca64debbe9e391cd04cadf4"
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
},
|
|
562
|
+
"hasPublicRest": true,
|
|
563
|
+
"endpoints": [
|
|
564
|
+
{
|
|
565
|
+
"url": "https://services2.arcgis.com/bYBANhmQGwSSLC0l/ArcGIS/rest/services/Parcels_(Public_View)/FeatureServer/0",
|
|
566
|
+
"serviceType": "FeatureServer",
|
|
567
|
+
"layerIndex": 0,
|
|
568
|
+
"layerName": "Current Parcels",
|
|
569
|
+
"supportsQuery": true,
|
|
570
|
+
"corsEnabled": true,
|
|
571
|
+
"searchFields": [
|
|
572
|
+
{
|
|
573
|
+
"name": "APN",
|
|
574
|
+
"label": "APN (9 digits, stored as text)",
|
|
575
|
+
"searchable": true
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"name": "APNFormatted",
|
|
579
|
+
"label": "APN, formatted (000-000-000)",
|
|
580
|
+
"searchable": true
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"name": "LegalDescription",
|
|
584
|
+
"label": "Legal Description",
|
|
585
|
+
"searchable": true
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
"name": "UseCodeDescription",
|
|
589
|
+
"label": "Use Code Description",
|
|
590
|
+
"searchable": false
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
"name": "UseCode",
|
|
594
|
+
"label": "Use Code",
|
|
595
|
+
"searchable": false
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"name": "TaxRateArea",
|
|
599
|
+
"label": "Tax Rate Area",
|
|
600
|
+
"searchable": false
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
"name": "AcresAssessor",
|
|
604
|
+
"label": "Acres (Assessor)",
|
|
605
|
+
"searchable": false
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"name": "AcresGIS",
|
|
609
|
+
"label": "Acres (GIS)",
|
|
610
|
+
"searchable": false
|
|
611
|
+
}
|
|
612
|
+
],
|
|
613
|
+
"sampleQuery": "https://services2.arcgis.com/bYBANhmQGwSSLC0l/ArcGIS/rest/services/Parcels_(Public_View)/FeatureServer/0/query?where=APN%20LIKE%20%270090%25%27&outFields=APN,APNFormatted,LegalDescription,UseCodeDescription,AcresGIS&returnGeometry=false&resultRecordCount=10&f=json",
|
|
614
|
+
"license": "unknown",
|
|
615
|
+
"licenseUrl": "https://www.arcgis.com/home/item.html?id=8eb4a5d77ca64debbe9e391cd04cadf4",
|
|
616
|
+
"status": "live",
|
|
617
|
+
"lastVerified": "2026-10-03",
|
|
618
|
+
"verifiedBy": "manual"
|
|
619
|
+
}
|
|
620
|
+
],
|
|
621
|
+
"contact": {
|
|
622
|
+
"department": "Tulare County Assessor, Cadastral Mapping and GIS",
|
|
623
|
+
"url": "https://tularecounty.ca.gov/assessor/",
|
|
624
|
+
"email": null
|
|
625
|
+
},
|
|
626
|
+
"notes": "Tulare County, California (county seat Visalia) publishes its parcels from the county GIS ArcGIS Online organisation as Parcels_(Public_View) FeatureServer layer 0 (Current Parcels): 166,875 rows on 2026-10-03. THE LAYER IS APN-ONLY. Its field list has no owner name, no site address and no mailing address, so this county answers an APN or legal-description search and nothing else. APN is a nine-digit TEXT value (e.g. 009040002), so compare it as a string: APN LIKE '0090%' or APN='009040002' works, and a numeric APN=1051002 comparison returns no rows. APNFormatted carries the dashed form (009-040-002). The layer also carries LegalDescription, TaxRateArea, UseCode, UseCodeDescription, ClassCode, CONTRACT and PRESERVE flags, SECTION, TOWNSHIP, AcresAssessor and AcresGIS. CORS is open (Access-Control-Allow-Origin: *) and maxRecordCount is 1000, half the usual page. The ArcGIS item states no licence. A richer sibling, Public_Parcels FeatureServer layer 0, adds land, improvement and personal-property values and the owner's postal state and ZIP only, still with no owner name and no street address; the org's Public_Parcel_Search, Regional Parcels and n01_Parcels services carry no owner either. Do not confuse this with maps.tulare.ca.gov, the CITY of Tulare: its Public_Parcels__Tulare_County layer covers only the city's urban growth boundary with no owner or address fields, and its housing-site layers carry owners for a few hand-picked city parcels. The assessor's web pages answer HTTP 403 to automated requests. Verified live 2026-10-03: APN LIKE '0090%' returned rows (first APN 009040002, 009-040-002, POR OF NW/4 5-15-28)."
|
|
520
627
|
}
|
|
521
628
|
]
|
|
522
629
|
}
|
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": 246,
|
|
7
|
+
"endpoints": 258,
|
|
8
|
+
"countiesWithEndpoint": 240,
|
|
9
9
|
"countiesUnprobeable": 1
|
|
10
10
|
},
|
|
11
11
|
"states": [
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"slug": "california",
|
|
46
46
|
"name": "California",
|
|
47
47
|
"abbrev": "CA",
|
|
48
|
-
"countyCount":
|
|
49
|
-
"endpointCount":
|
|
48
|
+
"countyCount": 12,
|
|
49
|
+
"endpointCount": 12,
|
|
50
50
|
"populated": true
|
|
51
51
|
},
|
|
52
52
|
{
|
|
@@ -229,8 +229,8 @@
|
|
|
229
229
|
"slug": "nebraska",
|
|
230
230
|
"name": "Nebraska",
|
|
231
231
|
"abbrev": "NE",
|
|
232
|
-
"countyCount":
|
|
233
|
-
"endpointCount":
|
|
232
|
+
"countyCount": 4,
|
|
233
|
+
"endpointCount": 4,
|
|
234
234
|
"populated": true
|
|
235
235
|
},
|
|
236
236
|
{
|
|
@@ -253,8 +253,8 @@
|
|
|
253
253
|
"slug": "new-jersey",
|
|
254
254
|
"name": "New Jersey",
|
|
255
255
|
"abbrev": "NJ",
|
|
256
|
-
"countyCount":
|
|
257
|
-
"endpointCount":
|
|
256
|
+
"countyCount": 6,
|
|
257
|
+
"endpointCount": 6,
|
|
258
258
|
"populated": true
|
|
259
259
|
},
|
|
260
260
|
{
|
|
@@ -301,7 +301,7 @@
|
|
|
301
301
|
"slug": "oklahoma",
|
|
302
302
|
"name": "Oklahoma",
|
|
303
303
|
"abbrev": "OK",
|
|
304
|
-
"countyCount":
|
|
304
|
+
"countyCount": 2,
|
|
305
305
|
"endpointCount": 1,
|
|
306
306
|
"populated": true
|
|
307
307
|
},
|
|
@@ -310,7 +310,7 @@
|
|
|
310
310
|
"name": "Oregon",
|
|
311
311
|
"abbrev": "OR",
|
|
312
312
|
"countyCount": 7,
|
|
313
|
-
"endpointCount":
|
|
313
|
+
"endpointCount": 7,
|
|
314
314
|
"populated": true
|
|
315
315
|
},
|
|
316
316
|
{
|
|
@@ -349,8 +349,8 @@
|
|
|
349
349
|
"slug": "tennessee",
|
|
350
350
|
"name": "Tennessee",
|
|
351
351
|
"abbrev": "TN",
|
|
352
|
-
"countyCount":
|
|
353
|
-
"endpointCount":
|
|
352
|
+
"countyCount": 4,
|
|
353
|
+
"endpointCount": 4,
|
|
354
354
|
"populated": true
|
|
355
355
|
},
|
|
356
356
|
{
|
package/data/louisiana.json
CHANGED
|
@@ -111,11 +111,16 @@
|
|
|
111
111
|
"layerIndex": 15,
|
|
112
112
|
"layerName": "Property Information [Parcels]",
|
|
113
113
|
"supportsQuery": true,
|
|
114
|
-
"corsEnabled":
|
|
114
|
+
"corsEnabled": true,
|
|
115
115
|
"searchFields": [
|
|
116
|
+
{
|
|
117
|
+
"name": "PARID",
|
|
118
|
+
"label": "Parcel ID (PARID, per unit)",
|
|
119
|
+
"searchable": true
|
|
120
|
+
},
|
|
116
121
|
{
|
|
117
122
|
"name": "PARCELID",
|
|
118
|
-
"label": "
|
|
123
|
+
"label": "GeoPIN (lot id, shared by condo units)",
|
|
119
124
|
"searchable": true
|
|
120
125
|
},
|
|
121
126
|
{
|
|
@@ -182,19 +187,15 @@
|
|
|
182
187
|
"name": "SQUARE",
|
|
183
188
|
"label": "Square",
|
|
184
189
|
"searchable": false
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
"name": "PARID",
|
|
188
|
-
"label": "Parcel Account ID",
|
|
189
|
-
"searchable": true
|
|
190
190
|
}
|
|
191
191
|
],
|
|
192
|
-
"sampleQuery": "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15/query?where=PARCELID
|
|
192
|
+
"sampleQuery": "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15/query?where=PARCELID%3D%2741033176%27&outFields=*&returnGeometry=false&f=json&resultRecordCount=1",
|
|
193
193
|
"license": "public",
|
|
194
194
|
"licenseUrl": "https://gis.nola.gov/",
|
|
195
|
-
"status": "
|
|
196
|
-
"lastVerified": "2026-
|
|
197
|
-
"verifiedBy": "manual"
|
|
195
|
+
"status": "live",
|
|
196
|
+
"lastVerified": "2026-10-03",
|
|
197
|
+
"verifiedBy": "manual",
|
|
198
|
+
"attributeSearch": "unsupported"
|
|
198
199
|
}
|
|
199
200
|
],
|
|
200
201
|
"contact": {
|
|
@@ -202,7 +203,7 @@
|
|
|
202
203
|
"url": "https://gis.nola.gov/",
|
|
203
204
|
"email": null
|
|
204
205
|
},
|
|
205
|
-
"notes": "
|
|
206
|
+
"notes": "LIVE 2026-10-03 for lookup by location in clients that complete the TLS chain (see TLS below); no attribute search. Layer 15 refuses any query that NAMES its outFields except an exact PARCELID equality: measured 2026-10-03 on the paid shapes (point + 30 m buffer; 800 m envelope with geometry) and on a scan (OBJECTID>0, resultRecordCount=1), every named column list answers HTTP 200 carrying ArcGIS error 400 \"Failed to execute query.\" in about 0.2 s, while the identical request with outFields=* answers 40 features in 0.28 s and 501 features (957 KB) in 0.65 s. UrbanKit sends outFields=* to this layer (api/_lib/arcgis-quirks.ts, WILDCARD_OUT_FIELDS) and keeps only the role columns. Any predicate that scans the table (1=1, OBJECTID>0, PARCELID IS NOT NULL, an owner LIKE) runs past 40 s even for a single row, so no where-clause search is offered (attributeSearch: unsupported) and owner-name lookup is not available here; the owner columns (OWNERNME1, OWNERNME2) and the mailing address (PSTLADDRESS, PSTLCITY, PSTLSTATE, PSTLZIP5) are returned on every spatial hit (a UrbanKit row keeps PSTLADDRESS, the street line). IDS: PARID is the assessor's per-unit parcel id (e.g. 622-SALEXANDERST) and is listed first so rows key by unit; PARCELID is the GeoPIN, a lot id shared by every condo unit on the lot (a 30 m buffer in the CBD: 40 units, 3 lots, 39 owners), so keying on it would collapse a notice list to one row per lot; TAXBILLID is the tax bill number. Exact PARCELID equality answers in 0.2 s and is the sample query, which is also the predicate the liveness probe falls back to when its first shape (1=1) times out. CORS reflects the request origin. TLS: the server sends an INCOMPLETE certificate chain (leaf without its Sectigo intermediate). Clients that fetch the missing intermediate themselves (curl on Windows, Chromium and Safari through the OS store) connect; Node's fetch fails the handshake with UNABLE_TO_VERIFY_LEAF_SIGNATURE (measured 2026-10-04). UrbanKit's billed bulk-enrichment and radius paths run on Vercel's Edge runtime, which cannot be given a certificate authority and whose handling of an incomplete chain is undocumented and not yet measured, so assume they cannot serve this parish until a keyed test on the deployed function shows otherwise; today an Orleans row ends county-unavailable and is refunded, unchanged from before. The liveness probe pins the intermediate, so its ok reflects the layer, not the paid paths. An agent that fetches this URL from Node must trust the Sectigo intermediate or the request fails before any query runs. Tracked in GitHub issue #906. HISTORY: marked unreachable 2026-08-29 after 463 consecutive failed probes whose predicate (PARCELID IS NOT NULL) is a table scan; the layer was answering spatial queries the whole time. Ownership data looked dated during the 2026-08 checks; the 2026-10-03 rows carry current-looking owner names."
|
|
206
207
|
}
|
|
207
208
|
]
|
|
208
209
|
}
|
package/data/nebraska.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"stateSlug": "nebraska",
|
|
3
3
|
"stateName": "Nebraska",
|
|
4
4
|
"stateAbbrev": "NE",
|
|
5
|
-
"lastUpdated": "2026-
|
|
5
|
+
"lastUpdated": "2026-10-03",
|
|
6
6
|
"counties": [
|
|
7
7
|
{
|
|
8
8
|
"id": "ne-douglas",
|
|
@@ -132,6 +132,116 @@
|
|
|
132
132
|
"email": null
|
|
133
133
|
},
|
|
134
134
|
"notes": "Sarpy County NE (Omaha south/west suburbs, Bellevue, Papillion, La Vista, Gretna) hosts LandRecordsSearch/FeatureServer with 10 layers; layer 5 (Tax Parcels) is the polygon parcel layer with ownership data. Fields follow LGIM schema: PARCELID, OWNERNME1, OWNERNME2, CNVYNAME, PSTLADDRES, SITEADDRESS, CVTTXCD/CVTTXDSCRP, SCHLTXCD/SCHLDSCRP, USEDSCRP, NGHBRHDCD, CLASSCD, CLASSDSCRP, LNDVALUE, CNTASSDVAL, CNTTXBLVAL, RESFLRAREA, RESYRBLT. Query confirmed live: UPPER(OWNERNME1) LIKE '%SMITH%' returns real results (e.g., 'SMITH/SHAWN L' at '11106 S 18TH CIR BELLEVUE NE 68123'). The Cadastral/LandRecordsDynamic/MapServer provides the same parcels as a cached tile service. Sarpy County is the fastest-growing county in Nebraska. GIS portal at gis.sarpy.gov and open data at data2-sarpy.opendata.arcgis.com. The SIMS parcel viewer (maps.sarpy.gov/html5viewer/?Viewer=SIMS) is the public-facing tool."
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"id": "ne-phelps",
|
|
138
|
+
"state": "NE",
|
|
139
|
+
"stateName": "Nebraska",
|
|
140
|
+
"stateSlug": "nebraska",
|
|
141
|
+
"county": "Phelps",
|
|
142
|
+
"countySlug": "phelps-county",
|
|
143
|
+
"countyFips": "31137",
|
|
144
|
+
"ownerFieldNote": {
|
|
145
|
+
"body": "Phelps County's parcels are published only through Nebraska's statewide parcel layer, which carries the parcel ID, situs address, legal description and assessed values but no owner name and no owner mailing address. Search by address or parcel ID here. Owner records are on the county assessor's gWorks property search.",
|
|
146
|
+
"source": {
|
|
147
|
+
"label": "Phelps County property search (gWorks)",
|
|
148
|
+
"url": "https://phelps.gworks.com/"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"capabilityOverrides": {
|
|
152
|
+
"owner_name": {
|
|
153
|
+
"status": "not_published",
|
|
154
|
+
"basis": {
|
|
155
|
+
"type": "endpoint_schema",
|
|
156
|
+
"note": "Nebraska's statewide StatewideParcelsExternal layer, the only public REST layer carrying Phelps County attributes, has no owner-name column in its field list. The county's gWorks vendor server exposes only a parcel key and acreage, and only to a browser.",
|
|
157
|
+
"sourceUrl": "https://www.nebraskamap.gov/"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"owner_mailing_address": {
|
|
161
|
+
"status": "not_published",
|
|
162
|
+
"basis": {
|
|
163
|
+
"type": "endpoint_schema",
|
|
164
|
+
"note": "Nebraska's statewide StatewideParcelsExternal layer, the only public REST layer carrying Phelps County attributes, has no owner mailing-address column in its field list. It carries the parcel ID, situs address, values and legal description only.",
|
|
165
|
+
"sourceUrl": "https://www.nebraskamap.gov/"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"hasPublicRest": true,
|
|
170
|
+
"endpoints": [
|
|
171
|
+
{
|
|
172
|
+
"url": "https://giscat.ne.gov/enterprise/rest/services/StatewideParcelsExternal/MapServer/0",
|
|
173
|
+
"serviceType": "MapServer",
|
|
174
|
+
"layerIndex": 0,
|
|
175
|
+
"layerName": "StatewideParcels",
|
|
176
|
+
"supportsQuery": true,
|
|
177
|
+
"corsEnabled": true,
|
|
178
|
+
"searchFields": [
|
|
179
|
+
{
|
|
180
|
+
"name": "Parcel_ID",
|
|
181
|
+
"label": "Parcel ID",
|
|
182
|
+
"searchable": true
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"name": "State_PID",
|
|
186
|
+
"label": "State Parcel ID (county code + parcel ID)",
|
|
187
|
+
"searchable": true
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"name": "Situs_Address",
|
|
191
|
+
"label": "Situs Address",
|
|
192
|
+
"searchable": true
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "Ph_City",
|
|
196
|
+
"label": "Situs City",
|
|
197
|
+
"searchable": false
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"name": "Legal_Description",
|
|
201
|
+
"label": "Legal Description",
|
|
202
|
+
"searchable": true
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"name": "Total_Assessed_Value",
|
|
206
|
+
"label": "Total Assessed Value",
|
|
207
|
+
"searchable": false
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"name": "Land_Value",
|
|
211
|
+
"label": "Land Value",
|
|
212
|
+
"searchable": false
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "Improvements_Value",
|
|
216
|
+
"label": "Improvements Value",
|
|
217
|
+
"searchable": false
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"name": "Classification_Code",
|
|
221
|
+
"label": "Property Classification Code",
|
|
222
|
+
"searchable": false
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"name": "Acres_Deeded",
|
|
226
|
+
"label": "Deeded Acres",
|
|
227
|
+
"searchable": false
|
|
228
|
+
}
|
|
229
|
+
],
|
|
230
|
+
"scopeWhere": "County_ID='137'",
|
|
231
|
+
"sampleQuery": "https://giscat.ne.gov/enterprise/rest/services/StatewideParcelsExternal/MapServer/0/query?where=County_ID%3D%27137%27%20AND%20Parcel_ID%3C%3E%27%27%20AND%20UPPER(Situs_Address)%20LIKE%20%27%25748%20RD%25%27&outFields=State_PID,Parcel_ID,Situs_Address,Ph_Full_Address,Total_Assessed_Value&returnGeometry=false&resultRecordCount=10&f=json",
|
|
232
|
+
"license": "unknown",
|
|
233
|
+
"licenseUrl": "https://www.nebraskamap.gov/",
|
|
234
|
+
"status": "live",
|
|
235
|
+
"lastVerified": "2026-10-03",
|
|
236
|
+
"verifiedBy": "manual"
|
|
237
|
+
}
|
|
238
|
+
],
|
|
239
|
+
"contact": {
|
|
240
|
+
"department": "Phelps County Assessor (statewide layer compiled by the Nebraska Office of the CIO)",
|
|
241
|
+
"url": "https://phelps.gworks.com/",
|
|
242
|
+
"email": null
|
|
243
|
+
},
|
|
244
|
+
"notes": "Phelps County, Nebraska (county seat Holdrege) has no county-run public REST parcel layer with attributes. Its parcels are carried on Nebraska's statewide StatewideParcelsExternal MapServer layer 0 (StatewideParcels) at giscat.ne.gov, which the Office of the Chief Information Officer compiles from each county's CAMA and GIS data. Scope with County_ID='137' (the three-digit county code): 7,664 of the layer's 1,154,898 rows on 2026-10-03, of which 59 are polygons with blank attributes (Parcel_ID=''); add AND Parcel_ID<>'' to skip them, as the sample query does. THERE IS NO OWNER NAME AND NO OWNER MAILING ADDRESS in the layer's field list. Ownership_Type and Parcel_URL exist but were blank on the Phelps rows sampled, and Ownership_Type is deliberately not listed because the owner classifier would read it as an owner column. Searchable: Parcel_ID (e.g. 0000002.00), State_PID (county code plus parcel ID, e.g. 1370000002.00), Situs_Address (e.g. 10401 748 RD) and Legal_Description. Ph_Full_Address joins the situs with city and ZIP but was blank on most rows sampled. Assessed, land and improvement values, classification code, deeded acres, sale date and sale value are carried. CORS reflects the request Origin (Access-Control-Allow-Origin echoed back, credentials true) and maxRecordCount is 2000. The layer states no licence; its description says the data is compiled for official, internal use by the State of Nebraska. The county's own vendor server (mapserver01.gworks.com, Phelps_County_NE_Assessor) exposes only a parcel key and acreage and answers 403 without a browser referer, so it is not registered. The older TaxParcels2023 and HistoricalParcels services that search results list now return 404. Owner search is available only through the county's gWorks property search. Verified live 2026-10-03: County_ID='137' AND Parcel_ID<>'' returned rows (first Parcel_ID 0000002.00, 10401 748 RD, Overton)."
|
|
135
245
|
}
|
|
136
246
|
]
|
|
137
247
|
}
|
package/data/new-jersey.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"stateSlug": "new-jersey",
|
|
3
3
|
"stateName": "New Jersey",
|
|
4
4
|
"stateAbbrev": "NJ",
|
|
5
|
-
"lastUpdated": "2026-
|
|
5
|
+
"lastUpdated": "2026-10-03",
|
|
6
6
|
"counties": [
|
|
7
7
|
{
|
|
8
8
|
"id": "nj-bergen",
|
|
@@ -107,7 +107,8 @@
|
|
|
107
107
|
"licenseUrl": "https://www.njogis.com/",
|
|
108
108
|
"status": "live",
|
|
109
109
|
"lastVerified": "2026-05-15",
|
|
110
|
-
"verifiedBy": "manual"
|
|
110
|
+
"verifiedBy": "manual",
|
|
111
|
+
"scopeWhere": "COUNTY='BERGEN'"
|
|
111
112
|
}
|
|
112
113
|
],
|
|
113
114
|
"contact": {
|
|
@@ -571,6 +572,120 @@
|
|
|
571
572
|
}
|
|
572
573
|
}
|
|
573
574
|
}
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
"id": "nj-essex",
|
|
578
|
+
"state": "NJ",
|
|
579
|
+
"stateName": "New Jersey",
|
|
580
|
+
"stateSlug": "new-jersey",
|
|
581
|
+
"county": "Essex",
|
|
582
|
+
"countySlug": "essex-county",
|
|
583
|
+
"ownerFieldNote": {
|
|
584
|
+
"body": "New Jersey's statewide parcel composite documents an OWNER_NAME column for Essex County, but it is not populated on the public web service: on 2026-10-03 none of the 178,089 Essex rows carried a value, so no query can retrieve ownership here. The NJ Office of GIS states in the service description that the OWNER_NAME field is redacted per Daniel's Law for public web access. PAMS parcel identifier, municipality, property location, the mailing address on the tax record, assessed values and sale price are populated and searchable. Ownership is available from the municipal tax assessor.",
|
|
585
|
+
"source": {
|
|
586
|
+
"label": "New Jersey Office of GIS, statewide MOD-IV parcel composite",
|
|
587
|
+
"url": "https://www.nj.gov/njgin/"
|
|
588
|
+
}
|
|
589
|
+
},
|
|
590
|
+
"capabilityOverrides": {
|
|
591
|
+
"owner_name": {
|
|
592
|
+
"status": "restricted",
|
|
593
|
+
"basis": {
|
|
594
|
+
"type": "county_cited_statute",
|
|
595
|
+
"note": "The statewide composite layer's OWNER_NAME column returns no value for any Essex County record, and the NJ Office of GIS states in the service description that the field is redacted per Daniel's Law for public web access.",
|
|
596
|
+
"citation": "N.J. Daniel's Law",
|
|
597
|
+
"attributedTo": "NJ Office of GIS (service description)",
|
|
598
|
+
"sourceUrl": "https://www.nj.gov/njgin/"
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
},
|
|
602
|
+
"countyFips": "34013",
|
|
603
|
+
"hasPublicRest": true,
|
|
604
|
+
"endpoints": [
|
|
605
|
+
{
|
|
606
|
+
"url": "https://services2.arcgis.com/XVOqAjTOJ5P6ngMu/arcgis/rest/services/Parcels_Composite_NJ_WM/FeatureServer/0",
|
|
607
|
+
"serviceType": "FeatureServer",
|
|
608
|
+
"layerIndex": 0,
|
|
609
|
+
"layerName": "Cad_parcel_mod4",
|
|
610
|
+
"supportsQuery": true,
|
|
611
|
+
"corsEnabled": true,
|
|
612
|
+
"searchFields": [
|
|
613
|
+
{
|
|
614
|
+
"name": "PAMS_PIN",
|
|
615
|
+
"label": "PAMS Parcel Identifier (MUN_BLOCK_LOT)",
|
|
616
|
+
"searchable": true
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
"name": "PROP_LOC",
|
|
620
|
+
"label": "Property Location / Address",
|
|
621
|
+
"searchable": true
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"name": "MUN_NAME",
|
|
625
|
+
"label": "Municipality Name",
|
|
626
|
+
"searchable": true
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
"name": "ST_ADDRESS",
|
|
630
|
+
"label": "Mailing Street Address",
|
|
631
|
+
"searchable": true
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
"name": "CITY_STATE",
|
|
635
|
+
"label": "Mailing City and State",
|
|
636
|
+
"searchable": false
|
|
637
|
+
},
|
|
638
|
+
{
|
|
639
|
+
"name": "ZIP_CODE",
|
|
640
|
+
"label": "Mailing ZIP Code",
|
|
641
|
+
"searchable": false
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
"name": "PROP_CLASS",
|
|
645
|
+
"label": "Property Class Code",
|
|
646
|
+
"searchable": false
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
"name": "LAND_VAL",
|
|
650
|
+
"label": "Land Value",
|
|
651
|
+
"searchable": false
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
"name": "IMPRVT_VAL",
|
|
655
|
+
"label": "Improvement Value",
|
|
656
|
+
"searchable": false
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
"name": "NET_VALUE",
|
|
660
|
+
"label": "Net Assessed Value",
|
|
661
|
+
"searchable": false
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
"name": "CALC_ACRE",
|
|
665
|
+
"label": "Calculated Acreage",
|
|
666
|
+
"searchable": false
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
"name": "SALE_PRICE",
|
|
670
|
+
"label": "Last Sale Price",
|
|
671
|
+
"searchable": false
|
|
672
|
+
}
|
|
673
|
+
],
|
|
674
|
+
"sampleQuery": "https://services2.arcgis.com/XVOqAjTOJ5P6ngMu/arcgis/rest/services/Parcels_Composite_NJ_WM/FeatureServer/0/query?where=COUNTY%3D%27ESSEX%27%20AND%20UPPER(PROP_LOC)%20LIKE%20%27%25BROAD%25%27&outFields=PAMS_PIN,MUN_NAME,PROP_LOC,ST_ADDRESS,CITY_STATE,ZIP_CODE,NET_VALUE&returnGeometry=false&resultRecordCount=10&f=json",
|
|
675
|
+
"license": "public",
|
|
676
|
+
"licenseUrl": "https://www.arcgis.com/home/item.html?id=533599bbfbaa4748bf39faf1375a8a9c",
|
|
677
|
+
"status": "live",
|
|
678
|
+
"lastVerified": "2026-10-03",
|
|
679
|
+
"verifiedBy": "manual",
|
|
680
|
+
"scopeWhere": "COUNTY='ESSEX'"
|
|
681
|
+
}
|
|
682
|
+
],
|
|
683
|
+
"contact": {
|
|
684
|
+
"department": "NJ Office of GIS (NJOGIS), Statewide MOD-IV Composite",
|
|
685
|
+
"url": "https://www.nj.gov/njgin/",
|
|
686
|
+
"email": null
|
|
687
|
+
},
|
|
688
|
+
"notes": "Essex County, New Jersey (county seat Newark) is served from the NJ Office of GIS statewide Parcels and MOD-IV composite, Parcels_Composite_NJ_WM FeatureServer layer 0 (Cad_parcel_mod4), the same layer Bergen County uses. Filter with COUNTY='ESSEX': 178,089 of the layer's 3,481,240 rows on 2026-10-03. OWNER_NAME is an empty string on every row statewide: COUNTY='ESSEX' AND OWNER_NAME<>'' returns 0, while the control COUNTY='ESSEX' AND ST_ADDRESS<>'' returns all 178,089. Test it with <>'' because IS NOT NULL passes on the blank strings. The column is deliberately not listed as a search field, because the owner classifier takes the first owner-looking field and would route owner lookups to a blank column. The service description says the field is redacted per Daniel's Law for public web access. Searchable: PAMS_PIN (municipality code, block and lot, e.g. 0707_301_6), PROP_LOC (property location), MUN_NAME, and ST_ADDRESS, the mailing street on the tax record, with CITY_STATE and ZIP_CODE alongside. CITY_STATE is free text, so FAIRFIELD, NJ and FAIRFIELD,N.J. both occur. Property class, land, improvement and net values, acreage and the last sale come from MOD-IV. CORS is open (Access-Control-Allow-Origin: *), maxRecordCount is 2000 and the layer is Web Mercator. The item's licence text is a disclaimer that requests acknowledgement of NJOGIS and points to the State's conditions of use. Countywide shapefiles and the MOD-IV tax list are downloadable from NJGIN. Third-party Essex_County_Parcels copies on ArcGIS Online carry no owner column and are not registered. Verified live 2026-10-03: COUNTY='ESSEX' AND PROP_LOC LIKE '%BROAD%' returned rows (first PAMS_PIN 0707_301_6, 54 BROADWAY LANE, Fairfield Township)."
|
|
574
689
|
}
|
|
575
690
|
]
|
|
576
691
|
}
|
package/data/oklahoma.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"stateSlug": "oklahoma",
|
|
3
3
|
"stateName": "Oklahoma",
|
|
4
4
|
"stateAbbrev": "OK",
|
|
5
|
-
"lastUpdated": "2026-
|
|
5
|
+
"lastUpdated": "2026-10-03",
|
|
6
6
|
"counties": [
|
|
7
7
|
{
|
|
8
8
|
"id": "ok-oklahoma",
|
|
@@ -44,6 +44,23 @@
|
|
|
44
44
|
"email": null
|
|
45
45
|
},
|
|
46
46
|
"notes": "Oklahoma County is Oklahoma's most populous county (pop. 810,000; county seat Oklahoma City). The TaxParcelsPublics_view FeatureServer is hosted on ArcGIS Online (services8.arcgis.com, org ID euhkr1dAJeQBIjV0) and published via the OK County GIS Hub at ok-county-gis-hub-ok-co.hub.arcgis.com. Live query confirmed 336,922 parcels and owner-name exposure. Key fields: accountno (R-prefixed account number, e.g. 'R189878000'), name1/name2/name3 (up to three owners), mailingaddress1, city (mailing city), location (combined property address when populated, e.g. '17622 N INDIAN MERIDIAN RD OKLAHOMA CITY'), locationcity (property city), propertyid (numeric internal ID), taxdistrict, taxdistrictname, currentmarket, currentassessed, currenttaxable, landvalue, legal (legal description), subname, lot, block, section, township, range, acreage. Note: location and locationcity fields may be null for some rural parcels, when null, use legal/section/township/range for location. The former county ArcGIS Server at oklahomacounty.geocortex.com is no longer reachable (DNS fails as of 2026-06); the ArcGIS Online hosted view is the current canonical public layer. Oklahoma County Assessor portal at assessor.oklahomacounty.org provides the full record with appeals and valuation history."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "ok-garfield",
|
|
50
|
+
"state": "OK",
|
|
51
|
+
"stateName": "Oklahoma",
|
|
52
|
+
"stateSlug": "oklahoma",
|
|
53
|
+
"county": "Garfield",
|
|
54
|
+
"countySlug": "garfield-county",
|
|
55
|
+
"countyFips": "40047",
|
|
56
|
+
"hasPublicRest": false,
|
|
57
|
+
"endpoints": [],
|
|
58
|
+
"contact": {
|
|
59
|
+
"department": "Garfield County Assessor",
|
|
60
|
+
"url": "https://www.assessor.garfieldok.com/",
|
|
61
|
+
"email": null
|
|
62
|
+
},
|
|
63
|
+
"notes": "No public REST parcel layer was found for Garfield County, Oklahoma (county seat Enid) as of 2026-10-03. The assessor's parcel viewer runs on Spatialest (property.spatialest.com/ok/garfield), whose map comes from a GeoServer at geo2.spatialest.com (workspace garfield-ok) that serves WMS images only: WFS is disabled, so there is no attribute or owner query. Oklahoma has no statewide parcel REST service. ArcGIS Hub and ArcGIS Online searches for Garfield County, Oklahoma parcels returned no items, while the same searches for Mahoning County parcels returned results, so the absence is meaningful. The one near miss is a 'Parcel Information' layer on ArcGIS Online (services1.arcgis.com/XDIvp05ZrOXRft7s) with owner, situs and parcel columns, but it covers only the Town of North Enid (540 parcels), not the county or the City of Enid, and is not registered. Results for 'Garfield County Land Explorer' belong to Garfield County, Colorado. Parcel and owner records are available through the assessor's Spatialest viewer."
|
|
47
64
|
}
|
|
48
65
|
]
|
|
49
66
|
}
|