@urbankitstudio/atlas 0.3.0 → 0.5.0

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.
Files changed (55) hide show
  1. package/README.md +22 -3
  2. package/data/alabama.json +52 -6
  3. package/data/alaska.json +1 -1
  4. package/data/arizona.json +3 -3
  5. package/data/arkansas.json +143 -0
  6. package/data/california.json +65 -59
  7. package/data/colorado.json +6 -6
  8. package/data/connecticut.json +105 -3
  9. package/data/delaware.json +46 -0
  10. package/data/florida.json +188 -32
  11. package/data/georgia.json +44 -4
  12. package/data/hawaii.json +82 -0
  13. package/data/illinois.json +13 -12
  14. package/data/index.json +53 -53
  15. package/data/indiana.json +3 -3
  16. package/data/kansas.json +2 -2
  17. package/data/kentucky.json +1 -1
  18. package/data/louisiana.json +7 -7
  19. package/data/maine.json +2 -2
  20. package/data/maryland.json +94 -0
  21. package/data/massachusetts.json +2 -2
  22. package/data/michigan.json +5 -5
  23. package/data/minnesota.json +5 -5
  24. package/data/mississippi.json +8 -10
  25. package/data/missouri.json +49 -2
  26. package/data/montana.json +196 -0
  27. package/data/nebraska.json +3 -3
  28. package/data/nevada.json +2 -2
  29. package/data/new-hampshire.json +1 -1
  30. package/data/new-jersey.json +6 -6
  31. package/data/new-mexico.json +49 -0
  32. package/data/new-york.json +8 -8
  33. package/data/north-carolina.json +11 -11
  34. package/data/north-dakota.json +57 -0
  35. package/data/ohio.json +81 -3
  36. package/data/oklahoma.json +49 -0
  37. package/data/oregon.json +10 -16
  38. package/data/pennsylvania.json +3 -3
  39. package/data/rhode-island.json +1 -1
  40. package/data/south-carolina.json +18 -19
  41. package/data/south-dakota.json +58 -0
  42. package/data/tennessee.json +9 -8
  43. package/data/texas.json +216 -17
  44. package/data/utah.json +4 -4
  45. package/data/vermont.json +2 -2
  46. package/data/virginia.json +44 -2
  47. package/data/washington.json +9 -9
  48. package/data/west-virginia.json +176 -0
  49. package/data/wisconsin.json +1 -1
  50. package/data/wyoming.json +58 -0
  51. package/dist/index.cjs +3742 -524
  52. package/dist/index.d.cts +12 -1
  53. package/dist/index.d.ts +12 -1
  54. package/dist/index.js +3742 -525
  55. package/package.json +1 -1
@@ -0,0 +1,82 @@
1
+ {
2
+ "stateSlug": "hawaii",
3
+ "stateName": "Hawaii",
4
+ "stateAbbrev": "HI",
5
+ "lastUpdated": "2026-06-20",
6
+ "counties": [
7
+ {
8
+ "id": "hi-kauai",
9
+ "state": "HI",
10
+ "stateName": "Hawaii",
11
+ "stateSlug": "hawaii",
12
+ "county": "Kauai",
13
+ "countySlug": "kauai-county",
14
+ "countyFips": "15007",
15
+ "hasPublicRest": true,
16
+ "endpoints": [
17
+ {
18
+ "url": "https://geodata.hawaii.gov/arcgis/rest/services/ParcelsZoning/MapServer/9",
19
+ "serviceType": "MapServer",
20
+ "layerIndex": 9,
21
+ "layerName": "Kauai County Parcels",
22
+ "supportsQuery": true,
23
+ "corsEnabled": null,
24
+ "searchFields": [
25
+ { "name": "owner", "label": "Owner Name", "searchable": true },
26
+ { "name": "tmk_txt", "label": "Tax Map Key (9-digit TMK / APN)", "searchable": true },
27
+ { "name": "cty_tmk", "label": "County TMK (8-digit)", "searchable": true }
28
+ ],
29
+ "sampleQuery": "https://geodata.hawaii.gov/arcgis/rest/services/ParcelsZoning/MapServer/9/query?where=UPPER(owner)+LIKE+UPPER('%25SMITH%25')&outFields=owner,tmk_txt,cty_tmk&returnGeometry=false&f=json&resultRecordCount=10",
30
+ "license": "public",
31
+ "licenseUrl": "https://geoportal.hawaii.gov/",
32
+ "status": "live",
33
+ "lastVerified": "2026-06-20",
34
+ "verifiedBy": "manual"
35
+ }
36
+ ],
37
+ "contact": {
38
+ "department": "State of Hawaii Office of Planning and Sustainable Development, Statewide GIS Program",
39
+ "url": "https://planning.hawaii.gov/gis/",
40
+ "email": null
41
+ },
42
+ "notes": "Kauai County HI (the island of Kauai plus Niihau; county seat Lihue; FIPS 15007; pop. ~73,000) parcels are published on the State of Hawaii statewide GIS portal (geodata.hawaii.gov ParcelsZoning/MapServer/9, 'Kauai County Parcels', ~25,119 features, no token required). Hawaii uses the Tax Map Key (TMK) system rather than a conventional APN: tmk_txt is the 9-digit TMK, cty_tmk the 8-digit county form. Key fields: owner (owner name, searchable), tmk_txt (9-digit TMK), cty_tmk (8-digit TMK). Owner-name search via UPPER(owner) LIKE UPPER('%NAME%') works. Verified 2026-06-20: UPPER(owner) LIKE UPPER('%SMITH%') returns Kauai parcels. Hawaii has only 5 county-equivalents statewide; each of the four main counties (Honolulu, Hawaii, Maui, Kauai) is a separate layer on the statewide ParcelsZoning service."
43
+ },
44
+ {
45
+ "id": "hi-maui",
46
+ "state": "HI",
47
+ "stateName": "Hawaii",
48
+ "stateSlug": "hawaii",
49
+ "county": "Maui",
50
+ "countySlug": "maui-county",
51
+ "countyFips": "15009",
52
+ "hasPublicRest": true,
53
+ "endpoints": [
54
+ {
55
+ "url": "https://services1.arcgis.com/x4h61KaW16vFs7PM/arcgis/rest/services/Parcels_2024_Owners/FeatureServer/196",
56
+ "serviceType": "FeatureServer",
57
+ "layerIndex": 196,
58
+ "layerName": "Parcels 2024 Owners",
59
+ "supportsQuery": true,
60
+ "corsEnabled": null,
61
+ "searchFields": [
62
+ { "name": "OWNER", "label": "Owner Name", "searchable": true },
63
+ { "name": "tmk_txt", "label": "Tax Map Key (TMK / APN)", "searchable": true },
64
+ { "name": "TMK_1", "label": "Tax Map Key (alternate)", "searchable": true }
65
+ ],
66
+ "sampleQuery": "https://services1.arcgis.com/x4h61KaW16vFs7PM/arcgis/rest/services/Parcels_2024_Owners/FeatureServer/196/query?where=OWNER+LIKE+'%25SMITH%25'&outFields=OWNER,tmk_txt,TMK_1&returnGeometry=false&f=json&resultRecordCount=10",
67
+ "license": "public",
68
+ "licenseUrl": "https://www.mauicounty.gov/1933/GIS-Maps",
69
+ "status": "live",
70
+ "lastVerified": "2026-06-20",
71
+ "verifiedBy": "manual"
72
+ }
73
+ ],
74
+ "contact": {
75
+ "department": "County of Maui, GIS Division",
76
+ "url": "https://www.mauicounty.gov/1933/GIS-Maps",
77
+ "email": null
78
+ },
79
+ "notes": "Maui County HI (the islands of Maui, Molokai, and Lanai; county seat Wailuku; FIPS 15009; pop. ~165,000) publishes a public ArcGIS Online FeatureServer parcel layer (Parcels_2024_Owners/FeatureServer/196, no token required). Hawaii uses the Tax Map Key (TMK) system: tmk_txt and TMK_1 hold the TMK (APN equivalent). Key fields: OWNER (owner name, searchable, already stored UPPERCASE), tmk_txt / TMK_1 (TMK). IMPORTANT. Owner search must use OWNER LIKE '%NAME%' WITHOUT UPPER(): this layer returns HTTP 400 if UPPER() is applied to the field, and the data is already uppercase so no case folding is needed. CAVEAT: multi-owner parcels are duplicated. The layer has one row per owner, so the ~141,239 feature count exceeds the number of unique parcels; dedupe on tmk_txt when counting distinct parcels. Verified 2026-06-20: OWNER LIKE '%SMITH%' returns Maui/Molokai/Lanai parcels."
80
+ }
81
+ ]
82
+ }
@@ -41,7 +41,7 @@
41
41
  "url": "https://www.kanecountyil.gov/pages/gis.aspx",
