@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
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "connecticut",
3
3
  "stateName": "Connecticut",
4
4
  "stateAbbrev": "CT",
5
- "lastUpdated": "2026-05-15",
5
+ "lastUpdated": "2026-06-20",
6
6
  "counties": [
7
7
  {
8
8
  "id": "ct-hartford",
@@ -52,11 +52,113 @@
52
52
  }
53
53
  ],
54
54
  "contact": {
55
- "department": "Connecticut Office of Policy and Management (OPM) — GIS Data",
55
+ "department": "Connecticut Office of Policy and Management (OPM), GIS Data",
56
56
  "url": "https://portal.ct.gov/OPM/IGPP/Publications/GIS-Data",
57
57
  "email": null
58
58
  },
59
- "notes": "49 fields confirmed including Parcel_ID, Parcel_Typ, Town_Name, Unit_Type, link_1, Location_1, Property_City, Owner, Co_Owner, Mailing_Address, Mailing_City, Mailing_State, Assessed_Total, Assessed_Land, Assessed_Building, Pre_Yr_Assessed_Total, Appraised_Land, Appraised_Building, Appraised_Outbuilding, Valuation_Year, Land_Acres, State_Use, State_Use_Description, Model, Condition, Living_Area, Effective_Area, Total_Rooms, Number_of_Bedroom, Number_of_Baths, Number_of_Half_Baths, Sale_Price, Sale_Date, Qualified, Prior_Sale_Date, Prior_Book_Page, Prior_Sale_Price, Occupancy, Planning_Region, Collection_Year, FIPS_Codes, ayb, eyb. NOTE: Connecticut does not have active county governments — county is a historical/geographic designation only. This statewide CT CAMA 2024 layer covers ALL Connecticut municipalities. Filter by Town_Name for specific towns. Hartford County towns include Hartford, West Hartford, East Hartford, Manchester, Enfield, Bloomfield, Glastonbury, Newington, Windsor, Wethersfield, South Windsor, New Britain, Southington, Bristol, etc. Owner query confirmed returning real residential parcels. This is a town-reported CAMA (Computer Assisted Mass Appraisal) dataset collected by CT OPM."
59
+ "notes": "49 fields confirmed including Parcel_ID, Parcel_Typ, Town_Name, Unit_Type, link_1, Location_1, Property_City, Owner, Co_Owner, Mailing_Address, Mailing_City, Mailing_State, Assessed_Total, Assessed_Land, Assessed_Building, Pre_Yr_Assessed_Total, Appraised_Land, Appraised_Building, Appraised_Outbuilding, Valuation_Year, Land_Acres, State_Use, State_Use_Description, Model, Condition, Living_Area, Effective_Area, Total_Rooms, Number_of_Bedroom, Number_of_Baths, Number_of_Half_Baths, Sale_Price, Sale_Date, Qualified, Prior_Sale_Date, Prior_Book_Page, Prior_Sale_Price, Occupancy, Planning_Region, Collection_Year, FIPS_Codes, ayb, eyb. NOTE: Connecticut does not have active county governments. County is a historical/geographic designation only. This statewide CT CAMA 2024 layer covers ALL Connecticut municipalities. Filter by Town_Name for specific towns. Hartford County towns include Hartford, West Hartford, East Hartford, Manchester, Enfield, Bloomfield, Glastonbury, Newington, Windsor, Wethersfield, South Windsor, New Britain, Southington, Bristol, etc. Owner query confirmed returning real residential parcels. This is a town-reported CAMA (Computer Assisted Mass Appraisal) dataset collected by CT OPM."
60
+ },
61
+ {
62
+ "id": "ct-new-haven",
63
+ "state": "CT",
64
+ "stateName": "Connecticut",
65
+ "stateSlug": "connecticut",
66
+ "county": "New Haven",
67
+ "countySlug": "new-haven-county",
68
+ "countyFips": "09009",
69
+ "hasPublicRest": true,
70
+ "endpoints": [
71
+ {
72
+ "url": "https://services3.arcgis.com/3FL1kr7L4LvwA2Kb/arcgis/rest/services/Connecticut_CAMA_and_Parcel_Layer_2024/FeatureServer/0",
73
+ "serviceType": "FeatureServer",
74
+ "layerIndex": 0,
75
+ "layerName": "Connecticut_CAMA_and_Parcel_Layer",
76
+ "supportsQuery": true,
77
+ "corsEnabled": null,
78
+ "searchFields": [
79
+ { "name": "Town_Name", "label": "Town Name (REQUIRED filter. Set to a New Haven County town, e.g. New Haven, Waterbury, Meriden, Milford, West Haven, Hamden)", "searchable": true },
80
+ { "name": "Owner", "label": "Owner Name", "searchable": true },
81
+ { "name": "Co_Owner", "label": "Co-Owner Name", "searchable": true },
82
+ { "name": "Parcel_ID", "label": "Parcel ID (may be blank for some towns incl. New Haven)", "searchable": true },
83
+ { "name": "Location_1", "label": "Property Location / Address", "searchable": true },
84
+ { "name": "Property_City", "label": "Property City", "searchable": false },
85
+ { "name": "Mailing_Address", "label": "Mailing Address", "searchable": true },
86
+ { "name": "Mailing_City", "label": "Mailing City", "searchable": false },
87
+ { "name": "Mailing_State", "label": "Mailing State", "searchable": false },
88
+ { "name": "Assessed_Total", "label": "Total Assessed Value", "searchable": false },
89
+ { "name": "Assessed_Land", "label": "Land Assessed Value", "searchable": false },
90
+ { "name": "Assessed_Building", "label": "Building Assessed Value", "searchable": false },
91
+ { "name": "Valuation_Year", "label": "Valuation Year", "searchable": false },
92
+ { "name": "Sale_Price", "label": "Sale Price", "searchable": false },
93
+ { "name": "Sale_Date", "label": "Sale Date", "searchable": false },
94
+ { "name": "State_Use_Description", "label": "Use Description", "searchable": false },
95
+ { "name": "Living_Area", "label": "Living Area (sq ft)", "searchable": false }
96
+ ],
97
+ "sampleQuery": "https://services3.arcgis.com/3FL1kr7L4LvwA2Kb/arcgis/rest/services/Connecticut_CAMA_and_Parcel_Layer_2024/FeatureServer/0/query?where=Town_Name%3D'New Haven'+AND+UPPER(Owner)+LIKE+UPPER('%25SMITH%25')&outFields=Parcel_ID,Town_Name,Owner,Co_Owner,Location_1,Assessed_Total&returnGeometry=false&f=json&resultRecordCount=10",
98
+ "license": "public",
99
+ "licenseUrl": "https://portal.ct.gov/OPM/IGPP/Publications/GIS-Data",
100
+ "status": "live",
101
+ "lastVerified": "2026-06-20",
102
+ "verifiedBy": "manual"
103
+ }
104
+ ],
105
+ "contact": {
106
+ "department": "Connecticut Office of Policy and Management (OPM), GIS Data",
107
+ "url": "https://portal.ct.gov/OPM/IGPP/Publications/GIS-Data",
108
+ "email": null
109
+ },
110
+ "notes": "Connecticut has no active county governments, New Haven County is a historical/geographic designation. Property records are maintained per-municipality and aggregated into the statewide CT CAMA & Parcel Layer 2024 (the SAME FeatureServer used for Hartford County). To scope to New Haven County you MUST filter by Town_Name; the layer carries every CT town in one table. New Haven County towns: New Haven, Waterbury, Meriden, Milford, West Haven, Hamden, East Haven, North Haven, Branford, Cheshire, Naugatuck, Wallingford, Guilford, Madison, Seymour, Derby, Ansonia, Orange, Woodbridge, Bethany, Beacon Falls, Middlebury, Oxford, Prospect, Southbury, Wolcott. Verified 2026-06-20: Town_Name='New Haven' returns 27,251 parcels; UPPER(Owner) LIKE '%SMITH%' returns real residential parcels (e.g. '653 WASHINGTON AV'). NOTE: Parcel_ID comes back blank for some towns (New Haven included) because those municipalities did not report it to OPM, Owner + Location_1 remain populated. For authoritative records use the relevant town Assessor's office (e.g. New Haven: cityofnewhaven.com)."
111
+ },
112
+ {
113
+ "id": "ct-fairfield",
114
+ "state": "CT",
115
+ "stateName": "Connecticut",
116
+ "stateSlug": "connecticut",
117
+ "county": "Fairfield",
118
+ "countySlug": "fairfield-county",
119
+ "countyFips": "09001",
120
+ "hasPublicRest": true,
121
+ "endpoints": [
122
+ {
123
+ "url": "https://services3.arcgis.com/3FL1kr7L4LvwA2Kb/arcgis/rest/services/Connecticut_CAMA_and_Parcel_Layer_2024/FeatureServer/0",
124
+ "serviceType": "FeatureServer",
125
+ "layerIndex": 0,
126
+ "layerName": "Connecticut_CAMA_and_Parcel_Layer",
127
+ "supportsQuery": true,
128
+ "corsEnabled": null,
129
+ "searchFields": [
130
+ { "name": "Town_Name", "label": "Town Name (REQUIRED filter, set to a Fairfield County town, e.g. Bridgeport, Stamford, Norwalk, Danbury, Fairfield, Westport)", "searchable": true },
131
+ { "name": "Owner", "label": "Owner Name", "searchable": true },
132
+ { "name": "Co_Owner", "label": "Co-Owner Name", "searchable": true },
133
+ { "name": "Parcel_ID", "label": "Parcel ID (may be blank for some towns)", "searchable": true },
134
+ { "name": "Location_1", "label": "Property Location / Address", "searchable": true },
135
+ { "name": "Property_City", "label": "Property City", "searchable": false },
136
+ { "name": "Mailing_Address", "label": "Mailing Address", "searchable": true },
137
+ { "name": "Mailing_City", "label": "Mailing City", "searchable": false },
138
+ { "name": "Mailing_State", "label": "Mailing State", "searchable": false },
139
+ { "name": "Assessed_Total", "label": "Total Assessed Value", "searchable": false },
140
+ { "name": "Assessed_Land", "label": "Land Assessed Value", "searchable": false },
141
+ { "name": "Assessed_Building", "label": "Building Assessed Value", "searchable": false },
142
+ { "name": "Valuation_Year", "label": "Valuation Year", "searchable": false },
143
+ { "name": "Sale_Price", "label": "Sale Price", "searchable": false },
144
+ { "name": "Sale_Date", "label": "Sale Date", "searchable": false },
145
+ { "name": "State_Use_Description", "label": "Use Description", "searchable": false },
146
+ { "name": "Living_Area", "label": "Living Area (sq ft)", "searchable": false }
147
+ ],
148
+ "sampleQuery": "https://services3.arcgis.com/3FL1kr7L4LvwA2Kb/arcgis/rest/services/Connecticut_CAMA_and_Parcel_Layer_2024/FeatureServer/0/query?where=Town_Name%3D'Stamford'+AND+UPPER(Owner)+LIKE+UPPER('%25SMITH%25')&outFields=Parcel_ID,Town_Name,Owner,Co_Owner,Location_1,Assessed_Total&returnGeometry=false&f=json&resultRecordCount=10",
149
+ "license": "public",
150
+ "licenseUrl": "https://portal.ct.gov/OPM/IGPP/Publications/GIS-Data",
151
+ "status": "live",
152
+ "lastVerified": "2026-06-20",
153
+ "verifiedBy": "manual"
154
+ }
155
+ ],
156
+ "contact": {
157
+ "department": "Connecticut Office of Policy and Management (OPM), GIS Data",
158
+ "url": "https://portal.ct.gov/OPM/IGPP/Publications/GIS-Data",
159
+ "email": null
160
+ },
161
+ "notes": "Connecticut has no active county governments, Fairfield County is a historical/geographic designation. Property records are maintained per-municipality and aggregated into the statewide CT CAMA & Parcel Layer 2024 (the SAME FeatureServer used for Hartford and New Haven Counties). To scope to Fairfield County you MUST filter by Town_Name. Fairfield County towns: Bridgeport, Stamford, Norwalk, Danbury, Fairfield, Westport, Greenwich, Stratford, Trumbull, Shelton, Monroe, Newtown, Ridgefield, Wilton, Weston, New Canaan, Darien, Bethel, Brookfield, Easton, Redding, Sherman, New Fairfield. Verified 2026-06-20: Town_Name='Stamford' returns 25,719 parcels; UPPER(Owner) LIKE '%SMITH%' returns real residential parcels (e.g. '92 SHADY LANE'). NOTE: Parcel_ID may be blank for some towns; Owner + Location_1 remain populated. For authoritative records use the relevant town Assessor's office."
60
162
  }
