@urbankitstudio/atlas 0.6.13 → 0.6.15
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 +14 -4
- package/data/california.json +108 -1
- package/data/index.json +13 -13
- 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 +541 -26
- package/dist/index.d.cts +70 -5
- package/dist/index.d.ts +70 -5
- package/dist/index.js +539 -27
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// src/capability.ts
|
|
4
|
+
function offersAttributeSearch(endpoint) {
|
|
5
|
+
return !!endpoint && endpoint.attributeSearch !== "unsupported";
|
|
6
|
+
}
|
|
7
|
+
function countyOffersAttributeSearch(county) {
|
|
8
|
+
const endpoints = Array.isArray(county.endpoints) ? county.endpoints : [];
|
|
9
|
+
return endpoints.some(offersAttributeSearch);
|
|
10
|
+
}
|
|
4
11
|
function reviewedCapability(county, field) {
|
|
5
12
|
return county.capabilityOverrides?.[field] ?? null;
|
|
6
13
|
}
|
|
@@ -18,9 +25,9 @@ var data_default = {
|
|
|
18
25
|
lastUpdated: "2026-10-03",
|
|
19
26
|
totals: {
|
|
20
27
|
states: 51,
|
|
21
|
-
counties:
|
|
22
|
-
endpoints:
|
|
23
|
-
countiesWithEndpoint:
|
|
28
|
+
counties: 246,
|
|
29
|
+
endpoints: 258,
|
|
30
|
+
countiesWithEndpoint: 240,
|
|
24
31
|
countiesUnprobeable: 1
|
|
25
32
|
},
|
|
26
33
|
states: [
|
|
@@ -60,8 +67,8 @@ var data_default = {
|
|
|
60
67
|
slug: "california",
|
|
61
68
|
name: "California",
|
|
62
69
|
abbrev: "CA",
|
|
63
|
-
countyCount:
|
|
64
|
-
endpointCount:
|
|
70
|
+
countyCount: 12,
|
|
71
|
+
endpointCount: 12,
|
|
65
72
|
populated: true
|
|
66
73
|
},
|
|
67
74
|
{
|
|
@@ -244,8 +251,8 @@ var data_default = {
|
|
|
244
251
|
slug: "nebraska",
|
|
245
252
|
name: "Nebraska",
|
|
246
253
|
abbrev: "NE",
|
|
247
|
-
countyCount:
|
|
248
|
-
endpointCount:
|
|
254
|
+
countyCount: 4,
|
|
255
|
+
endpointCount: 4,
|
|
249
256
|
populated: true
|
|
250
257
|
},
|
|
251
258
|
{
|
|
@@ -268,8 +275,8 @@ var data_default = {
|
|
|
268
275
|
slug: "new-jersey",
|
|
269
276
|
name: "New Jersey",
|
|
270
277
|
abbrev: "NJ",
|
|
271
|
-
countyCount:
|
|
272
|
-
endpointCount:
|
|
278
|
+
countyCount: 6,
|
|
279
|
+
endpointCount: 6,
|
|
273
280
|
populated: true
|
|
274
281
|
},
|
|
275
282
|
{
|
|
@@ -316,7 +323,7 @@ var data_default = {
|
|
|
316
323
|
slug: "oklahoma",
|
|
317
324
|
name: "Oklahoma",
|
|
318
325
|
abbrev: "OK",
|
|
319
|
-
countyCount:
|
|
326
|
+
countyCount: 2,
|
|
320
327
|
endpointCount: 1,
|
|
321
328
|
populated: true
|
|
322
329
|
},
|
|
@@ -325,7 +332,7 @@ var data_default = {
|
|
|
325
332
|
name: "Oregon",
|
|
326
333
|
abbrev: "OR",
|
|
327
334
|
countyCount: 7,
|
|
328
|
-
endpointCount:
|
|
335
|
+
endpointCount: 7,
|
|
329
336
|
populated: true
|
|
330
337
|
},
|
|
331
338
|
{
|
|
@@ -364,8 +371,8 @@ var data_default = {
|
|
|
364
371
|
slug: "tennessee",
|
|
365
372
|
name: "Tennessee",
|
|
366
373
|
abbrev: "TN",
|
|
367
|
-
countyCount:
|
|
368
|
-
endpointCount:
|
|
374
|
+
countyCount: 4,
|
|
375
|
+
endpointCount: 4,
|
|
369
376
|
populated: true
|
|
370
377
|
},
|
|
371
378
|
{
|
|
@@ -1075,7 +1082,7 @@ var california_default = {
|
|
|
1075
1082
|
stateSlug: "california",
|
|
1076
1083
|
stateName: "California",
|
|
1077
1084
|
stateAbbrev: "CA",
|
|
1078
|
-
lastUpdated: "2026-
|
|
1085
|
+
lastUpdated: "2026-10-03",
|
|
1079
1086
|
counties: [
|
|
1080
1087
|
{
|
|
1081
1088
|
id: "ca-los-angeles",
|
|
@@ -1590,6 +1597,113 @@ var california_default = {
|
|
|
1590
1597
|
}
|
|
1591
1598
|
}
|
|
1592
1599
|
}
|
|
1600
|
+
},
|
|
1601
|
+
{
|
|
1602
|
+
id: "ca-tulare",
|
|
1603
|
+
state: "CA",
|
|
1604
|
+
stateName: "California",
|
|
1605
|
+
stateSlug: "california",
|
|
1606
|
+
county: "Tulare",
|
|
1607
|
+
countySlug: "tulare-county",
|
|
1608
|
+
countyFips: "06107",
|
|
1609
|
+
ownerFieldNote: {
|
|
1610
|
+
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.",
|
|
1611
|
+
source: {
|
|
1612
|
+
label: "Tulare County Assessor",
|
|
1613
|
+
url: "https://tularecounty.ca.gov/assessor/"
|
|
1614
|
+
}
|
|
1615
|
+
},
|
|
1616
|
+
capabilityOverrides: {
|
|
1617
|
+
owner_name: {
|
|
1618
|
+
status: "not_published",
|
|
1619
|
+
basis: {
|
|
1620
|
+
type: "endpoint_schema",
|
|
1621
|
+
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.",
|
|
1622
|
+
sourceUrl: "https://www.arcgis.com/home/item.html?id=8eb4a5d77ca64debbe9e391cd04cadf4"
|
|
1623
|
+
}
|
|
1624
|
+
},
|
|
1625
|
+
owner_mailing_address: {
|
|
1626
|
+
status: "not_published",
|
|
1627
|
+
basis: {
|
|
1628
|
+
type: "endpoint_schema",
|
|
1629
|
+
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.",
|
|
1630
|
+
sourceUrl: "https://www.arcgis.com/home/item.html?id=8eb4a5d77ca64debbe9e391cd04cadf4"
|
|
1631
|
+
}
|
|
1632
|
+
},
|
|
1633
|
+
situs_address: {
|
|
1634
|
+
status: "not_published",
|
|
1635
|
+
basis: {
|
|
1636
|
+
type: "endpoint_schema",
|
|
1637
|
+
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.",
|
|
1638
|
+
sourceUrl: "https://www.arcgis.com/home/item.html?id=8eb4a5d77ca64debbe9e391cd04cadf4"
|
|
1639
|
+
}
|
|
1640
|
+
}
|
|
1641
|
+
},
|
|
1642
|
+
hasPublicRest: true,
|
|
1643
|
+
endpoints: [
|
|
1644
|
+
{
|
|
1645
|
+
url: "https://services2.arcgis.com/bYBANhmQGwSSLC0l/ArcGIS/rest/services/Parcels_(Public_View)/FeatureServer/0",
|
|
1646
|
+
serviceType: "FeatureServer",
|
|
1647
|
+
layerIndex: 0,
|
|
1648
|
+
layerName: "Current Parcels",
|
|
1649
|
+
supportsQuery: true,
|
|
1650
|
+
corsEnabled: true,
|
|
1651
|
+
searchFields: [
|
|
1652
|
+
{
|
|
1653
|
+
name: "APN",
|
|
1654
|
+
label: "APN (9 digits, stored as text)",
|
|
1655
|
+
searchable: true
|
|
1656
|
+
},
|
|
1657
|
+
{
|
|
1658
|
+
name: "APNFormatted",
|
|
1659
|
+
label: "APN, formatted (000-000-000)",
|
|
1660
|
+
searchable: true
|
|
1661
|
+
},
|
|
1662
|
+
{
|
|
1663
|
+
name: "LegalDescription",
|
|
1664
|
+
label: "Legal Description",
|
|
1665
|
+
searchable: true
|
|
1666
|
+
},
|
|
1667
|
+
{
|
|
1668
|
+
name: "UseCodeDescription",
|
|
1669
|
+
label: "Use Code Description",
|
|
1670
|
+
searchable: false
|
|
1671
|
+
},
|
|
1672
|
+
{
|
|
1673
|
+
name: "UseCode",
|
|
1674
|
+
label: "Use Code",
|
|
1675
|
+
searchable: false
|
|
1676
|
+
},
|
|
1677
|
+
{
|
|
1678
|
+
name: "TaxRateArea",
|
|
1679
|
+
label: "Tax Rate Area",
|
|
1680
|
+
searchable: false
|
|
1681
|
+
},
|
|
1682
|
+
{
|
|
1683
|
+
name: "AcresAssessor",
|
|
1684
|
+
label: "Acres (Assessor)",
|
|
1685
|
+
searchable: false
|
|
1686
|
+
},
|
|
1687
|
+
{
|
|
1688
|
+
name: "AcresGIS",
|
|
1689
|
+
label: "Acres (GIS)",
|
|
1690
|
+
searchable: false
|
|
1691
|
+
}
|
|
1692
|
+
],
|
|
1693
|
+
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",
|
|
1694
|
+
license: "unknown",
|
|
1695
|
+
licenseUrl: "https://www.arcgis.com/home/item.html?id=8eb4a5d77ca64debbe9e391cd04cadf4",
|
|
1696
|
+
status: "live",
|
|
1697
|
+
lastVerified: "2026-10-03",
|
|
1698
|
+
verifiedBy: "manual"
|
|
1699
|
+
}
|
|
1700
|
+
],
|
|
1701
|
+
contact: {
|
|
1702
|
+
department: "Tulare County Assessor, Cadastral Mapping and GIS",
|
|
1703
|
+
url: "https://tularecounty.ca.gov/assessor/",
|
|
1704
|
+
email: null
|
|
1705
|
+
},
|
|
1706
|
+
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)."
|
|
1593
1707
|
}
|
|
1594
1708
|
]
|
|
1595
1709
|
};
|
|
@@ -16317,7 +16431,7 @@ var nebraska_default = {
|
|
|
16317
16431
|
stateSlug: "nebraska",
|
|
16318
16432
|
stateName: "Nebraska",
|
|
16319
16433
|
stateAbbrev: "NE",
|
|
16320
|
-
lastUpdated: "2026-
|
|
16434
|
+
lastUpdated: "2026-10-03",
|
|
16321
16435
|
counties: [
|
|
16322
16436
|
{
|
|
16323
16437
|
id: "ne-douglas",
|
|
@@ -16447,6 +16561,116 @@ var nebraska_default = {
|
|
|
16447
16561
|
email: null
|
|
16448
16562
|
},
|
|
16449
16563
|
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."
|
|
16564
|
+
},
|
|
16565
|
+
{
|
|
16566
|
+
id: "ne-phelps",
|
|
16567
|
+
state: "NE",
|
|
16568
|
+
stateName: "Nebraska",
|
|
16569
|
+
stateSlug: "nebraska",
|
|
16570
|
+
county: "Phelps",
|
|
16571
|
+
countySlug: "phelps-county",
|
|
16572
|
+
countyFips: "31137",
|
|
16573
|
+
ownerFieldNote: {
|
|
16574
|
+
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.",
|
|
16575
|
+
source: {
|
|
16576
|
+
label: "Phelps County property search (gWorks)",
|
|
16577
|
+
url: "https://phelps.gworks.com/"
|
|
16578
|
+
}
|
|
16579
|
+
},
|
|
16580
|
+
capabilityOverrides: {
|
|
16581
|
+
owner_name: {
|
|
16582
|
+
status: "not_published",
|
|
16583
|
+
basis: {
|
|
16584
|
+
type: "endpoint_schema",
|
|
16585
|
+
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.",
|
|
16586
|
+
sourceUrl: "https://www.nebraskamap.gov/"
|
|
16587
|
+
}
|
|
16588
|
+
},
|
|
16589
|
+
owner_mailing_address: {
|
|
16590
|
+
status: "not_published",
|
|
16591
|
+
basis: {
|
|
16592
|
+
type: "endpoint_schema",
|
|
16593
|
+
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.",
|
|
16594
|
+
sourceUrl: "https://www.nebraskamap.gov/"
|
|
16595
|
+
}
|
|
16596
|
+
}
|
|
16597
|
+
},
|
|
16598
|
+
hasPublicRest: true,
|
|
16599
|
+
endpoints: [
|
|
16600
|
+
{
|
|
16601
|
+
url: "https://giscat.ne.gov/enterprise/rest/services/StatewideParcelsExternal/MapServer/0",
|
|
16602
|
+
serviceType: "MapServer",
|
|
16603
|
+
layerIndex: 0,
|
|
16604
|
+
layerName: "StatewideParcels",
|
|
16605
|
+
supportsQuery: true,
|
|
16606
|
+
corsEnabled: true,
|
|
16607
|
+
searchFields: [
|
|
16608
|
+
{
|
|
16609
|
+
name: "Parcel_ID",
|
|
16610
|
+
label: "Parcel ID",
|
|
16611
|
+
searchable: true
|
|
16612
|
+
},
|
|
16613
|
+
{
|
|
16614
|
+
name: "State_PID",
|
|
16615
|
+
label: "State Parcel ID (county code + parcel ID)",
|
|
16616
|
+
searchable: true
|
|
16617
|
+
},
|
|
16618
|
+
{
|
|
16619
|
+
name: "Situs_Address",
|
|
16620
|
+
label: "Situs Address",
|
|
16621
|
+
searchable: true
|
|
16622
|
+
},
|
|
16623
|
+
{
|
|
16624
|
+
name: "Ph_City",
|
|
16625
|
+
label: "Situs City",
|
|
16626
|
+
searchable: false
|
|
16627
|
+
},
|
|
16628
|
+
{
|
|
16629
|
+
name: "Legal_Description",
|
|
16630
|
+
label: "Legal Description",
|
|
16631
|
+
searchable: true
|
|
16632
|
+
},
|
|
16633
|
+
{
|
|
16634
|
+
name: "Total_Assessed_Value",
|
|
16635
|
+
label: "Total Assessed Value",
|
|
16636
|
+
searchable: false
|
|
16637
|
+
},
|
|
16638
|
+
{
|
|
16639
|
+
name: "Land_Value",
|
|
16640
|
+
label: "Land Value",
|
|
16641
|
+
searchable: false
|
|
16642
|
+
},
|
|
16643
|
+
{
|
|
16644
|
+
name: "Improvements_Value",
|
|
16645
|
+
label: "Improvements Value",
|
|
16646
|
+
searchable: false
|
|
16647
|
+
},
|
|
16648
|
+
{
|
|
16649
|
+
name: "Classification_Code",
|
|
16650
|
+
label: "Property Classification Code",
|
|
16651
|
+
searchable: false
|
|
16652
|
+
},
|
|
16653
|
+
{
|
|
16654
|
+
name: "Acres_Deeded",
|
|
16655
|
+
label: "Deeded Acres",
|
|
16656
|
+
searchable: false
|
|
16657
|
+
}
|
|
16658
|
+
],
|
|
16659
|
+
scopeWhere: "County_ID='137'",
|
|
16660
|
+
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",
|
|
16661
|
+
license: "unknown",
|
|
16662
|
+
licenseUrl: "https://www.nebraskamap.gov/",
|
|
16663
|
+
status: "live",
|
|
16664
|
+
lastVerified: "2026-10-03",
|
|
16665
|
+
verifiedBy: "manual"
|
|
16666
|
+
}
|
|
16667
|
+
],
|
|
16668
|
+
contact: {
|
|
16669
|
+
department: "Phelps County Assessor (statewide layer compiled by the Nebraska Office of the CIO)",
|
|
16670
|
+
url: "https://phelps.gworks.com/",
|
|
16671
|
+
email: null
|
|
16672
|
+
},
|
|
16673
|
+
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)."
|
|
16450
16674
|
}
|
|
16451
16675
|
]
|
|
16452
16676
|
};
|
|
@@ -16600,7 +16824,7 @@ var new_jersey_default = {
|
|
|
16600
16824
|
stateSlug: "new-jersey",
|
|
16601
16825
|
stateName: "New Jersey",
|
|
16602
16826
|
stateAbbrev: "NJ",
|
|
16603
|
-
lastUpdated: "2026-
|
|
16827
|
+
lastUpdated: "2026-10-03",
|
|
16604
16828
|
counties: [
|
|
16605
16829
|
{
|
|
16606
16830
|
id: "nj-bergen",
|
|
@@ -16705,7 +16929,8 @@ var new_jersey_default = {
|
|
|
16705
16929
|
licenseUrl: "https://www.njogis.com/",
|
|
16706
16930
|
status: "live",
|
|
16707
16931
|
lastVerified: "2026-05-15",
|
|
16708
|
-
verifiedBy: "manual"
|
|
16932
|
+
verifiedBy: "manual",
|
|
16933
|
+
scopeWhere: "COUNTY='BERGEN'"
|
|
16709
16934
|
}
|
|
16710
16935
|
],
|
|
16711
16936
|
contact: {
|
|
@@ -17169,6 +17394,120 @@ var new_jersey_default = {
|
|
|
17169
17394
|
}
|
|
17170
17395
|
}
|
|
17171
17396
|
}
|
|
17397
|
+
},
|
|
17398
|
+
{
|
|
17399
|
+
id: "nj-essex",
|
|
17400
|
+
state: "NJ",
|
|
17401
|
+
stateName: "New Jersey",
|
|
17402
|
+
stateSlug: "new-jersey",
|
|
17403
|
+
county: "Essex",
|
|
17404
|
+
countySlug: "essex-county",
|
|
17405
|
+
ownerFieldNote: {
|
|
17406
|
+
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.",
|
|
17407
|
+
source: {
|
|
17408
|
+
label: "New Jersey Office of GIS, statewide MOD-IV parcel composite",
|
|
17409
|
+
url: "https://www.nj.gov/njgin/"
|
|
17410
|
+
}
|
|
17411
|
+
},
|
|
17412
|
+
capabilityOverrides: {
|
|
17413
|
+
owner_name: {
|
|
17414
|
+
status: "restricted",
|
|
17415
|
+
basis: {
|
|
17416
|
+
type: "county_cited_statute",
|
|
17417
|
+
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.",
|
|
17418
|
+
citation: "N.J. Daniel's Law",
|
|
17419
|
+
attributedTo: "NJ Office of GIS (service description)",
|
|
17420
|
+
sourceUrl: "https://www.nj.gov/njgin/"
|
|
17421
|
+
}
|
|
17422
|
+
}
|
|
17423
|
+
},
|
|
17424
|
+
countyFips: "34013",
|
|
17425
|
+
hasPublicRest: true,
|
|
17426
|
+
endpoints: [
|
|
17427
|
+
{
|
|
17428
|
+
url: "https://services2.arcgis.com/XVOqAjTOJ5P6ngMu/arcgis/rest/services/Parcels_Composite_NJ_WM/FeatureServer/0",
|
|
17429
|
+
serviceType: "FeatureServer",
|
|
17430
|
+
layerIndex: 0,
|
|
17431
|
+
layerName: "Cad_parcel_mod4",
|
|
17432
|
+
supportsQuery: true,
|
|
17433
|
+
corsEnabled: true,
|
|
17434
|
+
searchFields: [
|
|
17435
|
+
{
|
|
17436
|
+
name: "PAMS_PIN",
|
|
17437
|
+
label: "PAMS Parcel Identifier (MUN_BLOCK_LOT)",
|
|
17438
|
+
searchable: true
|
|
17439
|
+
},
|
|
17440
|
+
{
|
|
17441
|
+
name: "PROP_LOC",
|
|
17442
|
+
label: "Property Location / Address",
|
|
17443
|
+
searchable: true
|
|
17444
|
+
},
|
|
17445
|
+
{
|
|
17446
|
+
name: "MUN_NAME",
|
|
17447
|
+
label: "Municipality Name",
|
|
17448
|
+
searchable: true
|
|
17449
|
+
},
|
|
17450
|
+
{
|
|
17451
|
+
name: "ST_ADDRESS",
|
|
17452
|
+
label: "Mailing Street Address",
|
|
17453
|
+
searchable: true
|
|
17454
|
+
},
|
|
17455
|
+
{
|
|
17456
|
+
name: "CITY_STATE",
|
|
17457
|
+
label: "Mailing City and State",
|
|
17458
|
+
searchable: false
|
|
17459
|
+
},
|
|
17460
|
+
{
|
|
17461
|
+
name: "ZIP_CODE",
|
|
17462
|
+
label: "Mailing ZIP Code",
|
|
17463
|
+
searchable: false
|
|
17464
|
+
},
|
|
17465
|
+
{
|
|
17466
|
+
name: "PROP_CLASS",
|
|
17467
|
+
label: "Property Class Code",
|
|
17468
|
+
searchable: false
|
|
17469
|
+
},
|
|
17470
|
+
{
|
|
17471
|
+
name: "LAND_VAL",
|
|
17472
|
+
label: "Land Value",
|
|
17473
|
+
searchable: false
|
|
17474
|
+
},
|
|
17475
|
+
{
|
|
17476
|
+
name: "IMPRVT_VAL",
|
|
17477
|
+
label: "Improvement Value",
|
|
17478
|
+
searchable: false
|
|
17479
|
+
},
|
|
17480
|
+
{
|
|
17481
|
+
name: "NET_VALUE",
|
|
17482
|
+
label: "Net Assessed Value",
|
|
17483
|
+
searchable: false
|
|
17484
|
+
},
|
|
17485
|
+
{
|
|
17486
|
+
name: "CALC_ACRE",
|
|
17487
|
+
label: "Calculated Acreage",
|
|
17488
|
+
searchable: false
|
|
17489
|
+
},
|
|
17490
|
+
{
|
|
17491
|
+
name: "SALE_PRICE",
|
|
17492
|
+
label: "Last Sale Price",
|
|
17493
|
+
searchable: false
|
|
17494
|
+
}
|
|
17495
|
+
],
|
|
17496
|
+
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",
|
|
17497
|
+
license: "public",
|
|
17498
|
+
licenseUrl: "https://www.arcgis.com/home/item.html?id=533599bbfbaa4748bf39faf1375a8a9c",
|
|
17499
|
+
status: "live",
|
|
17500
|
+
lastVerified: "2026-10-03",
|
|
17501
|
+
verifiedBy: "manual",
|
|
17502
|
+
scopeWhere: "COUNTY='ESSEX'"
|
|
17503
|
+
}
|
|
17504
|
+
],
|
|
17505
|
+
contact: {
|
|
17506
|
+
department: "NJ Office of GIS (NJOGIS), Statewide MOD-IV Composite",
|
|
17507
|
+
url: "https://www.nj.gov/njgin/",
|
|
17508
|
+
email: null
|
|
17509
|
+
},
|
|
17510
|
+
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)."
|
|
17172
17511
|
}
|
|
17173
17512
|
]
|
|
17174
17513
|
};
|
|
@@ -19498,7 +19837,7 @@ var oklahoma_default = {
|
|
|
19498
19837
|
stateSlug: "oklahoma",
|
|
19499
19838
|
stateName: "Oklahoma",
|
|
19500
19839
|
stateAbbrev: "OK",
|
|
19501
|
-
lastUpdated: "2026-
|
|
19840
|
+
lastUpdated: "2026-10-03",
|
|
19502
19841
|
counties: [
|
|
19503
19842
|
{
|
|
19504
19843
|
id: "ok-oklahoma",
|
|
@@ -19540,6 +19879,23 @@ var oklahoma_default = {
|
|
|
19540
19879
|
email: null
|
|
19541
19880
|
},
|
|
19542
19881
|
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."
|
|
19882
|
+
},
|
|
19883
|
+
{
|
|
19884
|
+
id: "ok-garfield",
|
|
19885
|
+
state: "OK",
|
|
19886
|
+
stateName: "Oklahoma",
|
|
19887
|
+
stateSlug: "oklahoma",
|
|
19888
|
+
county: "Garfield",
|
|
19889
|
+
countySlug: "garfield-county",
|
|
19890
|
+
countyFips: "40047",
|
|
19891
|
+
hasPublicRest: false,
|
|
19892
|
+
endpoints: [],
|
|
19893
|
+
contact: {
|
|
19894
|
+
department: "Garfield County Assessor",
|
|
19895
|
+
url: "https://www.assessor.garfieldok.com/",
|
|
19896
|
+
email: null
|
|
19897
|
+
},
|
|
19898
|
+
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."
|
|
19543
19899
|
}
|
|
19544
19900
|
]
|
|
19545
19901
|
};
|
|
@@ -19789,14 +20145,66 @@ var oregon_default = {
|
|
|
19789
20145
|
county: "Clackamas",
|
|
19790
20146
|
countySlug: "clackamas-county",
|
|
19791
20147
|
countyFips: "41005",
|
|
19792
|
-
|
|
19793
|
-
|
|
20148
|
+
ownerFieldNote: {
|
|
20149
|
+
body: "Clackamas County does not publish owner names or owner mailing addresses on any public layer. Its own taxlot layer carries the parcel number, map and taxlot number, site address and assessed values, so search by address or parcel number here. The county directs ownership questions to Assessment and Taxation (503-655-8671, propertytaxinfo@clackamas.us).",
|
|
20150
|
+
source: {
|
|
20151
|
+
label: "Clackamas County GIS",
|
|
20152
|
+
url: "https://www.clackamas.us/gis"
|
|
20153
|
+
}
|
|
20154
|
+
},
|
|
20155
|
+
capabilityOverrides: {
|
|
20156
|
+
owner_name: {
|
|
20157
|
+
status: "not_published",
|
|
20158
|
+
basis: {
|
|
20159
|
+
type: "endpoint_schema",
|
|
20160
|
+
note: "The county's public Taxlots_CMap layer has no owner-name column in its field list, and the county publishes no owner name on any public layer; it routes owner questions to Assessment and Taxation.",
|
|
20161
|
+
sourceUrl: "https://www.clackamas.us/gis"
|
|
20162
|
+
}
|
|
20163
|
+
},
|
|
20164
|
+
owner_mailing_address: {
|
|
20165
|
+
status: "not_published",
|
|
20166
|
+
basis: {
|
|
20167
|
+
type: "endpoint_schema",
|
|
20168
|
+
note: "The county's public Taxlots_CMap layer has no owner mailing-address column in its field list, and the county publishes no owner mailing address on any public layer; it routes owner questions to Assessment and Taxation.",
|
|
20169
|
+
sourceUrl: "https://www.clackamas.us/gis"
|
|
20170
|
+
}
|
|
20171
|
+
}
|
|
20172
|
+
},
|
|
20173
|
+
hasPublicRest: true,
|
|
20174
|
+
endpoints: [
|
|
20175
|
+
{
|
|
20176
|
+
url: "https://services3.arcgis.com/I2eWXOndpF9m8oKC/arcgis/rest/services/Taxlots_CMap/FeatureServer/0",
|
|
20177
|
+
serviceType: "FeatureServer",
|
|
20178
|
+
layerIndex: 0,
|
|
20179
|
+
layerName: "tax_taxlot_cmap",
|
|
20180
|
+
supportsQuery: true,
|
|
20181
|
+
corsEnabled: true,
|
|
20182
|
+
searchFields: [
|
|
20183
|
+
{ name: "PARCEL_NUMBER", label: "Parcel Number", searchable: true },
|
|
20184
|
+
{ name: "TLNO", label: "Map and Taxlot Number", searchable: true },
|
|
20185
|
+
{ name: "SITUS", label: "Situs Address", searchable: true },
|
|
20186
|
+
{ name: "SITUS_CITY", label: "Situs City", searchable: true },
|
|
20187
|
+
{ name: "SITUS_ZIP", label: "Situs ZIP", searchable: false },
|
|
20188
|
+
{ name: "TOTALVAL", label: "Total Value", searchable: false },
|
|
20189
|
+
{ name: "ASSESSEDVAL", label: "Assessed Value", searchable: false },
|
|
20190
|
+
{ name: "LANDCLASS", label: "Land Class Code", searchable: false },
|
|
20191
|
+
{ name: "YEARBLT", label: "Year Built", searchable: false },
|
|
20192
|
+
{ name: "SALE_PRICE", label: "Last Sale Price", searchable: false }
|
|
20193
|
+
],
|
|
20194
|
+
sampleQuery: "https://services3.arcgis.com/I2eWXOndpF9m8oKC/arcgis/rest/services/Taxlots_CMap/FeatureServer/0/query?where=UPPER(SITUS)%20LIKE%20%27%25MAIN%20ST%25%27&outFields=PARCEL_NUMBER,TLNO,SITUS,SITUS_CITY,TOTALVAL,LANDCLASS&returnGeometry=false&resultRecordCount=10&f=json",
|
|
20195
|
+
license: "unknown",
|
|
20196
|
+
licenseUrl: "https://www.arcgis.com/home/item.html?id=ba94373905a54b82b05946e164e38ec9",
|
|
20197
|
+
status: "live",
|
|
20198
|
+
lastVerified: "2026-10-03",
|
|
20199
|
+
verifiedBy: "manual"
|
|
20200
|
+
}
|
|
20201
|
+
],
|
|
19794
20202
|
contact: {
|
|
19795
20203
|
department: "Clackamas County Department of Assessment and Taxation / Technology Services GIS",
|
|
19796
20204
|
url: "https://www.clackamas.us/gis",
|
|
19797
20205
|
email: "gisquestions@clackamas.us"
|
|
19798
20206
|
},
|
|
19799
|
-
notes: "
|
|
20207
|
+
notes: "Clackamas County, Oregon (county seat Oregon City) publishes its taxlots on ArcGIS Online as Taxlots_CMap FeatureServer layer 0 (tax_taxlot_cmap), from the county GIS organisation that feeds its CMap viewer: 163,927 taxlots on 2026-10-03. THERE IS NO OWNER NAME AND NO OWNER MAILING ADDRESS in the layer's field list. The county states that it does not publish property owner names online and directs owner questions to Assessment and Taxation. Searchable: PARCEL_NUMBER (8 digits, e.g. 01099411), TLNO (map and taxlot, e.g. 52E09CD01302), SITUS (site address) and SITUS_CITY, with SITUS_ZIP and SITUS_FULL alongside. The layer also carries assessed, land, building and total values, land class, year built, living area, bedrooms and bathrooms, and the last sale price and document. CORS is open (Access-Control-Allow-Origin: *) and maxRecordCount is 2000. The item's licence text is a disclaimer only (provided as is, not a land survey); the county's GIS shapefile downloads separately require accepting a data licensing agreement. A slimmer sibling service, Taxlots FeatureServer layer 0, carries only the parcel, taxlot and situs columns. Statewide layers add nothing for owner search: the Oregon Water Resources Department taxlot layer (Tax_Lots_Public_View_WGS84 MapServer layer 2, county_name='Clackamas') adds an owner mailing street with no owner name and is not registered here, the Oregon Department of Forestry's 'Clackamas County' taxlot layer declares owner fields but has query disabled, and Metro's regional RLIS 'Taxlots (Public)' dataset, per its listing, excludes ownership. Verified live 2026-10-03: UPPER(SITUS) LIKE '%MAIN ST%' returned rows (first PARCEL_NUMBER 01099411, 528 E MAIN ST, Molalla)."
|
|
19800
20208
|
},
|
|
19801
20209
|
{
|
|
19802
20210
|
id: "or-malheur",
|
|
@@ -20307,7 +20715,7 @@ var tennessee_default = {
|
|
|
20307
20715
|
stateSlug: "tennessee",
|
|
20308
20716
|
stateName: "Tennessee",
|
|
20309
20717
|
stateAbbrev: "TN",
|
|
20310
|
-
lastUpdated: "2026-
|
|
20718
|
+
lastUpdated: "2026-10-03",
|
|
20311
20719
|
counties: [
|
|
20312
20720
|
{
|
|
20313
20721
|
id: "tn-davidson",
|
|
@@ -20455,6 +20863,91 @@ var tennessee_default = {
|
|
|
20455
20863
|
email: null
|
|
20456
20864
|
},
|
|
20457
20865
|
notes: "Hamilton County (Chattanooga, pop. 375,000) Live_Parcels layer, service name 'Live' indicates real-time feed from the assessor. Service is on mapsdev.hamiltontn.gov (hcwa03 subdirectory). 15 fields confirmed: OBJECTID, PARCEL_TYP, PBA_NUM, GISLINK, OWNERNAME1/2, STNUM, DIRPFX, STNAME, TYPESFX, ADDRESS, MAP, GROUP_, PARCEL. PBA_NUM is the full parcel book/account number (e.g., '033006 00302P000'); GISLINK is the trimmed parcel ID. Verified 2026-05-15: SMITH returns addresses like '16909 DAYTON PIKE', '703 GRAYSVILLE RD'. Note: distinct from Hamilton County OH (Cincinnati, FIPS 39061) in the atlas. SERVICE RETIRED (verified 2026-06-06): Live_Parcels/MapServer was removed from mapsdev.hamiltontn.gov ('Could not find service'). No public REST replacement exists -- Live_RealProperty is a 155-record county-owned-property inventory, not a parcel layer, and assessor.hamiltontn.gov has no REST API. Status set to unreachable pending a county-side replacement."
|
|
20866
|
+
},
|
|
20867
|
+
{
|
|
20868
|
+
id: "tn-sullivan",
|
|
20869
|
+
state: "TN",
|
|
20870
|
+
stateName: "Tennessee",
|
|
20871
|
+
stateSlug: "tennessee",
|
|
20872
|
+
county: "Sullivan",
|
|
20873
|
+
countySlug: "sullivan-county",
|
|
20874
|
+
countyFips: "47163",
|
|
20875
|
+
hasPublicRest: true,
|
|
20876
|
+
endpoints: [
|
|
20877
|
+
{
|
|
20878
|
+
url: "https://gis.johnsoncitytn.org/arcgis/rest/services/ParcelPublishing/TaxParcels/MapServer/0",
|
|
20879
|
+
serviceType: "MapServer",
|
|
20880
|
+
layerIndex: 0,
|
|
20881
|
+
layerName: "Tax Parcels",
|
|
20882
|
+
supportsQuery: true,
|
|
20883
|
+
corsEnabled: true,
|
|
20884
|
+
searchFields: [
|
|
20885
|
+
{
|
|
20886
|
+
name: "OWNER",
|
|
20887
|
+
label: "Owner Name",
|
|
20888
|
+
searchable: true
|
|
20889
|
+
},
|
|
20890
|
+
{
|
|
20891
|
+
name: "OWNER2",
|
|
20892
|
+
label: "Owner Name 2",
|
|
20893
|
+
searchable: false
|
|
20894
|
+
},
|
|
20895
|
+
{
|
|
20896
|
+
name: "GISLINK",
|
|
20897
|
+
label: "Parcel ID (GIS link, e.g. 082029B A 01600)",
|
|
20898
|
+
searchable: true
|
|
20899
|
+
},
|
|
20900
|
+
{
|
|
20901
|
+
name: "ID",
|
|
20902
|
+
label: "Parcel Display ID (e.g. 029B A 016.00)",
|
|
20903
|
+
searchable: true
|
|
20904
|
+
},
|
|
20905
|
+
{
|
|
20906
|
+
name: "ADDRESS",
|
|
20907
|
+
label: "Property Address (street name first, house number last)",
|
|
20908
|
+
searchable: true
|
|
20909
|
+
},
|
|
20910
|
+
{
|
|
20911
|
+
name: "MAILADDR",
|
|
20912
|
+
label: "Owner Mailing Address",
|
|
20913
|
+
searchable: true
|
|
20914
|
+
},
|
|
20915
|
+
{
|
|
20916
|
+
name: "MAILCITY",
|
|
20917
|
+
label: "Owner Mailing City",
|
|
20918
|
+
searchable: false
|
|
20919
|
+
},
|
|
20920
|
+
{
|
|
20921
|
+
name: "LANDUSE",
|
|
20922
|
+
label: "Land Use",
|
|
20923
|
+
searchable: false
|
|
20924
|
+
},
|
|
20925
|
+
{
|
|
20926
|
+
name: "APPRAISAL",
|
|
20927
|
+
label: "Total Appraisal",
|
|
20928
|
+
searchable: false
|
|
20929
|
+
},
|
|
20930
|
+
{
|
|
20931
|
+
name: "CALC_ACRE",
|
|
20932
|
+
label: "Calculated Acreage",
|
|
20933
|
+
searchable: false
|
|
20934
|
+
}
|
|
20935
|
+
],
|
|
20936
|
+
scopeWhere: "COUNTYNAME='Sullivan County'",
|
|
20937
|
+
sampleQuery: "https://gis.johnsoncitytn.org/arcgis/rest/services/ParcelPublishing/TaxParcels/MapServer/0/query?where=COUNTYNAME%3D%27Sullivan%20County%27%20AND%20UPPER(OWNER)%20LIKE%20%27SMITH%25%27&outFields=OWNER,GISLINK,ID,ADDRESS,MAILADDR,MAILCITY&returnGeometry=false&resultRecordCount=10&f=json",
|
|
20938
|
+
license: "restricted",
|
|
20939
|
+
licenseUrl: "https://www.arcgis.com/home/item.html?id=ec2949776f6448ef8e6401cc81a4d018",
|
|
20940
|
+
status: "live",
|
|
20941
|
+
lastVerified: "2026-10-03",
|
|
20942
|
+
verifiedBy: "manual"
|
|
20943
|
+
}
|
|
20944
|
+
],
|
|
20945
|
+
contact: {
|
|
20946
|
+
department: "City of Johnson City GIS Division (regional parcel layer covering Sullivan County)",
|
|
20947
|
+
url: "https://gis.johnsoncitytn.org/",
|
|
20948
|
+
email: null
|
|
20949
|
+
},
|
|
20950
|
+
notes: `Sullivan County, Tennessee (county seat Blountville; Kingsport and Bristol) has no county-run public REST parcel layer with owner names. Its parcels are carried on the City of Johnson City's regional ParcelPublishing/TaxParcels MapServer layer 0 (Tax Parcels), which also holds Washington, Carter, Unicoi and neighbouring counties. Filter with COUNTYNAME='Sullivan County' (78,958 of the layer's 183,538 rows on 2026-10-03); the plain value 'Sullivan' matches nothing. About 313 Sullivan parcels (GISLINK starting 082) carry a NULL or different COUNTYNAME and fall outside this scope, roughly 0.4 percent; COUNTY_ID=82 catches them but admits 314 rows from outside the county, so the name scope stays. The owner is OWNER (with OWNER2); the parcel ID is GISLINK (e.g. 082029B A 01600) with ID as the display form (029B A 016.00), and PARID is NULL for Sullivan rows. ADDRESS stores the street name first and the house number last (BRENTWOOD DR 377), so search on a street word: a number-first LIKE ('%377 BRENTWOOD DR%') returns nothing, and only 647 of 78,737 Sullivan addresses start with a digit, so the free tools' address auto-lookup will miss most Sullivan addresses until they retry number-last. The owner mailing address is MAILADDR with MAILCITY, STATE and ZIP. CARDURL links each parcel to the state's TPAD property card. CORS reflects the request Origin (Access-Control-Allow-Origin echoed back, credentials true); a request without an Origin gets no CORS header. maxRecordCount is 2000. LICENCE: RESTRICTED. The ArcGIS item's licence text reads: "Read access only for all city staff. Delivered products are not to be resold by the purchaser for any reason and may not be reproduced without the written permission of the staff of the Johnson City GIS Division." The item and the REST endpoint are public, but the terms restrict resale and reproduction, so the atlas records only the query URL, stores no copy of the layer beyond the short-lived server cache every live query passes through, and serves this county by live query only; Leo reviewed and accepted that exposure on 2026-10-03. The data was last refreshed in October 2025. Sullivan County's own SULLIVAN service on ArcGIS Online has no owner field, and Tennessee publishes no statewide parcel REST layer. Verified live 2026-10-03: owner SMITH returned rows (first SMITH BETTY TRUSTEE, GISLINK 082029B A 01600, BRENTWOOD DR 377, mailing 377 BRENTWOOD DRIVE KINGSPORT).`
|
|
20458
20951
|
}
|
|
20459
20952
|
]
|
|
20460
20953
|
};
|
|
@@ -22308,12 +22801,31 @@ function countySlugFromName(county) {
|
|
|
22308
22801
|
const name = county.trim();
|
|
22309
22802
|
return slugify(COUNTY_UNIT_SUFFIX.test(name) ? name : `${name} County`);
|
|
22310
22803
|
}
|
|
22311
|
-
function
|
|
22804
|
+
function canonicalLayerUrl(url) {
|
|
22805
|
+
const raw = url.trim();
|
|
22806
|
+
let parsed;
|
|
22807
|
+
try {
|
|
22808
|
+
parsed = new URL(raw);
|
|
22809
|
+
} catch {
|
|
22810
|
+
parsed = null;
|
|
22811
|
+
}
|
|
22812
|
+
if (!parsed || parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
22813
|
+
return raw.replace(/\/+$/, "").toLowerCase();
|
|
22814
|
+
}
|
|
22815
|
+
const path = parsed.pathname.replace(/\/{2,}/g, "/").replace(/\/+$/, "").replace(/\/query$/i, "").replace(/\/+$/, "");
|
|
22816
|
+
const port = parsed.port ? `:${parsed.port}` : "";
|
|
22817
|
+
return `${parsed.hostname}${port}${path}`.toLowerCase();
|
|
22818
|
+
}
|
|
22819
|
+
function buildParcelLookupDeepLink(endpoint, base = "https://urbankitstudio.com/tools/parcel-lookup", county) {
|
|
22820
|
+
const searchable = offersAttributeSearch(endpoint);
|
|
22821
|
+
const primary = county?.endpoints ? county.endpoints[0] : endpoint;
|
|
22822
|
+
const isPrimary = !!primary && canonicalLayerUrl(primary.url) === canonicalLayerUrl(endpoint.url);
|
|
22823
|
+
if (county && isPrimary && (!searchable || endpoint.scopeWhere)) {
|
|
22824
|
+
return `${base}/${encodeURIComponent(county.stateSlug)}/${encodeURIComponent(county.countySlug)}`;
|
|
22825
|
+
}
|
|
22312
22826
|
const params = new URLSearchParams();
|
|
22313
22827
|
params.set("endpoint", endpoint.url);
|
|
22314
|
-
const ownerField = endpoint.searchFields.find(
|
|
22315
|
-
(f) => /owner|taxpayer/i.test(f.name)
|
|
22316
|
-
);
|
|
22828
|
+
const ownerField = searchable ? endpoint.searchFields.find((f) => /owner|taxpayer/i.test(f.name)) : void 0;
|
|
22317
22829
|
if (ownerField) params.set("fieldHint", ownerField.name);
|
|
22318
22830
|
return `${base}?${params.toString()}`;
|
|
22319
22831
|
}
|
|
@@ -22328,6 +22840,8 @@ exports.LIVE_STATUS_URL = LIVE_STATUS_URL;
|
|
|
22328
22840
|
exports.atlas = atlas;
|
|
22329
22841
|
exports.atlasIndex = atlasIndex;
|
|
22330
22842
|
exports.buildParcelLookupDeepLink = buildParcelLookupDeepLink;
|
|
22843
|
+
exports.canonicalLayerUrl = canonicalLayerUrl;
|
|
22844
|
+
exports.countyOffersAttributeSearch = countyOffersAttributeSearch;
|
|
22331
22845
|
exports.countyPath = countyPath;
|
|
22332
22846
|
exports.countySlugFromName = countySlugFromName;
|
|
22333
22847
|
exports.findCounty = findCounty;
|
|
@@ -22336,6 +22850,7 @@ exports.findState = findState;
|
|
|
22336
22850
|
exports.isReviewedUnservable = isReviewedUnservable;
|
|
22337
22851
|
exports.listCountiesByState = listCountiesByState;
|
|
22338
22852
|
exports.listStates = listStates;
|
|
22853
|
+
exports.offersAttributeSearch = offersAttributeSearch;
|
|
22339
22854
|
exports.reviewedCapability = reviewedCapability;
|
|
22340
22855
|
exports.slugify = slugify;
|
|
22341
22856
|
exports.statePath = statePath;
|