@urbankitstudio/atlas 0.5.0 → 0.5.2

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 (56) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +110 -110
  3. package/data/alabama.json +103 -103
  4. package/data/alaska.json +51 -51
  5. package/data/arizona.json +149 -148
  6. package/data/arkansas.json +143 -143
  7. package/data/california.json +435 -435
  8. package/data/colorado.json +150 -150
  9. package/data/connecticut.json +164 -164
  10. package/data/delaware.json +46 -46
  11. package/data/florida.json +455 -455
  12. package/data/georgia.json +176 -175
  13. package/data/hawaii.json +82 -82
  14. package/data/idaho.json +54 -54
  15. package/data/illinois.json +337 -333
  16. package/data/index.json +411 -411
  17. package/data/indiana.json +132 -132
  18. package/data/iowa.json +51 -51
  19. package/data/kansas.json +49 -49
  20. package/data/kentucky.json +52 -52
  21. package/data/louisiana.json +102 -102
  22. package/data/maine.json +138 -138
  23. package/data/maryland.json +94 -94
  24. package/data/massachusetts.json +78 -78
  25. package/data/michigan.json +92 -92
  26. package/data/minnesota.json +94 -94
  27. package/data/mississippi.json +98 -98
  28. package/data/missouri.json +99 -99
  29. package/data/montana.json +196 -196
  30. package/data/nebraska.json +137 -137
  31. package/data/nevada.json +98 -98
  32. package/data/new-hampshire.json +42 -42
  33. package/data/new-jersey.json +493 -493
  34. package/data/new-mexico.json +49 -49
  35. package/data/new-york.json +318 -318
  36. package/data/north-carolina.json +303 -303
  37. package/data/north-dakota.json +57 -57
  38. package/data/ohio.json +304 -304
  39. package/data/oklahoma.json +49 -49
  40. package/data/oregon.json +144 -144
  41. package/data/pennsylvania.json +86 -86
  42. package/data/rhode-island.json +25 -25
  43. package/data/south-carolina.json +101 -101
  44. package/data/south-dakota.json +58 -58
  45. package/data/tennessee.json +154 -154
  46. package/data/texas.json +430 -430
  47. package/data/utah.json +193 -193
  48. package/data/vermont.json +59 -59
  49. package/data/virginia.json +88 -88
  50. package/data/washington.json +183 -183
  51. package/data/west-virginia.json +172 -176
  52. package/data/wisconsin.json +374 -374
  53. package/data/wyoming.json +58 -58
  54. package/dist/index.cjs +46 -44
  55. package/dist/index.js +46 -44
  56. package/package.json +68 -68
