@urbankitstudio/atlas 0.5.3 → 0.6.1

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/data/montana.json CHANGED
@@ -22,26 +22,79 @@
22
22
  "supportsQuery": true,
23
23
  "corsEnabled": null,
24
24
  "searchFields": [
25
- { "name": "PARCELID", "label": "Parcel ID", "searchable": true },
26
- { "name": "OwnerName", "label": "Owner Name", "searchable": true },
27
- { "name": "OwnerAddress1", "label": "Owner Address Line 1", "searchable": false },
28
- { "name": "OwnerAddress2", "label": "Owner Address Line 2", "searchable": false },
29
- { "name": "OwnerCity", "label": "Owner City", "searchable": false },
30
- { "name": "OwnerState", "label": "Owner State", "searchable": false },
31
- { "name": "OwnerZipCode", "label": "Owner ZIP Code", "searchable": false },
32
- { "name": "AddressLine1", "label": "Property Address", "searchable": true },
33
- { "name": "CityStateZip", "label": "Property City/State/ZIP", "searchable": false },
34
- { "name": "CountyName", "label": "County Name (Yellowstone)", "searchable": false },
35
- { "name": "COUNTYCD", "label": "County Code (3 = Yellowstone)", "searchable": false },
36
- { "name": "TotalValue", "label": "Total Assessed Value", "searchable": false },
37
- { "name": "TaxYear", "label": "Tax Year", "searchable": false }
25
+ {
26
+ "name": "PARCELID",
27
+ "label": "Parcel ID",
28
+ "searchable": true
29
+ },
30
+ {
31
+ "name": "OwnerName",
32
+ "label": "Owner Name",
33
+ "searchable": true
34
+ },
35
+ {
36
+ "name": "OwnerAddress1",
37
+ "label": "Owner Address Line 1",
38
+ "searchable": false
39
+ },
40
+ {
41
+ "name": "OwnerAddress2",
42
+ "label": "Owner Address Line 2",
43
+ "searchable": false
44
+ },
45
+ {
46
+ "name": "OwnerCity",
47
+ "label": "Owner City",
48
+ "searchable": false
49
+ },
50
+ {
51
+ "name": "OwnerState",
52
+ "label": "Owner State",
53
+ "searchable": false
54
+ },
55
+ {
56
+ "name": "OwnerZipCode",
57
+ "label": "Owner ZIP Code",
58
+ "searchable": false
59
+ },
60
+ {
61
+ "name": "AddressLine1",
62
+ "label": "Property Address",
63
+ "searchable": true
64
+ },
65
+ {
66
+ "name": "CityStateZip",
67
+ "label": "Property City/State/ZIP",
68
+ "searchable": false
69
+ },
70
+ {
71
+ "name": "CountyName",
72
+ "label": "County Name (Yellowstone)",
73
+ "searchable": false
74
+ },
75
+ {
76
+ "name": "COUNTYCD",
77
+ "label": "County Code (3 = Yellowstone)",
78
+ "searchable": false
79
+ },
80
+ {
81
+ "name": "TotalValue",
82
+ "label": "Total Assessed Value",
83
+ "searchable": false
84
+ },
85
+ {
86
+ "name": "TaxYear",
87
+ "label": "Tax Year",
88
+ "searchable": false
89
+ }
38
90
  ],
39
91
  "sampleQuery": "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Yellowstone'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
40
92
  "license": "public",
41
93
  "licenseUrl": "https://gisservice.mt.gov/",
42
94
  "status": "live",
43
95
  "lastVerified": "2026-06-20",
44
- "verifiedBy": "automated"
96
+ "verifiedBy": "automated",
97
+ "scopeWhere": "CountyName = 'Yellowstone'"
45
98
  }
46
99
  ],