61
163
  ]
62
164
  }
@@ -0,0 +1,46 @@
1
+ {
2
+ "stateSlug": "delaware",
3
+ "stateName": "Delaware",
4
+ "stateAbbrev": "DE",
5
+ "lastUpdated": "2026-06-20",
6
+ "counties": [
7
+ {
8
+ "id": "de-new-castle",
9
+ "state": "DE",
10
+ "stateName": "Delaware",
11
+ "stateSlug": "delaware",
12
+ "county": "New Castle",
13
+ "countySlug": "new-castle-county",
14
+ "countyFips": "10003",
15
+ "hasPublicRest": true,
16
+ "endpoints": [
17
+ {
18
+ "url": "https://gis.nccde.org/entserver/rest/services/Foundation/Base_Layers/MapServer/0",
19
+ "serviceType": "MapServer",
20
+ "layerIndex": 0,
21
+ "layerName": "Parcels",
22
+ "supportsQuery": true,
23
+ "corsEnabled": null,
24
+ "searchFields": [
25
+ { "name": "PRCLID", "label": "Parcel ID (APN)", "searchable": true },
26
+ { "name": "CNTCTLAST", "label": "Owner Last Name / Contact", "searchable": true },
27
+ { "name": "OWNADDR", "label": "Owner Mailing Address", "searchable": false },
28
+ { "name": "ADDRESS", "label": "Property Address", "searchable": true }
29
+ ],
30
+ "sampleQuery": "https://gis.nccde.org/entserver/rest/services/Foundation/Base_Layers/MapServer/0/query?where=UPPER(CNTCTLAST)+LIKE+UPPER('%25SMITH%25')&outFields=PRCLID,CNTCTLAST,ADDRESS,OWNADDR&returnGeometry=false&f=json&resultRecordCount=10",
31
+ "license": "public",
32
+ "licenseUrl": "https://gis.nccde.org/",
33
+ "status": "live",
34
+ "lastVerified": "2026-06-20",
35
+ "verifiedBy": "manual"
36
+ }
37
+ ],
38
+ "contact": {
39
+ "department": "New Castle County Government, Office of Land Use / GIS (NCCDE)",
40
+ "url": "https://gis.nccde.org/",
41
+ "email": null
42
+ },
43
+ "notes": "New Castle County DE (Wilmington/Newark metro; county seat Wilmington; FIPS 10003; most populous of Delaware's 3 counties, pop. ~570,000) publishes a public ArcGIS MapServer parcel layer hosted by NCCDE GIS (Foundation/Base_Layers/MapServer/0, 'Parcels', ~203,753 features, no token required). Key fields: PRCLID (parcel ID / APN), CNTCTLAST (owner last name / contact, the searchable owner field), OWNADDR (owner mailing address), ADDRESS (property situs address). Owner-name search via UPPER(CNTCTLAST) LIKE UPPER('%NAME%') works. Verified 2026-06-20: UPPER(CNTCTLAST) LIKE UPPER('%SMITH%') returns Wilmington-area parcels. Delaware has only 3 counties (New Castle, Kent, Sussex); Kent and Sussex are served separately. Do not confuse with New Castle in Pennsylvania (Lawrence County, PA)."
44
+ }
45
+ ]
46
+ }
package/data/florida.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "florida",
3
3
  "stateName": "Florida",