42
42
  "email": null
43
43
  },
44
- "notes": "Kane County is the highest-impression Illinois county in our GSC data; users search for 'kane county illinois gis rest api mapserver featureserver owner name'. The county migrated their GIS server from gis.co.kane.il.us to gistech.countyofkane.org in 2026 — the old hostname now NXDOMAINs. The current layer is KanePINList/MapServer/0 (named Kane.DBO.Parcels_v2025), a snapshot of the active parcel polygon layer from the cadastral source. 35+ fields including PIN, TaxName, SiteAddress, MailingAddress, LegalDesc, UseCodeDescription, plus jurisdictional districts (Township, AirportDistrict, AmbulanceDistrict, etc.). Owner-style search uses the TaxName field (legal taxpayer name)."
44
+ "notes": "Kane County is the highest-impression Illinois county in our GSC data; users search for 'kane county illinois gis rest api mapserver featureserver owner name'. The county migrated their GIS server from gis.co.kane.il.us to gistech.countyofkane.org in 2026. The old hostname now NXDOMAINs. The current layer is KanePINList/MapServer/0 (named Kane.DBO.Parcels_v2025), a snapshot of the active parcel polygon layer from the cadastral source. 35+ fields including PIN, TaxName, SiteAddress, MailingAddress, LegalDesc, UseCodeDescription, plus jurisdictional districts (Township, AirportDistrict, AmbulanceDistrict, etc.). Owner-style search uses the TaxName field (legal taxpayer name)."
45
45
  },
46
46
  {
47
47
  "id": "il-cook",
@@ -78,7 +78,8 @@
78
78
  "url": "https://www.cookcountyil.gov/agency/geographic-information-systems-gis",
79
79
  "email": null
80
80
  },
81
- "notes": "Cook County uses the 14-digit PIN format (XX-XX-XXX-XXX-XXXX) — exposed as PIN14_dash on this layer. The legacy cookVwHosted/Cook_County_Parcels/FeatureServer was retired in 2026; the active replacement is CookViewer3Parcels/MapServer/0 (1.86M+ parcels, geometry + PIN10/PIN14_dash + street_address only). Owner name lookups happen through the separate Cook County Assessor's portal, not this layer. For owner-name searches, point the Parcel Lookup tool at the Assessor's REST endpoint instead."
81
+ "notes": "Cook County uses the 14-digit PIN format (XX-XX-XXX-XXX-XXXX), exposed as PIN14_dash on this layer. The legacy cookVwHosted/Cook_County_Parcels/FeatureServer was retired in 2026; the active replacement is CookViewer3Parcels/MapServer/0 (1.86M+ parcels). Public fields are geometry, PIN10, PIN14_dash, and street_address only. Owner name is NOT on this layer. For ownership lookups, use the Cook County Property Tax Portal at cookcountypropertyinfo.com, keyed by PIN. Cook County reassesses on a triennial cycle divided into three geographic triads: the City of Chicago triad, the north suburban triad, and the south/west suburban triad. Each triad goes through a full reassessment every three years on a rotating schedule (north triad reassessed 2025, south/west triad 2026). The county has 5.2M+ residents and 1.86M taxable parcels, the largest county in Illinois by both metrics. The Assessor's office is the valuation authority; the Treasurer's office (cookcountytreasurer.com) handles tax payment records.",
82
+ "relatedPropertyCitySlug": "chicago"
82
83
  },
83
84
  {
84
85
  "id": "il-dupage",
@@ -117,7 +118,7 @@
117
118
  "url": "https://www.dupagecounty.gov/government/departments/gis/",
118
119
  "email": null
119
120
  },
120
- "notes": "DuPage County migrated their public GIS server from gis.dupagecounty.gov to gis.dupageco.org in 2026 — the old hostname now NXDOMAINs. The ParcelsWithRealEstateCC MapServer joins the parcel polygon layer to the weekly real estate file, exposing 60+ fields including PIN, BILLNAME (taxpayer billing name), BILLSTNUM/BILLSTNAME (billing address), PROPSTNUM/PROPSTNAME/PROPCITY (property address), BILLVALUE, TAXAMOUNT, MUNICIPALITY, and taxing district fields. 337k features. The open-data portal at gisdata-dupage.opendata.arcgis.com mirrors the same data."
121
+ "notes": "DuPage County migrated their public GIS server from gis.dupagecounty.gov to gis.dupageco.org in 2026. The old hostname now NXDOMAINs. The ParcelsWithRealEstateCC MapServer joins the parcel polygon layer to the weekly real estate file, exposing 60+ fields including PIN, BILLNAME (taxpayer billing name), BILLSTNUM/BILLSTNAME (billing address), PROPSTNUM/PROPSTNAME/PROPCITY (property address), BILLVALUE, TAXAMOUNT, MUNICIPALITY, and taxing district fields. 337k features. The open-data portal at gisdata-dupage.opendata.arcgis.com mirrors the same data. Note on BILLNAME: this is the taxpayer of record for the current tax bill. It can differ from the legal owner when a recent sale has been deeded but the billing file has not yet been updated, or when a trust holds title but the trustee name appears as BILLNAME. For the chain-of-title legal owner, cross-reference the DuPage County Recorder's instrument search at recorder.dupageco.org. DuPage is Illinois's third-most populous county (pop. 930,000, county seat Wheaton)."
121
122
  },
