@urbankitstudio/atlas 0.6.8 → 0.6.10
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 +3 -3
- package/data/alabama.json +43 -1
- package/data/district-of-columbia.json +52 -0
- package/data/georgia.json +46 -1
- package/data/index.json +21 -13
- package/data/oregon.json +46 -1
- package/data/washington.json +47 -1
- package/dist/index.cjs +261 -20
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +261 -20
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -76,7 +76,7 @@ For single-address owner lookups in the browser, the free [Owner Lookup](https:/
|
|
|
76
76
|
|
|
77
77
|
| Function | Returns |
|
|
78
78
|
|---|---|
|
|
79
|
-
| `listStates()` | `StateIndexEntry[]` — all 50 states + `populated` flag |
|
|
79
|
+
| `listStates()` | `StateIndexEntry[]` — all 50 states and DC + `populated` flag |
|
|
80
80
|
| `findState(stateSlug)` | `StateFile \| undefined` |
|
|
81
81
|
| `findCounty(stateSlug, countySlug)` | `CountyRecord \| undefined` |
|
|
82
82
|
| `findCountyByFips(fips)` | `CountyRecord \| undefined` — match by 5-digit county FIPS |
|
|
@@ -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 **239 counties across all 50 US states and DC** (251 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 233 of the 239 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/alabama.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"stateSlug": "alabama",
|
|
3
3
|
"stateName": "Alabama",
|
|
4
4
|
"stateAbbrev": "AL",
|
|
5
|
-
"lastUpdated": "2026-
|
|
5
|
+
"lastUpdated": "2026-10-03",
|
|
6
6
|
"counties": [
|
|
7
7
|
{
|
|
8
8
|
"id": "al-shelby",
|
|
@@ -98,6 +98,48 @@
|
|
|
98
98
|
"email": null
|
|
99
99
|
},
|
|
100
100
|
"notes": "Jefferson County AL (Birmingham, pop. 670,000; FIPS 01073) Basemap/Parcels layer. Data maintained by Jefferson County Tax Assessor Office and updated nightly. 76 fields in live schema as of 2026-06-27: OBJECTID, Unique_ID, PID, TAX_TOWNSH, ISP_SECTION, SEC, QSECTION, BLOCK, PARCEL, PARCELID, APP_PID, DISTRICT, ESN_NUM, ADDR_PSPR, Bldg_Number, Street_Name, Street_Type, Street_Dir, APARTMENT, ADDRAPT_PS, OWNERNAME, PROP_MAIL, CITYMAIL, ZIP_MAIL, STATE_Mail, Legal_Desc, Property_City, Property_State, NEIGHBOR_N, SUBDIV_NAME, ADDR_APR, ZIP, TotalMHValue, PrevParcelLand/Imp/Total, Water, Sewer, Gas, ACRES_APR, GIS_ACRES, Remarks, Name2, Plat_Book/Page (×2), NbhdCd, Ownership, Topography, RoadAcc, MaintDate, CITY, NbhName, PriMunCode, SecMunCode, PriAcreage, SecAcreage, LegalRemarks, ParcelNo, Division, RecordYear, SchDist, MapNumber, Sqft, FIREDEPTNAME, Cls, BLDG_IND, TAX_CODE, OBY_IND, AssdValue, Territory, FireFee_District. NOTE 2026-06-27: ZONING_BOE is no longer in the live schema (schema drift), removed from searchFields. OWNERNAME field returns padded fixed-width strings (trim on use). Note: distinct from Jefferson County CO (FIPS 08059) and Jefferson County KY (Louisville; FIPS 21111) already in atlas. Verified 2026-06-27: metadata 200, query 200, 410K+ parcels."
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "al-mobile",
|
|
104
|
+
"state": "AL",
|
|
105
|
+
"stateName": "Alabama",
|
|
106
|
+
"stateSlug": "alabama",
|
|
107
|
+
"county": "Mobile",
|
|
108
|
+
"countySlug": "mobile-county",
|
|
109
|
+
"countyFips": "01097",
|
|
110
|
+
"hasPublicRest": true,
|
|
111
|
+
"endpoints": [
|
|
112
|
+
{
|
|
113
|
+
"url": "https://services8.arcgis.com/HND1NcQt6vgOGn1z/arcgis/rest/services/MCRC_Public_Parcels/FeatureServer/0",
|
|
114
|
+
"serviceType": "FeatureServer",
|
|
115
|
+
"layerIndex": 0,
|
|
116
|
+
"layerName": "MCRC_Public_Parcels",
|
|
117
|
+
"supportsQuery": true,
|
|
118
|
+
"corsEnabled": true,
|
|
119
|
+
"searchFields": [
|
|
120
|
+
{ "name": "Name1", "label": "Owner Name 1", "searchable": true },
|
|
121
|
+
{ "name": "Name2", "label": "Owner Name 2", "searchable": true },
|
|
122
|
+
{ "name": "Parcel_Number", "label": "Parcel ID", "searchable": true },
|
|
123
|
+
{ "name": "Account_Number", "label": "Account Number", "searchable": true },
|
|
124
|
+
{ "name": "PropAddr1", "label": "Site Address", "searchable": true },
|
|
125
|
+
{ "name": "PropCity", "label": "Site City", "searchable": true },
|
|
126
|
+
{ "name": "PropZip", "label": "Site ZIP", "searchable": false },
|
|
127
|
+
{ "name": "Acreage", "label": "Acres", "searchable": false }
|
|
128
|
+
],
|
|
129
|
+
"sampleQuery": "https://services8.arcgis.com/HND1NcQt6vgOGn1z/arcgis/rest/services/MCRC_Public_Parcels/FeatureServer/0/query?where=UPPER(Name1)%20LIKE%20%27SMITH%25%27&outFields=*&returnGeometry=false&resultRecordCount=10&f=json",
|
|
130
|
+
"license": "unknown",
|
|
131
|
+
"licenseUrl": "https://www.arcgis.com/home/item.html?id=07c93ca64bbf4fb8a8d49b7ea80ef067",
|
|
132
|
+
"status": "live",
|
|
133
|
+
"lastVerified": "2026-10-03",
|
|
134
|
+
"verifiedBy": "manual"
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
"contact": {
|
|
138
|
+
"department": "Mapping Department, Mobile County Revenue Commission",
|
|
139
|
+
"url": null,
|
|
140
|
+
"email": null
|
|
141
|
+
},
|
|
142
|
+
"notes": "Mobile County, Alabama (Mobile; FIPS 01097) publishes its parcels as the 'Mobile County Alabama Tax Parcels' FeatureServer, authored by the Mobile County Revenue Commission's Mapping Department and updated 2026-09-22. 214,040 parcels, countywide. The owner is in Name1 (and Name2), the parcel id in Parcel_Number (ParcelNo is the formatted form), and the site address in PropAddr1 with PropCity and PropZip. The layer has NO owner mailing-address fields (its columns are OBJECTID, Parcel_Number, Account_Number, ParcelNo, Name1, Name2, PropAddr1, PropAddr2, PropCity, PropState, PropZip, Acreage, Sqft, KeyNum), so it serves owner names and site addresses, not mailing addresses. String fields are heavily space padded (Name1 is 255 wide), so trim them and search with UPPER(Name1) LIKE 'SMITH%', never equality. The spatial reference is wkid 102630, so send outSR=4326 if you need longitude and latitude. CORS answers Access-Control-Allow-Origin *. No open-data license is stated; the item carries only an informational-use disclaimer. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH BONNIE G, 0104430000006.000, 20240 HIGHWAY 43, Mount Vernon)."
|
|
101
143
|
}
|
|
102
144
|
]
|
|
103
145
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"stateSlug": "district-of-columbia",
|
|
3
|
+
"stateName": "District of Columbia",
|
|
4
|
+
"stateAbbrev": "DC",
|
|
5
|
+
"lastUpdated": "2026-09-26",
|
|
6
|
+
"counties": [
|
|
7
|
+
{
|
|
8
|
+
"id": "dc-district-of-columbia",
|
|
9
|
+
"state": "DC",
|
|
10
|
+
"stateName": "District of Columbia",
|
|
11
|
+
"stateSlug": "district-of-columbia",
|
|
12
|
+
"county": "District of Columbia",
|
|
13
|
+
"countySlug": "district-of-columbia",
|
|
14
|
+
"countyFips": "11001",
|
|
15
|
+
"hasPublicRest": true,
|
|
16
|
+
"endpoints": [
|
|
17
|
+
{
|
|
18
|
+
"url": "https://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/Property_and_Land_WebMercator/FeatureServer/40",
|
|
19
|
+
"serviceType": "FeatureServer",
|
|
20
|
+
"layerIndex": 40,
|
|
21
|
+
"layerName": "Owner Polygons (Common Ownership Layer)",
|
|
22
|
+
"supportsQuery": true,
|
|
23
|
+
"corsEnabled": true,
|
|
24
|
+
"searchFields": [
|
|
25
|
+
{ "name": "SSL", "label": "Square, Suffix, Lot (Parcel ID)", "searchable": true },
|
|
26
|
+
{ "name": "OWNERNAME", "label": "Owner Name", "searchable": true },
|
|
27
|
+
{ "name": "CAREOFNAME", "label": "Care Of Name", "searchable": false },
|
|
28
|
+
{ "name": "PREMISEADD", "label": "Premise (Situs) Address", "searchable": true },
|
|
29
|
+
{ "name": "ADDRESS1", "label": "Owner Mailing Address", "searchable": true },
|
|
30
|
+
{ "name": "ADDRESS2", "label": "Owner Mailing Address 2", "searchable": false },
|
|
31
|
+
{ "name": "CITYSTZIP", "label": "Owner Mailing City/State/ZIP", "searchable": true },
|
|
32
|
+
{ "name": "USECODE", "label": "Use Code", "searchable": false },
|
|
33
|
+
{ "name": "LANDAREA", "label": "Land Area", "searchable": false },
|
|
34
|
+
{ "name": "ASSESSMENT", "label": "Assessment", "searchable": false }
|
|
35
|
+
],
|
|
36
|
+
"sampleQuery": "https://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/Property_and_Land_WebMercator/FeatureServer/40/query?where=OWNERNAME%20LIKE%20'SMITH%25'&outFields=SSL,OWNERNAME,PREMISEADD,ADDRESS1,CITYSTZIP&returnGeometry=false&f=json&resultRecordCount=10",
|
|
37
|
+
"license": "open-data",
|
|
38
|
+
"licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
|
|
39
|
+
"status": "live",
|
|
40
|
+
"lastVerified": "2026-09-26",
|
|
41
|
+
"verifiedBy": "manual"
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"contact": {
|
|
45
|
+
"department": "DC Office of the Chief Technology Officer (OCTO) GIS and Office of the Surveyor; data attributed daily from the Office of Tax and Revenue's Real Property Tax Administration (RPTA) Integrated Tax System Public Extract (ITSPE)",
|
|
46
|
+
"url": "https://opendata.dc.gov/datasets/DCGIS::common-ownership-lots",
|
|
47
|
+
"email": null
|
|
48
|
+
},
|
|
49
|
+
"notes": "The District of Columbia is one county-equivalent (FIPS 11001) with no counties inside it. Layer 40, Owner Polygons (Common Ownership Layer), is the District's general ownership layer: 137,400 lot polygons merged from the Record, Tax, Parcel, Reservation and Air Rights lot layers and regenerated daily from the Office of Tax and Revenue's Integrated Tax System Public Extract (ITSPE). Layers 49 (District Land) and 50 (Federal Land) on the same service are narrower views of it. The parcel ID is the SSL (square, suffix, lot), written either as 'SQUARE SUFFIX LOT' (e.g. '1929 7056') or as 'PAR NNNNNNNN' for Parcel-type lots; both answer an SSL LIKE prefix search. The owner mailing address (ADDRESS1, ADDRESS2, CITYSTZIP) is separate from the premise address (PREMISEADD). Verified 2026-09-26: OWNERNAME LIKE 'SMITH%' returns 939 lots, and a PREMISEADD search returns individual homeowners alongside institutions.\n\nCoverage: the layer maps land, one polygon per lot. A condominium building is a single lot on it, and 3,921 of its 4,142 condominium lots carry no owner name, so an owner search finds lot owners, not unit owners. The tax extract published on the same service lists 221,622 records; unit-level condominium data sits in separate tables there, which this layer does not join. The service's ArcGIS Online item (Common Ownership Lots, item 1f6708b1f3774306bef2fa81e612a725, owner DCGISopendata) licenses the data under Creative Commons Attribution 4.0 International, so reuse credits the District of Columbia; the District's open-data terms apply CC0 only where no other license is noted, and this item notes one. OTR's Real Property Public Extract is a different product: a bulk file restricted to mortgage companies."
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
package/data/georgia.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"stateSlug": "georgia",
|
|
3
3
|
"stateName": "Georgia",
|
|
4
4
|
"stateAbbrev": "GA",
|
|
5
|
-
"lastUpdated": "2026-
|
|
5
|
+
"lastUpdated": "2026-10-03",
|
|
6
6
|
"counties": [
|
|
7
7
|
{
|
|
8
8
|
"id": "ga-fulton",
|
|
@@ -369,6 +369,51 @@
|
|
|
369
369
|
"email": null
|
|
370
370
|
},
|
|
371
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."
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"id": "ga-dougherty",
|
|
375
|
+
"state": "GA",
|
|
376
|
+
"stateName": "Georgia",
|
|
377
|
+
"stateSlug": "georgia",
|
|
378
|
+
"county": "Dougherty",
|
|
379
|
+
"countySlug": "dougherty-county",
|
|
380
|
+
"countyFips": "13095",
|
|
381
|
+
"hasPublicRest": true,
|
|
382
|
+
"endpoints": [
|
|
383
|
+
{
|
|
384
|
+
"url": "https://services6.arcgis.com/VKHi8CC6pMIyYUIs/arcgis/rest/services/Parcels_Public_View/FeatureServer/0",
|
|
385
|
+
"serviceType": "FeatureServer",
|
|
386
|
+
"layerIndex": 0,
|
|
387
|
+
"layerName": "Parcels",
|
|
388
|
+
"supportsQuery": true,
|
|
389
|
+
"corsEnabled": true,
|
|
390
|
+
"searchFields": [
|
|
391
|
+
{ "name": "Name", "label": "Owner Name", "searchable": true },
|
|
392
|
+
{ "name": "ParcelNum", "label": "Parcel ID", "searchable": true },
|
|
393
|
+
{ "name": "Address", "label": "Site Address", "searchable": true },
|
|
394
|
+
{ "name": "SiteCity", "label": "Site City", "searchable": true },
|
|
395
|
+
{ "name": "SiteZip", "label": "Site ZIP", "searchable": false },
|
|
396
|
+
{ "name": "MailAddress1", "label": "Owner Mailing Address", "searchable": true },
|
|
397
|
+
{ "name": "MailCity", "label": "Owner Mailing City", "searchable": true },
|
|
398
|
+
{ "name": "MailState", "label": "Owner Mailing State", "searchable": false },
|
|
399
|
+
{ "name": "MailZip", "label": "Owner Mailing ZIP", "searchable": false },
|
|
400
|
+
{ "name": "Jurisdiction", "label": "Jurisdiction (City or County)", "searchable": false },
|
|
401
|
+
{ "name": "TotalAcerage", "label": "Acres", "searchable": false }
|
|
402
|
+
],
|
|
403
|
+
"sampleQuery": "https://services6.arcgis.com/VKHi8CC6pMIyYUIs/arcgis/rest/services/Parcels_Public_View/FeatureServer/0/query?where=UPPER(Name)%20LIKE%20%27SMITH%25%27&outFields=*&returnGeometry=false&resultRecordCount=10&f=json",
|
|
404
|
+
"license": "unknown",
|
|
405
|
+
"licenseUrl": "https://www.arcgis.com/home/item.html?id=9729f520dfab47fab85484908994ef1f",
|
|
406
|
+
"status": "live",
|
|
407
|
+
"lastVerified": "2026-10-03",
|
|
408
|
+
"verifiedBy": "manual"
|
|
409
|
+
}
|
|
410
|
+
],
|
|
411
|
+
"contact": {
|
|
412
|
+
"department": "Albany GIS (Albany-Dougherty Geographic Information System)",
|
|
413
|
+
"url": null,
|
|
414
|
+
"email": null
|
|
415
|
+
},
|
|
416
|
+
"notes": "Dougherty County, Georgia (county seat Albany) publishes its parcels as the 'Dougherty County Land Parcels Dataset' FeatureServer, maintained by Albany GIS, covering both the CITY and COUNTY jurisdictions (the Jurisdiction column says which). 38,007 parcels as of 2026-10-03. The owner is in Name, the parcel id in ParcelNum, the site address in Address (with SiteCity and SiteZip) and the owner mailing address in MailAddress1/MailCity/MailState/MailZip; MailAddress1 was empty on the first rows sampled. String fields are space padded to their full width, so trim them and search with UPPER(Name) LIKE 'SMITH%', never equality. The layer's spatial reference is wkid 102667 (latestWkid 2240), so send outSR=4326 if you need longitude and latitude. CORS answers Access-Control-Allow-Origin *. No open-data license is stated; the item carries only a disclaimer that Albany GIS makes every effort at accuracy and that all data is subject to change. A third-party count of 39,443 parcels is slightly higher than the layer's, so the public view may be a subset. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH SHIRLEY PEARL, 0000S/00003/03A, 2803 ELTON ST, Albany)."
|
|
372
417
|
}
|
|
373
418
|
]
|
|
374
419
|
}
|
package/data/index.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "0.3.0",
|
|
3
|
-
"lastUpdated": "2026-
|
|
3
|
+
"lastUpdated": "2026-10-03",
|
|
4
4
|
"totals": {
|
|
5
|
-
"states":
|
|
6
|
-
"counties":
|
|
7
|
-
"endpoints":
|
|
8
|
-
"countiesWithEndpoint":
|
|
5
|
+
"states": 51,
|
|
6
|
+
"counties": 239,
|
|
7
|
+
"endpoints": 251,
|
|
8
|
+
"countiesWithEndpoint": 233,
|
|
9
9
|
"countiesUnprobeable": 1
|
|
10
10
|
},
|
|
11
11
|
"states": [
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"slug": "alabama",
|
|
14
14
|
"name": "Alabama",
|
|
15
15
|
"abbrev": "AL",
|
|
16
|
-
"countyCount":
|
|
17
|
-
"endpointCount":
|
|
16
|
+
"countyCount": 3,
|
|
17
|
+
"endpointCount": 3,
|
|
18
18
|
"populated": true
|
|
19
19
|
},
|
|
20
20
|
{
|
|
@@ -73,6 +73,14 @@
|
|
|
73
73
|
"endpointCount": 1,
|
|
74
74
|
"populated": true
|
|
75
75
|
},
|
|
76
|
+
{
|
|
77
|
+
"slug": "district-of-columbia",
|
|
78
|
+
"name": "District of Columbia",
|
|
79
|
+
"abbrev": "DC",
|
|
80
|
+
"countyCount": 1,
|
|
81
|
+
"endpointCount": 1,
|
|
82
|
+
"populated": true
|
|
83
|
+
},
|
|
76
84
|
{
|
|
77
85
|
"slug": "florida",
|
|
78
86
|
"name": "Florida",
|
|
@@ -85,8 +93,8 @@
|
|
|
85
93
|
"slug": "georgia",
|
|
86
94
|
"name": "Georgia",
|
|
87
95
|
"abbrev": "GA",
|
|
88
|
-
"countyCount":
|
|
89
|
-
"endpointCount":
|
|
96
|
+
"countyCount": 6,
|
|
97
|
+
"endpointCount": 6,
|
|
90
98
|
"populated": true
|
|
91
99
|
},
|
|
92
100
|
{
|
|
@@ -301,8 +309,8 @@
|
|
|
301
309
|
"slug": "oregon",
|
|
302
310
|
"name": "Oregon",
|
|
303
311
|
"abbrev": "OR",
|
|
304
|
-
"countyCount":
|
|
305
|
-
"endpointCount":
|
|
312
|
+
"countyCount": 7,
|
|
313
|
+
"endpointCount": 6,
|
|
306
314
|
"populated": true
|
|
307
315
|
},
|
|
308
316
|
{
|
|
@@ -381,8 +389,8 @@
|
|
|
381
389
|
"slug": "washington",
|
|
382
390
|
"name": "Washington",
|
|
383
391
|
"abbrev": "WA",
|
|
384
|
-
"countyCount":
|
|
385
|
-
"endpointCount":
|
|
392
|
+
"countyCount": 5,
|
|
393
|
+
"endpointCount": 5,
|
|
386
394
|
"populated": true
|
|
387
395
|
},
|
|
388
396
|
{
|
package/data/oregon.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"stateSlug": "oregon",
|
|
3
3
|
"stateName": "Oregon",
|
|
4
4
|
"stateAbbrev": "OR",
|
|
5
|
-
"lastUpdated": "2026-
|
|
5
|
+
"lastUpdated": "2026-10-03",
|
|
6
6
|
"counties": [
|
|
7
7
|
{
|
|
8
8
|
"id": "or-multnomah",
|
|
@@ -250,6 +250,51 @@
|
|
|
250
250
|
"email": "gisquestions@clackamas.us"
|
|
251
251
|
},
|
|
252
252
|
"notes": "No public REST parcel layer with owner names was found for Clackamas County (county seat Oregon City) as of 2026-09-26. The county states that it does not publish property owner names online and directs owner-information requests to Assessment and Taxation, and its GIS shapefile downloads require accepting a data licensing agreement. No county-hosted ArcGIS REST catalog was found; the public tools, CMap and AscendWeb, are interactive viewers. Two statewide layers cover the county but neither can serve an owner search: the Oregon Department of Forestry's taxlot layer named 'Clackamas County' declares owner fields but has query disabled, and the Oregon Department of Transportation's taxlot layer is queryable but carries only map and taxlot numbers. Metro's regional RLIS 'Taxlots (Public)' dataset, per its listing, excludes ownership."
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"id": "or-malheur",
|
|
256
|
+
"state": "OR",
|
|
257
|
+
"stateName": "Oregon",
|
|
258
|
+
"stateSlug": "oregon",
|
|
259
|
+
"county": "Malheur",
|
|
260
|
+
"countySlug": "malheur-county",
|
|
261
|
+
"countyFips": "41045",
|
|
262
|
+
"hasPublicRest": true,
|
|
263
|
+
"endpoints": [
|
|
264
|
+
{
|
|
265
|
+
"url": "https://services5.arcgis.com/ZfBm5CKxbEBYLP3J/arcgis/rest/services/County_GIS_Portal_WFL1/FeatureServer/16",
|
|
266
|
+
"serviceType": "FeatureServer",
|
|
267
|
+
"layerIndex": 16,
|
|
268
|
+
"layerName": "TL Jun2026",
|
|
269
|
+
"supportsQuery": true,
|
|
270
|
+
"corsEnabled": true,
|
|
271
|
+
"searchFields": [
|
|
272
|
+
{ "name": "OWNERSNAME", "label": "Owner Name", "searchable": true },
|
|
273
|
+
{ "name": "MapTaxlot", "label": "Map and Taxlot ID", "searchable": true },
|
|
274
|
+
{ "name": "Taxlot", "label": "Taxlot", "searchable": false },
|
|
275
|
+
{ "name": "SITUSADD", "label": "Site Address", "searchable": true },
|
|
276
|
+
{ "name": "CITY", "label": "Site City", "searchable": true },
|
|
277
|
+
{ "name": "ADD1", "label": "Owner Mailing Address Line 1", "searchable": true },
|
|
278
|
+
{ "name": "ADD2", "label": "Owner Mailing Address Line 2", "searchable": false },
|
|
279
|
+
{ "name": "CITYSTATE", "label": "Owner Mailing City and State", "searchable": true },
|
|
280
|
+
{ "name": "ZIP", "label": "Owner Mailing ZIP", "searchable": false },
|
|
281
|
+
{ "name": "ZONING", "label": "Zoning", "searchable": false },
|
|
282
|
+
{ "name": "TOTACRE", "label": "Total Acres", "searchable": false }
|
|
283
|
+
],
|
|
284
|
+
"sampleQuery": "https://services5.arcgis.com/ZfBm5CKxbEBYLP3J/arcgis/rest/services/County_GIS_Portal_WFL1/FeatureServer/16/query?where=UPPER(OWNERSNAME)%20LIKE%20'SMITH%25'&outFields=MapTaxlot,OWNERSNAME,ADD1,CITYSTATE,SITUSADD,CITY&returnGeometry=false&resultRecordCount=10&f=json",
|
|
285
|
+
"license": "unknown",
|
|
286
|
+
"licenseUrl": "https://www.malheurco.org/gis/",
|
|
287
|
+
"status": "live",
|
|
288
|
+
"lastVerified": "2026-10-03",
|
|
289
|
+
"verifiedBy": "manual"
|
|
290
|
+
}
|
|
291
|
+
],
|
|
292
|
+
"contact": {
|
|
293
|
+
"department": "Malheur County GIS (GIS Specialist), 251 B St W #2, Vale, OR 97918, (541) 473-5574",
|
|
294
|
+
"url": "https://www.malheurco.org/gis/",
|
|
295
|
+
"email": null
|
|
296
|
+
},
|
|
297
|
+
"notes": "Malheur County, Oregon (county seat Vale) publishes its tax lots as a layer of the County_GIS_Portal_WFL1 FeatureServer, the data source of the county's public Malheur County Tax Lot Map experience (linked from malheurco.org/gis). 20,570 features as of 2026-10-03. The owner is OWNERSNAME, the parcel id MapTaxlot (for example 15S47E28B04702), the site address SITUSADD with CITY, and the owner mailing address ADD1/ADD2/CITYSTATE/ZIP. SITUSADD is sometimes a bare zero and ADD1 is often null. MAINTENANCE QUIRK: the layer name and index are month-stamped (currently layer 16, 'TL Jun2026'; the siblings are 'NonTL Jun2026' at 17 and Zoning_2026 at 25) and the county republishes monthly, so the name or index can change. When the liveness probe flags this record, re-resolve it: list the FeatureServer's layers, pick the one whose name starts with 'TL ' and which carries an OWNERSNAME field, then update layerIndex, layerName and the url. Do not hard-code 16 forever. Named outFields are accepted. CORS answers Access-Control-Allow-Origin *. The layer states no license; the county GIS page links a Data Licensing Agreement for bulk data. The statewide ODF layer for Malheur has an owner line but query disabled, and Malheur is not in the OWRD layer, so there is no usable fallback. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH, JAMIE LEE, 15S47E28B04702, Ontario)."
|
|
253
298
|
}
|
|
254
299
|
]
|
|
255
300
|
}
|
package/data/washington.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"stateSlug": "washington",
|
|
3
3
|
"stateName": "Washington",
|
|
4
4
|
"stateAbbrev": "WA",
|
|
5
|
-
"lastUpdated": "2026-
|
|
5
|
+
"lastUpdated": "2026-10-03",
|
|
6
6
|
"counties": [
|
|
7
7
|
{
|
|
8
8
|
"id": "wa-king",
|
|
@@ -178,6 +178,52 @@
|
|
|
178
178
|
"email": null
|
|
179
179
|
},
|
|
180
180
|
"notes": "45 fields confirmed including PARCEL_NO, ADDRESS1, ADDRESS2, CITY, STATE, ZIP, COUNTRY, SITUS_STRE, SITUS_CITY, SITUS_ZIP, SD_NAME, LEGAL_DESC, TOTAL_ACRES, BLDG_VALUE, LAND_VALUE, TOTAL_VALUE, ANNUAL_TAX, STATUS_IND, PROP_SUBTY, O_NEIGHBOR, PROP_TYPE, INSPCT_CYC, REGION, MULT_PARCL, SALE_DATE, SALE_PRICE, SALE_VRFY, USE_CODE, SIGMA_YEAR, TAXABLE, EXEMPT_TY, LOCAL_IND, TCA, CURR_USE, INCORP, YEAR_BUILT, EFF_YR_BUI, RES_QUAL, RES_COND, REC_VOLPAG, SECTTIE, PARENT, MapSource, GlobalID. Live query confirmed: PARCEL_NO LIKE '%21820%' returns Thurston County parcels with mailing address and value data. NOTE: Owner name is NOT on this public layer per WA State law; ADDRESS1/2 is the mailing address (generally owner's address). Data from ASCEND and SIGMA databases. Item ID: 4ca0091703b345f8a72f68a4d173d9be. maxRecordCount=1000."
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "wa-island",
|
|
184
|
+
"state": "WA",
|
|
185
|
+
"stateName": "Washington",
|
|
186
|
+
"stateSlug": "washington",
|
|
187
|
+
"county": "Island",
|
|
188
|
+
"countySlug": "island-county",
|
|
189
|
+
"countyFips": "53029",
|
|
190
|
+
"hasPublicRest": true,
|
|
191
|
+
"endpoints": [
|
|
192
|
+
{
|
|
193
|
+
"url": "https://maps.islandcountywa.gov/arcgis/rest/services/Geocortex/Base/MapServer/0",
|
|
194
|
+
"serviceType": "MapServer",
|
|
195
|
+
"layerIndex": 0,
|
|
196
|
+
"layerName": "Parcels",
|
|
197
|
+
"supportsQuery": true,
|
|
198
|
+
"corsEnabled": true,
|
|
199
|
+
"searchFields": [
|
|
200
|
+
{ "name": "taxpayer", "label": "Owner Name (Taxpayer)", "searchable": true },
|
|
201
|
+
{ "name": "ParcelNo", "label": "Parcel ID", "searchable": true },
|
|
202
|
+
{ "name": "physical_addr", "label": "Site Address", "searchable": true },
|
|
203
|
+
{ "name": "physical_addr_city", "label": "Site City", "searchable": true },
|
|
204
|
+
{ "name": "physical_addr_zip", "label": "Site ZIP", "searchable": false },
|
|
205
|
+
{ "name": "mailing_addr1", "label": "Owner Mailing Address Line 1", "searchable": true },
|
|
206
|
+
{ "name": "mailing_addr2", "label": "Owner Mailing Address Line 2", "searchable": false },
|
|
207
|
+
{ "name": "mailing_addr_city", "label": "Owner Mailing City", "searchable": true },
|
|
208
|
+
{ "name": "mailing_addr_state", "label": "Owner Mailing State", "searchable": false },
|
|
209
|
+
{ "name": "mailing_addr_zip", "label": "Owner Mailing ZIP", "searchable": false },
|
|
210
|
+
{ "name": "property_land_use_code", "label": "Land Use Code", "searchable": false },
|
|
211
|
+
{ "name": "legal_acreage", "label": "Legal Acreage", "searchable": false }
|
|
212
|
+
],
|
|
213
|
+
"sampleQuery": "https://maps.islandcountywa.gov/arcgis/rest/services/Geocortex/Base/MapServer/0/query?where=UPPER(taxpayer)%20LIKE%20'SMITH%25'&outFields=ParcelNo,taxpayer,physical_addr,mailing_addr1&returnGeometry=false&resultRecordCount=10&f=json",
|
|
214
|
+
"license": "unknown",
|
|
215
|
+
"licenseUrl": "https://maps.islandcountywa.gov",
|
|
216
|
+
"status": "live",
|
|
217
|
+
"lastVerified": "2026-10-03",
|
|
218
|
+
"verifiedBy": "manual"
|
|
219
|
+
}
|
|
220
|
+
],
|
|
221
|
+
"contact": {
|
|
222
|
+
"department": "Island County Assessor / GIS",
|
|
223
|
+
"url": "https://maps.islandcountywa.gov",
|
|
224
|
+
"email": null
|
|
225
|
+
},
|
|
226
|
+
"notes": "Island County, Washington (county seat Coupeville) serves its parcels from the Assessor's own ArcGIS Server, joined to the PACS assessor data and exported nightly per the service description. The owner field is called taxpayer, the parcel id ParcelNo (for example R03213-384-4950), the site address physical_addr with its city, state and ZIP parts, and the owner mailing address mailing_addr1 to mailing_addr3 with city, state and ZIP. ParcelNo and taxpayer values carry trailing spaces, so trim on display, and some parcels (vacant land) have a blank physical_addr. Named outFields are accepted. CORS reflects the request Origin and sends Access-Control-Allow-Credentials true, so it is not a wildcard. maxRecordCount is 60000. The layer's copyright text reads DO NOT USE AS LEGAL DOCUMENT and no license is stated. Two sibling services carry the same data and serve as fallbacks: SmartGov/Parcels MapServer and Auditor/BaseMap MapServer layer 0. The contact URL is the county map server root, which answered HTTP 200 on 2026-10-03; no separate Assessor contact page was retrieved. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH, COLIN, R13334-372-1430)."
|
|
181
227
|
}
|
|
182
228
|
]
|
|
183
229
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -15,12 +15,12 @@ var LIVE_STATUS_URL = "https://urbankitstudio.com/api/atlas/status";
|
|
|
15
15
|
// data/index.json
|
|
16
16
|
var data_default = {
|
|
17
17
|
version: "0.3.0",
|
|
18
|
-
lastUpdated: "2026-
|
|
18
|
+
lastUpdated: "2026-10-03",
|
|
19
19
|
totals: {
|
|
20
|
-
states:
|
|
21
|
-
counties:
|
|
22
|
-
endpoints:
|
|
23
|
-
countiesWithEndpoint:
|
|
20
|
+
states: 51,
|
|
21
|
+
counties: 239,
|
|
22
|
+
endpoints: 251,
|
|
23
|
+
countiesWithEndpoint: 233,
|
|
24
24
|
countiesUnprobeable: 1
|
|
25
25
|
},
|
|
26
26
|
states: [
|
|
@@ -28,8 +28,8 @@ var data_default = {
|
|
|
28
28
|
slug: "alabama",
|
|
29
29
|
name: "Alabama",
|
|
30
30
|
abbrev: "AL",
|
|
31
|
-
countyCount:
|
|
32
|
-
endpointCount:
|
|
31
|
+
countyCount: 3,
|
|
32
|
+
endpointCount: 3,
|
|
33
33
|
populated: true
|
|
34
34
|
},
|
|
35
35
|
{
|
|
@@ -88,6 +88,14 @@ var data_default = {
|
|
|
88
88
|
endpointCount: 1,
|
|
89
89
|
populated: true
|
|
90
90
|
},
|
|
91
|
+
{
|
|
92
|
+
slug: "district-of-columbia",
|
|
93
|
+
name: "District of Columbia",
|
|
94
|
+
abbrev: "DC",
|
|
95
|
+
countyCount: 1,
|
|
96
|
+
endpointCount: 1,
|
|
97
|
+
populated: true
|
|
98
|
+
},
|
|
91
99
|
{
|
|
92
100
|
slug: "florida",
|
|
93
101
|
name: "Florida",
|
|
@@ -100,8 +108,8 @@ var data_default = {
|
|
|
100
108
|
slug: "georgia",
|
|
101
109
|
name: "Georgia",
|
|
102
110
|
abbrev: "GA",
|
|
103
|
-
countyCount:
|
|
104
|
-
endpointCount:
|
|
111
|
+
countyCount: 6,
|
|
112
|
+
endpointCount: 6,
|
|
105
113
|
populated: true
|
|
106
114
|
},
|
|
107
115
|
{
|
|
@@ -316,8 +324,8 @@ var data_default = {
|
|
|
316
324
|
slug: "oregon",
|
|
317
325
|
name: "Oregon",
|
|
318
326
|
abbrev: "OR",
|
|
319
|
-
countyCount:
|
|
320
|
-
endpointCount:
|
|
327
|
+
countyCount: 7,
|
|
328
|
+
endpointCount: 6,
|
|
321
329
|
populated: true
|
|
322
330
|
},
|
|
323
331
|
{
|
|
@@ -396,8 +404,8 @@ var data_default = {
|
|
|
396
404
|
slug: "washington",
|
|
397
405
|
name: "Washington",
|
|
398
406
|
abbrev: "WA",
|
|
399
|
-
countyCount:
|
|
400
|
-
endpointCount:
|
|
407
|
+
countyCount: 5,
|
|
408
|
+
endpointCount: 5,
|
|
401
409
|
populated: true
|
|
402
410
|
},
|
|
403
411
|
{
|
|
@@ -432,7 +440,7 @@ var alabama_default = {
|
|
|
432
440
|
stateSlug: "alabama",
|
|
433
441
|
stateName: "Alabama",
|
|
434
442
|
stateAbbrev: "AL",
|
|
435
|
-
lastUpdated: "2026-
|
|
443
|
+
lastUpdated: "2026-10-03",
|
|
436
444
|
counties: [
|
|
437
445
|
{
|
|
438
446
|
id: "al-shelby",
|
|
@@ -528,6 +536,48 @@ var alabama_default = {
|
|
|
528
536
|
email: null
|
|
529
537
|
},
|
|
530
538
|
notes: "Jefferson County AL (Birmingham, pop. 670,000; FIPS 01073) Basemap/Parcels layer. Data maintained by Jefferson County Tax Assessor Office and updated nightly. 76 fields in live schema as of 2026-06-27: OBJECTID, Unique_ID, PID, TAX_TOWNSH, ISP_SECTION, SEC, QSECTION, BLOCK, PARCEL, PARCELID, APP_PID, DISTRICT, ESN_NUM, ADDR_PSPR, Bldg_Number, Street_Name, Street_Type, Street_Dir, APARTMENT, ADDRAPT_PS, OWNERNAME, PROP_MAIL, CITYMAIL, ZIP_MAIL, STATE_Mail, Legal_Desc, Property_City, Property_State, NEIGHBOR_N, SUBDIV_NAME, ADDR_APR, ZIP, TotalMHValue, PrevParcelLand/Imp/Total, Water, Sewer, Gas, ACRES_APR, GIS_ACRES, Remarks, Name2, Plat_Book/Page (\xD72), NbhdCd, Ownership, Topography, RoadAcc, MaintDate, CITY, NbhName, PriMunCode, SecMunCode, PriAcreage, SecAcreage, LegalRemarks, ParcelNo, Division, RecordYear, SchDist, MapNumber, Sqft, FIREDEPTNAME, Cls, BLDG_IND, TAX_CODE, OBY_IND, AssdValue, Territory, FireFee_District. NOTE 2026-06-27: ZONING_BOE is no longer in the live schema (schema drift), removed from searchFields. OWNERNAME field returns padded fixed-width strings (trim on use). Note: distinct from Jefferson County CO (FIPS 08059) and Jefferson County KY (Louisville; FIPS 21111) already in atlas. Verified 2026-06-27: metadata 200, query 200, 410K+ parcels."
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
id: "al-mobile",
|
|
542
|
+
state: "AL",
|
|
543
|
+
stateName: "Alabama",
|
|
544
|
+
stateSlug: "alabama",
|
|
545
|
+
county: "Mobile",
|
|
546
|
+
countySlug: "mobile-county",
|
|
547
|
+
countyFips: "01097",
|
|
548
|
+
hasPublicRest: true,
|
|
549
|
+
endpoints: [
|
|
550
|
+
{
|
|
551
|
+
url: "https://services8.arcgis.com/HND1NcQt6vgOGn1z/arcgis/rest/services/MCRC_Public_Parcels/FeatureServer/0",
|
|
552
|
+
serviceType: "FeatureServer",
|
|
553
|
+
layerIndex: 0,
|
|
554
|
+
layerName: "MCRC_Public_Parcels",
|
|
555
|
+
supportsQuery: true,
|
|
556
|
+
corsEnabled: true,
|
|
557
|
+
searchFields: [
|
|
558
|
+
{ name: "Name1", label: "Owner Name 1", searchable: true },
|
|
559
|
+
{ name: "Name2", label: "Owner Name 2", searchable: true },
|
|
560
|
+
{ name: "Parcel_Number", label: "Parcel ID", searchable: true },
|
|
561
|
+
{ name: "Account_Number", label: "Account Number", searchable: true },
|
|
562
|
+
{ name: "PropAddr1", label: "Site Address", searchable: true },
|
|
563
|
+
{ name: "PropCity", label: "Site City", searchable: true },
|
|
564
|
+
{ name: "PropZip", label: "Site ZIP", searchable: false },
|
|
565
|
+
{ name: "Acreage", label: "Acres", searchable: false }
|
|
566
|
+
],
|
|
567
|
+
sampleQuery: "https://services8.arcgis.com/HND1NcQt6vgOGn1z/arcgis/rest/services/MCRC_Public_Parcels/FeatureServer/0/query?where=UPPER(Name1)%20LIKE%20%27SMITH%25%27&outFields=*&returnGeometry=false&resultRecordCount=10&f=json",
|
|
568
|
+
license: "unknown",
|
|
569
|
+
licenseUrl: "https://www.arcgis.com/home/item.html?id=07c93ca64bbf4fb8a8d49b7ea80ef067",
|
|
570
|
+
status: "live",
|
|
571
|
+
lastVerified: "2026-10-03",
|
|
572
|
+
verifiedBy: "manual"
|
|
573
|
+
}
|
|
574
|
+
],
|
|
575
|
+
contact: {
|
|
576
|
+
department: "Mapping Department, Mobile County Revenue Commission",
|
|
577
|
+
url: null,
|
|
578
|
+
email: null
|
|
579
|
+
},
|
|
580
|
+
notes: "Mobile County, Alabama (Mobile; FIPS 01097) publishes its parcels as the 'Mobile County Alabama Tax Parcels' FeatureServer, authored by the Mobile County Revenue Commission's Mapping Department and updated 2026-09-22. 214,040 parcels, countywide. The owner is in Name1 (and Name2), the parcel id in Parcel_Number (ParcelNo is the formatted form), and the site address in PropAddr1 with PropCity and PropZip. The layer has NO owner mailing-address fields (its columns are OBJECTID, Parcel_Number, Account_Number, ParcelNo, Name1, Name2, PropAddr1, PropAddr2, PropCity, PropState, PropZip, Acreage, Sqft, KeyNum), so it serves owner names and site addresses, not mailing addresses. String fields are heavily space padded (Name1 is 255 wide), so trim them and search with UPPER(Name1) LIKE 'SMITH%', never equality. The spatial reference is wkid 102630, so send outSR=4326 if you need longitude and latitude. CORS answers Access-Control-Allow-Origin *. No open-data license is stated; the item carries only an informational-use disclaimer. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH BONNIE G, 0104430000006.000, 20240 HIGHWAY 43, Mount Vernon)."
|
|
531
581
|
}
|
|
532
582
|
]
|
|
533
583
|
};
|
|
@@ -3119,6 +3169,60 @@ var delaware_default = {
|
|
|
3119
3169
|
]
|
|
3120
3170
|
};
|
|
3121
3171
|
|
|
3172
|
+
// data/district-of-columbia.json
|
|
3173
|
+
var district_of_columbia_default = {
|
|
3174
|
+
stateSlug: "district-of-columbia",
|
|
3175
|
+
stateName: "District of Columbia",
|
|
3176
|
+
stateAbbrev: "DC",
|
|
3177
|
+
lastUpdated: "2026-09-26",
|
|
3178
|
+
counties: [
|
|
3179
|
+
{
|
|
3180
|
+
id: "dc-district-of-columbia",
|
|
3181
|
+
state: "DC",
|
|
3182
|
+
stateName: "District of Columbia",
|
|
3183
|
+
stateSlug: "district-of-columbia",
|
|
3184
|
+
county: "District of Columbia",
|
|
3185
|
+
countySlug: "district-of-columbia",
|
|
3186
|
+
countyFips: "11001",
|
|
3187
|
+
hasPublicRest: true,
|
|
3188
|
+
endpoints: [
|
|
3189
|
+
{
|
|
3190
|
+
url: "https://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/Property_and_Land_WebMercator/FeatureServer/40",
|
|
3191
|
+
serviceType: "FeatureServer",
|
|
3192
|
+
layerIndex: 40,
|
|
3193
|
+
layerName: "Owner Polygons (Common Ownership Layer)",
|
|
3194
|
+
supportsQuery: true,
|
|
3195
|
+
corsEnabled: true,
|
|
3196
|
+
searchFields: [
|
|
3197
|
+
{ name: "SSL", label: "Square, Suffix, Lot (Parcel ID)", searchable: true },
|
|
3198
|
+
{ name: "OWNERNAME", label: "Owner Name", searchable: true },
|
|
3199
|
+
{ name: "CAREOFNAME", label: "Care Of Name", searchable: false },
|
|
3200
|
+
{ name: "PREMISEADD", label: "Premise (Situs) Address", searchable: true },
|
|
3201
|
+
{ name: "ADDRESS1", label: "Owner Mailing Address", searchable: true },
|
|
3202
|
+
{ name: "ADDRESS2", label: "Owner Mailing Address 2", searchable: false },
|
|
3203
|
+
{ name: "CITYSTZIP", label: "Owner Mailing City/State/ZIP", searchable: true },
|
|
3204
|
+
{ name: "USECODE", label: "Use Code", searchable: false },
|
|
3205
|
+
{ name: "LANDAREA", label: "Land Area", searchable: false },
|
|
3206
|
+
{ name: "ASSESSMENT", label: "Assessment", searchable: false }
|
|
3207
|
+
],
|
|
3208
|
+
sampleQuery: "https://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/Property_and_Land_WebMercator/FeatureServer/40/query?where=OWNERNAME%20LIKE%20'SMITH%25'&outFields=SSL,OWNERNAME,PREMISEADD,ADDRESS1,CITYSTZIP&returnGeometry=false&f=json&resultRecordCount=10",
|
|
3209
|
+
license: "open-data",
|
|
3210
|
+
licenseUrl: "https://creativecommons.org/licenses/by/4.0/",
|
|
3211
|
+
status: "live",
|
|
3212
|
+
lastVerified: "2026-09-26",
|
|
3213
|
+
verifiedBy: "manual"
|
|
3214
|
+
}
|
|
3215
|
+
],
|
|
3216
|
+
contact: {
|
|
3217
|
+
department: "DC Office of the Chief Technology Officer (OCTO) GIS and Office of the Surveyor; data attributed daily from the Office of Tax and Revenue's Real Property Tax Administration (RPTA) Integrated Tax System Public Extract (ITSPE)",
|
|
3218
|
+
url: "https://opendata.dc.gov/datasets/DCGIS::common-ownership-lots",
|
|
3219
|
+
email: null
|
|
3220
|
+
},
|
|
3221
|
+
notes: "The District of Columbia is one county-equivalent (FIPS 11001) with no counties inside it. Layer 40, Owner Polygons (Common Ownership Layer), is the District's general ownership layer: 137,400 lot polygons merged from the Record, Tax, Parcel, Reservation and Air Rights lot layers and regenerated daily from the Office of Tax and Revenue's Integrated Tax System Public Extract (ITSPE). Layers 49 (District Land) and 50 (Federal Land) on the same service are narrower views of it. The parcel ID is the SSL (square, suffix, lot), written either as 'SQUARE SUFFIX LOT' (e.g. '1929 7056') or as 'PAR NNNNNNNN' for Parcel-type lots; both answer an SSL LIKE prefix search. The owner mailing address (ADDRESS1, ADDRESS2, CITYSTZIP) is separate from the premise address (PREMISEADD). Verified 2026-09-26: OWNERNAME LIKE 'SMITH%' returns 939 lots, and a PREMISEADD search returns individual homeowners alongside institutions.\n\nCoverage: the layer maps land, one polygon per lot. A condominium building is a single lot on it, and 3,921 of its 4,142 condominium lots carry no owner name, so an owner search finds lot owners, not unit owners. The tax extract published on the same service lists 221,622 records; unit-level condominium data sits in separate tables there, which this layer does not join. The service's ArcGIS Online item (Common Ownership Lots, item 1f6708b1f3774306bef2fa81e612a725, owner DCGISopendata) licenses the data under Creative Commons Attribution 4.0 International, so reuse credits the District of Columbia; the District's open-data terms apply CC0 only where no other license is noted, and this item notes one. OTR's Real Property Public Extract is a different product: a bulk file restricted to mortgage companies."
|
|
3222
|
+
}
|
|
3223
|
+
]
|
|
3224
|
+
};
|
|
3225
|
+
|
|
3122
3226
|
// data/florida.json
|
|
3123
3227
|
var florida_default = {
|
|
3124
3228
|
stateSlug: "florida",
|
|
@@ -12753,7 +12857,7 @@ var georgia_default = {
|
|
|
12753
12857
|
stateSlug: "georgia",
|
|
12754
12858
|
stateName: "Georgia",
|
|
12755
12859
|
stateAbbrev: "GA",
|
|
12756
|
-
lastUpdated: "2026-
|
|
12860
|
+
lastUpdated: "2026-10-03",
|
|
12757
12861
|
counties: [
|
|
12758
12862
|
{
|
|
12759
12863
|
id: "ga-fulton",
|
|
@@ -13120,6 +13224,51 @@ var georgia_default = {
|
|
|
13120
13224
|
email: null
|
|
13121
13225
|
},
|
|
13122
13226
|
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."
|
|
13227
|
+
},
|
|
13228
|
+
{
|
|
13229
|
+
id: "ga-dougherty",
|
|
13230
|
+
state: "GA",
|
|
13231
|
+
stateName: "Georgia",
|
|
13232
|
+
stateSlug: "georgia",
|
|
13233
|
+
county: "Dougherty",
|
|
13234
|
+
countySlug: "dougherty-county",
|
|
13235
|
+
countyFips: "13095",
|
|
13236
|
+
hasPublicRest: true,
|
|
13237
|
+
endpoints: [
|
|
13238
|
+
{
|
|
13239
|
+
url: "https://services6.arcgis.com/VKHi8CC6pMIyYUIs/arcgis/rest/services/Parcels_Public_View/FeatureServer/0",
|
|
13240
|
+
serviceType: "FeatureServer",
|
|
13241
|
+
layerIndex: 0,
|
|
13242
|
+
layerName: "Parcels",
|
|
13243
|
+
supportsQuery: true,
|
|
13244
|
+
corsEnabled: true,
|
|
13245
|
+
searchFields: [
|
|
13246
|
+
{ name: "Name", label: "Owner Name", searchable: true },
|
|
13247
|
+
{ name: "ParcelNum", label: "Parcel ID", searchable: true },
|
|
13248
|
+
{ name: "Address", label: "Site Address", searchable: true },
|
|
13249
|
+
{ name: "SiteCity", label: "Site City", searchable: true },
|
|
13250
|
+
{ name: "SiteZip", label: "Site ZIP", searchable: false },
|
|
13251
|
+
{ name: "MailAddress1", label: "Owner Mailing Address", searchable: true },
|
|
13252
|
+
{ name: "MailCity", label: "Owner Mailing City", searchable: true },
|
|
13253
|
+
{ name: "MailState", label: "Owner Mailing State", searchable: false },
|
|
13254
|
+
{ name: "MailZip", label: "Owner Mailing ZIP", searchable: false },
|
|
13255
|
+
{ name: "Jurisdiction", label: "Jurisdiction (City or County)", searchable: false },
|
|
13256
|
+
{ name: "TotalAcerage", label: "Acres", searchable: false }
|
|
13257
|
+
],
|
|
13258
|
+
sampleQuery: "https://services6.arcgis.com/VKHi8CC6pMIyYUIs/arcgis/rest/services/Parcels_Public_View/FeatureServer/0/query?where=UPPER(Name)%20LIKE%20%27SMITH%25%27&outFields=*&returnGeometry=false&resultRecordCount=10&f=json",
|
|
13259
|
+
license: "unknown",
|
|
13260
|
+
licenseUrl: "https://www.arcgis.com/home/item.html?id=9729f520dfab47fab85484908994ef1f",
|
|
13261
|
+
status: "live",
|
|
13262
|
+
lastVerified: "2026-10-03",
|
|
13263
|
+
verifiedBy: "manual"
|
|
13264
|
+
}
|
|
13265
|
+
],
|
|
13266
|
+
contact: {
|
|
13267
|
+
department: "Albany GIS (Albany-Dougherty Geographic Information System)",
|
|
13268
|
+
url: null,
|
|
13269
|
+
email: null
|
|
13270
|
+
},
|
|
13271
|
+
notes: "Dougherty County, Georgia (county seat Albany) publishes its parcels as the 'Dougherty County Land Parcels Dataset' FeatureServer, maintained by Albany GIS, covering both the CITY and COUNTY jurisdictions (the Jurisdiction column says which). 38,007 parcels as of 2026-10-03. The owner is in Name, the parcel id in ParcelNum, the site address in Address (with SiteCity and SiteZip) and the owner mailing address in MailAddress1/MailCity/MailState/MailZip; MailAddress1 was empty on the first rows sampled. String fields are space padded to their full width, so trim them and search with UPPER(Name) LIKE 'SMITH%', never equality. The layer's spatial reference is wkid 102667 (latestWkid 2240), so send outSR=4326 if you need longitude and latitude. CORS answers Access-Control-Allow-Origin *. No open-data license is stated; the item carries only a disclaimer that Albany GIS makes every effort at accuracy and that all data is subject to change. A third-party count of 39,443 parcels is slightly higher than the layer's, so the public view may be a subset. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH SHIRLEY PEARL, 0000S/00003/03A, 2803 ELTON ST, Albany)."
|
|
13123
13272
|
}
|
|
13124
13273
|
]
|
|
13125
13274
|
};
|
|
@@ -19307,7 +19456,7 @@ var oregon_default = {
|
|
|
19307
19456
|
stateSlug: "oregon",
|
|
19308
19457
|
stateName: "Oregon",
|
|
19309
19458
|
stateAbbrev: "OR",
|
|
19310
|
-
lastUpdated: "2026-
|
|
19459
|
+
lastUpdated: "2026-10-03",
|
|
19311
19460
|
counties: [
|
|
19312
19461
|
{
|
|
19313
19462
|
id: "or-multnomah",
|
|
@@ -19555,6 +19704,51 @@ var oregon_default = {
|
|
|
19555
19704
|
email: "gisquestions@clackamas.us"
|
|
19556
19705
|
},
|
|
19557
19706
|
notes: "No public REST parcel layer with owner names was found for Clackamas County (county seat Oregon City) as of 2026-09-26. The county states that it does not publish property owner names online and directs owner-information requests to Assessment and Taxation, and its GIS shapefile downloads require accepting a data licensing agreement. No county-hosted ArcGIS REST catalog was found; the public tools, CMap and AscendWeb, are interactive viewers. Two statewide layers cover the county but neither can serve an owner search: the Oregon Department of Forestry's taxlot layer named 'Clackamas County' declares owner fields but has query disabled, and the Oregon Department of Transportation's taxlot layer is queryable but carries only map and taxlot numbers. Metro's regional RLIS 'Taxlots (Public)' dataset, per its listing, excludes ownership."
|
|
19707
|
+
},
|
|
19708
|
+
{
|
|
19709
|
+
id: "or-malheur",
|
|
19710
|
+
state: "OR",
|
|
19711
|
+
stateName: "Oregon",
|
|
19712
|
+
stateSlug: "oregon",
|
|
19713
|
+
county: "Malheur",
|
|
19714
|
+
countySlug: "malheur-county",
|
|
19715
|
+
countyFips: "41045",
|
|
19716
|
+
hasPublicRest: true,
|
|
19717
|
+
endpoints: [
|
|
19718
|
+
{
|
|
19719
|
+
url: "https://services5.arcgis.com/ZfBm5CKxbEBYLP3J/arcgis/rest/services/County_GIS_Portal_WFL1/FeatureServer/16",
|
|
19720
|
+
serviceType: "FeatureServer",
|
|
19721
|
+
layerIndex: 16,
|
|
19722
|
+
layerName: "TL Jun2026",
|
|
19723
|
+
supportsQuery: true,
|
|
19724
|
+
corsEnabled: true,
|
|
19725
|
+
searchFields: [
|
|
19726
|
+
{ name: "OWNERSNAME", label: "Owner Name", searchable: true },
|
|
19727
|
+
{ name: "MapTaxlot", label: "Map and Taxlot ID", searchable: true },
|
|
19728
|
+
{ name: "Taxlot", label: "Taxlot", searchable: false },
|
|
19729
|
+
{ name: "SITUSADD", label: "Site Address", searchable: true },
|
|
19730
|
+
{ name: "CITY", label: "Site City", searchable: true },
|
|
19731
|
+
{ name: "ADD1", label: "Owner Mailing Address Line 1", searchable: true },
|
|
19732
|
+
{ name: "ADD2", label: "Owner Mailing Address Line 2", searchable: false },
|
|
19733
|
+
{ name: "CITYSTATE", label: "Owner Mailing City and State", searchable: true },
|
|
19734
|
+
{ name: "ZIP", label: "Owner Mailing ZIP", searchable: false },
|
|
19735
|
+
{ name: "ZONING", label: "Zoning", searchable: false },
|
|
19736
|
+
{ name: "TOTACRE", label: "Total Acres", searchable: false }
|
|
19737
|
+
],
|
|
19738
|
+
sampleQuery: "https://services5.arcgis.com/ZfBm5CKxbEBYLP3J/arcgis/rest/services/County_GIS_Portal_WFL1/FeatureServer/16/query?where=UPPER(OWNERSNAME)%20LIKE%20'SMITH%25'&outFields=MapTaxlot,OWNERSNAME,ADD1,CITYSTATE,SITUSADD,CITY&returnGeometry=false&resultRecordCount=10&f=json",
|
|
19739
|
+
license: "unknown",
|
|
19740
|
+
licenseUrl: "https://www.malheurco.org/gis/",
|
|
19741
|
+
status: "live",
|
|
19742
|
+
lastVerified: "2026-10-03",
|
|
19743
|
+
verifiedBy: "manual"
|
|
19744
|
+
}
|
|
19745
|
+
],
|
|
19746
|
+
contact: {
|
|
19747
|
+
department: "Malheur County GIS (GIS Specialist), 251 B St W #2, Vale, OR 97918, (541) 473-5574",
|
|
19748
|
+
url: "https://www.malheurco.org/gis/",
|
|
19749
|
+
email: null
|
|
19750
|
+
},
|
|
19751
|
+
notes: "Malheur County, Oregon (county seat Vale) publishes its tax lots as a layer of the County_GIS_Portal_WFL1 FeatureServer, the data source of the county's public Malheur County Tax Lot Map experience (linked from malheurco.org/gis). 20,570 features as of 2026-10-03. The owner is OWNERSNAME, the parcel id MapTaxlot (for example 15S47E28B04702), the site address SITUSADD with CITY, and the owner mailing address ADD1/ADD2/CITYSTATE/ZIP. SITUSADD is sometimes a bare zero and ADD1 is often null. MAINTENANCE QUIRK: the layer name and index are month-stamped (currently layer 16, 'TL Jun2026'; the siblings are 'NonTL Jun2026' at 17 and Zoning_2026 at 25) and the county republishes monthly, so the name or index can change. When the liveness probe flags this record, re-resolve it: list the FeatureServer's layers, pick the one whose name starts with 'TL ' and which carries an OWNERSNAME field, then update layerIndex, layerName and the url. Do not hard-code 16 forever. Named outFields are accepted. CORS answers Access-Control-Allow-Origin *. The layer states no license; the county GIS page links a Data Licensing Agreement for bulk data. The statewide ODF layer for Malheur has an owner line but query disabled, and Malheur is not in the OWRD layer, so there is no usable fallback. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH, JAMIE LEE, 15S47E28B04702, Ontario)."
|
|
19558
19752
|
}
|
|
19559
19753
|
]
|
|
19560
19754
|
};
|
|
@@ -20953,7 +21147,7 @@ var washington_default = {
|
|
|
20953
21147
|
stateSlug: "washington",
|
|
20954
21148
|
stateName: "Washington",
|
|
20955
21149
|
stateAbbrev: "WA",
|
|
20956
|
-
lastUpdated: "2026-
|
|
21150
|
+
lastUpdated: "2026-10-03",
|
|
20957
21151
|
counties: [
|
|
20958
21152
|
{
|
|
20959
21153
|
id: "wa-king",
|
|
@@ -21129,6 +21323,52 @@ var washington_default = {
|
|
|
21129
21323
|
email: null
|
|
21130
21324
|
},
|
|
21131
21325
|
notes: "45 fields confirmed including PARCEL_NO, ADDRESS1, ADDRESS2, CITY, STATE, ZIP, COUNTRY, SITUS_STRE, SITUS_CITY, SITUS_ZIP, SD_NAME, LEGAL_DESC, TOTAL_ACRES, BLDG_VALUE, LAND_VALUE, TOTAL_VALUE, ANNUAL_TAX, STATUS_IND, PROP_SUBTY, O_NEIGHBOR, PROP_TYPE, INSPCT_CYC, REGION, MULT_PARCL, SALE_DATE, SALE_PRICE, SALE_VRFY, USE_CODE, SIGMA_YEAR, TAXABLE, EXEMPT_TY, LOCAL_IND, TCA, CURR_USE, INCORP, YEAR_BUILT, EFF_YR_BUI, RES_QUAL, RES_COND, REC_VOLPAG, SECTTIE, PARENT, MapSource, GlobalID. Live query confirmed: PARCEL_NO LIKE '%21820%' returns Thurston County parcels with mailing address and value data. NOTE: Owner name is NOT on this public layer per WA State law; ADDRESS1/2 is the mailing address (generally owner's address). Data from ASCEND and SIGMA databases. Item ID: 4ca0091703b345f8a72f68a4d173d9be. maxRecordCount=1000."
|
|
21326
|
+
},
|
|
21327
|
+
{
|
|
21328
|
+
id: "wa-island",
|
|
21329
|
+
state: "WA",
|
|
21330
|
+
stateName: "Washington",
|
|
21331
|
+
stateSlug: "washington",
|
|
21332
|
+
county: "Island",
|
|
21333
|
+
countySlug: "island-county",
|
|
21334
|
+
countyFips: "53029",
|
|
21335
|
+
hasPublicRest: true,
|
|
21336
|
+
endpoints: [
|
|
21337
|
+
{
|
|
21338
|
+
url: "https://maps.islandcountywa.gov/arcgis/rest/services/Geocortex/Base/MapServer/0",
|
|
21339
|
+
serviceType: "MapServer",
|
|
21340
|
+
layerIndex: 0,
|
|
21341
|
+
layerName: "Parcels",
|
|
21342
|
+
supportsQuery: true,
|
|
21343
|
+
corsEnabled: true,
|
|
21344
|
+
searchFields: [
|
|
21345
|
+
{ name: "taxpayer", label: "Owner Name (Taxpayer)", searchable: true },
|
|
21346
|
+
{ name: "ParcelNo", label: "Parcel ID", searchable: true },
|
|
21347
|
+
{ name: "physical_addr", label: "Site Address", searchable: true },
|
|
21348
|
+
{ name: "physical_addr_city", label: "Site City", searchable: true },
|
|
21349
|
+
{ name: "physical_addr_zip", label: "Site ZIP", searchable: false },
|
|
21350
|
+
{ name: "mailing_addr1", label: "Owner Mailing Address Line 1", searchable: true },
|
|
21351
|
+
{ name: "mailing_addr2", label: "Owner Mailing Address Line 2", searchable: false },
|
|
21352
|
+
{ name: "mailing_addr_city", label: "Owner Mailing City", searchable: true },
|
|
21353
|
+
{ name: "mailing_addr_state", label: "Owner Mailing State", searchable: false },
|
|
21354
|
+
{ name: "mailing_addr_zip", label: "Owner Mailing ZIP", searchable: false },
|
|
21355
|
+
{ name: "property_land_use_code", label: "Land Use Code", searchable: false },
|
|
21356
|
+
{ name: "legal_acreage", label: "Legal Acreage", searchable: false }
|
|
21357
|
+
],
|
|
21358
|
+
sampleQuery: "https://maps.islandcountywa.gov/arcgis/rest/services/Geocortex/Base/MapServer/0/query?where=UPPER(taxpayer)%20LIKE%20'SMITH%25'&outFields=ParcelNo,taxpayer,physical_addr,mailing_addr1&returnGeometry=false&resultRecordCount=10&f=json",
|
|
21359
|
+
license: "unknown",
|
|
21360
|
+
licenseUrl: "https://maps.islandcountywa.gov",
|
|
21361
|
+
status: "live",
|
|
21362
|
+
lastVerified: "2026-10-03",
|
|
21363
|
+
verifiedBy: "manual"
|
|
21364
|
+
}
|
|
21365
|
+
],
|
|
21366
|
+
contact: {
|
|
21367
|
+
department: "Island County Assessor / GIS",
|
|
21368
|
+
url: "https://maps.islandcountywa.gov",
|
|
21369
|
+
email: null
|
|
21370
|
+
},
|
|
21371
|
+
notes: "Island County, Washington (county seat Coupeville) serves its parcels from the Assessor's own ArcGIS Server, joined to the PACS assessor data and exported nightly per the service description. The owner field is called taxpayer, the parcel id ParcelNo (for example R03213-384-4950), the site address physical_addr with its city, state and ZIP parts, and the owner mailing address mailing_addr1 to mailing_addr3 with city, state and ZIP. ParcelNo and taxpayer values carry trailing spaces, so trim on display, and some parcels (vacant land) have a blank physical_addr. Named outFields are accepted. CORS reflects the request Origin and sends Access-Control-Allow-Credentials true, so it is not a wildcard. maxRecordCount is 60000. The layer's copyright text reads DO NOT USE AS LEGAL DOCUMENT and no license is stated. Two sibling services carry the same data and serve as fallbacks: SmartGov/Parcels MapServer and Auditor/BaseMap MapServer layer 0. The contact URL is the county map server root, which answered HTTP 200 on 2026-10-03; no separate Assessor contact page was retrieved. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH, COLIN, R13334-372-1430)."
|
|
21132
21372
|
}
|
|
21133
21373
|
]
|
|
21134
21374
|
};
|
|
@@ -21880,6 +22120,7 @@ var POPULATED_STATES = {
|
|
|
21880
22120
|
colorado: colorado_default,
|
|
21881
22121
|
connecticut: connecticut_default,
|
|
21882
22122
|
delaware: delaware_default,
|
|
22123
|
+
"district-of-columbia": district_of_columbia_default,
|
|
21883
22124
|
florida: florida_default,
|
|
21884
22125
|
georgia: georgia_default,
|
|
21885
22126
|
hawaii: hawaii_default,
|
|
@@ -21969,10 +22210,10 @@ function listCountiesByState(stateSlug) {
|
|
|
21969
22210
|
function slugify(s) {
|
|
21970
22211
|
return s.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
21971
22212
|
}
|
|
22213
|
+
var COUNTY_UNIT_SUFFIX = /\b(?:County|Parish|Borough|Municipality|Census Area|City|Statewide|Planning Region|District of Columbia)$/i;
|
|
21972
22214
|
function countySlugFromName(county) {
|
|
21973
|
-
const
|
|
21974
|
-
|
|
21975
|
-
return slugify(hasSuffix ? county : `${county} County`);
|
|
22215
|
+
const name = county.trim();
|
|
22216
|
+
return slugify(COUNTY_UNIT_SUFFIX.test(name) ? name : `${name} County`);
|
|
21976
22217
|
}
|
|
21977
22218
|
function buildParcelLookupDeepLink(endpoint, base = "https://urbankitstudio.com/tools/parcel-lookup") {
|
|
21978
22219
|
const params = new URLSearchParams();
|
package/dist/index.d.cts
CHANGED
|
@@ -218,8 +218,9 @@ declare function findCountyByFips(fips: string): CountyRecord | undefined;
|
|
|
218
218
|
declare function findState(stateSlug: string): StateFile | undefined;
|
|
219
219
|
|
|
220
220
|
/**
|
|
221
|
-
* List all 50 US states from the atlas index,
|
|
222
|
-
* populated county data yet (use the `populated` flag
|
|
221
|
+
* List all 50 US states and the District of Columbia from the atlas index,
|
|
222
|
+
* including those without populated county data yet (use the `populated` flag
|
|
223
|
+
* to filter).
|
|
223
224
|
*/
|
|
224
225
|
declare function listStates(): StateIndexEntry[];
|
|
225
226
|
|
package/dist/index.d.ts
CHANGED
|
@@ -218,8 +218,9 @@ declare function findCountyByFips(fips: string): CountyRecord | undefined;
|
|
|
218
218
|
declare function findState(stateSlug: string): StateFile | undefined;
|
|
219
219
|
|
|
220
220
|
/**
|
|
221
|
-
* List all 50 US states from the atlas index,
|
|
222
|
-
* populated county data yet (use the `populated` flag
|
|
221
|
+
* List all 50 US states and the District of Columbia from the atlas index,
|
|
222
|
+
* including those without populated county data yet (use the `populated` flag
|
|
223
|
+
* to filter).
|
|
223
224
|
*/
|
|
224
225
|
declare function listStates(): StateIndexEntry[];
|
|
225
226
|
|
package/dist/index.js
CHANGED
|
@@ -13,12 +13,12 @@ var LIVE_STATUS_URL = "https://urbankitstudio.com/api/atlas/status";
|
|
|
13
13
|
// data/index.json
|
|
14
14
|
var data_default = {
|
|
15
15
|
version: "0.3.0",
|
|
16
|
-
lastUpdated: "2026-
|
|
16
|
+
lastUpdated: "2026-10-03",
|
|
17
17
|
totals: {
|
|
18
|
-
states:
|
|
19
|
-
counties:
|
|
20
|
-
endpoints:
|
|
21
|
-
countiesWithEndpoint:
|
|
18
|
+
states: 51,
|
|
19
|
+
counties: 239,
|
|
20
|
+
endpoints: 251,
|
|
21
|
+
countiesWithEndpoint: 233,
|
|
22
22
|
countiesUnprobeable: 1
|
|
23
23
|
},
|
|
24
24
|
states: [
|
|
@@ -26,8 +26,8 @@ var data_default = {
|
|
|
26
26
|
slug: "alabama",
|
|
27
27
|
name: "Alabama",
|
|
28
28
|
abbrev: "AL",
|
|
29
|
-
countyCount:
|
|
30
|
-
endpointCount:
|
|
29
|
+
countyCount: 3,
|
|
30
|
+
endpointCount: 3,
|
|
31
31
|
populated: true
|
|
32
32
|
},
|
|
33
33
|
{
|
|
@@ -86,6 +86,14 @@ var data_default = {
|
|
|
86
86
|
endpointCount: 1,
|
|
87
87
|
populated: true
|
|
88
88
|
},
|
|
89
|
+
{
|
|
90
|
+
slug: "district-of-columbia",
|
|
91
|
+
name: "District of Columbia",
|
|
92
|
+
abbrev: "DC",
|
|
93
|
+
countyCount: 1,
|
|
94
|
+
endpointCount: 1,
|
|
95
|
+
populated: true
|
|
96
|
+
},
|
|
89
97
|
{
|
|
90
98
|
slug: "florida",
|
|
91
99
|
name: "Florida",
|
|
@@ -98,8 +106,8 @@ var data_default = {
|
|
|
98
106
|
slug: "georgia",
|
|
99
107
|
name: "Georgia",
|
|
100
108
|
abbrev: "GA",
|
|
101
|
-
countyCount:
|
|
102
|
-
endpointCount:
|
|
109
|
+
countyCount: 6,
|
|
110
|
+
endpointCount: 6,
|
|
103
111
|
populated: true
|
|
104
112
|
},
|
|
105
113
|
{
|
|
@@ -314,8 +322,8 @@ var data_default = {
|
|
|
314
322
|
slug: "oregon",
|
|
315
323
|
name: "Oregon",
|
|
316
324
|
abbrev: "OR",
|
|
317
|
-
countyCount:
|
|
318
|
-
endpointCount:
|
|
325
|
+
countyCount: 7,
|
|
326
|
+
endpointCount: 6,
|
|
319
327
|
populated: true
|
|
320
328
|
},
|
|
321
329
|
{
|
|
@@ -394,8 +402,8 @@ var data_default = {
|
|
|
394
402
|
slug: "washington",
|
|
395
403
|
name: "Washington",
|
|
396
404
|
abbrev: "WA",
|
|
397
|
-
countyCount:
|
|
398
|
-
endpointCount:
|
|
405
|
+
countyCount: 5,
|
|
406
|
+
endpointCount: 5,
|
|
399
407
|
populated: true
|
|
400
408
|
},
|
|
401
409
|
{
|
|
@@ -430,7 +438,7 @@ var alabama_default = {
|
|
|
430
438
|
stateSlug: "alabama",
|
|
431
439
|
stateName: "Alabama",
|
|
432
440
|
stateAbbrev: "AL",
|
|
433
|
-
lastUpdated: "2026-
|
|
441
|
+
lastUpdated: "2026-10-03",
|
|
434
442
|
counties: [
|
|
435
443
|
{
|
|
436
444
|
id: "al-shelby",
|
|
@@ -526,6 +534,48 @@ var alabama_default = {
|
|
|
526
534
|
email: null
|
|
527
535
|
},
|
|
528
536
|
notes: "Jefferson County AL (Birmingham, pop. 670,000; FIPS 01073) Basemap/Parcels layer. Data maintained by Jefferson County Tax Assessor Office and updated nightly. 76 fields in live schema as of 2026-06-27: OBJECTID, Unique_ID, PID, TAX_TOWNSH, ISP_SECTION, SEC, QSECTION, BLOCK, PARCEL, PARCELID, APP_PID, DISTRICT, ESN_NUM, ADDR_PSPR, Bldg_Number, Street_Name, Street_Type, Street_Dir, APARTMENT, ADDRAPT_PS, OWNERNAME, PROP_MAIL, CITYMAIL, ZIP_MAIL, STATE_Mail, Legal_Desc, Property_City, Property_State, NEIGHBOR_N, SUBDIV_NAME, ADDR_APR, ZIP, TotalMHValue, PrevParcelLand/Imp/Total, Water, Sewer, Gas, ACRES_APR, GIS_ACRES, Remarks, Name2, Plat_Book/Page (\xD72), NbhdCd, Ownership, Topography, RoadAcc, MaintDate, CITY, NbhName, PriMunCode, SecMunCode, PriAcreage, SecAcreage, LegalRemarks, ParcelNo, Division, RecordYear, SchDist, MapNumber, Sqft, FIREDEPTNAME, Cls, BLDG_IND, TAX_CODE, OBY_IND, AssdValue, Territory, FireFee_District. NOTE 2026-06-27: ZONING_BOE is no longer in the live schema (schema drift), removed from searchFields. OWNERNAME field returns padded fixed-width strings (trim on use). Note: distinct from Jefferson County CO (FIPS 08059) and Jefferson County KY (Louisville; FIPS 21111) already in atlas. Verified 2026-06-27: metadata 200, query 200, 410K+ parcels."
|
|
537
|
+
},
|
|
538
|
+
{
|
|
539
|
+
id: "al-mobile",
|
|
540
|
+
state: "AL",
|
|
541
|
+
stateName: "Alabama",
|
|
542
|
+
stateSlug: "alabama",
|
|
543
|
+
county: "Mobile",
|
|
544
|
+
countySlug: "mobile-county",
|
|
545
|
+
countyFips: "01097",
|
|
546
|
+
hasPublicRest: true,
|
|
547
|
+
endpoints: [
|
|
548
|
+
{
|
|
549
|
+
url: "https://services8.arcgis.com/HND1NcQt6vgOGn1z/arcgis/rest/services/MCRC_Public_Parcels/FeatureServer/0",
|
|
550
|
+
serviceType: "FeatureServer",
|
|
551
|
+
layerIndex: 0,
|
|
552
|
+
layerName: "MCRC_Public_Parcels",
|
|
553
|
+
supportsQuery: true,
|
|
554
|
+
corsEnabled: true,
|
|
555
|
+
searchFields: [
|
|
556
|
+
{ name: "Name1", label: "Owner Name 1", searchable: true },
|
|
557
|
+
{ name: "Name2", label: "Owner Name 2", searchable: true },
|
|
558
|
+
{ name: "Parcel_Number", label: "Parcel ID", searchable: true },
|
|
559
|
+
{ name: "Account_Number", label: "Account Number", searchable: true },
|
|
560
|
+
{ name: "PropAddr1", label: "Site Address", searchable: true },
|
|
561
|
+
{ name: "PropCity", label: "Site City", searchable: true },
|
|
562
|
+
{ name: "PropZip", label: "Site ZIP", searchable: false },
|
|
563
|
+
{ name: "Acreage", label: "Acres", searchable: false }
|
|
564
|
+
],
|
|
565
|
+
sampleQuery: "https://services8.arcgis.com/HND1NcQt6vgOGn1z/arcgis/rest/services/MCRC_Public_Parcels/FeatureServer/0/query?where=UPPER(Name1)%20LIKE%20%27SMITH%25%27&outFields=*&returnGeometry=false&resultRecordCount=10&f=json",
|
|
566
|
+
license: "unknown",
|
|
567
|
+
licenseUrl: "https://www.arcgis.com/home/item.html?id=07c93ca64bbf4fb8a8d49b7ea80ef067",
|
|
568
|
+
status: "live",
|
|
569
|
+
lastVerified: "2026-10-03",
|
|
570
|
+
verifiedBy: "manual"
|
|
571
|
+
}
|
|
572
|
+
],
|
|
573
|
+
contact: {
|
|
574
|
+
department: "Mapping Department, Mobile County Revenue Commission",
|
|
575
|
+
url: null,
|
|
576
|
+
email: null
|
|
577
|
+
},
|
|
578
|
+
notes: "Mobile County, Alabama (Mobile; FIPS 01097) publishes its parcels as the 'Mobile County Alabama Tax Parcels' FeatureServer, authored by the Mobile County Revenue Commission's Mapping Department and updated 2026-09-22. 214,040 parcels, countywide. The owner is in Name1 (and Name2), the parcel id in Parcel_Number (ParcelNo is the formatted form), and the site address in PropAddr1 with PropCity and PropZip. The layer has NO owner mailing-address fields (its columns are OBJECTID, Parcel_Number, Account_Number, ParcelNo, Name1, Name2, PropAddr1, PropAddr2, PropCity, PropState, PropZip, Acreage, Sqft, KeyNum), so it serves owner names and site addresses, not mailing addresses. String fields are heavily space padded (Name1 is 255 wide), so trim them and search with UPPER(Name1) LIKE 'SMITH%', never equality. The spatial reference is wkid 102630, so send outSR=4326 if you need longitude and latitude. CORS answers Access-Control-Allow-Origin *. No open-data license is stated; the item carries only an informational-use disclaimer. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH BONNIE G, 0104430000006.000, 20240 HIGHWAY 43, Mount Vernon)."
|
|
529
579
|
}
|
|
530
580
|
]
|
|
531
581
|
};
|
|
@@ -3117,6 +3167,60 @@ var delaware_default = {
|
|
|
3117
3167
|
]
|
|
3118
3168
|
};
|
|
3119
3169
|
|
|
3170
|
+
// data/district-of-columbia.json
|
|
3171
|
+
var district_of_columbia_default = {
|
|
3172
|
+
stateSlug: "district-of-columbia",
|
|
3173
|
+
stateName: "District of Columbia",
|
|
3174
|
+
stateAbbrev: "DC",
|
|
3175
|
+
lastUpdated: "2026-09-26",
|
|
3176
|
+
counties: [
|
|
3177
|
+
{
|
|
3178
|
+
id: "dc-district-of-columbia",
|
|
3179
|
+
state: "DC",
|
|
3180
|
+
stateName: "District of Columbia",
|
|
3181
|
+
stateSlug: "district-of-columbia",
|
|
3182
|
+
county: "District of Columbia",
|
|
3183
|
+
countySlug: "district-of-columbia",
|
|
3184
|
+
countyFips: "11001",
|
|
3185
|
+
hasPublicRest: true,
|
|
3186
|
+
endpoints: [
|
|
3187
|
+
{
|
|
3188
|
+
url: "https://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/Property_and_Land_WebMercator/FeatureServer/40",
|
|
3189
|
+
serviceType: "FeatureServer",
|
|
3190
|
+
layerIndex: 40,
|
|
3191
|
+
layerName: "Owner Polygons (Common Ownership Layer)",
|
|
3192
|
+
supportsQuery: true,
|
|
3193
|
+
corsEnabled: true,
|
|
3194
|
+
searchFields: [
|
|
3195
|
+
{ name: "SSL", label: "Square, Suffix, Lot (Parcel ID)", searchable: true },
|
|
3196
|
+
{ name: "OWNERNAME", label: "Owner Name", searchable: true },
|
|
3197
|
+
{ name: "CAREOFNAME", label: "Care Of Name", searchable: false },
|
|
3198
|
+
{ name: "PREMISEADD", label: "Premise (Situs) Address", searchable: true },
|
|
3199
|
+
{ name: "ADDRESS1", label: "Owner Mailing Address", searchable: true },
|
|
3200
|
+
{ name: "ADDRESS2", label: "Owner Mailing Address 2", searchable: false },
|
|
3201
|
+
{ name: "CITYSTZIP", label: "Owner Mailing City/State/ZIP", searchable: true },
|
|
3202
|
+
{ name: "USECODE", label: "Use Code", searchable: false },
|
|
3203
|
+
{ name: "LANDAREA", label: "Land Area", searchable: false },
|
|
3204
|
+
{ name: "ASSESSMENT", label: "Assessment", searchable: false }
|
|
3205
|
+
],
|
|
3206
|
+
sampleQuery: "https://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/Property_and_Land_WebMercator/FeatureServer/40/query?where=OWNERNAME%20LIKE%20'SMITH%25'&outFields=SSL,OWNERNAME,PREMISEADD,ADDRESS1,CITYSTZIP&returnGeometry=false&f=json&resultRecordCount=10",
|
|
3207
|
+
license: "open-data",
|
|
3208
|
+
licenseUrl: "https://creativecommons.org/licenses/by/4.0/",
|
|
3209
|
+
status: "live",
|
|
3210
|
+
lastVerified: "2026-09-26",
|
|
3211
|
+
verifiedBy: "manual"
|
|
3212
|
+
}
|
|
3213
|
+
],
|
|
3214
|
+
contact: {
|
|
3215
|
+
department: "DC Office of the Chief Technology Officer (OCTO) GIS and Office of the Surveyor; data attributed daily from the Office of Tax and Revenue's Real Property Tax Administration (RPTA) Integrated Tax System Public Extract (ITSPE)",
|
|
3216
|
+
url: "https://opendata.dc.gov/datasets/DCGIS::common-ownership-lots",
|
|
3217
|
+
email: null
|
|
3218
|
+
},
|
|
3219
|
+
notes: "The District of Columbia is one county-equivalent (FIPS 11001) with no counties inside it. Layer 40, Owner Polygons (Common Ownership Layer), is the District's general ownership layer: 137,400 lot polygons merged from the Record, Tax, Parcel, Reservation and Air Rights lot layers and regenerated daily from the Office of Tax and Revenue's Integrated Tax System Public Extract (ITSPE). Layers 49 (District Land) and 50 (Federal Land) on the same service are narrower views of it. The parcel ID is the SSL (square, suffix, lot), written either as 'SQUARE SUFFIX LOT' (e.g. '1929 7056') or as 'PAR NNNNNNNN' for Parcel-type lots; both answer an SSL LIKE prefix search. The owner mailing address (ADDRESS1, ADDRESS2, CITYSTZIP) is separate from the premise address (PREMISEADD). Verified 2026-09-26: OWNERNAME LIKE 'SMITH%' returns 939 lots, and a PREMISEADD search returns individual homeowners alongside institutions.\n\nCoverage: the layer maps land, one polygon per lot. A condominium building is a single lot on it, and 3,921 of its 4,142 condominium lots carry no owner name, so an owner search finds lot owners, not unit owners. The tax extract published on the same service lists 221,622 records; unit-level condominium data sits in separate tables there, which this layer does not join. The service's ArcGIS Online item (Common Ownership Lots, item 1f6708b1f3774306bef2fa81e612a725, owner DCGISopendata) licenses the data under Creative Commons Attribution 4.0 International, so reuse credits the District of Columbia; the District's open-data terms apply CC0 only where no other license is noted, and this item notes one. OTR's Real Property Public Extract is a different product: a bulk file restricted to mortgage companies."
|
|
3220
|
+
}
|
|
3221
|
+
]
|
|
3222
|
+
};
|
|
3223
|
+
|
|
3120
3224
|
// data/florida.json
|
|
3121
3225
|
var florida_default = {
|
|
3122
3226
|
stateSlug: "florida",
|
|
@@ -12751,7 +12855,7 @@ var georgia_default = {
|
|
|
12751
12855
|
stateSlug: "georgia",
|
|
12752
12856
|
stateName: "Georgia",
|
|
12753
12857
|
stateAbbrev: "GA",
|
|
12754
|
-
lastUpdated: "2026-
|
|
12858
|
+
lastUpdated: "2026-10-03",
|
|
12755
12859
|
counties: [
|
|
12756
12860
|
{
|
|
12757
12861
|
id: "ga-fulton",
|
|
@@ -13118,6 +13222,51 @@ var georgia_default = {
|
|
|
13118
13222
|
email: null
|
|
13119
13223
|
},
|
|
13120
13224
|
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."
|
|
13225
|
+
},
|
|
13226
|
+
{
|
|
13227
|
+
id: "ga-dougherty",
|
|
13228
|
+
state: "GA",
|
|
13229
|
+
stateName: "Georgia",
|
|
13230
|
+
stateSlug: "georgia",
|
|
13231
|
+
county: "Dougherty",
|
|
13232
|
+
countySlug: "dougherty-county",
|
|
13233
|
+
countyFips: "13095",
|
|
13234
|
+
hasPublicRest: true,
|
|
13235
|
+
endpoints: [
|
|
13236
|
+
{
|
|
13237
|
+
url: "https://services6.arcgis.com/VKHi8CC6pMIyYUIs/arcgis/rest/services/Parcels_Public_View/FeatureServer/0",
|
|
13238
|
+
serviceType: "FeatureServer",
|
|
13239
|
+
layerIndex: 0,
|
|
13240
|
+
layerName: "Parcels",
|
|
13241
|
+
supportsQuery: true,
|
|
13242
|
+
corsEnabled: true,
|
|
13243
|
+
searchFields: [
|
|
13244
|
+
{ name: "Name", label: "Owner Name", searchable: true },
|
|
13245
|
+
{ name: "ParcelNum", label: "Parcel ID", searchable: true },
|
|
13246
|
+
{ name: "Address", label: "Site Address", searchable: true },
|
|
13247
|
+
{ name: "SiteCity", label: "Site City", searchable: true },
|
|
13248
|
+
{ name: "SiteZip", label: "Site ZIP", searchable: false },
|
|
13249
|
+
{ name: "MailAddress1", label: "Owner Mailing Address", searchable: true },
|
|
13250
|
+
{ name: "MailCity", label: "Owner Mailing City", searchable: true },
|
|
13251
|
+
{ name: "MailState", label: "Owner Mailing State", searchable: false },
|
|
13252
|
+
{ name: "MailZip", label: "Owner Mailing ZIP", searchable: false },
|
|
13253
|
+
{ name: "Jurisdiction", label: "Jurisdiction (City or County)", searchable: false },
|
|
13254
|
+
{ name: "TotalAcerage", label: "Acres", searchable: false }
|
|
13255
|
+
],
|
|
13256
|
+
sampleQuery: "https://services6.arcgis.com/VKHi8CC6pMIyYUIs/arcgis/rest/services/Parcels_Public_View/FeatureServer/0/query?where=UPPER(Name)%20LIKE%20%27SMITH%25%27&outFields=*&returnGeometry=false&resultRecordCount=10&f=json",
|
|
13257
|
+
license: "unknown",
|
|
13258
|
+
licenseUrl: "https://www.arcgis.com/home/item.html?id=9729f520dfab47fab85484908994ef1f",
|
|
13259
|
+
status: "live",
|
|
13260
|
+
lastVerified: "2026-10-03",
|
|
13261
|
+
verifiedBy: "manual"
|
|
13262
|
+
}
|
|
13263
|
+
],
|
|
13264
|
+
contact: {
|
|
13265
|
+
department: "Albany GIS (Albany-Dougherty Geographic Information System)",
|
|
13266
|
+
url: null,
|
|
13267
|
+
email: null
|
|
13268
|
+
},
|
|
13269
|
+
notes: "Dougherty County, Georgia (county seat Albany) publishes its parcels as the 'Dougherty County Land Parcels Dataset' FeatureServer, maintained by Albany GIS, covering both the CITY and COUNTY jurisdictions (the Jurisdiction column says which). 38,007 parcels as of 2026-10-03. The owner is in Name, the parcel id in ParcelNum, the site address in Address (with SiteCity and SiteZip) and the owner mailing address in MailAddress1/MailCity/MailState/MailZip; MailAddress1 was empty on the first rows sampled. String fields are space padded to their full width, so trim them and search with UPPER(Name) LIKE 'SMITH%', never equality. The layer's spatial reference is wkid 102667 (latestWkid 2240), so send outSR=4326 if you need longitude and latitude. CORS answers Access-Control-Allow-Origin *. No open-data license is stated; the item carries only a disclaimer that Albany GIS makes every effort at accuracy and that all data is subject to change. A third-party count of 39,443 parcels is slightly higher than the layer's, so the public view may be a subset. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH SHIRLEY PEARL, 0000S/00003/03A, 2803 ELTON ST, Albany)."
|
|
13121
13270
|
}
|
|
13122
13271
|
]
|
|
13123
13272
|
};
|
|
@@ -19305,7 +19454,7 @@ var oregon_default = {
|
|
|
19305
19454
|
stateSlug: "oregon",
|
|
19306
19455
|
stateName: "Oregon",
|
|
19307
19456
|
stateAbbrev: "OR",
|
|
19308
|
-
lastUpdated: "2026-
|
|
19457
|
+
lastUpdated: "2026-10-03",
|
|
19309
19458
|
counties: [
|
|
19310
19459
|
{
|
|
19311
19460
|
id: "or-multnomah",
|
|
@@ -19553,6 +19702,51 @@ var oregon_default = {
|
|
|
19553
19702
|
email: "gisquestions@clackamas.us"
|
|
19554
19703
|
},
|
|
19555
19704
|
notes: "No public REST parcel layer with owner names was found for Clackamas County (county seat Oregon City) as of 2026-09-26. The county states that it does not publish property owner names online and directs owner-information requests to Assessment and Taxation, and its GIS shapefile downloads require accepting a data licensing agreement. No county-hosted ArcGIS REST catalog was found; the public tools, CMap and AscendWeb, are interactive viewers. Two statewide layers cover the county but neither can serve an owner search: the Oregon Department of Forestry's taxlot layer named 'Clackamas County' declares owner fields but has query disabled, and the Oregon Department of Transportation's taxlot layer is queryable but carries only map and taxlot numbers. Metro's regional RLIS 'Taxlots (Public)' dataset, per its listing, excludes ownership."
|
|
19705
|
+
},
|
|
19706
|
+
{
|
|
19707
|
+
id: "or-malheur",
|
|
19708
|
+
state: "OR",
|
|
19709
|
+
stateName: "Oregon",
|
|
19710
|
+
stateSlug: "oregon",
|
|
19711
|
+
county: "Malheur",
|
|
19712
|
+
countySlug: "malheur-county",
|
|
19713
|
+
countyFips: "41045",
|
|
19714
|
+
hasPublicRest: true,
|
|
19715
|
+
endpoints: [
|
|
19716
|
+
{
|
|
19717
|
+
url: "https://services5.arcgis.com/ZfBm5CKxbEBYLP3J/arcgis/rest/services/County_GIS_Portal_WFL1/FeatureServer/16",
|
|
19718
|
+
serviceType: "FeatureServer",
|
|
19719
|
+
layerIndex: 16,
|
|
19720
|
+
layerName: "TL Jun2026",
|
|
19721
|
+
supportsQuery: true,
|
|
19722
|
+
corsEnabled: true,
|
|
19723
|
+
searchFields: [
|
|
19724
|
+
{ name: "OWNERSNAME", label: "Owner Name", searchable: true },
|
|
19725
|
+
{ name: "MapTaxlot", label: "Map and Taxlot ID", searchable: true },
|
|
19726
|
+
{ name: "Taxlot", label: "Taxlot", searchable: false },
|
|
19727
|
+
{ name: "SITUSADD", label: "Site Address", searchable: true },
|
|
19728
|
+
{ name: "CITY", label: "Site City", searchable: true },
|
|
19729
|
+
{ name: "ADD1", label: "Owner Mailing Address Line 1", searchable: true },
|
|
19730
|
+
{ name: "ADD2", label: "Owner Mailing Address Line 2", searchable: false },
|
|
19731
|
+
{ name: "CITYSTATE", label: "Owner Mailing City and State", searchable: true },
|
|
19732
|
+
{ name: "ZIP", label: "Owner Mailing ZIP", searchable: false },
|
|
19733
|
+
{ name: "ZONING", label: "Zoning", searchable: false },
|
|
19734
|
+
{ name: "TOTACRE", label: "Total Acres", searchable: false }
|
|
19735
|
+
],
|
|
19736
|
+
sampleQuery: "https://services5.arcgis.com/ZfBm5CKxbEBYLP3J/arcgis/rest/services/County_GIS_Portal_WFL1/FeatureServer/16/query?where=UPPER(OWNERSNAME)%20LIKE%20'SMITH%25'&outFields=MapTaxlot,OWNERSNAME,ADD1,CITYSTATE,SITUSADD,CITY&returnGeometry=false&resultRecordCount=10&f=json",
|
|
19737
|
+
license: "unknown",
|
|
19738
|
+
licenseUrl: "https://www.malheurco.org/gis/",
|
|
19739
|
+
status: "live",
|
|
19740
|
+
lastVerified: "2026-10-03",
|
|
19741
|
+
verifiedBy: "manual"
|
|
19742
|
+
}
|
|
19743
|
+
],
|
|
19744
|
+
contact: {
|
|
19745
|
+
department: "Malheur County GIS (GIS Specialist), 251 B St W #2, Vale, OR 97918, (541) 473-5574",
|
|
19746
|
+
url: "https://www.malheurco.org/gis/",
|
|
19747
|
+
email: null
|
|
19748
|
+
},
|
|
19749
|
+
notes: "Malheur County, Oregon (county seat Vale) publishes its tax lots as a layer of the County_GIS_Portal_WFL1 FeatureServer, the data source of the county's public Malheur County Tax Lot Map experience (linked from malheurco.org/gis). 20,570 features as of 2026-10-03. The owner is OWNERSNAME, the parcel id MapTaxlot (for example 15S47E28B04702), the site address SITUSADD with CITY, and the owner mailing address ADD1/ADD2/CITYSTATE/ZIP. SITUSADD is sometimes a bare zero and ADD1 is often null. MAINTENANCE QUIRK: the layer name and index are month-stamped (currently layer 16, 'TL Jun2026'; the siblings are 'NonTL Jun2026' at 17 and Zoning_2026 at 25) and the county republishes monthly, so the name or index can change. When the liveness probe flags this record, re-resolve it: list the FeatureServer's layers, pick the one whose name starts with 'TL ' and which carries an OWNERSNAME field, then update layerIndex, layerName and the url. Do not hard-code 16 forever. Named outFields are accepted. CORS answers Access-Control-Allow-Origin *. The layer states no license; the county GIS page links a Data Licensing Agreement for bulk data. The statewide ODF layer for Malheur has an owner line but query disabled, and Malheur is not in the OWRD layer, so there is no usable fallback. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH, JAMIE LEE, 15S47E28B04702, Ontario)."
|
|
19556
19750
|
}
|
|
19557
19751
|
]
|
|
19558
19752
|
};
|
|
@@ -20951,7 +21145,7 @@ var washington_default = {
|
|
|
20951
21145
|
stateSlug: "washington",
|
|
20952
21146
|
stateName: "Washington",
|
|
20953
21147
|
stateAbbrev: "WA",
|
|
20954
|
-
lastUpdated: "2026-
|
|
21148
|
+
lastUpdated: "2026-10-03",
|
|
20955
21149
|
counties: [
|
|
20956
21150
|
{
|
|
20957
21151
|
id: "wa-king",
|
|
@@ -21127,6 +21321,52 @@ var washington_default = {
|
|
|
21127
21321
|
email: null
|
|
21128
21322
|
},
|
|
21129
21323
|
notes: "45 fields confirmed including PARCEL_NO, ADDRESS1, ADDRESS2, CITY, STATE, ZIP, COUNTRY, SITUS_STRE, SITUS_CITY, SITUS_ZIP, SD_NAME, LEGAL_DESC, TOTAL_ACRES, BLDG_VALUE, LAND_VALUE, TOTAL_VALUE, ANNUAL_TAX, STATUS_IND, PROP_SUBTY, O_NEIGHBOR, PROP_TYPE, INSPCT_CYC, REGION, MULT_PARCL, SALE_DATE, SALE_PRICE, SALE_VRFY, USE_CODE, SIGMA_YEAR, TAXABLE, EXEMPT_TY, LOCAL_IND, TCA, CURR_USE, INCORP, YEAR_BUILT, EFF_YR_BUI, RES_QUAL, RES_COND, REC_VOLPAG, SECTTIE, PARENT, MapSource, GlobalID. Live query confirmed: PARCEL_NO LIKE '%21820%' returns Thurston County parcels with mailing address and value data. NOTE: Owner name is NOT on this public layer per WA State law; ADDRESS1/2 is the mailing address (generally owner's address). Data from ASCEND and SIGMA databases. Item ID: 4ca0091703b345f8a72f68a4d173d9be. maxRecordCount=1000."
|
|
21324
|
+
},
|
|
21325
|
+
{
|
|
21326
|
+
id: "wa-island",
|
|
21327
|
+
state: "WA",
|
|
21328
|
+
stateName: "Washington",
|
|
21329
|
+
stateSlug: "washington",
|
|
21330
|
+
county: "Island",
|
|
21331
|
+
countySlug: "island-county",
|
|
21332
|
+
countyFips: "53029",
|
|
21333
|
+
hasPublicRest: true,
|
|
21334
|
+
endpoints: [
|
|
21335
|
+
{
|
|
21336
|
+
url: "https://maps.islandcountywa.gov/arcgis/rest/services/Geocortex/Base/MapServer/0",
|
|
21337
|
+
serviceType: "MapServer",
|
|
21338
|
+
layerIndex: 0,
|
|
21339
|
+
layerName: "Parcels",
|
|
21340
|
+
supportsQuery: true,
|
|
21341
|
+
corsEnabled: true,
|
|
21342
|
+
searchFields: [
|
|
21343
|
+
{ name: "taxpayer", label: "Owner Name (Taxpayer)", searchable: true },
|
|
21344
|
+
{ name: "ParcelNo", label: "Parcel ID", searchable: true },
|
|
21345
|
+
{ name: "physical_addr", label: "Site Address", searchable: true },
|
|
21346
|
+
{ name: "physical_addr_city", label: "Site City", searchable: true },
|
|
21347
|
+
{ name: "physical_addr_zip", label: "Site ZIP", searchable: false },
|
|
21348
|
+
{ name: "mailing_addr1", label: "Owner Mailing Address Line 1", searchable: true },
|
|
21349
|
+
{ name: "mailing_addr2", label: "Owner Mailing Address Line 2", searchable: false },
|
|
21350
|
+
{ name: "mailing_addr_city", label: "Owner Mailing City", searchable: true },
|
|
21351
|
+
{ name: "mailing_addr_state", label: "Owner Mailing State", searchable: false },
|
|
21352
|
+
{ name: "mailing_addr_zip", label: "Owner Mailing ZIP", searchable: false },
|
|
21353
|
+
{ name: "property_land_use_code", label: "Land Use Code", searchable: false },
|
|
21354
|
+
{ name: "legal_acreage", label: "Legal Acreage", searchable: false }
|
|
21355
|
+
],
|
|
21356
|
+
sampleQuery: "https://maps.islandcountywa.gov/arcgis/rest/services/Geocortex/Base/MapServer/0/query?where=UPPER(taxpayer)%20LIKE%20'SMITH%25'&outFields=ParcelNo,taxpayer,physical_addr,mailing_addr1&returnGeometry=false&resultRecordCount=10&f=json",
|
|
21357
|
+
license: "unknown",
|
|
21358
|
+
licenseUrl: "https://maps.islandcountywa.gov",
|
|
21359
|
+
status: "live",
|
|
21360
|
+
lastVerified: "2026-10-03",
|
|
21361
|
+
verifiedBy: "manual"
|
|
21362
|
+
}
|
|
21363
|
+
],
|
|
21364
|
+
contact: {
|
|
21365
|
+
department: "Island County Assessor / GIS",
|
|
21366
|
+
url: "https://maps.islandcountywa.gov",
|
|
21367
|
+
email: null
|
|
21368
|
+
},
|
|
21369
|
+
notes: "Island County, Washington (county seat Coupeville) serves its parcels from the Assessor's own ArcGIS Server, joined to the PACS assessor data and exported nightly per the service description. The owner field is called taxpayer, the parcel id ParcelNo (for example R03213-384-4950), the site address physical_addr with its city, state and ZIP parts, and the owner mailing address mailing_addr1 to mailing_addr3 with city, state and ZIP. ParcelNo and taxpayer values carry trailing spaces, so trim on display, and some parcels (vacant land) have a blank physical_addr. Named outFields are accepted. CORS reflects the request Origin and sends Access-Control-Allow-Credentials true, so it is not a wildcard. maxRecordCount is 60000. The layer's copyright text reads DO NOT USE AS LEGAL DOCUMENT and no license is stated. Two sibling services carry the same data and serve as fallbacks: SmartGov/Parcels MapServer and Auditor/BaseMap MapServer layer 0. The contact URL is the county map server root, which answered HTTP 200 on 2026-10-03; no separate Assessor contact page was retrieved. Verified live 2026-10-03: owner SMITH returned rows (first owner SMITH, COLIN, R13334-372-1430)."
|
|
21130
21370
|
}
|
|
21131
21371
|
]
|
|
21132
21372
|
};
|
|
@@ -21878,6 +22118,7 @@ var POPULATED_STATES = {
|
|
|
21878
22118
|
colorado: colorado_default,
|
|
21879
22119
|
connecticut: connecticut_default,
|
|
21880
22120
|
delaware: delaware_default,
|
|
22121
|
+
"district-of-columbia": district_of_columbia_default,
|
|
21881
22122
|
florida: florida_default,
|
|
21882
22123
|
georgia: georgia_default,
|
|
21883
22124
|
hawaii: hawaii_default,
|
|
@@ -21967,10 +22208,10 @@ function listCountiesByState(stateSlug) {
|
|
|
21967
22208
|
function slugify(s) {
|
|
21968
22209
|
return s.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
21969
22210
|
}
|
|
22211
|
+
var COUNTY_UNIT_SUFFIX = /\b(?:County|Parish|Borough|Municipality|Census Area|City|Statewide|Planning Region|District of Columbia)$/i;
|
|
21970
22212
|
function countySlugFromName(county) {
|
|
21971
|
-
const
|
|
21972
|
-
|
|
21973
|
-
return slugify(hasSuffix ? county : `${county} County`);
|
|
22213
|
+
const name = county.trim();
|
|
22214
|
+
return slugify(COUNTY_UNIT_SUFFIX.test(name) ? name : `${name} County`);
|
|
21974
22215
|
}
|
|
21975
22216
|
function buildParcelLookupDeepLink(endpoint, base = "https://urbankitstudio.com/tools/parcel-lookup") {
|
|
21976
22217
|
const params = new URLSearchParams();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@urbankitstudio/atlas",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"description": "JS SDK for the UrbanKit County Parcel REST API Atlas:
|
|
3
|
+
"version": "0.6.10",
|
|
4
|
+
"description": "JS SDK for the UrbanKit County Parcel REST API Atlas: 239 counties across all 50 US states and DC, 251 verified public ArcGIS REST endpoints for county parcel data, with searchable field metadata, sample queries and license info.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"parcel",
|
|
7
7
|
"arcgis",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"bugs": {
|
|
25
25
|
"url": "https://github.com/urbankitstudio/atlas/issues"
|
|
26
26
|
},
|
|
27
|
-
"author": "UrbanKit Studio <urbankitstudio
|
|
27
|
+
"author": "UrbanKit Studio <contact@urbankitstudio.com>",
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"type": "module",
|
|
30
30
|
"main": "./dist/index.cjs",
|