4
4
  "stateAbbrev": "FL",
5
- "lastUpdated": "2026-05-15",
5
+ "lastUpdated": "2026-06-06",
6
6
  "counties": [
7
7
  {
8
8
  "id": "fl-miami-dade",
@@ -44,7 +44,7 @@
44
44
  "url": "https://gis-mdc.opendata.arcgis.com/",
45
45
  "email": null
46
46
  },
47
- "notes": "44 fields confirmed. Layer 26 is within the 80-layer MD_LandInformation MapServer. Fields include TRUE_OWNER1/2/3, TRUE_SITE_ADDR, TRUE_MAILING_ADDR1-3, DOR_CODE_CUR, DOR_DESC, PRIMARY_ZONE, SUBDIVISION, BEDROOM_COUNT, BATHROOM_COUNT, YEAR_BUILT, LAND_VAL_CUR, BUILDING_VAL_CUR, TOTAL_VAL_CUR, SALE_DATE, SALE_PRICE, LOT_SIZE. Owner search works via UPPER() LIKE on TRUE_OWNER1. Folio number is the Miami-Dade parcel identifier (13 digits). Also in this service: Property @ PaGis (layer 24) — point layer, fewer fields."
47
+ "notes": "Miami-Dade County (pop. 2.7 million) uses a folio number as its parcel identifier -- a 13-digit code, not an APN; the county abbreviates its Property Appraiser office as PA or MDPA. The parcel layer is at gisweb.miamidade.gov (MD_LandInformation MapServer, layer 26) and exposes 44 confirmed fields. Owner-name search uses UPPER() LIKE on TRUE_OWNER1; the fields TRUE_OWNER1/2/3 cover up to three named owners. TRUE_SITE_ADDR is the formatted site address. TRUE_MAILING_ADDR1-3 holds the mailing address lines. Valuation fields include LAND_VAL_CUR, BUILDING_VAL_CUR, and TOTAL_VAL_CUR (all current-year). DOR_CODE_CUR and DOR_DESC identify the Florida Department of Revenue land-use classification. A sibling layer (Property @ PaGis, layer 24 of the same service) is a point layer with fewer fields -- use layer 26 for full attribute access. The MDPA portal at miamidade.gov/pa provides the authoritative full-record view including exemptions, appeals, and prior-year values not available on the REST layer. For folio-based lookups, the PA's PAPA search at miamidade.gov/pa/property_search.asp is publicly accessible."
48
48
  },
49
49
  {
50
50
  "id": "fl-orange",
@@ -82,7 +82,7 @@
82
82
  "url": "https://ocgis-datahub-ocfl.hub.arcgis.com/",
83
83
  "email": null
84
84
  },
85
- "notes": "Only 6 fields on this public REST endpoint: ASSESSMENT_NO, SITE_ADDRESS, YEAR_BUILT, NBR_BEDROOMS, SHAPE, OBJECTID. Owner name is NOT available on this layer — the public REST endpoint is geometry + parcel ID + limited building characteristics only. Owner data lives in the OCPA (Orange County Property Appraiser) portal at ocpa.com and is not exposed via public REST. A second service at ocgis4.ocfl.net/arcgis/rest/services/Public_Dynamic/MapServer exists for county facilities but not full parcel attributes."
85
+ "notes": "Only 6 fields on this public REST endpoint: ASSESSMENT_NO, SITE_ADDRESS, YEAR_BUILT, NBR_BEDROOMS, SHAPE, OBJECTID. Owner name is NOT available on this layer. The public REST endpoint is geometry + parcel ID + limited building characteristics only. Owner data lives in the OCPA (Orange County Property Appraiser) portal at ocpa.com and is not exposed via public REST. A second service at ocgis4.ocfl.net/arcgis/rest/services/Public_Dynamic/MapServer exists for county facilities but not full parcel attributes."
86
86
  },