122
123
  {
123
124
  "id": "il-dekalb",
@@ -156,7 +157,7 @@
156
157
  "url": "https://dekalbcounty.org/services/property-data-and-maps/",
157
158
  "email": "gis@dekalbcounty.org"
158
159
  },
159
- "notes": "Hosted on ArcGIS Online (services7.arcgis.com) — the county's WAB viewer config points at this FeatureServer as the backing data layer. 27 fields total including Parcel_Number, Owner, SiteAddress, MailingAddress, tax_code, net_taxable_value, Zone_Code, and QTAS/Compass hyperlinks. Owner-name search by UPPER() LIKE works. The public-facing viewer at spatial.dekalbcounty.org uses VertiGIS/Geocortex as the front-end."
160
+ "notes": "This is DeKalb County, Illinois (county seat Sycamore, home to Northern Illinois University in DeKalb city), not to be confused with DeKalb County, Georgia (Atlanta metro, FIPS 13089). The Illinois county (FIPS 17037) is an outer-collar county roughly 60 miles west of Chicago. Hosted on ArcGIS Online (services7.arcgis.com), the county's WAB viewer config points at this FeatureServer as the backing data layer. 27 fields total including Parcel_Number, Owner, SiteAddress, MailingAddress, tax_code, net_taxable_value, Zone_Code, and QTAS/Compass hyperlinks. Owner-name search by UPPER() LIKE on the Owner field works directly; no token required. The public-facing viewer at spatial.dekalbcounty.org uses VertiGIS/Geocortex as its front-end but queries the same FeatureServer. DeKalb County GIS is administered by the county's Information Management Office (gis@dekalbcounty.org). Owner and TaxBillMailedTo are distinct fields. TaxBillMailedTo reflects the current billing addressee, which may differ from the recorded owner in cases involving trusts or recent transfers."
160
161
  },
161
162
  {
162
163
  "id": "il-will",
@@ -169,20 +170,20 @@
169
170
  "hasPublicRest": true,
170
171
  "endpoints": [
171
172
  {
172
- "url": "https://gis.willcountyillinois.com/server/rest/services/Basemap/Parcels_21/MapServer/0",
173
+ "url": "https://gis.willcountyillinois.com/server/rest/services/Basemap/Parcels_20/MapServer/0",
173
174
  "serviceType": "MapServer",
174
175
  "layerIndex": 0,
175
- "layerName": "Parcels_21",
176
+ "layerName": "Parcels_20",
176
177
  "supportsQuery": true,
177
178
  "corsEnabled": null,
178
179
  "searchFields": [
179
180
  { "name": "PIN", "label": "Parcel Identification Number", "searchable": true }
180
181
  ],
181
- "sampleQuery": "https://gis.willcountyillinois.com/server/rest/services/Basemap/Parcels_21/MapServer/0/query?where=PIN%3D'1909142050020000'&outFields=*&f=json",
182
+ "sampleQuery": "https://gis.willcountyillinois.com/server/rest/services/Basemap/Parcels_20/MapServer/0/query?where=PIN%3D'1909142050020000'&outFields=*&f=json",
182
183
  "license": "public",
183
184
  "licenseUrl": null,
184
185
  "status": "live",
185
- "lastVerified": "2026-05-15",
186
+ "lastVerified": "2026-06-27",
186
187
  "verifiedBy": "automated"
187
188
  }
188
189
  ],
@@ -191,7 +192,7 @@
191
192
  "url": "https://willcounty.gov/County-Offices/Administration/GIS-Division",
192
193
  "email": "gis@willcounty.gov"
193
194
  },
194
- "notes": "Parcels_21 is the current parcel geometry layer (Parcels_20 is the prior year, also public). Public access confirmed via allowOthersToQuery:true. Owner-name and address fields are NOT exposed in this public endpoint — only PIN and subtype metadata (Base Parcel, Condo, Leasehold, Mineral Rights, etc.). Owner/address data exists in the county's Geocortex viewer at gisapp.willcountyillinois.com but is not queryable via REST without a token. The ParcelFabric folder on the same server is token-gated."
195
+ "notes": "NOTE 2026-06-27: Parcels_21/MapServer became a zombie service (service listed but layers:[]. All layer queries return HTTP 500 'json' error). Parcels_20/MapServer/0 is the active fallback (prior-year snapshot, 276,644 parcels confirmed live). No Parcels_22 or newer service exists on the server as of 2026-06-27. URL updated from Parcels_21 to Parcels_20. Owner-name and address fields are NOT exposed in this public endpoint, only PIN and subtype metadata (Base Parcel, Condo, Leasehold, Mineral Rights, etc.). Owner/address data exists in the county's Geocortex viewer at gisapp.willcountyillinois.com but is not queryable via REST without a token. The ParcelFabric folder on the same server is token-gated. FIPS 17197 (Joliet / Chicago south suburbs). Contact GIS Division at gis@willcounty.gov for endpoint status updates."
195
196
  },
196
197
  {
197
198
  "id": "il-mchenry",
@@ -231,7 +232,7 @@
231
232
  "url": "https://data-mchenrycountygis.opendata.arcgis.com/",
232
233
  "email": "gis@mchenrycountyil.gov"
233
234
  },