47
100
  "contact": {
@@ -69,26 +122,79 @@
69
122
  "supportsQuery": true,
70
123
  "corsEnabled": null,
71
124
  "searchFields": [
72
- { "name": "PARCELID", "label": "Parcel ID", "searchable": true },
73
- { "name": "OwnerName", "label": "Owner Name", "searchable": true },
74
- { "name": "OwnerAddress1", "label": "Owner Address Line 1", "searchable": false },
75
- { "name": "OwnerAddress2", "label": "Owner Address Line 2", "searchable": false },
76
- { "name": "OwnerCity", "label": "Owner City", "searchable": false },
77
- { "name": "OwnerState", "label": "Owner State", "searchable": false },
78
- { "name": "OwnerZipCode", "label": "Owner ZIP Code", "searchable": false },
79
- { "name": "AddressLine1", "label": "Property Address", "searchable": true },
80
- { "name": "CityStateZip", "label": "Property City/State/ZIP", "searchable": false },
81
- { "name": "CountyName", "label": "County Name (Missoula)", "searchable": false },
82
- { "name": "COUNTYCD", "label": "County Code (4 = Missoula)", "searchable": false },
83
- { "name": "TotalValue", "label": "Total Assessed Value", "searchable": false },
84
- { "name": "TaxYear", "label": "Tax Year", "searchable": false }
125
+ {
126
+ "name": "PARCELID",
127
+ "label": "Parcel ID",
128
+ "searchable": true
129
+ },
130
+ {
131
+ "name": "OwnerName",
132
+ "label": "Owner Name",
133
+ "searchable": true
134
+ },
135
+ {
136
+ "name": "OwnerAddress1",
137
+ "label": "Owner Address Line 1",
138
+ "searchable": false
139
+ },
140
+ {
141
+ "name": "OwnerAddress2",
142
+ "label": "Owner Address Line 2",
143
+ "searchable": false
144
+ },
145
+ {
146
+ "name": "OwnerCity",
147
+ "label": "Owner City",
148
+ "searchable": false
149
+ },
150
+ {
151
+ "name": "OwnerState",
152
+ "label": "Owner State",
153
+ "searchable": false
154
+ },
155
+ {
156
+ "name": "OwnerZipCode",
157
+ "label": "Owner ZIP Code",
158
+ "searchable": false
159
+ },
160
+ {
161
+ "name": "AddressLine1",
162
+ "label": "Property Address",
163
+ "searchable": true
164
+ },
165
+ {
166
+ "name": "CityStateZip",
167
+ "label": "Property City/State/ZIP",
168
+ "searchable": false
169
+ },
170
+ {
171
+ "name": "CountyName",
172
+ "label": "County Name (Missoula)",
173
+ "searchable": false
174
+ },
175
+ {
176
+ "name": "COUNTYCD",
177
+ "label": "County Code (4 = Missoula)",
178
+ "searchable": false
179
+ },
180
+ {
181
+ "name": "TotalValue",
182
+ "label": "Total Assessed Value",
183
+ "searchable": false
184
+ },
185
+ {
186
+ "name": "TaxYear",
187
+ "label": "Tax Year",
188
+ "searchable": false
189
+ }
85
190
  ],
86
191
  "sampleQuery": "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Missoula'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
87
192
  "license": "public",
88
193
  "licenseUrl": "https://gisservice.mt.gov/",
89
194
  "status": "live",
90
195
  "lastVerified": "2026-06-20",
91
- "verifiedBy": "automated"
196
+ "verifiedBy": "automated",
197
+ "scopeWhere": "CountyName = 'Missoula'"
92
198
  }
93
199
  ],
