@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/georgia.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "georgia",
3
3
  "stateName": "Georgia",
4
4
  "stateAbbrev": "GA",
5
- "lastUpdated": "2026-06-20",
5
+ "lastUpdated": "2026-08-25",
6
6
  "counties": [
7
7
  {
8
8
  "id": "ga-fulton",
@@ -23,15 +23,51 @@
23
23
  "supportsQuery": true,
24
24
  "corsEnabled": null,
25
25
  "searchFields": [
26
- { "name": "ParcelID", "label": "Parcel ID", "searchable": true },
27
- { "name": "Owner", "label": "Owner Name", "searchable": true },
28
- { "name": "Address", "label": "Site Address (full)", "searchable": true },
29
- { "name": "AddrNumber", "label": "Address Number", "searchable": true },
30
- { "name": "AddrStreet", "label": "Street Name", "searchable": true },
31
- { "name": "OwnerAddr1", "label": "Owner Mailing Address 1", "searchable": false },
32
- { "name": "OwnerAddr2", "label": "Owner Mailing Address 2", "searchable": false },
33
- { "name": "TaxYear", "label": "Tax Year", "searchable": false },
34
- { "name": "TaxDist", "label": "Tax District", "searchable": false }
26
+ {
27
+ "name": "ParcelID",
28
+ "label": "Parcel ID",
29
+ "searchable": true
30
+ },
31
+ {
32
+ "name": "Owner",
33
+ "label": "Owner Name",
34
+ "searchable": true
35
+ },
36
+ {
37
+ "name": "Address",
38
+ "label": "Site Address (full)",
39
+ "searchable": true
40
+ },
41
+ {
42
+ "name": "AddrNumber",
43
+ "label": "Address Number",
44
+ "searchable": true
45
+ },
46
+ {
47
+ "name": "AddrStreet",
48
+ "label": "Street Name",
49
+ "searchable": true
50
+ },
51
+ {
52
+ "name": "OwnerAddr1",
53
+ "label": "Owner Mailing Address 1",
54
+ "searchable": false
55
+ },
56
+ {
57
+ "name": "OwnerAddr2",
58
+ "label": "Owner Mailing Address 2",
59
+ "searchable": false
60
+ },
61
+ {
62
+ "name": "TaxYear",
63
+ "label": "Tax Year",
64
+ "searchable": false
65
+ },
66
+ {
67
+ "name": "TaxDist",
68
+ "label": "Tax District",
69
+ "searchable": false
70
+ }
35
71
  ],
36
72
  "sampleQuery": "https://gismaps.fultoncountyga.gov/arcgispub2/rest/services/PropertyMapViewer/PropertyMapViewer/MapServer/11/query?where=UPPER(Owner)+LIKE+UPPER(%27%25SMITH%25%27)&outFields=ParcelID,Owner,Address&returnGeometry=false&f=json&resultRecordCount=10",
37
73
  "license": "public",
@@ -66,15 +102,51 @@
66
102
  "supportsQuery": true,
67
103
  "corsEnabled": null,
68
104
  "searchFields": [
69
- { "name": "PIN", "label": "Parcel Identification Number", "searchable": true },
70
- { "name": "PARID", "label": "Parcel Account ID", "searchable": true },
71
- { "name": "OWNER_NAM1", "label": "Owner Name 1", "searchable": true },
72
- { "name": "OWNER_NAM2", "label": "Owner Name 2", "searchable": false },
73
- { "name": "SITUS_ADDR", "label": "Site Address", "searchable": true },
74
- { "name": "OWNER_ADDR", "label": "Owner Mailing Address", "searchable": false },
75
- { "name": "OWNER_CITY", "label": "Owner City", "searchable": false },
76
- { "name": "OWNER_STAT", "label": "Owner State", "searchable": false },
77
- { "name": "OWNER_ZIP", "label": "Owner ZIP", "searchable": false }
105
+ {
106
+ "name": "PIN",
107
+ "label": "Parcel Identification Number",
108
+ "searchable": true
109
+ },
110
+ {
111
+ "name": "PARID",
112
+ "label": "Parcel Account ID",
113
+ "searchable": true
114
+ },
115
+ {
116
+ "name": "OWNER_NAM1",
117
+ "label": "Owner Name 1",
118
+ "searchable": true
119
+ },
120
+ {
121
+ "name": "OWNER_NAM2",
122
+ "label": "Owner Name 2",
123
+ "searchable": false
124
+ },
125
+ {
126
+ "name": "SITUS_ADDR",
127
+ "label": "Site Address",
128
+ "searchable": true
129
+ },
130
+ {
131
+ "name": "OWNER_ADDR",
132
+ "label": "Owner Mailing Address",
133
+ "searchable": false
134
+ },
135
+ {
136
+ "name": "OWNER_CITY",
137
+ "label": "Owner City",
138
+ "searchable": false
139
+ },
140
+ {
141
+ "name": "OWNER_STAT",
142
+ "label": "Owner State",
143
+ "searchable": false
144
+ },
145
+ {
146
+ "name": "OWNER_ZIP",
147
+ "label": "Owner ZIP",
148
+ "searchable": false
149
+ }
78
150
  ],
79
151
  "sampleQuery": "https://gis.cobbcounty.gov/gisserver/rest/services/tax/taxassessorsdaily/MapServer/0/query?where=UPPER(OWNER_NAM1)+LIKE+UPPER('%25SMITH%25')&outFields=PIN,OWNER_NAM1,SITUS_ADDR,OWNER_ADDR,OWNER_CITY&returnGeometry=false&f=json&resultRecordCount=10",
80
152
  "license": "public",
@@ -109,13 +181,41 @@
109
181
  "supportsQuery": true,
110
182
  "corsEnabled": null,
111
183
  "searchFields": [
112
- { "name": "PARCELID", "label": "Parcel ID", "searchable": true },
113
- { "name": "OWNERNME1", "label": "Owner Name 1", "searchable": true },
114
- { "name": "OWNERNME2", "label": "Owner Name 2", "searchable": false },
115
- { "name": "SITEADDRESS", "label": "Site Address", "searchable": true },
116
- { "name": "USECD", "label": "Use Code", "searchable": false },
117
- { "name": "USEDSCRP", "label": "Use Description", "searchable": false },
118
- { "name": "CVTTXCD", "label": "City/County Tax Code", "searchable": false }
184
+ {
185
+ "name": "PARCELID",
186
+ "label": "Parcel ID",
187
+ "searchable": true
188
+ },
189
+ {
190
+ "name": "OWNERNME1",
191
+ "label": "Owner Name 1",
192
+ "searchable": true
193
+ },
194
+ {
195
+ "name": "OWNERNME2",
196
+ "label": "Owner Name 2",
197
+ "searchable": false
198
+ },
199
+ {
200
+ "name": "SITEADDRESS",
201
+ "label": "Site Address",
202
+ "searchable": true
203
+ },
204
+ {
205
+ "name": "USECD",
206
+ "label": "Use Code",
207
+ "searchable": false
208
+ },
209
+ {
210
+ "name": "USEDSCRP",
211
+ "label": "Use Description",
212
+ "searchable": false
213
+ },
214
+ {
215
+ "name": "CVTTXCD",
216
+ "label": "City/County Tax Code",
217
+ "searchable": false
218
+ }
119
219
  ],
120
220
  "sampleQuery": "https://dcgis.dekalbcountyga.gov/hosted/rest/services/Parcels/MapServer/0/query?where=UPPER(OWNERNME1)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OWNERNME1,SITEADDRESS,USEDSCRP&returnGeometry=false&f=json&resultRecordCount=10",
121
221
  "license": "public",
@@ -150,12 +250,36 @@
150
250
  "supportsQuery": true,
151
251
  "corsEnabled": null,
152
252
  "searchFields": [
153
- { "name": "OWNER1", "label": "Owner Name 1", "searchable": true },
154
- { "name": "OWNER2", "label": "Owner Name 2", "searchable": true },
155
- { "name": "PIN", "label": "Parcel Identification Number", "searchable": true },
156
- { "name": "LOCADDR", "label": "Property (Location) Address", "searchable": true },
157
- { "name": "LOCCITY", "label": "Property City", "searchable": false },
158
- { "name": "LOCZIP", "label": "Property ZIP", "searchable": false }
253
+ {
254
+ "name": "OWNER1",
255
+ "label": "Owner Name 1",
256
+ "searchable": true
257
+ },
258
+ {
259
+ "name": "OWNER2",
260
+ "label": "Owner Name 2",
261
+ "searchable": true
262
+ },
263
+ {
264
+ "name": "PIN",
265
+ "label": "Parcel Identification Number",
266
+ "searchable": true
267
+ },
268
+ {
269
+ "name": "LOCADDR",
270
+ "label": "Property (Location) Address",
271
+ "searchable": true
272
+ },
273
+ {
274
+ "name": "LOCCITY",
275
+ "label": "Property City",
276
+ "searchable": false
277
+ },
278
+ {
279
+ "name": "LOCZIP",
280
+ "label": "Property ZIP",
281
+ "searchable": false
282
+ }
159
283
  ],
160
284
  "sampleQuery": "https://services3.arcgis.com/RfpmnkSAQleRbndX/arcgis/rest/services/Property_and_Tax/FeatureServer/3/query?where=UPPER(OWNER1)+LIKE+UPPER('%25SMITH%25')&outFields=PIN,OWNER1,OWNER2,LOCADDR,LOCCITY,LOCZIP&returnGeometry=false&f=json&resultRecordCount=10",
161
285
  "license": "public",
@@ -171,6 +295,80 @@
171
295
  "email": null
172
296
  },
173
297
  "notes": "Gwinnett County (pop. ~975,000; Lawrenceville seat; Atlanta metro northeast, Georgia's second-most-populous county) publishes a Property_and_Tax FeatureServer. IMPORTANT: owner data lives on LAYER 3 (the 'Tax Master Table', a non-spatial Table with 35 fields including OWNER1, OWNER2, PIN, LOCADDR, LOCCITY, LOCZIP), NOT on layer 0, which is the parcel geometry layer carrying PIN but no owner name. Query layer 3 for owner-name search; join to layer 0 on PIN if geometry is needed. Verified 2026-06-20: layer 3 holds 314,998 records; UPPER(OWNER1) LIKE '%SMITH%' returns real owners with Duluth/Norcross addresses and ZIPs (e.g. '4078 STILLWATER DR, DULUTH 30096'). Because layer 3 is a Table, query results return no geometry. Cities within the county include Lawrenceville, Duluth, Norcross, Snellville, Suwanee, Lilburn, Buford, Sugar Hill, Grayson, Loganville, Berkeley Lake, Dacula, Auburn, Braselton, Peachtree Corners. For authoritative assessment/appeal records use the Gwinnett County Tax Assessor's office."
298
+ },
299
+ {
300
+ "id": "ga-chatham",
301
+ "state": "GA",
302
+ "stateName": "Georgia",
303
+ "stateSlug": "georgia",
304
+ "county": "Chatham",
305
+ "countySlug": "chatham-county",
306
+ "countyFips": "13051",
307
+ "hasPublicRest": true,
308
+ "endpoints": [
309
+ {
310
+ "url": "https://pub.sagis.org/arcgis/rest/services/OpenData/Parcels/FeatureServer/27",
311
+ "serviceType": "FeatureServer",
312
+ "layerIndex": 27,
313
+ "layerName": "Parcel Digest 2025",
314
+ "supportsQuery": true,
315
+ "corsEnabled": true,
316
+ "searchFields": [
317
+ {
318
+ "name": "PIN",
319
+ "label": "Parcel ID",
320
+ "searchable": true
321
+ },
322
+ {
323
+ "name": "Owner",
324
+ "label": "Owner Name",
325
+ "searchable": true
326
+ },
327
+ {
328
+ "name": "Owner2",
329
+ "label": "Owner Name 2",
330
+ "searchable": true
331
+ },
332
+ {
333
+ "name": "PropAddress_Full",
334
+ "label": "Site Address",
335
+ "searchable": true
336
+ },
337
+ {
338
+ "name": "PropAddress_City",
339
+ "label": "Site City",
340
+ "searchable": true
341
+ },
342
+ {
343
+ "name": "Mailing_Address",
344
+ "label": "Owner Mailing Address",
345
+ "searchable": true
346
+ },
347
+ {
348
+ "name": "Mailing_City",
349
+ "label": "Owner Mailing City",
350
+ "searchable": true
351
+ },
352
+ {
353
+ "name": "Property_Use",
354
+ "label": "Land Use",
355
+ "searchable": false
356
+ }
357
+ ],
358
+ "sampleQuery": "https://pub.sagis.org/arcgis/rest/services/OpenData/Parcels/FeatureServer/27/query?where=UPPER(Owner)%20LIKE%20UPPER('%25SMITH%25')&outFields=PIN,Owner,Owner2,PropAddress_Full,PropAddress_City,Mailing_Address&returnGeometry=false&f=json&resultRecordCount=10",
359
+ "license": "open-data",
360
+ "licenseUrl": "https://www.sagis.org/",
361
+ "status": "live",
362
+ "lastVerified": "2026-08-25",
363
+ "verifiedBy": "manual"
364
+ }
365
+ ],
366
+ "contact": {
367
+ "department": "Savannah Area GIS (SAGIS)",
368
+ "url": "https://www.sagis.org/",
369
+ "email": null
370
+ },
371
+ "notes": "Savannah and Chatham County, published by SAGIS. 125,326 parcels with owner names on 124,952 rows (99.7 percent), and the fullest field set in this batch: parcel id, two owner columns, a complete mailing address, a combined situs and split situs parts. IMPORTANT for maintenance: this service holds 28 year-versioned layers, 0 to 17 being Historic Parcels 1998 to 2015 and 18 to 27 being Parcel Digest 2016 to 2025. Layer 27 is the newest today. When SAGIS publishes Parcel Digest 2026 it will be layer 28 and this entry will silently go a year stale, so the layer index needs checking whenever this record is reverified."
174
372
  }