234
- "notes": "McHenry County's legacy on-prem server at mchenrycountygis.org/arcgis/rest/services/parcels/MapServer was firewalled (HTTP 403) in early 2026. The replacement now lives on the county's ArcGIS Online open-data hub at data-mchenrycountygis.opendata.arcgis.com, with the McHenry_County_TaxParcels FeatureServer (services1.arcgis.com/6iYC5AXXYapRVNzl/...) as the canonical public endpoint. 150k parcels, 50+ fields including ParcelNumber, Owner, MailToAddress1-2, MailToCity/State/Zip, SiteAddress, SiteAddressHouseNumber/StreetName/Suffix, SiteAddressCity/Zip, PropertyClass, TaxStatus, plus taxing-district fields (Library, ParkDistrict, FireDistrict, GradeSchool/HighSchool, etc.). Owner-name search via UPPER() LIKE on Owner works."
235
+ "notes": "McHenry County (northernmost Illinois collar county, bordering Wisconsin; county seat Woodstock, pop. 315,000) includes Crystal Lake, Elgin (partial), and the Fox River corridor. The legacy on-prem server at mchenrycountygis.org/arcgis/rest/services/parcels/MapServer was firewalled (HTTP 403) in early 2026. The replacement is now hosted on the county's ArcGIS Online open-data hub at data-mchenrycountygis.opendata.arcgis.com, with the McHenry_County_TaxParcels FeatureServer (services1.arcgis.com/6iYC5AXXYapRVNzl) as the canonical public endpoint. The license is 'open-data', permitting unrestricted use. Roughly 150k parcels, 50+ fields including ParcelNumber, Owner (owner name, searchable via UPPER() LIKE), MailToAddress1, MailToAddress2, MailToCity, MailToState, MailToZip, SiteAddress, SiteAddressHouseNumber, SiteAddressStreetName, SiteAddressStreetType, SiteAddressSuffix, SiteAddressCity, SiteAddressZip, PropertyClass, TaxStatus, and taxing-district assignment fields (Library, ParkDistrict, FireDistrict, GradeSchoolDistrict, HighSchoolDistrict). Owner field exposes the legal owner name; MailToAddress reflects the billing addressee, which may differ for trusts and entities. The open-data hub at data-mchenrycountygis.opendata.arcgis.com has bulk download links for the same dataset."
235
236
  },
236
237
  {
237
238
  "id": "il-lake",
@@ -269,7 +270,7 @@
269
270
  "url": "https://www.lakecountyil.gov/636/GISMaps",
270
271
  "email": null
271
272
  },
272
- "notes": "WABParcels/MapServer is a 13-layer service; layer 12 (Tax Parcel Information) is the rich parcel polygon layer with 190+ fields covering PIN, taxpayer_name, situs address, assessment values, building characteristics, flood zone, and political boundaries. Owner-name search works via UPPER() LIKE on taxpayer_name. The county also exposes CCAO/TaxParcelViewer/MapServer but its layer 14 has only a Name field — WABParcels/12 is the correct layer for rich queries."
273
+ "notes": "Lake County is the northernmost Illinois collar county, bordering Wisconsin (county seat Waukegan, pop. 710,000). WABParcels/MapServer is a 13-layer service; layer 12 (Tax Parcel Information) is the rich parcel polygon layer with 190+ fields covering PIN, taxpayer_name, situs address, assessment values, building characteristics, flood zone, and political boundaries. Owner-name search works via UPPER() LIKE on the taxpayer_name field. The county also exposes CCAO/TaxParcelViewer/MapServer but its layer 14 has only a Name field. WABParcels/12 is the correct layer for rich queries. Key fields beyond PIN and taxpayer_name include situs_addr_line_1, situs_addr_city, situs_zip, mail_addr_line_1, mail_city, mail_zip, property_class, tax_rate, tot_assessed_val, year_built, liv_area_sqft, zoning_district, flood_zone, and multiple political-boundary fields (congressional_district, state_rep_district, school_district, fire_district). The endpoint is at maps.lakecountyil.gov, not to be confused with Lake County Indiana or Lake County Ohio, which use separate GIS systems."
273
274
  },
274
275
  {
275
276
  "id": "il-winnebago",
@@ -286,7 +287,7 @@
286
287
  "url": "https://wingis.org/",
287
288
  "email": null
288
289
  },
289
- "notes": "Winnebago County IL GIS is operated by WinGIS (wingis.org), a regional GIS services company on a subscription model. Their ArcGIS REST server at maps.wingis.org/public/rest/services/PropertySearch/MapServer is indexed as containing Parcel & Lot Lines, Parcel Owner, PIN Labels, and Parcel Dimensions layers — but all REST queries return HTTP 499 (Token Required) as of 2026-05-15. The word 'public' in the URL path is a directory naming convention, not an access grant. The public-facing search at wingis.org/maps/propertysearch is browser-only and not queryable. No alternative county-hosted ArcGIS REST endpoint was found. The Supervisor of Assessments at assessor.wincoil.gov has a property lookup UI but no public REST API."
290
+ "notes": "Winnebago County IL GIS is operated by WinGIS (wingis.org), a regional GIS services company on a subscription model. Their ArcGIS REST server at maps.wingis.org/public/rest/services/PropertySearch/MapServer is indexed as containing Parcel & Lot Lines, Parcel Owner, PIN Labels, and Parcel Dimensions layers, but all REST queries return HTTP 499 (Token Required) as of 2026-05-15. The word 'public' in the URL path is a directory naming convention, not an access grant. The public-facing search at wingis.org/maps/propertysearch is browser-only and not queryable. No alternative county-hosted ArcGIS REST endpoint was found. The Supervisor of Assessments at assessor.wincoil.gov has a property lookup UI but no public REST API."
290
291
  },