94
200
  "contact": {
@@ -116,26 +222,79 @@
116
222
  "supportsQuery": true,
117
223
  "corsEnabled": null,
118
224
  "searchFields": [
119
- { "name": "PARCELID", "label": "Parcel ID", "searchable": true },
120
- { "name": "OwnerName", "label": "Owner Name", "searchable": true },
121
- { "name": "OwnerAddress1", "label": "Owner Address Line 1", "searchable": false },
122
- { "name": "OwnerAddress2", "label": "Owner Address Line 2", "searchable": false },
123
- { "name": "OwnerCity", "label": "Owner City", "searchable": false },
124
- { "name": "OwnerState", "label": "Owner State", "searchable": false },
125
- { "name": "OwnerZipCode", "label": "Owner ZIP Code", "searchable": false },
126
- { "name": "AddressLine1", "label": "Property Address", "searchable": true },
127
- { "name": "CityStateZip", "label": "Property City/State/ZIP", "searchable": false },
128
- { "name": "CountyName", "label": "County Name (Cascade)", "searchable": false },
129
- { "name": "COUNTYCD", "label": "County Code (2 = Cascade)", "searchable": false },
130
- { "name": "TotalValue", "label": "Total Assessed Value", "searchable": false },
131
- { "name": "TaxYear", "label": "Tax Year", "searchable": false }
225
+ {
226
+ "name": "PARCELID",
227
+ "label": "Parcel ID",
228
+ "searchable": true
229
+ },
230
+ {
231
+ "name": "OwnerName",
232
+ "label": "Owner Name",
233
+ "searchable": true
234
+ },
235
+ {
236
+ "name": "OwnerAddress1",
237
+ "label": "Owner Address Line 1",
238
+ "searchable": false
239
+ },
240
+ {
241
+ "name": "OwnerAddress2",
242
+ "label": "Owner Address Line 2",
243
+ "searchable": false
244
+ },
245
+ {
246
+ "name": "OwnerCity",
247
+ "label": "Owner City",
248
+ "searchable": false
249
+ },
250
+ {
251
+ "name": "OwnerState",
252
+ "label": "Owner State",
253
+ "searchable": false
254
+ },
255
+ {
256
+ "name": "OwnerZipCode",
257
+ "label": "Owner ZIP Code",
258
+ "searchable": false
259
+ },
260
+ {
261
+ "name": "AddressLine1",
262
+ "label": "Property Address",
263
+ "searchable": true
264
+ },
265
+ {
266
+ "name": "CityStateZip",
267
+ "label": "Property City/State/ZIP",
268
+ "searchable": false
269
+ },
270
+ {
271
+ "name": "CountyName",
272
+ "label": "County Name (Cascade)",
273
+ "searchable": false
274
+ },
275
+ {
276
+ "name": "COUNTYCD",
277
+ "label": "County Code (2 = Cascade)",
278
+ "searchable": false
279
+ },
280
+ {
281
+ "name": "TotalValue",
282
+ "label": "Total Assessed Value",
283
+ "searchable": false
284
+ },
285
+ {
286
+ "name": "TaxYear",
287
+ "label": "Tax Year",
288
+ "searchable": false
289
+ }
132
290
  ],
133
291
  "sampleQuery": "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Cascade'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
134
292
  "license": "public",
135
293
  "licenseUrl": "https://gisservice.mt.gov/",
136
294
  "status": "live",
137
295
  "lastVerified": "2026-06-20",
138
- "verifiedBy": "automated"
296
+ "verifiedBy": "automated",
297
+ "scopeWhere": "CountyName = 'Cascade'"
139
298
  }
140
299
  ],
141
300
  "contact": {
@@ -163,26 +322,79 @@
163
322
  "supportsQuery": true,
164
323
  "corsEnabled": null,
165
324
  "searchFields": [
166
- { "name": "PARCELID", "label": "Parcel ID", "searchable": true },
167
- { "name": "OwnerName", "label": "Owner Name", "searchable": true },
168
- { "name": "OwnerAddress1", "label": "Owner Address Line 1", "searchable": false },
169
- { "name": "OwnerAddress2", "label": "Owner Address Line 2", "searchable": false },
170
- { "name": "OwnerCity", "label": "Owner City", "searchable": false },
171
- { "name": "OwnerState", "label": "Owner State", "searchable": false },
172
- { "name": "OwnerZipCode", "label": "Owner ZIP Code", "searchable": false },
173
- { "name": "AddressLine1", "label": "Property Address", "searchable": true },
174
- { "name": "CityStateZip", "label": "Property City/State/ZIP", "searchable": false },
175
- { "name": "CountyName", "label": "County Name (Flathead)", "searchable": false },
176
- { "name": "COUNTYCD", "label": "County Code (7 = Flathead)", "searchable": false },
177
- { "name": "TotalValue", "label": "Total Assessed Value", "searchable": false },
178
- { "name": "TaxYear", "label": "Tax Year", "searchable": false }
325
+ {
326
+ "name": "PARCELID",
327
+ "label": "Parcel ID",
328
+ "searchable": true
329
+ },
330
+ {
331
+ "name": "OwnerName",
332
+ "label": "Owner Name",
333
+ "searchable": true
334
+ },
335
+ {
336
+ "name": "OwnerAddress1",
337
+ "label": "Owner Address Line 1",
338
+ "searchable": false
339
+ },
340
+ {
341
+ "name": "OwnerAddress2",
342
+ "label": "Owner Address Line 2",
343
+ "searchable": false
344
+ },
345
+ {
346
+ "name": "OwnerCity",
347
+ "label": "Owner City",
348
+ "searchable": false
349
+ },
350
+ {
351
+ "name": "OwnerState",
352
+ "label": "Owner State",
353
+ "searchable": false
354
+ },
355
+ {
356
+ "name": "OwnerZipCode",
357
+ "label": "Owner ZIP Code",
358
+ "searchable": false
359
+ },
360
+ {
361
+ "name": "AddressLine1",
362
+ "label": "Property Address",
363
+ "searchable": true
364
+ },
365
+ {
366
+ "name": "CityStateZip",
367
+ "label": "Property City/State/ZIP",
368
+ "searchable": false
369
+ },
370
+ {
371
+ "name": "CountyName",
372
+ "label": "County Name (Flathead)",
373
+ "searchable": false
374
+ },
375
+ {
376
+ "name": "COUNTYCD",
377
+ "label": "County Code (7 = Flathead)",
378
+ "searchable": false
379
+ },
380
+ {
381
+ "name": "TotalValue",
382
+ "label": "Total Assessed Value",
383
+ "searchable": false
384
+ },
385
+ {
386
+ "name": "TaxYear",
387
+ "label": "Tax Year",
388
+ "searchable": false
389
+ }
179
390
  ],
180
391
  "sampleQuery": "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Flathead'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
181
392
  "license": "public",
182
393
  "licenseUrl": "https://gisservice.mt.gov/",
183
394
  "status": "live",
184
395
  "lastVerified": "2026-06-20",
185
- "verifiedBy": "automated"
396
+ "verifiedBy": "automated",
397
+ "scopeWhere": "CountyName = 'Flathead'"
186
398
  }