87
87
  {
88
88
  "id": "fl-hillsborough",
@@ -95,36 +95,36 @@
95
95
  "hasPublicRest": true,
96
96
  "endpoints": [
97
97
  {
98
- "url": "https://www25.swfwmd.state.fl.us/arcgiswmis/rest/services/r27/LocationInfo/MapServer/71",
98
+ "url": "https://gis.hcpafl.org/arcgis/rest/services/Webmaps/HillsboroughFL_WebParcels/MapServer/0",
99
99
  "serviceType": "MapServer",
100
- "layerIndex": 71,
101
- "layerName": "Hillsborough County Parcels",
100
+ "layerIndex": 0,
101
+ "layerName": "WebParcels_NonConfidential",
102
102
  "supportsQuery": true,
103
103
  "corsEnabled": null,
104
104
  "searchFields": [
105
- { "name": "PARNO", "label": "Parcel Number", "searchable": true },
106
- { "name": "OWNNAME", "label": "Owner Name", "searchable": true },
107
- { "name": "MAILADD", "label": "Mailing Address", "searchable": true },
108
- { "name": "STNAME", "label": "State", "searchable": false },
109
- { "name": "CNTYFIPS", "label": "County FIPS Code", "searchable": false },
110
- { "name": "OWNTYPE", "label": "Owner Type", "searchable": false },
111
- { "name": "PARUSEDESC", "label": "Parcel Use Description", "searchable": false },
112
- { "name": "PARVAL", "label": "Parcel Value", "searchable": false }
105
+ { "name": "folio", "label": "Folio Number (Parcel ID)", "searchable": true },
106
+ { "name": "Owner1", "label": "Owner Name", "searchable": true },
107
+ { "name": "Owner2", "label": "Owner Name 2", "searchable": true },
108
+ { "name": "FullAddress", "label": "Site Address", "searchable": true },
109
+ { "name": "strap", "label": "STRAP (alternate parcel key)", "searchable": true },
110
+ { "name": "SiteCity", "label": "City", "searchable": false },
111
+ { "name": "SiteZip", "label": "ZIP Code", "searchable": false },
112
+ { "name": "Homestead", "label": "Homestead Exemption", "searchable": false }
113
113
  ],
114
- "sampleQuery": "https://www25.swfwmd.state.fl.us/arcgiswmis/rest/services/r27/LocationInfo/MapServer/71/query?where=UPPER(OWNNAME)%20LIKE%20UPPER('%25SMITH%25')&outFields=PARNO,OWNNAME,MAILADD,PARUSEDESC&returnGeometry=false&f=json&resultRecordCount=10",
114
+ "sampleQuery": "https://gis.hcpafl.org/arcgis/rest/services/Webmaps/HillsboroughFL_WebParcels/MapServer/0/query?where=UPPER(Owner1)+LIKE+UPPER('%25SMITH%25')&outFields=folio,Owner1,FullAddress,SiteCity&returnGeometry=false&f=json&resultRecordCount=10",
115
115
  "license": "public",
116
- "licenseUrl": "https://www.swfwmd.state.fl.us/resources/data-maps",
116
+ "licenseUrl": "https://www.hcpafl.org/",
117
117
  "status": "live",
118
- "lastVerified": "2026-05-11",
119
- "verifiedBy": "manual"
118
+ "lastVerified": "2026-06-27",
119
+ "verifiedBy": "automated"
120
120
  }
121
121
  ],
122
122
  "contact": {
123
- "department": "Southwest Florida Water Management District (SWFWMD) — hosts the FL regional parcel layer",
124
- "url": "https://www.swfwmd.state.fl.us/resources/data-maps",
123
+ "department": "Hillsborough County Property Appraiser (HCPA)",
124
+ "url": "https://www.hcpafl.org/",
125
125
  "email": null
126
126
  },
127
- "notes": "20 fields confirmed including PARNO, OWNNAME, MAILADD, OWNTYPE, AREATXT, IMPROVVAL, LANDVAL, PARVAL, PARVALTYPE, PARUSECODE, PARUSEDESC. Owner query returns real results with CNTYFIPS=057 confirming Hillsborough data. This endpoint is on the SWFWMD (regional water management district) server, which aggregates parcel data from multiple FL counties in a single LocationInfo MapServer (layer 71 of 80+). The Hillsborough County Property Appraiser's own REST server at gis.hcpafl.org does not expose a queryable public parcel layer — only their browser-based property search at gis.hcpafl.org/propertysearch/."
127
+ "notes": "Hillsborough County Property Appraiser (HCPA) public parcel layer at gis.hcpafl.org, 'WebParcels_NonConfidential', ~527,844 parcels exposing Owner1/Owner2 (owner name), folio (parcel ID), strap (alternate key), and FullAddress. Owner search via UPPER(Owner1) LIKE works; field names are CASE-SENSITIVE (Owner1, folio, FullAddress). Records flagged Confidential (state address-confidentiality program) have owner names suppressed. Replaced the prior SWFWMD regional water-district layer (2026-06-08). NOTE 2026-06-27: query endpoint responds in 13-35s (server-side slowness); the liveness check at 12s timeout always flags this FAIL but the endpoint IS live. Metadata returns immediately. If the liveness checker timeout is raised above ~30s for this endpoint, it will pass."
128
128
  },
129
129
  {
130
130
  "id": "fl-broward",
@@ -137,23 +137,20 @@
137
137
  "hasPublicRest": true,
138
138
  "endpoints": [
139
139
  {
140
- "url": "https://gis.bcpa.net/bcpagis/rest/services/Public/BCPA_EXTERNAL/MapServer/0",
140
+ "url": "https://gisweb-adapters.bcpa.net/arcgis/rest/services/BCPA_EXTERNAL_JAN26/MapServer/16",
141
141
  "serviceType": "MapServer",
142
- "layerIndex": 0,
142
+ "layerIndex": 16,
143
143
  "layerName": "Parcels",
144
144
  "supportsQuery": true,
145
145
  "corsEnabled": null,
146
146
  "searchFields": [
147
- { "name": "FOLIO", "label": "Folio Number (Parcel ID)", "searchable": true },
148
- { "name": "OWNER", "label": "Owner Name", "searchable": true },
149
- { "name": "SITE_ADDR", "label": "Site Address", "searchable": true },
150
- { "name": "MAILING_ADDRESS", "label": "Mailing Address", "searchable": true }
147
+ { "name": "FOLIO", "label": "Folio Number (Parcel ID)", "searchable": true }
151
148
  ],
152
- "sampleQuery": "https://gis.bcpa.net/bcpagis/rest/services/Public/BCPA_EXTERNAL/MapServer/0/query?where=UPPER(OWNER)+LIKE+UPPER('%25SMITH%25')&outFields=FOLIO,OWNER,SITE_ADDR,MAILING_ADDRESS&returnGeometry=false&f=json&resultRecordCount=10",
149
+ "sampleQuery": "https://gisweb-adapters.bcpa.net/arcgis/rest/services/BCPA_EXTERNAL_JAN26/MapServer/16/query?where=FOLIO%3D%27504201090030%27&outFields=FOLIO&returnGeometry=false&f=json&resultRecordCount=10",
153
150
  "license": "public",
154
151
  "licenseUrl": "https://www.bcpa.net/",
155
152
  "status": "live",
156
- "lastVerified": "2026-05-15",
153
+ "lastVerified": "2026-06-06",
157
154
  "verifiedBy": "manual"
158
155
  }
159
156
  ],
@@ -162,7 +159,7 @@
162
159
  "url": "https://www.bcpa.net/",
163
160
  "email": null
164
161
  },