291
292
  {
292
293
  "id": "il-st-clair",
package/data/index.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
- "version": "0.3.0",
3
- "lastUpdated": "2026-05-16",
2
+ "version": "0.5.0",
3
+ "lastUpdated": "2026-06-20",
4
4
  "totals": {
5
5
  "states": 50,
6
- "counties": 117,
7
- "endpoints": 117
6
+ "counties": 155,
7
+ "endpoints": 155
8
8
  },
9
9
  "states": [
10
10
  {
11
11
  "slug": "alabama",
12
12
  "name": "Alabama",
13
13
  "abbrev": "AL",
14
- "countyCount": 1,
15
- "endpointCount": 1,
14
+ "countyCount": 2,
15
+ "endpointCount": 2,
16
16
  "populated": true
17
17
  },
18
18
  {
@@ -35,9 +35,9 @@
35
35
  "slug": "arkansas",
36
36
  "name": "Arkansas",
37
37
  "abbrev": "AR",
38
- "countyCount": 0,
39
- "endpointCount": 0,
40
- "populated": false
38
+ "countyCount": 3,
39
+ "endpointCount": 3,
40
+ "populated": true
41
41
  },
42
42
  {
43
43
  "slug": "california",
@@ -59,41 +59,41 @@
59
59
  "slug": "connecticut",
60
60
  "name": "Connecticut",
61
61
  "abbrev": "CT",
62
- "countyCount": 1,
63
- "endpointCount": 1,
62
+ "countyCount": 3,
63
+ "endpointCount": 3,
64
64
  "populated": true
65
65
  },
66
66
  {
67
67
  "slug": "delaware",
68
68
  "name": "Delaware",
69
69
  "abbrev": "DE",
70
- "countyCount": 0,
71
- "endpointCount": 0,
72
- "populated": false
70
+ "countyCount": 1,
71
+ "endpointCount": 1,
72
+ "populated": true
73
73
  },
74
74
  {
75
75
  "slug": "florida",
76
76
  "name": "Florida",
77
77
  "abbrev": "FL",
78
- "countyCount": 7,
79
- "endpointCount": 7,
78
+ "countyCount": 11,
79
+ "endpointCount": 11,
80
80
  "populated": true
81
81
  },
82
82
  {
83
83
  "slug": "georgia",
84
84
  "name": "Georgia",
85
85
  "abbrev": "GA",
86
- "countyCount": 3,
87
- "endpointCount": 3,
86
+ "countyCount": 4,
87
+ "endpointCount": 4,
88
88
  "populated": true
89
89
  },
90
90
  {
91
91
  "slug": "hawaii",
92
92
  "name": "Hawaii",
93
93
  "abbrev": "HI",
94
- "countyCount": 0,
95
- "endpointCount": 0,
96
- "populated": false
94
+ "countyCount": 2,
95
+ "endpointCount": 2,
96
+ "populated": true
97
97
  },
98
98
  {
99
99
  "slug": "idaho",
@@ -163,9 +163,9 @@
163
163
  "slug": "maryland",
164
164
  "name": "Maryland",
165
165
  "abbrev": "MD",
166
- "countyCount": 0,
167
- "endpointCount": 0,
168
- "populated": false
166
+ "countyCount": 2,
167
+ "endpointCount": 2,
168
+ "populated": true
169
169
  },
170
170
  {
171
171
  "slug": "massachusetts",
@@ -203,17 +203,17 @@
203
203
  "slug": "missouri",
204
204
  "name": "Missouri",
205
205
  "abbrev": "MO",
206
- "countyCount": 1,
207
- "endpointCount": 1,
206
+ "countyCount": 2,
207
+ "endpointCount": 2,
208
208
  "populated": true
209
209
  },
210
210
  {
211
211
  "slug": "montana",
212
212
  "name": "Montana",
213
213
  "abbrev": "MT",
214
- "countyCount": 0,
215
- "endpointCount": 0,
216
- "populated": false
214
+ "countyCount": 4,
215
+ "endpointCount": 4,
216
+ "populated": true
217
217
  },
218
218
  {
219
219
  "slug": "nebraska",
@@ -251,9 +251,9 @@
251
251
  "slug": "new-mexico",
252
252
  "name": "New Mexico",
253
253
  "abbrev": "NM",
254
- "countyCount": 0,
255
- "endpointCount": 0,
256
- "populated": false
254
+ "countyCount": 1,
255
+ "endpointCount": 1,
256
+ "populated": true
257
257
  },
258
258
  {
259
259
  "slug": "new-york",
@@ -275,25 +275,25 @@
275
275
  "slug": "north-dakota",
276
276
  "name": "North Dakota",
277
277
  "abbrev": "ND",
278
- "countyCount": 0,
279
- "endpointCount": 0,
280
- "populated": false
278
+ "countyCount": 1,
279
+ "endpointCount": 1,
280
+ "populated": true
281
281
  },
282
282
  {
283
283
  "slug": "ohio",
284
284
  "name": "Ohio",
285
285
  "abbrev": "OH",
286
- "countyCount": 5,
287
- "endpointCount": 5,
286
+ "countyCount": 7,
287
+ "endpointCount": 7,
288
288
  "populated": true
289
289
  },
290
290
  {
291
291
  "slug": "oklahoma",
292
292
  "name": "Oklahoma",
293
293
  "abbrev": "OK",
294
- "countyCount": 0,
295
- "endpointCount": 0,
296
- "populated": false
294
+ "countyCount": 1,
295
+ "endpointCount": 1,
296
+ "populated": true
297
297
  },
298
298
  {
299
299
  "slug": "oregon",
@@ -331,9 +331,9 @@
331
331
  "slug": "south-dakota",
332
332
  "name": "South Dakota",
333
333
  "abbrev": "SD",
334
- "countyCount": 0,
335
- "endpointCount": 0,
336
- "populated": false
334
+ "countyCount": 1,
335
+ "endpointCount": 1,
336
+ "populated": true
337
337
  },
338
338
  {
339
339
  "slug": "tennessee",
@@ -347,8 +347,8 @@
347
347
  "slug": "texas",
348
348
  "name": "Texas",
349
349
  "abbrev": "TX",
350
- "countyCount": 5,
351
- "endpointCount": 5,
350
+ "countyCount": 10,
351
+ "endpointCount": 10,
352
352
  "populated": true
353
353
  },
354
354
  {
@@ -371,8 +371,8 @@
371
371
  "slug": "virginia",
372
372
  "name": "Virginia",
373
373
  "abbrev": "VA",
374
- "countyCount": 1,
375
- "endpointCount": 1,
374
+ "countyCount": 2,
375
+ "endpointCount": 2,
376
376
  "populated": true
377
377
  },
378
378
  {
@@ -387,9 +387,9 @@
387
387
  "slug": "west-virginia",
388
388
  "name": "West Virginia",
389
389
  "abbrev": "WV",
390
- "countyCount": 0,
391
- "endpointCount": 0,
392
- "populated": false
390
+ "countyCount": 4,
391
+ "endpointCount": 4,
392
+ "populated": true
393
393
  },
394
394
  {
395
395
  "slug": "wisconsin",
@@ -403,9 +403,9 @@
403
403
  "slug": "wyoming",
404
404
  "name": "Wyoming",
405
405
  "abbrev": "WY",
406
- "countyCount": 0,
407
- "endpointCount": 0,
408
- "populated": false
406
+ "countyCount": 1,
407
+ "endpointCount": 1,
408
+ "populated": true
409
409
  }
410
410
  ]
411
411
  }
package/data/indiana.json CHANGED
@@ -44,7 +44,7 @@
44
44
  "url": "https://www.hamiltoncounty.in.gov/442/GIS-and-Maps",
45
45
  "email": null
46
46
  },