187
399
  ],
188
400
  "contact": {
@@ -11,6 +11,25 @@
11
11
  "stateSlug": "new-jersey",
12
12
  "county": "Bergen",
13
13
  "countySlug": "bergen-county",
14
+ "ownerFieldNote": {
15
+ "body": "New Jersey's statewide parcel composite documents an OWNER_NAME column for Bergen County, but it is not populated on the public web service: a live sample of 300 records filtered to COUNTY='BERGEN' returned no value in any row, 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, assessed values and sale price are populated and searchable. Ownership is available from the municipal tax assessor.",
16
+ "source": {
17
+ "label": "New Jersey Office of GIS, statewide MOD-IV parcel composite",
18
+ "url": "https://www.nj.gov/njgin/"
19
+ }
20
+ },
21
+ "capabilityOverrides": {
22
+ "owner_name": {
23
+ "status": "restricted",
24
+ "basis": {
25
+ "type": "county_cited_statute",
26
+ "note": "The statewide composite layer's OWNER_NAME column returns no value for any Bergen 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.",
27
+ "citation": "N.J. Daniel's Law",
28
+ "attributedTo": "NJ Office of GIS (service description)",
29
+ "sourceUrl": "https://www.nj.gov/njgin/"
30
+ }
31
+ }
32
+ },
14
33
  "countyFips": "34003",
15
34
  "hasPublicRest": true,
16
35
  "endpoints": [
@@ -105,6 +124,16 @@
105
124
  "stateSlug": "new-jersey",
106
125
  "county": "Monmouth",
107
126
  "countySlug": "monmouth-county",
127
+ "capabilityOverrides": {
128
+ "owner_mailing_address": {
129
+ "status": "available",
130
+ "basis": {
131
+ "type": "statute",
132
+ "note": "Mailing addresses are published for most parcels, but New Jersey's Daniel's Law lets protected individuals such as judges, law enforcement and domestic-violence victims suppress their address, so affected rows return null or redacted values.",
133
+ "citation": "N.J. P.L. 2021, c.371 (Daniel's Law)"
134
+ }
135
+ }
136
+ },
108
137
  "countyFips": "34025",
109
138
  "hasPublicRest": true,
110
139
  "endpoints": [
@@ -229,6 +258,13 @@
229
258
  "stateSlug": "new-jersey",
230
259
  "county": "Ocean",
231
260
  "countySlug": "ocean-county",
261
+ "ownerFieldNote": {
262
+ "body": "New Jersey's statewide cadastral parcel layer documents an OWNER_NAME column, but it is not populated on the public web service: a live sample of 300 records filtered to COUNTY='OCEAN' returned no value in any row, so no query can retrieve ownership here. PAMS parcel identifier, municipality, property location, assessed values and sale price are populated and searchable. Ownership is available from the municipal tax assessor.",
263
+ "source": {
264
+ "label": "New Jersey Office of GIS, statewide cadastral parcel layer",
265
+ "url": "https://www.nj.gov/njgin/"
266
+ }
267
+ },
232
268
  "countyFips": "34029",
233
269
  "hasPublicRest": true,
234
270
  "endpoints": [
@@ -311,7 +347,8 @@
311
347
  "licenseUrl": "https://www.nj.gov/njgin/",
312
348
  "status": "live",
313
349
  "lastVerified": "2026-05-15",
314
- "verifiedBy": "manual"
350
+ "verifiedBy": "manual",
351
+ "scopeWhere": "COUNTY = 'OCEAN'"
315
352
  }
316
353
  ],
317
354
  "contact": {
@@ -319,7 +356,17 @@
319
356
  "url": "https://www.nj.gov/njgin/",
320
357
  "email": null
321
358
  },
322
- "notes": "Ocean County (pop. 637,000; Pine Barrens and Jersey Shore barrier islands) has no county-direct REST parcel layer. Parcel and owner data route through the NJOGIS statewide cadastral MapServer at maps.nj.gov (Framework/Cadastral/MapServer/0). Filter with COUNTY='OCEAN'. Key fields: OWNER_NAME (public, queryable), PAMS_PIN (county-municipality-block-lot-qualifier format), PROP_LOC (property street address), MUN_NAME (municipality), PROP_CLASS, LAND_VAL, IMPRVT_VAL, NET_VALUE, SALE_PRICE, YR_CONSTR, and DEED_DATE. NJ Daniel's Law (P.L. 2021, c.371) applies: certain registrants -- judges, law enforcement, domestic-violence victims -- can suppress address information; expect null or generic mailing-address entries for affected parcels. Ocean County's 33 municipalities range from Toms River to barrier-island towns like Long Beach Township and Seaside Heights. The NJOGIS layer is updated quarterly from county submissions to the MOD-IV tax-assessment system. For recorded deeds and chain-of-title, the Ocean County Clerk's document search at oceanrecorder.com is publicly accessible."
359
+ "notes": "Ocean County (pop. 637,000; Pine Barrens and Jersey Shore barrier islands) has no county-direct REST parcel layer. Parcel and owner data route through the NJOGIS statewide cadastral MapServer at maps.nj.gov (Framework/Cadastral/MapServer/0). Filter with COUNTY='OCEAN'. Key fields: OWNER_NAME (public, queryable), PAMS_PIN (county-municipality-block-lot-qualifier format), PROP_LOC (property street address), MUN_NAME (municipality), PROP_CLASS, LAND_VAL, IMPRVT_VAL, NET_VALUE, SALE_PRICE, YR_CONSTR, and DEED_DATE. New Jersey lets protected individuals -- judges, law enforcement, domestic-violence victims -- suppress address information from public records; expect null or generic mailing-address entries for affected parcels. Ocean County's 33 municipalities range from Toms River to barrier-island towns like Long Beach Township and Seaside Heights. The NJOGIS layer is updated quarterly from county submissions to the MOD-IV tax-assessment system. For recorded deeds and chain-of-title, the Ocean County Clerk's document search at oceanrecorder.com is publicly accessible.",
360
+ "capabilityOverrides": {
361
+ "owner_name": {
362
+ "status": "not_published",
363
+ "basis": {
364
+ "type": "endpoint_schema",
365
+ "note": "New Jersey's statewide cadastral layer documents an OWNER_NAME column, but it is empty on every one of the 3,481,240 records the service publishes, so no query can return ownership here. The service states no reason. Monmouth County, on a separate county-run service, does publish owner names.",
366
+ "sourceUrl": "https://www.nj.gov/njgin/"
367
+ }
368
+ }
369
+ }
323
370
  },
324
371
  {
325
372
  "id": "nj-camden",
@@ -328,6 +375,13 @@
328
375
  "stateSlug": "new-jersey",
329
376
  "county": "Camden",
330
377
  "countySlug": "camden-county",
378
+ "ownerFieldNote": {
379
+ "body": "New Jersey's statewide cadastral parcel layer documents an OWNER_NAME column, but it is not populated on the public web service: a live sample of 300 records filtered to COUNTY='CAMDEN' returned no value in any row, so no query can retrieve ownership here. PAMS parcel identifier, municipality, property location, assessed values and sale price are populated and searchable. Ownership is available from the municipal tax assessor.",
380
+ "source": {
381
+ "label": "New Jersey Office of GIS, statewide cadastral parcel layer",
382
+ "url": "https://www.nj.gov/njgin/"
383
+ }
384
+ },
331
385
  "countyFips": "34007",
332
386
  "hasPublicRest": true,
333
387
  "endpoints": [
@@ -395,7 +449,8 @@
395
449
  "licenseUrl": "https://www.nj.gov/njgin/",
396
450
  "status": "live",
397
451
  "lastVerified": "2026-05-15",
398
- "verifiedBy": "manual"
452
+ "verifiedBy": "manual",
453
+ "scopeWhere": "COUNTY = 'CAMDEN'"
399
454
  }
400
455
  ],
401
456
  "contact": {
@@ -403,7 +458,17 @@
403
458
  "url": "https://www.nj.gov/njgin/",
404
459
  "email": null
405
460
  },
406
- "notes": "Camden County (pop. 521,000; Philadelphia metro east bank) has no county-direct REST parcel layer. Data routes through the NJOGIS statewide cadastral MapServer at maps.nj.gov (Framework/Cadastral/MapServer/0). Filter with COUNTY='CAMDEN'. Fields include OWNER_NAME, PAMS_PIN (block-lot-qualifier MOD-IV identifier), PROP_LOC, MUN_NAME, PROP_CLASS, LAND_VAL, IMPRVT_VAL, NET_VALUE, SALE_PRICE, and CALC_ACRE. The county spans 37 municipalities from the dense urban core of Camden City through inner suburbs (Cherry Hill, Gloucester Township) to smaller boroughs like Haddonfield and Barrington. Camden City often has high parcel-change velocity; the NJOGIS layer captures these at the quarterly MOD-IV update cycle. NJ Daniel's Law address-redaction rules apply countywide. For deed-level detail, the Camden County Clerk's office maintains online document search. The county also participates in NJ Treasury's Property Tax Administration system, which cross-references the same PAMS_PIN identifiers used in this REST layer."
461
+ "notes": "Camden County (pop. 521,000; Philadelphia metro east bank) has no county-direct REST parcel layer. Data routes through the NJOGIS statewide cadastral MapServer at maps.nj.gov (Framework/Cadastral/MapServer/0). Filter with COUNTY='CAMDEN'. Fields include OWNER_NAME, PAMS_PIN (block-lot-qualifier MOD-IV identifier), PROP_LOC, MUN_NAME, PROP_CLASS, LAND_VAL, IMPRVT_VAL, NET_VALUE, SALE_PRICE, and CALC_ACRE. The county spans 37 municipalities from the dense urban core of Camden City through inner suburbs (Cherry Hill, Gloucester Township) to smaller boroughs like Haddonfield and Barrington. Camden City often has high parcel-change velocity; the NJOGIS layer captures these at the quarterly MOD-IV update cycle. New Jersey's address-redaction rules for protected individuals apply countywide. For deed-level detail, the Camden County Clerk's office maintains online document search. The county also participates in NJ Treasury's Property Tax Administration system, which cross-references the same PAMS_PIN identifiers used in this REST layer.",
462
+ "capabilityOverrides": {
463
+ "owner_name": {
464
+ "status": "not_published",
465
+ "basis": {
466
+ "type": "endpoint_schema",
467
+ "note": "New Jersey's statewide cadastral layer documents an OWNER_NAME column, but it is empty on every one of the 3,481,240 records the service publishes, so no query can return ownership here. The service states no reason. Monmouth County, on a separate county-run service, does publish owner names.",
468
+ "sourceUrl": "https://www.nj.gov/njgin/"
469
+ }
470
+ }
471
+ }
407
472
  },