165
- "notes": "Broward County Property Appraiser public REST endpoint. Fields include FOLIO (13-digit parcel ID), OWNER, SITE_ADDR, MAILING_ADDRESS, LAND_VAL, BLDG_VAL, TOTAL_VAL, SALE_DATE, SALE_PRICE, USE_CODE. Owner name search uses UPPER() LIKE. The FL statewide FDOR cadastral (services9.arcgis.com) is a partitioned FeatureServer that routes to individual county subsets — the CO_NO field in that dataset uses FDOR-internal county numbers (not FIPS) and queries outside the locally-routed partition return empty. County-specific endpoints are more reliable for Broward."
162
+ "notes": "Broward County Property Appraiser public REST endpoint. The current public layer exposes FOLIO (13-digit parcel ID) only. Owner, site-address, mailing, valuation, and sale fields were removed from public REST in the 2026-06-06 migration (see below). The FL statewide FDOR cadastral (services9.arcgis.com) is a partitioned FeatureServer that routes to individual county subsets. The CO_NO field in that dataset uses FDOR-internal county numbers (not FIPS) and queries outside the locally-routed partition return empty. County-specific endpoints are more reliable for Broward. MIGRATED 2026-06-06: gis.bcpa.net DNS was retired -- the public service moved to gisweb-adapters.bcpa.net (BCPA_EXTERNAL_JAN26/MapServer/16, 556,435 parcels). DEGRADED: the new public layer exposes FOLIO only; the county removed owner, site-address, and mailing fields from public REST. FOLIO lookup only -- owner-name search is no longer possible on this endpoint."
166
163
  },
167
164
  {
168
165
  "id": "fl-duval",
@@ -249,7 +246,7 @@
249
246
  "url": "https://www.manateepao.com/",
250
247
  "email": null
251
248
  },
252
- "notes": "Manatee County Property Appraiser GIS Parcel Search layer. This is an exceptionally rich dataset — 200+ fields confirmed including PAR_OWNER_NAME1/2, PARID, SITUS_ADDRESS, SITUS_POSTAL_CITY/ZIP, PAR_MAIL_ADDR1/2/CITY/STATE/POSTALCD, CAD_JUST_VALUE, CAD_ASSESSED_CTY, SALE_PRICE_LAST, SALE_DATE_LAST, LAND_ACREAGE_CAMA, PAR_ZONING, PAR_SUBDIV_NAME, PAR_TYPE, BLDG_R1_YRBUILT, BLDG_R1_SQFTLIVNG, BLDG_R1_BEDRMS. Verified 2026-05-15: SMITH returns Bradenton addresses (SITUS_POSTAL_CITY: BRADENTON). Manatee County seat is Bradenton (pop. 370,000 county-wide)."
249
+ "notes": "Manatee County (Bradenton metro, pop. 420,000) Property Appraiser publishes one of the richest public parcel REST layers in Florida, with 200+ confirmed fields on the PARID-keyed parcel service. Owner fields: PAR_OWNER_NAME1/2. Site address: SITUS_ADDRESS, SITUS_POSTAL_CITY, SITUS_ZIP. Mailing address: PAR_MAIL_ADDR1/2/CITY/STATE/POSTALCD. Valuation: CAD_JUST_VALUE (just value), CAD_ASSESSED_CTY (county assessed), SALE_PRICE_LAST, SALE_DATE_LAST. Land: LAND_ACREAGE_CAMA, PAR_ZONING, PAR_SUBDIV_NAME, PAR_TYPE. Building (prefix BLDG_R1_): YRBUILT, SQFTLIVNG, BEDRMS, BATHSF (full), BATHSH (half), GRGEUNITS, HTDAREA, STORIES. Verified 2026-05-15: owner-name queries return Bradenton and Palmetto area results (SITUS_POSTAL_CITY). Unlike many county layers, Manatee exposes CAMA-grade building detail without requiring a separate records request. The Manatee County Property Appraiser portal at manateepao.com provides the full assessor record view for exemptions and prior-year values not surfaced in the REST layer."
253
250
  },
254
251
  {
255
252
  "id": "fl-sarasota",
@@ -293,7 +290,166 @@
293
290
  "url": "https://data-sarco.opendata.arcgis.com/",
294
291
  "email": null
295
292
  },