47
- "notes": "Hamilton County IN (Indianapolis north suburbs — Noblesville, Carmel, Fishers, Westfield) is one of the fastest-growing counties in Indiana. HamCoParcelsPublic/FeatureServer/0 exposes 25+ fields including FMTPRCLNO (formatted parcel number, e.g., '10-11-04-00-00-019.000'), DEEDEDOWNR (full deeded owner), OWNNAME, OWNADDRESS, OWNCITY, OWNSTATE, OWNZIP, OWNCOUNTRY, LOCADDRESS, LOCHSENUMR, LOCSTRDIR, LOCSTRNAME, LOCSTRSUF, LOCCITY, LOCZIP, LEGALDESC, SECTIONNO, TOWNSHIP, RANGE, SUBDIVCODE, SUBDIVNAME, DEEDACRES, PROPCLASS, PROPUSE. Query confirmed live: UPPER(DEEDEDOWNR) LIKE '%SMITH%' returns real results (e.g., 'Smith, Terrance & Alyssa Smith h&w' in Noblesville). Hamilton County IN (FIPS 18057) must not be confused with Hamilton County OH (39061, Cincinnati) or Hamilton County TN (47065, Chattanooga). GeoHub portal at geohub.hamiltoncounty.in.gov. EXPORTDATE field tracks data currency."
47
+ "notes": "Hamilton County IN (Indianapolis north suburbs, Noblesville, Carmel, Fishers, Westfield) is one of the fastest-growing counties in Indiana. HamCoParcelsPublic/FeatureServer/0 exposes 25+ fields including FMTPRCLNO (formatted parcel number, e.g., '10-11-04-00-00-019.000'), DEEDEDOWNR (full deeded owner), OWNNAME, OWNADDRESS, OWNCITY, OWNSTATE, OWNZIP, OWNCOUNTRY, LOCADDRESS, LOCHSENUMR, LOCSTRDIR, LOCSTRNAME, LOCSTRSUF, LOCCITY, LOCZIP, LEGALDESC, SECTIONNO, TOWNSHIP, RANGE, SUBDIVCODE, SUBDIVNAME, DEEDACRES, PROPCLASS, PROPUSE. Query confirmed live: UPPER(DEEDEDOWNR) LIKE '%SMITH%' returns real results (e.g., 'Smith, Terrance & Alyssa Smith h&w' in Noblesville). Hamilton County IN (FIPS 18057) must not be confused with Hamilton County OH (39061, Cincinnati) or Hamilton County TN (47065, Chattanooga). GeoHub portal at geohub.hamiltoncounty.in.gov. EXPORTDATE field tracks data currency."
48
48
  },
49
49
  {
50
50
  "id": "in-allen",
@@ -82,7 +82,7 @@
82
82
  "url": "https://www.acimap.us/",
83
83
  "email": null
84
84
  },
85
- "notes": "Allen County IN (Fort Wayne metro, county seat Fort Wayne) provides parcels via gis.acimap.us — a combined City of Fort Wayne / Allen County GIS platform branded 'iMap'. The parcels/MapServer/0 layer is a lean 11-field service: PIN, GIS_ID, OwnerofRecord, PropertyAddress1, TransferDate, lat_add_pt, long_add_pt, Shape_Area, Shape_Length, Shape, OBJECTID. Owner and address search confirmed working: UPPER(OwnerofRecord) LIKE '%SMITH%' returns real results (e.g., 'Smith Halery W & Anna Catherine' on Pleasant Center Rd). The acimap.us server uses TLS renegotiation — direct curl calls may timeout on Windows; use HTTPS clients that handle renegotiation. The ASSESSOR folder at gis.acimap.us/services/rest/services/Assessor/ contains additional assessment data but requires authentication. Allen County IN (18003) must not be confused with other Allen counties."
85
+ "notes": "Allen County IN (Fort Wayne metro, county seat Fort Wayne) provides parcels via gis.acimap.us, a combined City of Fort Wayne / Allen County GIS platform branded 'iMap'. The parcels/MapServer/0 layer is a lean 11-field service: PIN, GIS_ID, OwnerofRecord, PropertyAddress1, TransferDate, lat_add_pt, long_add_pt, Shape_Area, Shape_Length, Shape, OBJECTID. Owner and address search confirmed working: UPPER(OwnerofRecord) LIKE '%SMITH%' returns real results (e.g., 'Smith Halery W & Anna Catherine' on Pleasant Center Rd). The acimap.us server uses TLS renegotiation. Direct curl calls may timeout on Windows; use HTTPS clients that handle renegotiation. The ASSESSOR folder at gis.acimap.us/services/rest/services/Assessor/ contains additional assessment data but requires authentication. Allen County IN (18003) must not be confused with other Allen counties."
86
86
  },
87
87
  {
88
88
  "id": "in-marion",
@@ -122,7 +122,7 @@
122
122
  }
123
123
  ],
124
124
  "contact": {
125
- "department": "IndyGIS — City of Indianapolis / Marion County Information Services",
125
+ "department": "IndyGIS, City of Indianapolis / Marion County Information Services",
126
126
  "url": "https://maps.indy.gov/",
127
127
  "email": null
128
128
  },
package/data/kansas.json CHANGED
@@ -34,7 +34,7 @@
34
34
  "license": "public",
35
35
  "licenseUrl": "https://data-sncoks-gis.opendata.arcgis.com/",
36
36
  "status": "live",
37
- "lastVerified": "2026-05-15",
37
+ "lastVerified": "2026-06-27",
38
38
  "verifiedBy": "automated"
39
39
  }
40
40
  ],
@@ -43,7 +43,7 @@
43
43
  "url": "https://snco.gov/ap/mapping.php",
44
44
  "email": null
45
45
  },
46
- "notes": "Shawnee County KS (Topeka metro, county seat and state capital Topeka) provides AppraisalDataPro/MapServer/4 (Current Parcels) via the county appraiser's GIS server. This is a 20-field service: OBJECTID, PARCELNUM, ACRES, PID, QUICKREFID, ONAME (owner name), PADDRESS, PADDRESS2, DBOOKPAGE, SUBS (subdivision), NBHD (neighborhood), TAXUNIT, USD (unified school district), LBCSFUNCTION, LBCSACTIVITY, LDVAL, BLDGVAL, TOTVAL, Shape, Shape area. Query confirmed live: UPPER(ONAME) LIKE '%SMITH%' returns real results (e.g., 'SMITH, NEIL K & JONI' on SE 105TH ST). The same service has layer 0 (Parcel Information with Labels), layer 3 (Parcels 1-1-2024 — prior year snapshot), and layer 4 (Current Parcels). The Shawnee County Open Data Portal at data-sncoks-gis.opendata.arcgis.com provides additional datasets. The property search app is at gis.sncoapps.us/propertysearch/. Shawnee County KS (FIPS 20177) must not be confused with Shawnee County Ohio or Shawnee Township."
46
+ "notes": "Shawnee County KS (Topeka metro, county seat and state capital Topeka) provides AppraisalDataPro/MapServer/4 (Current Parcels) via the county appraiser's GIS server. This is a 20-field service: OBJECTID, PARCELNUM, ACRES, PID, QUICKREFID, ONAME (owner name), PADDRESS, PADDRESS2, DBOOKPAGE, SUBS (subdivision), NBHD (neighborhood), TAXUNIT, USD (unified school district), LBCSFUNCTION, LBCSACTIVITY, LDVAL, BLDGVAL, TOTVAL, Shape, Shape area. Query confirmed live: UPPER(ONAME) LIKE '%SMITH%' returns real results (e.g., 'SMITH, NEIL K & JONI' on SE 105TH ST). The same service has layer 0 (Parcel Information with Labels), layer 3 (Parcels 1-1-2024, prior year snapshot), and layer 4 (Current Parcels). The Shawnee County Open Data Portal at data-sncoks-gis.opendata.arcgis.com provides additional datasets. The property search app is at gis.sncoapps.us/propertysearch/. Shawnee County KS (FIPS 20177) must not be confused with Shawnee County Ohio or Shawnee Township. NOTE 2026-06-27: query endpoint responds in 13-35s (server-side slowness. Returns 437,436 features when polled with 35s timeout); liveness check at 12s flags FAIL but endpoint IS live. Metadata returns immediately."
47
47
  }