408
473
  {
409
474
  "id": "nj-morris",
@@ -412,6 +477,13 @@
412
477
  "stateSlug": "new-jersey",
413
478
  "county": "Morris",
414
479
  "countySlug": "morris-county",
480
+ "ownerFieldNote": {
481
+ "body": "New Jersey's statewide cadastral parcel layer documents an OWNER_NAME column, but it is not populated on the public web service: a live sample of 300 records filtered to COUNTY='MORRIS' returned no value in any row, so no query can retrieve ownership here. PAMS parcel identifier, municipality, property location, assessed values and sale price are populated and searchable. Ownership is available from the municipal tax assessor.",
482
+ "source": {
483
+ "label": "New Jersey Office of GIS, statewide cadastral parcel layer",
484
+ "url": "https://www.nj.gov/njgin/"
485
+ }
486
+ },
415
487
  "countyFips": "34027",
416
488
  "hasPublicRest": true,
417
489
  "endpoints": [
@@ -479,7 +551,8 @@
479
551
  "licenseUrl": "https://www.nj.gov/njgin/",
480
552
  "status": "live",
481
553
  "lastVerified": "2026-05-15",
482
- "verifiedBy": "manual"
554
+ "verifiedBy": "manual",
555
+ "scopeWhere": "COUNTY = 'MORRIS'"
483
556
  }
484
557
  ],