175
373
  ]
176
374
  }
package/data/idaho.json CHANGED
@@ -11,6 +11,13 @@
11
11
  "stateSlug": "idaho",
12
12
  "county": "Ada",
13
13
  "countySlug": "ada-county",
14
+ "ownerFieldNote": {
15
+ "body": "Ada County's public parcel layer publishes no owner name column at all. The nearest match by field name is HOMEEXEMPT, labelled Homeowner Exemption, and it is a currency column rather than a name: a live sample of 300 records returned 0 for most rows and negative dollar amounts such as -125000 for the rest. An exemption amount is not ownership, so no query can retrieve owner data here. Parcel number, property address, street name, zoning, acreage and total assessed value are populated and searchable. Ownership is available from the Ada County Assessor.",
16
+ "source": {
17
+ "label": "Ada County Assessor's Office GIS",
18
+ "url": "https://www.adacounty.id.gov/assessor/gis/"
19
+ }
20
+ },
14
21
  "countyFips": "16001",
15
22
  "hasPublicRest": true,
16
23
  "endpoints": [
@@ -22,18 +29,66 @@
22
29
  "supportsQuery": true,
23
30
  "corsEnabled": null,
24
31
  "searchFields": [
25
- { "name": "PARCEL", "label": "Parcel Number", "searchable": true },
26
- { "name": "ADDRESS", "label": "Property Address", "searchable": true },
27
- { "name": "PROPADDNUM", "label": "Address Number", "searchable": true },
28
- { "name": "PROPSTNM", "label": "Street Name", "searchable": true },
29
- { "name": "CITY_STATE", "label": "City and State", "searchable": false },
30
- { "name": "TOTALVALUE", "label": "Total Assessed Value", "searchable": false },
31
- { "name": "ZONING", "label": "Zoning Code", "searchable": false },
32
- { "name": "ACRES", "label": "Acreage", "searchable": false },
33
- { "name": "HOMEEXEMPT", "label": "Homeowner Exemption", "searchable": false },
34
- { "name": "PROPYEAR", "label": "Property Year", "searchable": false },
35
- { "name": "SUBNM", "label": "Subdivision Name", "searchable": false },
36
- { "name": "CODEAREA", "label": "Tax Code Area", "searchable": false }
32
+ {
33
+ "name": "PARCEL",
34
+ "label": "Parcel Number",
35
+ "searchable": true
36
+ },
37
+ {
38
+ "name": "ADDRESS",
39
+ "label": "Property Address",
40
+ "searchable": true
41
+ },
42
+ {
43
+ "name": "PROPADDNUM",
44
+ "label": "Address Number",
45
+ "searchable": true
46
+ },
47
+ {
48
+ "name": "PROPSTNM",
49
+ "label": "Street Name",
50
+ "searchable": true
51
+ },
52
+ {
53
+ "name": "CITY_STATE",
54
+ "label": "City and State",
55
+ "searchable": false
56
+ },
57
+ {
58
+ "name": "TOTALVALUE",
59
+ "label": "Total Assessed Value",
60
+ "searchable": false
61
+ },
62
+ {
63
+ "name": "ZONING",
64
+ "label": "Zoning Code",
65
+ "searchable": false
66
+ },
67
+ {
68
+ "name": "ACRES",
69
+ "label": "Acreage",
70
+ "searchable": false
71
+ },
72
+ {
73
+ "name": "HOMEEXEMPT",
74
+ "label": "Homeowner Exemption",
75
+ "searchable": false
76
+ },
77
+ {
78
+ "name": "PROPYEAR",
79
+ "label": "Property Year",
80
+ "searchable": false
81
+ },
82
+ {
83
+ "name": "SUBNM",
84
+ "label": "Subdivision Name",
85
+ "searchable": false
86
+ },
87
+ {
88
+ "name": "CODEAREA",
89
+ "label": "Tax Code Area",
90
+ "searchable": false
91
+ }
37
92
  ],
38
93
  "sampleQuery": "https://services2.arcgis.com/dgGjZc6xAH5m5JyP/arcgis/rest/services/Parcels/FeatureServer/5/query?where=UPPER(ADDRESS)+LIKE+UPPER('%25MAIN+ST%25')&outFields=PARCEL,ADDRESS,CITY_STATE,TOTALVALUE,ZONING&returnGeometry=false&f=json&resultRecordCount=10",
39
94
  "license": "public",
@@ -48,7 +103,17 @@
48
103
  "url": "https://www.adacounty.id.gov/assessor/gis/",
49
104
  "email": null
50
105
  },