48
48
  ]
49
49
  }
@@ -46,7 +46,7 @@
46
46
  "url": "https://data-lfucg.hub.arcgis.com/",
47
47
  "email": null
48
48
  },
49
- "notes": "Fayette County (Lexington, pop. 322,000; consolidated city-county) Tax Parcels FeatureServer hosted on ArcGIS Online (LFUCG org). Fayette County is a merged urban county government — the Lexington-Fayette Urban County Government (LFUCG). Fields confirmed: PAN (numeric parcel account number), PARCEL_SUB, PARCEL_BLOCK, PARCEL_LOT, LRM_GEOM_DOC, RecordDate, LRM_GEOM_DOC_AREA/UNITS, PARCEL_TYPE, PARCEL_POLY_NAME, Owner1/2/3, Mailing_Address. Note: PARCEL_POLY_NAME may be null; PAN is the numeric parcel identifier. Mailing_Address is a single concatenated field. Verified 2026-05-15: Owner1 SMITH returns Lexington-area addresses (e.g., '3875 GEIST RD STE E469', '4951 E JOHN JOHN CT'). A separate Parcels FeatureServer exists at the same org but has no owner fields — Tax_Parcels is the correct service. Note: distinct from Jefferson County KY (Louisville, FIPS 21111) already in atlas."
49
+ "notes": "Fayette County (Lexington, pop. 322,000; consolidated city-county) Tax Parcels FeatureServer hosted on ArcGIS Online (LFUCG org). Fayette County is a merged urban county government, the Lexington-Fayette Urban County Government (LFUCG). Fields confirmed: PAN (numeric parcel account number), PARCEL_SUB, PARCEL_BLOCK, PARCEL_LOT, LRM_GEOM_DOC, RecordDate, LRM_GEOM_DOC_AREA/UNITS, PARCEL_TYPE, PARCEL_POLY_NAME, Owner1/2/3, Mailing_Address. Note: PARCEL_POLY_NAME may be null; PAN is the numeric parcel identifier. Mailing_Address is a single concatenated field. Verified 2026-05-15: Owner1 SMITH returns Lexington-area addresses (e.g., '3875 GEIST RD STE E469', '4951 E JOHN JOHN CT'). A separate Parcels FeatureServer exists at the same org but has no owner fields, Tax_Parcels is the correct service. Note: distinct from Jefferson County KY (Louisville, FIPS 21111) already in atlas."
50
50
  }
51
51
  ]
52
52
  }
@@ -47,7 +47,7 @@
47
47
  "url": "https://web-ebrgis.opendata.arcgis.com/",
48
48
  "email": null
49
49
  },
50
- "notes": "East Baton Rouge Parish (Baton Rouge, pop. 456,000; state capital) Tax Parcel layer. Louisiana uses 'parish' instead of 'county' — East Baton Rouge Parish is the combined city/parish government. 21 fields confirmed: ID, ASSESSMENT_NUM, PRONO, OWNER, OWNER_ADDRESS, OWNER_CITY_STATE_ZIP, PHYSICAL_ADDRESS, SUBDIVISION, WARD_SECTION, LOT, BLOCK, LEGAL_DESCRIPTION, FLOOD_ZONE, SALE_YEAR, STATUS, SUM_HOMESTEAD_EXEMPTION, SUM_LOT_VALUE, SUM_LAND_VALUE, SUM_IMPROVEMENT_VALUE, SUM_FAIR_MARKET_VALUE, SUM_ASSESSED_VALUE. Verified 2026-05-15: SMITH returns Baton Rouge addresses (e.g., '12523 MERLIN AVE', '9758 W TAMS DR'). EBRGIS manages 200+ public datasets."
50
+ "notes": "East Baton Rouge Parish (Baton Rouge, pop. 456,000; state capital) Tax Parcel layer. Louisiana uses 'parish' instead of 'county'. East Baton Rouge Parish is the combined city/parish government. 21 fields confirmed: ID, ASSESSMENT_NUM, PRONO, OWNER, OWNER_ADDRESS, OWNER_CITY_STATE_ZIP, PHYSICAL_ADDRESS, SUBDIVISION, WARD_SECTION, LOT, BLOCK, LEGAL_DESCRIPTION, FLOOD_ZONE, SALE_YEAR, STATUS, SUM_HOMESTEAD_EXEMPTION, SUM_LOT_VALUE, SUM_LAND_VALUE, SUM_IMPROVEMENT_VALUE, SUM_FAIR_MARKET_VALUE, SUM_ASSESSED_VALUE. Verified 2026-05-15: SMITH returns Baton Rouge addresses (e.g., '12523 MERLIN AVE', '9758 W TAMS DR'). EBRGIS manages 200+ public datasets."
51
51
  },