485
558
  "contact": {
@@ -487,7 +560,17 @@
487
560
  "url": "https://www.nj.gov/njgin/",
488
561
  "email": null
489
562
  },
490
- "notes": "Morris County (pop. 510,000; northern NJ exurbs) has no county-direct REST parcel layer that exposes owner data. The local morrisgisapps.co.morris.nj.us MapServer exists but returns only PAMS_PIN and shape geometry -- insufficient for owner or address lookup. The NJOGIS statewide cadastral layer at maps.nj.gov (Framework/Cadastral/MapServer/0) is the practical choice; filter with COUNTY='MORRIS'. Fields include OWNER_NAME, PAMS_PIN, PROP_LOC, MUN_NAME, PROP_CLASS, LAND_VAL, IMPRVT_VAL, NET_VALUE, SALE_PRICE, YR_CONSTR, and CALC_ACRE. Morris County's 39 municipalities include Morristown, Parsippany-Troy Hills, Dover, Rockaway Township, Randolph, and several with significant commercial and industrial parcels along I-80 and Route 10. The MOD-IV quarterly update cycle applies; data reflects the prior quarter's county submission. NJ Daniel's Law address-redaction applies. For recorded instruments, the Morris County Clerk document portal is at morriscountyclerk.org."
563
+ "notes": "Morris County (pop. 510,000; northern NJ exurbs) has no county-direct REST parcel layer that exposes owner data. The local morrisgisapps.co.morris.nj.us MapServer exists but returns only PAMS_PIN and shape geometry -- insufficient for owner or address lookup. The NJOGIS statewide cadastral layer at maps.nj.gov (Framework/Cadastral/MapServer/0) is the practical choice; filter with COUNTY='MORRIS'. Fields include OWNER_NAME, PAMS_PIN, PROP_LOC, MUN_NAME, PROP_CLASS, LAND_VAL, IMPRVT_VAL, NET_VALUE, SALE_PRICE, YR_CONSTR, and CALC_ACRE. Morris County's 39 municipalities include Morristown, Parsippany-Troy Hills, Dover, Rockaway Township, Randolph, and several with significant commercial and industrial parcels along I-80 and Route 10. The MOD-IV quarterly update cycle applies; data reflects the prior quarter's county submission. New Jersey's address-redaction rules for protected individuals apply. For recorded instruments, the Morris County Clerk document portal is at morriscountyclerk.org.",
564
+ "capabilityOverrides": {
565
+ "owner_name": {
566
+ "status": "not_published",
567
+ "basis": {
568
+ "type": "endpoint_schema",
569
+ "note": "New Jersey's statewide cadastral layer documents an OWNER_NAME column, but it is empty on every one of the 3,481,240 records the service publishes, so no query can return ownership here. The service states no reason. Monmouth County, on a separate county-run service, does publish owner names.",
570
+ "sourceUrl": "https://www.nj.gov/njgin/"
571
+ }
572
+ }
573
+ }
491
574
  }
492
575
  ]
493
576
  }