@@ -1,102 +1,102 @@
1
- {
2
- "stateSlug": "louisiana",
3
- "stateName": "Louisiana",
4
- "stateAbbrev": "LA",
5
- "lastUpdated": "2026-05-15",
6
- "counties": [
7
- {
8
- "id": "la-east-baton-rouge-parish",
9
- "state": "LA",
10
- "stateName": "Louisiana",
11
- "stateSlug": "louisiana",
12
- "county": "East Baton Rouge Parish",
13
- "countySlug": "east-baton-rouge-parish",
14
- "countyFips": "22033",
15
- "hasPublicRest": true,
16
- "endpoints": [
17
- {
18
- "url": "https://maps.brla.gov/gis/rest/services/Cadastral/Tax_Parcel/MapServer/0",
19
- "serviceType": "MapServer",
20
- "layerIndex": 0,
21
- "layerName": "Tax Parcel",
22
- "supportsQuery": true,
23
- "corsEnabled": null,
24
- "searchFields": [
25
- { "name": "ASSESSMENT_NUM", "label": "Assessment Number (Parcel ID)", "searchable": true },
26
- { "name": "PRONO", "label": "Property Number", "searchable": true },
27
- { "name": "OWNER", "label": "Owner Name", "searchable": true },
28
- { "name": "OWNER_ADDRESS", "label": "Owner Address", "searchable": false },
29
- { "name": "OWNER_CITY_STATE_ZIP", "label": "Owner City/State/ZIP", "searchable": false },
30
- { "name": "PHYSICAL_ADDRESS", "label": "Physical Address", "searchable": true },
31
- { "name": "SUBDIVISION", "label": "Subdivision", "searchable": false },
32
- { "name": "WARD_SECTION", "label": "Ward/Section", "searchable": false },
33
- { "name": "SALE_YEAR", "label": "Sale Year", "searchable": false },
34
- { "name": "SUM_FAIR_MARKET_VALUE", "label": "Fair Market Value", "searchable": false },
35
- { "name": "SUM_ASSESSED_VALUE", "label": "Assessed Value", "searchable": false }
36
- ],
37
- "sampleQuery": "https://maps.brla.gov/gis/rest/services/Cadastral/Tax_Parcel/MapServer/0/query?where=UPPER(OWNER)+LIKE+UPPER('%25SMITH%25')&outFields=ASSESSMENT_NUM,OWNER,OWNER_ADDRESS,PHYSICAL_ADDRESS&returnGeometry=false&f=json&resultRecordCount=10",
38
- "license": "public",
39
- "licenseUrl": "https://web-ebrgis.opendata.arcgis.com/",
40
- "status": "live",
41
- "lastVerified": "2026-05-15",
42
- "verifiedBy": "manual"
43
- }
44
- ],
45
- "contact": {
46
- "department": "East Baton Rouge Parish / City of Baton Rouge GIS Program (EBRGIS)",
47
- "url": "https://web-ebrgis.opendata.arcgis.com/",
48
- "email": null
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."
51
- },
52
- {
53
- "id": "la-orleans-parish",
54
- "state": "LA",
55
- "stateName": "Louisiana",
56
- "stateSlug": "louisiana",
57
- "county": "Orleans Parish",
58
- "countySlug": "orleans-parish",
59
- "countyFips": "22071",
60
- "hasPublicRest": true,
61
- "endpoints": [
62
- {
63
- "url": "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15",
64
- "serviceType": "MapServer",
65
- "layerIndex": 15,
66
- "layerName": "Property Information [Parcels]",
67
- "supportsQuery": true,
68
- "corsEnabled": null,
69
- "searchFields": [
70
- { "name": "PARCELID", "label": "Parcel ID", "searchable": true },
71
- { "name": "TAXBILLID", "label": "Tax Bill ID", "searchable": true },
72
- { "name": "OWNERNME1", "label": "Owner Name 1", "searchable": false },
73
- { "name": "OWNERNME2", "label": "Owner Name 2", "searchable": false },
74
- { "name": "SITEADDRESS", "label": "Site Address", "searchable": false },
75
- { "name": "BUILDING", "label": "Building Number", "searchable": false },
76
- { "name": "UNIT", "label": "Unit", "searchable": false },
77
- { "name": "PSTLADDRESS", "label": "Postal (Mailing) Address", "searchable": false },
78
- { "name": "PSTLCITY", "label": "Postal City", "searchable": false },
79
- { "name": "PSTLSTATE", "label": "Postal State", "searchable": false },
80
- { "name": "PSTLZIP5", "label": "Postal ZIP", "searchable": false },
81
- { "name": "USECD", "label": "Use Code", "searchable": false },
82
- { "name": "LOT", "label": "Lot", "searchable": false },
83
- { "name": "SQUARE", "label": "Square", "searchable": false },
84
- { "name": "PARID", "label": "Parcel Account ID", "searchable": true }
85
- ],
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
- "license": "public",
88
- "licenseUrl": "https://gis.nola.gov/",
89
- "status": "live",
90
- "lastVerified": "2026-06-27",
91
- "verifiedBy": "automated"
92
- }
93
- ],
94
- "contact": {
95
- "department": "City of New Orleans GIS (NOLA GIS)",
96
- "url": "https://gis.nola.gov/",
97
- "email": null
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. 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
- }
101
- ]
102
- }
1
+ {
2
+ "stateSlug": "louisiana",
3
+ "stateName": "Louisiana",
4
+ "stateAbbrev": "LA",
5
+ "lastUpdated": "2026-08-04",
6
+ "counties": [
7
+ {
8
+ "id": "la-east-baton-rouge-parish",
9
+ "state": "LA",
10
+ "stateName": "Louisiana",
11
+ "stateSlug": "louisiana",
12
+ "county": "East Baton Rouge Parish",
13
+ "countySlug": "east-baton-rouge-parish",
14
+ "countyFips": "22033",
15
+ "hasPublicRest": true,
16
+ "endpoints": [
17
+ {
18
+ "url": "https://maps.brla.gov/gis/rest/services/Cadastral/Tax_Parcel/MapServer/0",
19
+ "serviceType": "MapServer",
20
+ "layerIndex": 0,
21
+ "layerName": "Tax Parcel",
22
+ "supportsQuery": true,
23
+ "corsEnabled": null,
24
+ "searchFields": [
25
+ { "name": "ASSESSMENT_NUM", "label": "Assessment Number (Parcel ID)", "searchable": true },
26
+ { "name": "PRONO", "label": "Property Number", "searchable": true },
27
+ { "name": "OWNER", "label": "Owner Name", "searchable": true },
28
+ { "name": "OWNER_ADDRESS", "label": "Owner Address", "searchable": false },
29
+ { "name": "OWNER_CITY_STATE_ZIP", "label": "Owner City/State/ZIP", "searchable": false },
30
+ { "name": "PHYSICAL_ADDRESS", "label": "Physical Address", "searchable": true },
31
+ { "name": "SUBDIVISION", "label": "Subdivision", "searchable": false },
32
+ { "name": "WARD_SECTION", "label": "Ward/Section", "searchable": false },
33
+ { "name": "SALE_YEAR", "label": "Sale Year", "searchable": false },
34
+ { "name": "SUM_FAIR_MARKET_VALUE", "label": "Fair Market Value", "searchable": false },
35
+ { "name": "SUM_ASSESSED_VALUE", "label": "Assessed Value", "searchable": false }
36
+ ],
37
+ "sampleQuery": "https://maps.brla.gov/gis/rest/services/Cadastral/Tax_Parcel/MapServer/0/query?where=UPPER(OWNER)+LIKE+UPPER('%25SMITH%25')&outFields=ASSESSMENT_NUM,OWNER,OWNER_ADDRESS,PHYSICAL_ADDRESS&returnGeometry=false&f=json&resultRecordCount=10",
38
+ "license": "public",
39
+ "licenseUrl": "https://web-ebrgis.opendata.arcgis.com/",
40
+ "status": "live",
41
+ "lastVerified": "2026-05-15",
42
+ "verifiedBy": "manual"
43
+ }
44
+ ],
45
+ "contact": {
46
+ "department": "East Baton Rouge Parish / City of Baton Rouge GIS Program (EBRGIS)",
47
+ "url": "https://web-ebrgis.opendata.arcgis.com/",
48
+ "email": null
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."
51
+ },
52
+ {
53
+ "id": "la-orleans-parish",
54
+ "state": "LA",
55
+ "stateName": "Louisiana",
56
+ "stateSlug": "louisiana",
57
+ "county": "Orleans Parish",
58
+ "countySlug": "orleans-parish",
59
+ "countyFips": "22071",
60
+ "hasPublicRest": true,
61
+ "endpoints": [
62
+ {
63
+ "url": "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15",
64
+ "serviceType": "MapServer",
65
+ "layerIndex": 15,
66
+ "layerName": "Property Information [Parcels]",
67
+ "supportsQuery": true,
68
+ "corsEnabled": null,
69
+ "searchFields": [
70
+ { "name": "PARCELID", "label": "Parcel ID", "searchable": true },
71
+ { "name": "TAXBILLID", "label": "Tax Bill ID", "searchable": true },
72
+ { "name": "OWNERNME1", "label": "Owner Name 1", "searchable": false },
73
+ { "name": "OWNERNME2", "label": "Owner Name 2", "searchable": false },
74
+ { "name": "SITEADDRESS", "label": "Site Address", "searchable": false },
75
+ { "name": "BUILDING", "label": "Building Number", "searchable": false },
76
+ { "name": "UNIT", "label": "Unit", "searchable": false },
77
+ { "name": "PSTLADDRESS", "label": "Postal (Mailing) Address", "searchable": false },
78
+ { "name": "PSTLCITY", "label": "Postal City", "searchable": false },
79
+ { "name": "PSTLSTATE", "label": "Postal State", "searchable": false },
80
+ { "name": "PSTLZIP5", "label": "Postal ZIP", "searchable": false },
81
+ { "name": "USECD", "label": "Use Code", "searchable": false },
82
+ { "name": "LOT", "label": "Lot", "searchable": false },
83
+ { "name": "SQUARE", "label": "Square", "searchable": false },
84
+ { "name": "PARID", "label": "Parcel Account ID", "searchable": true }
85
+ ],
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
+ "license": "public",
88
+ "licenseUrl": "https://gis.nola.gov/",
89
+ "status": "live",
90
+ "lastVerified": "2026-06-27",
91
+ "verifiedBy": "automated"
92
+ }
93
+ ],
94
+ "contact": {
95
+ "department": "City of New Orleans GIS (NOLA GIS)",
96
+ "url": "https://gis.nola.gov/",
97
+ "email": null
98
+ },
99
+ "notes": "Orleans Parish's public parcel layer still serves metadata, but its attribute-query operation is currently failing on the county's ArcGIS server. Owner and address searches are unavailable while the county repairs the service; automatic probes continue to check for recovery. New Orleans uses Square/Lot identifiers for legal parcels. The city also publishes a weekly situs-and-geometry dataset on data.nola.gov, but it does not include owner names. An older 2018 parcel snapshot was not substituted because its ownership data is dated and the service was unstable during verification. LIVENESS 2026-08-04: the layer's metadata still loads, but EVERY query against it times out, including a bare returnCountOnly count. 161 consecutive failed checks and last_ok_at has never been set. This is a county-side outage, not a schema drift; there is nothing to fix on our side and the endpoint stays honestly degraded until New Orleans repairs it."
100
+ }
101
+ ]
102
+ }
package/data/maine.json CHANGED
@@ -1,138 +1,138 @@
1
- {
2
- "stateSlug": "maine",
3
- "stateName": "Maine",
4
- "stateAbbrev": "ME",
5
- "lastUpdated": "2026-05-15",
6
- "counties": [
7
- {
8
- "id": "me-cumberland",
9
- "state": "ME",
10
- "stateName": "Maine",
11
- "stateSlug": "maine",
12
- "county": "Cumberland",
13
- "countySlug": "cumberland-county",
14
- "countyFips": "23005",
15
- "hasPublicRest": true,
16
- "endpoints": [
17
- {
18
- "url": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/10",
19
- "serviceType": "FeatureServer",
20
- "layerIndex": 10,
21
- "layerName": "Maine Parcels Organized Towns (polygon)",
22
- "supportsQuery": true,
23
- "corsEnabled": null,
24
- "searchFields": [
25
- { "name": "COUNTY", "label": "County Name (e.g. CUMBERLAND)", "searchable": true },
26
- { "name": "TOWN", "label": "Municipality Name", "searchable": true },
27
- { "name": "PROP_LOC", "label": "Property Location / Address", "searchable": true },
28
- { "name": "MAP_BK_LOT", "label": "Map-Book-Lot Parcel ID", "searchable": true },
29
- { "name": "STATE_ID", "label": "State Parcel ID", "searchable": true },
30
- { "name": "GEOCODE", "label": "Geocode", "searchable": true },
31
- { "name": "TYPE", "label": "Polygon Type", "searchable": false },
32
- { "name": "FMUPDAT", "label": "Last Update Date", "searchable": false }
33
- ],
34
- "sampleQuery": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/10/query?where=COUNTY%3D'CUMBERLAND'+AND+UPPER(PROP_LOC)+LIKE+UPPER('%25MAIN%25')&outFields=COUNTY,TOWN,PROP_LOC,MAP_BK_LOT,STATE_ID&returnGeometry=false&f=json&resultRecordCount=10",
35
- "license": "public",
36
- "licenseUrl": "https://www.maine.gov/geolib/data/index.html",
37
- "status": "live",
38
- "lastVerified": "2026-05-15",
39
- "verifiedBy": "manual"
40
- },
41
- {
42
- "url": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/9",
43
- "serviceType": "FeatureServer",
44
- "layerIndex": 9,
45
- "layerName": "Maine Parcels Organized Towns ADB (assessor table)",
46
- "supportsQuery": true,
47
- "corsEnabled": null,
48
- "searchFields": [
49
- { "name": "MAP_BK_LOT", "label": "Map-Book-Lot (join key to polygon layer 10)", "searchable": true },
50
- { "name": "OWNER1", "label": "Owner Name (line 1)", "searchable": true },
51
- { "name": "OWNER2", "label": "Owner Name (line 2)", "searchable": true },
52
- { "name": "OWN_ADDR1", "label": "Owner Mailing Address Line 1", "searchable": false },
53
- { "name": "OWN_CITY", "label": "Owner Mailing City", "searchable": false },
54
- { "name": "OWN_STATE", "label": "Owner Mailing State", "searchable": false },
55
- { "name": "OWN_ZIP", "label": "Owner Mailing ZIP", "searchable": false },
56
- { "name": "LAND_VAL", "label": "Land Value", "searchable": false },
57
- { "name": "BLDG_VAL", "label": "Building Value", "searchable": false },
58
- { "name": "LOT_SIZE", "label": "Lot Size", "searchable": false },
59
- { "name": "LAND_USE", "label": "Land Use Code", "searchable": false }
60
- ],
61
- "sampleQuery": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/9/query?where=UPPER(OWNER1)+LIKE+UPPER('%25SMITH%25')&outFields=OWNER1,OWN_ADDR1,OWN_CITY,OWN_STATE,MAP_BK_LOT,LAND_VAL,BLDG_VAL&returnGeometry=false&f=json&resultRecordCount=10",
62
- "license": "public",
63
- "licenseUrl": "https://www.maine.gov/geolib/data/index.html",
64
- "status": "live",
65
- "lastVerified": "2026-05-15",
66
- "verifiedBy": "manual"
67
- }
68
- ],
69
- "contact": {
70
- "department": "Maine Office of GIS (MEGIS) / Maine GeoLibrary",
71
- "url": "https://www.maine.gov/geolib/data/index.html",
72
- "email": null
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)."
75
- },
76
- {
77
- "id": "me-york",
78
- "state": "ME",
79
- "stateName": "Maine",
80
- "stateSlug": "maine",
81
- "county": "York",
82
- "countySlug": "york-county",
83
- "countyFips": "23031",
84
- "hasPublicRest": true,
85
- "endpoints": [
86
- {
87
- "url": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/10",
88
- "serviceType": "FeatureServer",
89
- "layerIndex": 10,
90
- "layerName": "Maine Parcels Organized Towns (polygon)",
91
- "supportsQuery": true,
92
- "corsEnabled": null,
93
- "searchFields": [
94
- { "name": "COUNTY", "label": "County Name (use 'YORK')", "searchable": true },
95
- { "name": "TOWN", "label": "Municipality Name", "searchable": true },
96
- { "name": "PROP_LOC", "label": "Property Location / Address", "searchable": true },
97
- { "name": "MAP_BK_LOT", "label": "Map-Book-Lot Parcel ID", "searchable": true },
98
- { "name": "STATE_ID", "label": "State Parcel ID", "searchable": true }
99
- ],
100
- "sampleQuery": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/10/query?where=COUNTY%3D'YORK'&outFields=COUNTY,TOWN,PROP_LOC,MAP_BK_LOT,STATE_ID&returnGeometry=false&f=json&resultRecordCount=10",
101
- "license": "public",
102
- "licenseUrl": "https://www.maine.gov/geolib/data/index.html",
103
- "status": "live",
104
- "lastVerified": "2026-05-15",
105
- "verifiedBy": "manual"
106
- },
107
- {
108
- "url": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/9",
109
- "serviceType": "FeatureServer",
110
- "layerIndex": 9,
111
- "layerName": "Maine Parcels Organized Towns ADB (assessor table)",
112
- "supportsQuery": true,
113
- "corsEnabled": null,
114
- "searchFields": [
115
- { "name": "MAP_BK_LOT", "label": "Map-Book-Lot (join key to polygon layer 10)", "searchable": true },
116
- { "name": "OWNER1", "label": "Owner Name (line 1)", "searchable": true },
117
- { "name": "OWNER2", "label": "Owner Name (line 2)", "searchable": true },
118
- { "name": "OWN_ADDR1", "label": "Owner Mailing Address Line 1", "searchable": false },
119
- { "name": "OWN_CITY", "label": "Owner Mailing City", "searchable": false },
120
- { "name": "LAND_VAL", "label": "Land Value", "searchable": false }
121
- ],
122
- "sampleQuery": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/9/query?where=UPPER(OWNER1)+LIKE+UPPER('%25SMITH%25')&outFields=OWNER1,OWN_ADDR1,OWN_CITY,OWN_STATE,MAP_BK_LOT,LAND_VAL&returnGeometry=false&f=json&resultRecordCount=10",
123
- "license": "public",
124
- "licenseUrl": "https://www.maine.gov/geolib/data/index.html",
125
- "status": "live",
126
- "lastVerified": "2026-05-15",
127
- "verifiedBy": "manual"
128
- }
129
- ],
130
- "contact": {
131
- "department": "Maine Office of GIS (MEGIS) / Maine GeoLibrary",
132
- "url": "https://www.maine.gov/geolib/data/index.html",
133
- "email": null
134
- },
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
- }
137
- ]
138
- }
1
+ {
2
+ "stateSlug": "maine",
3
+ "stateName": "Maine",
4
+ "stateAbbrev": "ME",
5
+ "lastUpdated": "2026-05-15",
6
+ "counties": [
7
+ {
8
+ "id": "me-cumberland",
9
+ "state": "ME",
10
+ "stateName": "Maine",
11
+ "stateSlug": "maine",
12
+ "county": "Cumberland",
13
+ "countySlug": "cumberland-county",
14
+ "countyFips": "23005",
15
+ "hasPublicRest": true,
16
+ "endpoints": [
17
+ {
18
+ "url": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/10",
19
+ "serviceType": "FeatureServer",
20
+ "layerIndex": 10,
21
+ "layerName": "Maine Parcels Organized Towns (polygon)",
22
+ "supportsQuery": true,
23
+ "corsEnabled": null,
24
+ "searchFields": [
25
+ { "name": "COUNTY", "label": "County Name (e.g. CUMBERLAND)", "searchable": true },
26
+ { "name": "TOWN", "label": "Municipality Name", "searchable": true },
27
+ { "name": "PROP_LOC", "label": "Property Location / Address", "searchable": true },
28
+ { "name": "MAP_BK_LOT", "label": "Map-Book-Lot Parcel ID", "searchable": true },
29
+ { "name": "STATE_ID", "label": "State Parcel ID", "searchable": true },
30
+ { "name": "GEOCODE", "label": "Geocode", "searchable": true },
31
+ { "name": "TYPE", "label": "Polygon Type", "searchable": false },
32
+ { "name": "FMUPDAT", "label": "Last Update Date", "searchable": false }
33
+ ],
34
+ "sampleQuery": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/10/query?where=COUNTY%3D'CUMBERLAND'+AND+UPPER(PROP_LOC)+LIKE+UPPER('%25MAIN%25')&outFields=COUNTY,TOWN,PROP_LOC,MAP_BK_LOT,STATE_ID&returnGeometry=false&f=json&resultRecordCount=10",
35
+ "license": "public",
36
+ "licenseUrl": "https://www.maine.gov/geolib/data/index.html",
37
+ "status": "live",
38
+ "lastVerified": "2026-05-15",
39
+ "verifiedBy": "manual"
40
+ },
41
+ {
42
+ "url": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/9",
43
+ "serviceType": "FeatureServer",
44
+ "layerIndex": 9,
45
+ "layerName": "Maine Parcels Organized Towns ADB (assessor table)",
46
+ "supportsQuery": true,
47
+ "corsEnabled": null,
48
+ "searchFields": [
49
+ { "name": "MAP_BK_LOT", "label": "Map-Book-Lot (join key to polygon layer 10)", "searchable": true },
50
+ { "name": "OWNER1", "label": "Owner Name (line 1)", "searchable": true },
51
+ { "name": "OWNER2", "label": "Owner Name (line 2)", "searchable": true },
52
+ { "name": "OWN_ADDR1", "label": "Owner Mailing Address Line 1", "searchable": false },
53
+ { "name": "OWN_CITY", "label": "Owner Mailing City", "searchable": false },
54
+ { "name": "OWN_STATE", "label": "Owner Mailing State", "searchable": false },
55
+ { "name": "OWN_ZIP", "label": "Owner Mailing ZIP", "searchable": false },
56
+ { "name": "LAND_VAL", "label": "Land Value", "searchable": false },
57
+ { "name": "BLDG_VAL", "label": "Building Value", "searchable": false },
58
+ { "name": "LOT_SIZE", "label": "Lot Size", "searchable": false },
59
+ { "name": "LAND_USE", "label": "Land Use Code", "searchable": false }
60
+ ],
61
+ "sampleQuery": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/9/query?where=UPPER(OWNER1)+LIKE+UPPER('%25SMITH%25')&outFields=OWNER1,OWN_ADDR1,OWN_CITY,OWN_STATE,MAP_BK_LOT,LAND_VAL,BLDG_VAL&returnGeometry=false&f=json&resultRecordCount=10",
62
+ "license": "public",
63
+ "licenseUrl": "https://www.maine.gov/geolib/data/index.html",
64
+ "status": "live",
65
+ "lastVerified": "2026-05-15",
66
+ "verifiedBy": "manual"
67
+ }
68
+ ],
69
+ "contact": {
70
+ "department": "Maine Office of GIS (MEGIS) / Maine GeoLibrary",
71
+ "url": "https://www.maine.gov/geolib/data/index.html",
72
+ "email": null
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)."
75
+ },
76
+ {
77
+ "id": "me-york",
78
+ "state": "ME",
79
+ "stateName": "Maine",
80
+ "stateSlug": "maine",
81
+ "county": "York",
82
+ "countySlug": "york-county",
83
+ "countyFips": "23031",
84
+ "hasPublicRest": true,
85
+ "endpoints": [
86
+ {
87
+ "url": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/10",
88
+ "serviceType": "FeatureServer",
89
+ "layerIndex": 10,
90
+ "layerName": "Maine Parcels Organized Towns (polygon)",
91
+ "supportsQuery": true,
92
+ "corsEnabled": null,
93
+ "searchFields": [
94
+ { "name": "COUNTY", "label": "County Name (use 'YORK')", "searchable": true },
95
+ { "name": "TOWN", "label": "Municipality Name", "searchable": true },
96
+ { "name": "PROP_LOC", "label": "Property Location / Address", "searchable": true },
97
+ { "name": "MAP_BK_LOT", "label": "Map-Book-Lot Parcel ID", "searchable": true },
98
+ { "name": "STATE_ID", "label": "State Parcel ID", "searchable": true }
99
+ ],
100
+ "sampleQuery": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/10/query?where=COUNTY%3D'YORK'&outFields=COUNTY,TOWN,PROP_LOC,MAP_BK_LOT,STATE_ID&returnGeometry=false&f=json&resultRecordCount=10",
101
+ "license": "public",
102
+ "licenseUrl": "https://www.maine.gov/geolib/data/index.html",
103
+ "status": "live",
104
+ "lastVerified": "2026-05-15",
105
+ "verifiedBy": "manual"
106
+ },
107
+ {
108
+ "url": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/9",
109
+ "serviceType": "FeatureServer",
110
+ "layerIndex": 9,
111
+ "layerName": "Maine Parcels Organized Towns ADB (assessor table)",
112
+ "supportsQuery": true,
113
+ "corsEnabled": null,
114
+ "searchFields": [
115
+ { "name": "MAP_BK_LOT", "label": "Map-Book-Lot (join key to polygon layer 10)", "searchable": true },
116
+ { "name": "OWNER1", "label": "Owner Name (line 1)", "searchable": true },
117
+ { "name": "OWNER2", "label": "Owner Name (line 2)", "searchable": true },
118
+ { "name": "OWN_ADDR1", "label": "Owner Mailing Address Line 1", "searchable": false },
119
+ { "name": "OWN_CITY", "label": "Owner Mailing City", "searchable": false },
120
+ { "name": "LAND_VAL", "label": "Land Value", "searchable": false }
121
+ ],
122
+ "sampleQuery": "https://services1.arcgis.com/RbMX0mRVOFNTdLzd/arcgis/rest/services/Maine_Parcels_Organized_Towns/FeatureServer/9/query?where=UPPER(OWNER1)+LIKE+UPPER('%25SMITH%25')&outFields=OWNER1,OWN_ADDR1,OWN_CITY,OWN_STATE,MAP_BK_LOT,LAND_VAL&returnGeometry=false&f=json&resultRecordCount=10",
123
+ "license": "public",
124
+ "licenseUrl": "https://www.maine.gov/geolib/data/index.html",
125
+ "status": "live",
126
+ "lastVerified": "2026-05-15",
127
+ "verifiedBy": "manual"
128
+ }
129
+ ],
130
+ "contact": {
131
+ "department": "Maine Office of GIS (MEGIS) / Maine GeoLibrary",
132
+ "url": "https://www.maine.gov/geolib/data/index.html",
133
+ "email": null
134
+ },
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
+ }
137
+ ]
138
+ }