52
52
  {
53
53
  "id": "la-orleans-parish",
@@ -69,9 +69,9 @@
69
69
  "searchFields": [
70
70
  { "name": "PARCELID", "label": "Parcel ID", "searchable": true },
71
71
  { "name": "TAXBILLID", "label": "Tax Bill ID", "searchable": true },
72
- { "name": "OWNERNME1", "label": "Owner Name 1", "searchable": true },
72
+ { "name": "OWNERNME1", "label": "Owner Name 1", "searchable": false },
73
73
  { "name": "OWNERNME2", "label": "Owner Name 2", "searchable": false },
74
- { "name": "SITEADDRESS", "label": "Site Address", "searchable": true },
74
+ { "name": "SITEADDRESS", "label": "Site Address", "searchable": false },
75
75
  { "name": "BUILDING", "label": "Building Number", "searchable": false },
76
76
  { "name": "UNIT", "label": "Unit", "searchable": false },
77
77
  { "name": "PSTLADDRESS", "label": "Postal (Mailing) Address", "searchable": false },
@@ -83,12 +83,12 @@
83
83
  { "name": "SQUARE", "label": "Square", "searchable": false },
84
84
  { "name": "PARID", "label": "Parcel Account ID", "searchable": true }
85
85
  ],
86
- "sampleQuery": "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15/query?where=UPPER(OWNERNME1)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OWNERNME1,SITEADDRESS,PSTLADDRESS,PSTLCITY&returnGeometry=false&f=json&resultRecordCount=10",
86
+ "sampleQuery": "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15/query?where=PARCELID+IS+NOT+NULL&outFields=PARCELID,OWNERNME1,SITEADDRESS,PSTLADDRESS,PSTLCITY&returnGeometry=false&f=json&resultRecordCount=5",
87
87
  "license": "public",
88
88
  "licenseUrl": "https://gis.nola.gov/",
89
89
  "status": "live",
90
- "lastVerified": "2026-05-15",
91
- "verifiedBy": "manual"
90
+ "lastVerified": "2026-06-27",
91
+ "verifiedBy": "automated"
92
92
  }
93
93
  ],
94
94
  "contact": {
@@ -96,7 +96,7 @@
96
96
  "url": "https://gis.nola.gov/",
97
97
  "email": null
98
98
  },
99
- "notes": "Orleans Parish (New Orleans, pop. 383,000) Property Information layer at index 15 of the apps/property3 composite MapServer. Note: the 'LandBase/Parcels' MapServer at gis.nola.gov only exposes GEOPIN (parcel geometry key, no attributes). For owner + address data, use apps/property3/MapServer/15 which is an assessor join. 20 fields confirmed: OBJECTID, BUILDING, UNIT, SITEADDRESS, OWNERNME1/2, PSTLADDRESS/CITY/STATE/ZIP5/ZIP4, USECD, PRPRTYDSCRP, PARCELID, TAXBILLID, LOT, SQUARE, BLOCK, PARID. New Orleans uses a Square/Lot system (not typical street address) for legal parcel identification. Verified 2026-05-15: SMITH returns New Orleans addresses. The countySlug 'orleans-parish' matches countySlugFromName('Orleans Parish') per atlas slugify rules."
99
+ "notes": "Orleans Parish (New Orleans, pop. 383,000) Property Information layer at index 15 of the apps/property3 composite MapServer. Note: the 'LandBase/Parcels' MapServer at gis.nola.gov only exposes GEOPIN (parcel geometry key, no attributes). For owner + address data, use apps/property3/MapServer/15 which is an assessor join. 20 fields confirmed: OBJECTID, BUILDING, UNIT, SITEADDRESS, OWNERNME1/2, PSTLADDRESS/CITY/STATE/ZIP5/ZIP4, USECD, PRPRTYDSCRP, PARCELID, TAXBILLID, LOT, SQUARE, BLOCK, PARID. New Orleans uses a Square/Lot system (not typical street address) for legal parcel identification. NOTE 2026-06-27: the liveness check 'fetch failed' was transient (metadata at /MapServer/15?f=json now returns 200). However, this ArcGIS Server 10.4 instance has two persistent query limitations: (1) LIKE/UPPER() queries return HTTP 400; (2) count-all queries (where=1=1&returnCountOnly=true) timeout >35s. PARCELID equality queries (where=PARCELID='...') return valid JSON structure. OWNERNME1 and SITEADDRESS marked searchable:false accordingly; sampleQuery changed to IS NOT NULL filter. For PARCELID-based lookups use the PARCELID or PARID fields. The countySlug 'orleans-parish' matches countySlugFromName('Orleans Parish') per atlas slugify rules."
100
100
  }
101
101
  ]
102
102
  }
package/data/maine.json CHANGED
@@ -71,7 +71,7 @@
71
71
  "url": "https://www.maine.gov/geolib/data/index.html",
72
72
  "email": null
73
73
  },
74
- "notes": "Maine GeoLibrary statewide organized-towns parcel service. Layer 10 carries polygon geometry with COUNTY, TOWN, and location fields. Layer 9 is the assessor attribute table (no geometry) with OWNER1/OWNER2 and mailing address — join on MAP_BK_LOT. Filter Cumberland County with COUNTY='CUMBERLAND'; includes Portland, South Portland, Westbrook, Scarborough, Gorham, Windham, etc. Note: submissions are voluntary from municipalities and some towns may have stale data (updated irregularly). Unorganized territories use a separate service (gis.maine.gov/mapservices)."
74
+ "notes": "Maine GeoLibrary statewide organized-towns parcel service. Layer 10 carries polygon geometry with COUNTY, TOWN, and location fields. Layer 9 is the assessor attribute table (no geometry) with OWNER1/OWNER2 and mailing address, join on MAP_BK_LOT. Filter Cumberland County with COUNTY='CUMBERLAND'; includes Portland, South Portland, Westbrook, Scarborough, Gorham, Windham, etc. Note: submissions are voluntary from municipalities and some towns may have stale data (updated irregularly). Unorganized territories use a separate service (gis.maine.gov/mapservices)."
75
75
  },
76
76
  {
77
77
  "id": "me-york",
@@ -132,7 +132,7 @@
132
132
  "url": "https://www.maine.gov/geolib/data/index.html",
133
133
  "email": null
134
134
  },
135
- "notes": "Same statewide Maine GeoLibrary service as Cumberland County. Filter York County with COUNTY='YORK'; includes Biddeford, Saco, Sanford, Kennebunk, York, Kittery, etc. Layer 10 for geometry, layer 9 (ADB) for owner/assessment data joined by MAP_BK_LOT."
135
+ "notes": "York County is Maine's southernmost county and its most densely populated outside the Portland area, with seasonal coastal communities driving heavy property-lookup demand. The data comes from the same Maine GeoLibrary statewide organized-towns service used by Cumberland County. Layer 10 (FeatureServer/10) carries polygon geometry with COUNTY, TOWN, PROP_LOC, MAP_BK_LOT, and STATE_ID. Layer 9 (FeatureServer/9) is the assessor attribute table -- no geometry -- carrying OWNER1/OWNER2 and mailing address fields; join to layer 10 on MAP_BK_LOT. Filter to York County with COUNTY='YORK'; municipalities include Biddeford, Saco, Sanford, Kennebunk, York, Kittery, Wells, and Berwick. Important caveat: GeoLibrary submissions are voluntary and asynchronous -- some towns update quarterly, others lag by a year or more. For current ownership or assessment, check the individual town assessor's office or the Maine Revenue Services PAS database. Unorganized territories in York County use a separate MEGIS service."
136
136
  }
137
137
  ]
138
138
  }