51
- "notes": "28 fields confirmed. This is the Ada County Assessor parcel layer backing the county's GIS parcel viewer. Key fields: PARCEL (parcel number), ADDRESS (full formatted address), property address components (PROPADDNUM, PROPPREDIR, PROPSTNM, PROPSTTYPE, PROPPOST, PROPUNIT, PROPUNUM), CITY_STATE, legal description lines (LEGAL1-LEGAL5), ZONING, BANKCODE, CODEAREA (tax code area), TOTALVALUE (total assessed value), HOMEEXEMPT (homeowner exemption amount), ACRES, SECTION, SUBNM (subdivision name). NOTE: Owner name is NOT available on this public REST layer. Ada County keeps ownership data in a separate non-public table. For owner lookup, use the Ada County Assessor property search portal at assessor.adacounty.id.gov. Ada County, ID is the Boise metropolitan area (FIPS 16001); Boise is the state capital of Idaho."
106
+ "notes": "28 fields confirmed. This is the Ada County Assessor parcel layer backing the county's GIS parcel viewer. Key fields: PARCEL (parcel number), ADDRESS (full formatted address), property address components (PROPADDNUM, PROPPREDIR, PROPSTNM, PROPSTTYPE, PROPPOST, PROPUNIT, PROPUNUM), CITY_STATE, legal description lines (LEGAL1-LEGAL5), ZONING, BANKCODE, CODEAREA (tax code area), TOTALVALUE (total assessed value), HOMEEXEMPT (homeowner exemption amount), ACRES, SECTION, SUBNM (subdivision name). NOTE: Owner name is NOT available on this public REST layer. Ada County keeps ownership data in a separate non-public table. For owner lookup, use the Ada County Assessor property search portal at assessor.adacounty.id.gov. Ada County, ID is the Boise metropolitan area (FIPS 16001); Boise is the state capital of Idaho.",
107
+ "capabilityOverrides": {
108
+ "owner_name": {
109
+ "status": "not_published",
110
+ "basis": {
111
+ "type": "endpoint_schema",
112
+ "note": "Ada County's public parcel layer publishes no owner name column. The closest field by name, HOMEEXEMPT, is a homeowner exemption amount in dollars rather than a name, so no query can return ownership here.",
113
+ "sourceUrl": "https://www.adacounty.id.gov/assessor/gis/"
114
+ }
115
+ }
116
+ }
52
117
  }