296
- "notes": "Sarasota County Property Appraiser parcel dataset hosted on ArcGIS Online (Sarasota County Enterprise GIS). Fields include ACCOUNT (parcel account number), NAME1/NAME_ADD2/3/4/5 (owner name lines), LOCN (street number), LOCD/LOCS/LOCT (direction/name/type), CITY, STATE, ZIP, UNIT. Mailing address uses NAME_ADD lines. Verified 2026-05-15: SMITH returns Sarasota-area addresses (LONGBOAT KEY, SUNAPEE NH mailing). Note CITY field contains mailing city not site city — for site address the LOCN+LOCS+LOCT fields must be concatenated. Sarasota County pop. 464,000."
293
+ "notes": "Sarasota County Property Appraiser parcel dataset hosted on ArcGIS Online (Sarasota County Enterprise GIS). Fields include ACCOUNT (parcel account number), NAME1/NAME_ADD2/3/4/5 (owner name lines), LOCN (street number), LOCD/LOCS/LOCT (direction/name/type), CITY, STATE, ZIP, UNIT. Mailing address uses NAME_ADD lines. Verified 2026-05-15: SMITH returns Sarasota-area addresses (LONGBOAT KEY, SUNAPEE NH mailing). Note CITY field contains mailing city not site city. For site address the LOCN+LOCS+LOCT fields must be concatenated. Sarasota County pop. 464,000."
294
+ },
295
+ {
296
+ "id": "fl-palm-beach",
297
+ "state": "FL",
298
+ "stateName": "Florida",
299
+ "stateSlug": "florida",
300
+ "county": "Palm Beach",
301
+ "countySlug": "palm-beach-county",
302
+ "countyFips": "12099",
303
+ "hasPublicRest": true,
304
+ "endpoints": [
305
+ {
306
+ "url": "https://services1.arcgis.com/ZWOoUZbtaYePLlPw/arcgis/rest/services/Parcels_and_Property_Details_WebMercator/FeatureServer/0",
307
+ "serviceType": "FeatureServer",
308
+ "layerIndex": 0,
309
+ "layerName": "Parcels and Property Details",
310
+ "supportsQuery": true,
311
+ "corsEnabled": null,
312
+ "searchFields": [
313
+ { "name": "OWNER_NAME1", "label": "Owner Name (Primary)", "searchable": true },
314
+ { "name": "OWNER_NAME2", "label": "Owner Name 2", "searchable": true },
315
+ { "name": "SITE_ADDR_STR", "label": "Site Address", "searchable": true },
316
+ { "name": "PARID", "label": "Parcel Control Number (PCN)", "searchable": true },
317
+ { "name": "MUNICIPALITY", "label": "Municipality", "searchable": true }
318
+ ],
319
+ "sampleQuery": "https://services1.arcgis.com/ZWOoUZbtaYePLlPw/arcgis/rest/services/Parcels_and_Property_Details_WebMercator/FeatureServer/0/query?where=UPPER(OWNER_NAME1)%20LIKE%20UPPER('%25SMITH%25')&outFields=PARID,OWNER_NAME1,SITE_ADDR_STR,MUNICIPALITY&returnGeometry=false&f=json&resultRecordCount=10",
320
+ "license": "public",
321
+ "licenseUrl": "https://opendata2-pbcgov.opendata.arcgis.com/",
322
+ "status": "live",
323
+ "lastVerified": "2026-05-30",
324
+ "verifiedBy": "manual"
325
+ }
326
+ ],
327
+ "contact": {
328
+ "department": "Palm Beach County Property Appraiser (PAPA) / PBCGOV GIS",
329
+ "url": "https://opendata2-pbcgov.opendata.arcgis.com/",
330
+ "email": null
331
+ },
332
+ "notes": "Palm Beach County, Florida (West Palm Beach / Boca Raton, pop. ~1.49M, 3rd most populous FL county) publishes a Property Appraiser parcels FeatureServer through the PBCGOV open-data portal. Owner search uses OWNER_NAME1 (with OWNER_NAME2 as a second owner slot); the combined site address is SITE_ADDR_STR; the parcel control number is PARID; MUNICIPALITY filters by city. Owner LIKE query confirmed live 2026-05-30. Records flagged CONFIDENTIAL under Florida public-records exemptions (s. 119.071, F.S., for law enforcement, judges, and similar protected persons) have owner/mailing data suppressed; the majority of parcels are public."
333
+ },
334
+ {
335
+ "id": "fl-pinellas",
336
+ "state": "FL",
337
+ "stateName": "Florida",
338
+ "stateSlug": "florida",
339
+ "county": "Pinellas",
340
+ "countySlug": "pinellas-county",
341
+ "countyFips": "12103",
342
+ "hasPublicRest": true,
343
+ "endpoints": [
344
+ {
345
+ "url": "https://egis.pinellas.gov/gis/rest/services/PublicWebGIS/Parcels/MapServer/1",
346
+ "serviceType": "MapServer",
347
+ "layerIndex": 1,
348
+ "layerName": "Parcels",
349
+ "supportsQuery": true,
350
+ "corsEnabled": null,
351
+ "searchFields": [
352
+ { "name": "PARCELID", "label": "Parcel ID (18-digit)", "searchable": true },
353
+ { "name": "STRAP", "label": "STRAP Number", "searchable": true },
354
+ { "name": "OWNER1", "label": "Owner Name (Primary)", "searchable": true },
355
+ { "name": "OWNER2", "label": "Owner Name 2", "searchable": true },
356
+ { "name": "SITE_ADDRESS", "label": "Site Address", "searchable": true },
357
+ { "name": "OWNADD_1", "label": "Mailing Address", "searchable": false }
358
+ ],
359
+ "sampleQuery": "https://egis.pinellas.gov/gis/rest/services/PublicWebGIS/Parcels/MapServer/1/query?where=UPPER(OWNER1)%20LIKE%20UPPER('%25SMITH%25')&outFields=PARCELID,OWNER1,SITE_ADDRESS&returnGeometry=false&f=json&resultRecordCount=10",
360
+ "license": "public",
361
+ "licenseUrl": "https://egis.pinellas.gov/",
362
+ "status": "live",
363
+ "lastVerified": "2026-06-27",
364
+ "verifiedBy": "automated"
365
+ }
366
+ ],
367
+ "contact": {
368
+ "department": "Pinellas County Property Appraiser (PCPAO) / Pinellas County Enterprise GIS",
369
+ "url": "https://www.pcpao.gov/",
370
+ "email": null
371
+ },
372
+ "notes": "Pinellas County, Florida (St. Petersburg / Clearwater, pop. ~960K) serves parcels through the Pinellas eGIS PublicWebGIS folder. The sibling AGO/Parcels/MapServer/0 layer on the same host exposes only survey/title fields (PGIS.ParcelsPublic.*) with no mailable owner name -- use PublicWebGIS/Parcels/MapServer/1, which carries OWNER1/OWNER2 plus owner mailing (OWNADD_1/OWNADD_2/OWNCITY/OWNSTATE/OWNZIP), SITE_ADDRESS, PARCELID (18-digit), STRAP, TAXABLE_VALUE, HOMESTEAD_EXEMP, USE_CODE, LAND_VALUE, IMP_VALUE, SALEDATE1, SALEPRICE1. Owner search uses UPPER(OWNER1) LIKE. Verified live 2026-05-30. NOTE 2026-06-27: all declared fields confirmed present in live schema; query endpoint responds in 13-35s (server-side slowness); liveness check at 12s timeout flags FAIL but endpoint IS live. Metadata returns immediately."
373
+ },
374
+ {
375
+ "id": "fl-lee",
376
+ "state": "FL",
377
+ "stateName": "Florida",
378
+ "stateSlug": "florida",
379
+ "county": "Lee",
380
+ "countySlug": "lee-county",
381
+ "countyFips": "12071",
382
+ "hasPublicRest": true,
383
+ "endpoints": [
384
+ {
385
+ "url": "https://services2.arcgis.com/LvWGAAhHwbCJ2GMP/arcgis/rest/services/Lee_County_Parcels/FeatureServer/0",
386
+ "serviceType": "FeatureServer",
387
+ "layerIndex": 0,
388
+ "layerName": "Lee County Parcels",
389
+ "supportsQuery": true,
390
+ "corsEnabled": null,
391
+ "searchFields": [
392
+ { "name": "STRAP", "label": "STRAP Number (16-char)", "searchable": true },
393
+ { "name": "FOLIOID", "label": "Folio ID", "searchable": true },
394
+ { "name": "O_NAME", "label": "Owner Name", "searchable": true },
395
+ { "name": "O_OTHERS", "label": "Other Owners", "searchable": false },
396
+ { "name": "SITEADDR", "label": "Site Address", "searchable": true },
397
+ { "name": "O_ADDR1", "label": "Owner Mailing Address", "searchable": false }
398
+ ],
399
+ "sampleQuery": "https://services2.arcgis.com/LvWGAAhHwbCJ2GMP/arcgis/rest/services/Lee_County_Parcels/FeatureServer/0/query?where=UPPER(O_NAME)%20LIKE%20UPPER('%25SMITH%25')&outFields=STRAP,O_NAME,SITEADDR&returnGeometry=false&f=json&resultRecordCount=10",
400
+ "license": "public",
401
+ "licenseUrl": "https://hub.arcgis.com/datasets/LeeGIS::lee-county-parcels/explore",
402
+ "status": "live",
403
+ "lastVerified": "2026-05-30",
404
+ "verifiedBy": "manual"
405
+ }
406
+ ],
407
+ "contact": {
408
+ "department": "Lee County Property Appraiser / Lee County GIS (LeeGIS)",
409
+ "url": "https://www.leepa.org/",
410
+ "email": null
411
+ },
412
+ "notes": "Lee County, Florida (Fort Myers / Cape Coral, pop. ~760K) publishes parcels via an ArcGIS Online FeatureServer hosted by Lee County GIS (org LvWGAAhHwbCJ2GMP). Owner name is O_NAME (with O_OTHERS for additional owners); owner mailing is O_ADDR1/O_ADDR2/O_CITY/O_STATE/O_ZIP; the site address is SITEADDR/SITECITY; the parcel identifier is STRAP (16-character) with a numeric FOLIOID. Owner search uses UPPER(O_NAME) LIKE. Verified live 2026-05-30 (O_NAME = BECK DEAN R TR). The authoritative full record (exemptions, prior-year values) is at the Lee County Property Appraiser, leepa.org."
413
+ },
414
+ {
415
+ "id": "fl-pasco",
416
+ "state": "FL",
417
+ "stateName": "Florida",
418
+ "stateSlug": "florida",
419
+ "county": "Pasco",
420
+ "countySlug": "pasco-county",
421
+ "countyFips": "12101",
422
+ "hasPublicRest": true,
423
+ "endpoints": [
424
+ {
425
+ "url": "https://maps.pascopa.com/arcgis/rest/services/Parcels/MapServer/3",
426
+ "serviceType": "MapServer",
427
+ "layerIndex": 3,
428
+ "layerName": "Parcels",
429
+ "supportsQuery": true,
430
+ "corsEnabled": null,
431
+ "searchFields": [
432
+ { "name": "ParcelID", "label": "Parcel ID", "searchable": true },
433
+ { "name": "NAD_NAME_1", "label": "Owner Name 1", "searchable": true },
434
+ { "name": "NAD_NAME_2", "label": "Owner Name 2", "searchable": true },
435
+ { "name": "PHYS_STREET", "label": "Site Street Address", "searchable": true },
436
+ { "name": "PHYS_CITY", "label": "Site City", "searchable": false },
437
+ { "name": "NAD_ADD_1", "label": "Mailing Address", "searchable": false }
438
+ ],
439
+ "sampleQuery": "https://maps.pascopa.com/arcgis/rest/services/Parcels/MapServer/3/query?where=UPPER(NAD_NAME_1)%20LIKE%20UPPER('%25SMITH%25')&outFields=ParcelID,NAD_NAME_1,PHYS_STREET&returnGeometry=false&f=json&resultRecordCount=10",
440
+ "license": "public",
441
+ "licenseUrl": "https://maps.pascopa.com/",
442
+ "status": "live",
443
+ "lastVerified": "2026-05-30",
444
+ "verifiedBy": "manual"
445
+ }
446
+ ],
447
+ "contact": {
448
+ "department": "Pasco County Property Appraiser (PA) GIS",
449
+ "url": "https://pascopa.com/",
450
+ "email": null
451
+ },
452
+ "notes": "Pasco County, Florida (New Port Richey / Wesley Chapel / Zephyrhills, pop. ~600K) serves parcels from the Pasco County Property Appraiser GIS (maps.pascopa.com). Owner names are NAD_NAME_1/NAD_NAME_2; owner mailing is NAD_ADD_1/NAD_ADD_2/NAD_CITY/NAD_STATE/NAD_ZIP; the site address is PHYS_STREET/PHYS_CITY/PHYS_STATE; the parcel identifier is ParcelID (format 12-26-15-0020-05200-0220). Owner search uses UPPER(NAD_NAME_1) LIKE. Verified live 2026-05-30 (NAD_NAME_1 = PWS HOLDINGS LLC)."
297
453
  }