53
118
  ]
54
119
  }
package/data/index.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "version": "0.3.0",
3
- "lastUpdated": "2026-08-04",
3
+ "lastUpdated": "2026-08-26",
4
4
  "totals": {
5
5
  "states": 50,
6
- "counties": 155,
7
- "endpoints": 155
6
+ "counties": 170,
7
+ "endpoints": 173,
8
+ "countiesWithEndpoint": 165
8
9
  },
9
10
  "states": [
10
11
  {
@@ -59,8 +60,8 @@
59
60
  "slug": "connecticut",
60
61
  "name": "Connecticut",
61
62
  "abbrev": "CT",
62
- "countyCount": 3,
63
- "endpointCount": 3,
63
+ "countyCount": 9,
64
+ "endpointCount": 9,
64
65
  "populated": true
65
66
  },
66
67
  {
@@ -76,15 +77,15 @@
76
77
  "name": "Florida",
77
78
  "abbrev": "FL",
78
79
  "countyCount": 11,
79
- "endpointCount": 11,
80
+ "endpointCount": 10,
80
81
  "populated": true
81
82
  },
82
83
  {
83
84
  "slug": "georgia",
84
85
  "name": "Georgia",
85
86
  "abbrev": "GA",
86
- "countyCount": 4,
87
- "endpointCount": 4,
87
+ "countyCount": 5,
88
+ "endpointCount": 5,
88
89
  "populated": true
89
90
  },
90
91
  {
@@ -179,8 +180,8 @@
179
180
  "slug": "michigan",
180
181
  "name": "Michigan",
181
182
  "abbrev": "MI",
182
- "countyCount": 2,
183
- "endpointCount": 2,
183
+ "countyCount": 4,
184
+ "endpointCount": 4,
184
185
  "populated": true
185
186
  },
186
187
  {
@@ -259,8 +260,8 @@
259
260
  "slug": "new-york",
260
261
  "name": "New York",
261
262
  "abbrev": "NY",
262
- "countyCount": 6,
263
- "endpointCount": 7,
263
+ "countyCount": 10,
264
+ "endpointCount": 15,
264
265
  "populated": true
265
266
  },
266
267
  {
@@ -307,8 +308,8 @@
307
308
  "slug": "pennsylvania",
308
309
  "name": "Pennsylvania",
309
310
  "abbrev": "PA",
310
- "countyCount": 2,
311
- "endpointCount": 2,
311
+ "countyCount": 4,
312
+ "endpointCount": 4,
312
313
  "populated": true
313
314
  },
314
315
  {