298
454
  ]
299
455
  }
package/data/georgia.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "georgia",
3
3
  "stateName": "Georgia",
4
4
  "stateAbbrev": "GA",
5
- "lastUpdated": "2026-05-15",
5
+ "lastUpdated": "2026-06-20",
6
6
  "counties": [
7
7
  {
8
8
  "id": "ga-fulton",
@@ -45,7 +45,7 @@
45
45
  "url": "https://fultoncountyga.gov/maps",
46
46
  "email": null
47
47
  },
48
- "notes": "372,900 polygon tax parcels covering Atlanta and the rest of Fulton County. Verified 2026-05-11: UPPER(Owner) LIKE '%SMITH%' returns real owners with full Atlanta-area site addresses (e.g., '6760 JULES TRC', '528 SOUTH MAIN ST'). Owner names use last-name-first concatenated format (e.g., 'SMITH FAITH L SMITH MARIO D' for joint ownership). Both site address AND owner mailing address are exposed. Layer 11 of the PropertyMapViewer composite — neighbor layers include 'Tax Parcel Address Labels' (id 9) for cartographic use."
48
+ "notes": "372,900 polygon tax parcels covering Atlanta and the rest of Fulton County. Verified 2026-05-11: UPPER(Owner) LIKE '%SMITH%' returns real owners with full Atlanta-area site addresses (e.g., '6760 JULES TRC', '528 SOUTH MAIN ST'). Owner names use last-name-first concatenated format (e.g., 'SMITH FAITH L SMITH MARIO D' for joint ownership). Both site address AND owner mailing address are exposed. Layer 11 of the PropertyMapViewer composite, neighbor layers include 'Tax Parcel Address Labels' (id 9) for cartographic use."
49
49
  },
50
50
  {
51
51
  "id": "ga-cobb",
@@ -88,7 +88,7 @@
88
88
  "url": "https://geo-cobbcountyga.hub.arcgis.com/",
89
89
  "email": null
90
90
  },
91
- "notes": "Cobb County Tax Assessor daily-refreshed parcel layer. Service name 'taxassessorsdaily' confirms it is updated nightly from CAMA data. 36+ fields including PIN, PARID, PARCEL_TYPE, OWNER_NAM1/2, SITUS_ADDR, OWNER_ADDR/CITY/STAT/ZIP, TAXDIST, ACRES, FMV_LAND, FMV_BLDG, FMV_TOTAL, ASV_LAND, ASV_BLDG, ASV_TOTAL, CLASS, NBHOOD_NUM. Verified 2026-05-15: SMITH returns Acworth/Marietta area addresses. Cobb County (Marietta seat, pop. 766,000) is the Atlanta metro NW county — one of the wealthiest counties in the SE US."
91
+ "notes": "Cobb County (Marietta seat, pop. 766,000; Atlanta metro northwest) maintains a Tax Assessor parcel layer at gis.cobbcounty.org that refreshes nightly from CAMA data -- the service name 'taxassessorsdaily' reflects this cadence. 36+ confirmed fields: PIN, PARID, PARCEL_TYPE, OWNER_NAM1/2 (owner names), SITUS_ADDR (site address), OWNER_ADDR/CITY/STAT/ZIP (owner mailing address), TAXDIST, ACRES, FMV_LAND (fair-market land value), FMV_BLDG, FMV_TOTAL, ASV_LAND (assessed land), ASV_BLDG, ASV_TOTAL, CLASS (property class), NBHOOD_NUM (neighborhood code). Verified 2026-05-15: SMITH returns results from Acworth, Marietta, Powder Springs, and Kennesaw. Cobb County borders Atlanta only in limited segments and has no parcel-boundary overlap with the city. The county's GIS Hub at geo-cobbcountyga.hub.arcgis.com and the Property Search portal at gis.cobbcounty.org/PropertySearch.html both provide web-interface access. The Cobb County Board of Tax Assessors (cobbassessor.org) is the authoritative record for appeals, exemptions, and recent reassessment values."
92
92
  },
93
93
  {
94
94
  "id": "ga-dekalb",
@@ -129,7 +129,47 @@
129
129
  "url": "https://dcgis-dekalbgis.hub.arcgis.com/",
130
130
  "email": null
131
131
  },
132
- "notes": "DeKalb County (Atlanta metro east core, pop. 764,000) tax parcel layer. PARCELID is an 11-digit parcel identifier (e.g., '06 249 03 007'). 20+ fields confirmed including PARCELID, OWNERNME1/2, SITEADDRESS, CVTTXCD, CVTTXDSCRP, SCHLTXCD, SCHLDSCRP, USECD, USEDSCRP, NGHBRHDCD, CLASSCD, CLASSDSCRP, PRPRTYDSCRP, CNVYNAME, LOWPARCELID, BUILDING, UNIT, STATEDAREA, LGLSTARTDT. Verified 2026-05-15: SMITH returns Doraville/Atlanta area addresses. Note: distinct from DeKalb County IL (FIPS 17037) and DeKalb County IN in the atlas."
132
+ "notes": "DeKalb County (pop. 764,000; Atlanta metro east and north core) should not be confused with DeKalb County IL (FIPS 17037) or DeKalb County IN in the atlas. The GA DeKalb parcel REST layer at dcgis.dekalbcountyga.gov/hosted/rest/services/Parcels/MapServer exposes 20+ confirmed fields. PARCELID is an 11-digit identifier with spaces (e.g., '06 249 03 007') reflecting district, map sheet, block, and parcel components. Owner fields: OWNERNME1/2. Site address: SITEADDRESS. The CVTTXCD and CVTTXDSCRP fields identify the city/tax district, which matters because several cities -- Decatur, Brookhaven, Dunwoody, Tucker, Doraville, Stone Mountain -- maintain separate municipal boundaries within the county. SCHLTXCD and SCHLDSCRP identify the school tax district. Classification: USECD, USEDSCRP, CLASSCD, CLASSDSCRP, and PRPRTYDSCRP. Verified 2026-05-15: SMITH returns Doraville and Atlanta-DeKalb addresses. For full assessment and exemption records, the DeKalb County Tax Commissioner portal at tax.dekalbcountyga.gov is the authoritative lookup."
133
+ },
134
+ {
135
+ "id": "ga-gwinnett",
136
+ "state": "GA",
137
+ "stateName": "Georgia",
138
+ "stateSlug": "georgia",
139
+ "county": "Gwinnett",
140
+ "countySlug": "gwinnett-county",
141
+ "countyFips": "13135",
142
+ "hasPublicRest": true,
143
+ "endpoints": [
144
+ {
145
+ "url": "https://services3.arcgis.com/RfpmnkSAQleRbndX/arcgis/rest/services/Property_and_Tax/FeatureServer/3",
146
+ "serviceType": "FeatureServer",
147
+ "layerIndex": 3,
148
+ "layerName": "Tax Master Table",
149
+ "supportsQuery": true,
150
+ "corsEnabled": null,
151
+ "searchFields": [
152
+ { "name": "OWNER1", "label": "Owner Name 1", "searchable": true },
153
+ { "name": "OWNER2", "label": "Owner Name 2", "searchable": true },
154
+ { "name": "PIN", "label": "Parcel Identification Number", "searchable": true },
155
+ { "name": "LOCADDR", "label": "Property (Location) Address", "searchable": true },
156
+ { "name": "LOCCITY", "label": "Property City", "searchable": false },
157
+ { "name": "LOCZIP", "label": "Property ZIP", "searchable": false }
158
+ ],
159
+ "sampleQuery": "https://services3.arcgis.com/RfpmnkSAQleRbndX/arcgis/rest/services/Property_and_Tax/FeatureServer/3/query?where=UPPER(OWNER1)+LIKE+UPPER('%25SMITH%25')&outFields=PIN,OWNER1,OWNER2,LOCADDR,LOCCITY,LOCZIP&returnGeometry=false&f=json&resultRecordCount=10",
160
+ "license": "public",
161
+ "licenseUrl": "https://gwin-gwinnettcounty.opendata.arcgis.com/",
162
+ "status": "live",
163
+ "lastVerified": "2026-06-20",
164
+ "verifiedBy": "manual"
165
+ }
166
+ ],
167
+ "contact": {
168
+ "department": "Gwinnett County GIS / Tax Assessor",
169
+ "url": "https://www.gwinnettcounty.com/web/gwinnett/departments/financialservices/taxassessorsoffice",
170
+ "email": null
171
+ },
172
+ "notes": "Gwinnett County (pop. ~975,000; Lawrenceville seat; Atlanta metro northeast, Georgia's second-most-populous county) publishes a Property_and_Tax FeatureServer. IMPORTANT: owner data lives on LAYER 3 (the 'Tax Master Table', a non-spatial Table with 35 fields including OWNER1, OWNER2, PIN, LOCADDR, LOCCITY, LOCZIP), NOT on layer 0, which is the parcel geometry layer carrying PIN but no owner name. Query layer 3 for owner-name search; join to layer 0 on PIN if geometry is needed. Verified 2026-06-20: layer 3 holds 314,998 records; UPPER(OWNER1) LIKE '%SMITH%' returns real owners with Duluth/Norcross addresses and ZIPs (e.g. '4078 STILLWATER DR, DULUTH 30096'). Because layer 3 is a Table, query results return no geometry. Cities within the county include Lawrenceville, Duluth, Norcross, Snellville, Suwanee, Lilburn, Buford, Sugar Hill, Grayson, Loganville, Berkeley Lake, Dacula, Auburn, Braselton, Peachtree Corners. For authoritative assessment/appeal records use the Gwinnett County Tax Assessor's office."
133
173
  }
134
174
  ]
135
175
  }