@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
@@ -92,11 +92,11 @@
92
92
  }
93
93
  ],
94
94
  "contact": {
95
- "department": "NJ Office of GIS (NJOGIS) — Statewide MOD-IV Composite",
95
+ "department": "NJ Office of GIS (NJOGIS), Statewide MOD-IV Composite",
96
96
  "url": "https://www.njogis.com/",
97
97
  "email": null
98
98
  },
99
- "notes": "NJ statewide MOD-IV Composite parcel layer — covers all 21 counties; filter by COUNTY='BERGEN' (uppercase county name). Bergen County has 20,553+ parcels confirmed. IMPORTANT: OWNER_NAME field is present in the schema but intentionally blank for all records — NJ state policy restricts bulk owner-name lookup via the public REST layer. Parcel data includes address, assessed values, sale price, year built, deed book/page, and building description. For owner lookup, see NJ MOD-IV database via county tax assessors or NJACTB. This hosted service (Web Mercator 3857 projection) is maintained by NJOGIS and mirrors the official New Jersey Division of Taxation MOD-IV database."
99
+ "notes": "NJ statewide MOD-IV Composite parcel layer, covers all 21 counties; filter by COUNTY='BERGEN' (uppercase county name). Bergen County has 20,553+ parcels confirmed. IMPORTANT: OWNER_NAME field is present in the schema but intentionally blank for all records, NJ state policy restricts bulk owner-name lookup via the public REST layer. Parcel data includes address, assessed values, sale price, year built, deed book/page, and building description. For owner lookup, see NJ MOD-IV database via county tax assessors or NJACTB. This hosted service (Web Mercator 3857 projection) is maintained by NJOGIS and mirrors the official New Jersey Division of Taxation MOD-IV database."
100
100
  },
101
101
  {
102
102
  "id": "nj-monmouth",
@@ -220,7 +220,7 @@
220
220
  "url": "https://gis-monmouthnj.opendata.arcgis.com/",
221
221
  "email": null
222
222
  },
223
- "notes": "County-direct FeatureServer from Monmouth County GIS. Layer ID is 9 (the only layer in this service). Rich MOD-IV attribute set including owner name, address, full assessment data, sale history, and zoning. PAMS_PIN format: county-municipality-block-lot-qualifier. OwnersName is public. Note: NJ Daniel's Law restricts certain owner-address combinations for protected individuals — the county layer may redact mailing addresses for eligible registrants."
223
+ "notes": "Monmouth County (pop. 643,000; Jersey Shore and inland suburbs) uses a county-direct FeatureServer separate from the NJOGIS statewide layer. The service at services9.arcgis.com (GEO_MC_Parcels, layer 9) reflects Monmouth County GIS's own MOD-IV data pull. PAMS_PIN is the statewide identifier, structured as county code + municipality code + block + lot + qualifier code (QCODE). OwnersName is public and queryable. Assessment fields include TotalAssmnt, LandAssmnt, BuildingAssmnt, SaleDate, SalePrice, and YrBuilt. CityStateZip is a single concatenated field for owner mailing address. The MUN and MUN_NAME fields identify the 53-municipality breakdown within the county (e.g., Freehold Borough, Long Branch, Red Bank, Asbury Park). Note: NJ Daniel's Law (P.L. 2021, c.371) allows protected individuals -- judges, law enforcement, domestic-violence victims -- to suppress their address from public records; the county layer may return null or redacted values for mailing addresses on affected parcels. For unredacted deed and transfer records, the Monmouth County Clerk's office portal at mcgifts.co.monmouth.nj.us is the authoritative source."
224
224
  },
225
225
  {
226
226
  "id": "nj-ocean",
@@ -319,7 +319,7 @@
319
319
  "url": "https://www.nj.gov/njgin/",
320
320
  "email": null
321
321
  },
322
- "notes": "Uses the NJOGIS statewide cadastral MapServer (maps.nj.gov). Filter by COUNTY='OCEAN'. This NJ.gov-hosted service is the authoritative state layer covering all 21 NJ counties. OWNER_NAME is present but note NJ Daniel's Law (P.L. 2021, c.371) allows protected individuals (judges, law enforcement, domestic violence victims) to have address information withheld — redacted entries may appear as null or generic. Same endpoint used for Camden and Morris counties below."
322
+ "notes": "Ocean County (pop. 637,000; Pine Barrens and Jersey Shore barrier islands) has no county-direct REST parcel layer. Parcel and owner data route through the NJOGIS statewide cadastral MapServer at maps.nj.gov (Framework/Cadastral/MapServer/0). Filter with COUNTY='OCEAN'. Key fields: OWNER_NAME (public, queryable), PAMS_PIN (county-municipality-block-lot-qualifier format), PROP_LOC (property street address), MUN_NAME (municipality), PROP_CLASS, LAND_VAL, IMPRVT_VAL, NET_VALUE, SALE_PRICE, YR_CONSTR, and DEED_DATE. NJ Daniel's Law (P.L. 2021, c.371) applies: certain registrants -- judges, law enforcement, domestic-violence victims -- can suppress address information; expect null or generic mailing-address entries for affected parcels. Ocean County's 33 municipalities range from Toms River to barrier-island towns like Long Beach Township and Seaside Heights. The NJOGIS layer is updated quarterly from county submissions to the MOD-IV tax-assessment system. For recorded deeds and chain-of-title, the Ocean County Clerk's document search at oceanrecorder.com is publicly accessible."
323
323
  },
324
324
  {
325
325
  "id": "nj-camden",
@@ -403,7 +403,7 @@
403
403
  "url": "https://www.nj.gov/njgin/",
404
404
  "email": null
405
405
  },
406
- "notes": "Same NJOGIS statewide cadastral service as Ocean County. Filter by COUNTY='CAMDEN'. Camden County includes Camden City, Cherry Hill, Gloucester City, Haddonfield, and 34 other municipalities."
406
+ "notes": "Camden County (pop. 521,000; Philadelphia metro east bank) has no county-direct REST parcel layer. Data routes through the NJOGIS statewide cadastral MapServer at maps.nj.gov (Framework/Cadastral/MapServer/0). Filter with COUNTY='CAMDEN'. Fields include OWNER_NAME, PAMS_PIN (block-lot-qualifier MOD-IV identifier), PROP_LOC, MUN_NAME, PROP_CLASS, LAND_VAL, IMPRVT_VAL, NET_VALUE, SALE_PRICE, and CALC_ACRE. The county spans 37 municipalities from the dense urban core of Camden City through inner suburbs (Cherry Hill, Gloucester Township) to smaller boroughs like Haddonfield and Barrington. Camden City often has high parcel-change velocity; the NJOGIS layer captures these at the quarterly MOD-IV update cycle. NJ Daniel's Law address-redaction rules apply countywide. For deed-level detail, the Camden County Clerk's office maintains online document search. The county also participates in NJ Treasury's Property Tax Administration system, which cross-references the same PAMS_PIN identifiers used in this REST layer."
407
407
  },
408
408
  {
409
409
  "id": "nj-morris",
@@ -487,7 +487,7 @@
487
487
  "url": "https://www.nj.gov/njgin/",
488
488
  "email": null
489
489
  },
490
- "notes": "Same NJOGIS statewide cadastral service as Ocean and Camden counties. Filter by COUNTY='MORRIS'. Morris County includes Morristown, Parsippany, Dover, Rockaway, Randolph, and 36 other municipalities. Morris County also maintains a local GIS server at morrisgisapps.co.morris.nj.us but the county-direct MapServer has only PAMS_PIN and shape — insufficient for owner/address search. The NJOGIS statewide layer is the better choice."
490
+ "notes": "Morris County (pop. 510,000; northern NJ exurbs) has no county-direct REST parcel layer that exposes owner data. The local morrisgisapps.co.morris.nj.us MapServer exists but returns only PAMS_PIN and shape geometry -- insufficient for owner or address lookup. The NJOGIS statewide cadastral layer at maps.nj.gov (Framework/Cadastral/MapServer/0) is the practical choice; filter with COUNTY='MORRIS'. Fields include OWNER_NAME, PAMS_PIN, PROP_LOC, MUN_NAME, PROP_CLASS, LAND_VAL, IMPRVT_VAL, NET_VALUE, SALE_PRICE, YR_CONSTR, and CALC_ACRE. Morris County's 39 municipalities include Morristown, Parsippany-Troy Hills, Dover, Rockaway Township, Randolph, and several with significant commercial and industrial parcels along I-80 and Route 10. The MOD-IV quarterly update cycle applies; data reflects the prior quarter's county submission. NJ Daniel's Law address-redaction applies. For recorded instruments, the Morris County Clerk document portal is at morriscountyclerk.org."
491
491
  }
492
492
  ]
493
493
  }
@@ -0,0 +1,49 @@
1
+ {
2
+ "stateSlug": "new-mexico",
3
+ "stateName": "New Mexico",
4
+ "stateAbbrev": "NM",
5
+ "lastUpdated": "2026-06-05",
6
+ "counties": [
7
+ {
8
+ "id": "nm-bernalillo",
9
+ "state": "NM",
10
+ "stateName": "New Mexico",
11
+ "stateSlug": "new-mexico",
12
+ "county": "Bernalillo",
13
+ "countySlug": "bernalillo-county",
14
+ "countyFips": "35001",
15
+ "hasPublicRest": true,
16
+ "endpoints": [
17
+ {
18
+ "url": "https://assessormap.bernco.gov/server/rest/services/Enterprise_Assessment_And_Tax/Public_Access_Parcel_Data_EAT/MapServer/0",
19
+ "serviceType": "MapServer",
20
+ "layerIndex": 0,
21
+ "layerName": "Parcels",
22
+ "supportsQuery": true,
23
+ "corsEnabled": null,
24
+ "searchFields": [
25
+ { "name": "UPC", "label": "Unique Parcel Code (APN)", "searchable": true },
26
+ { "name": "OWNER", "label": "Owner Name", "searchable": true },
27
+ { "name": "SITUSADD", "label": "Situs Address", "searchable": true },
28
+ { "name": "SITUSCITY", "label": "Situs City", "searchable": true },
29
+ { "name": "OWNADD", "label": "Owner Mailing Address", "searchable": true },
30
+ { "name": "OWNCITY", "label": "Owner Mailing City", "searchable": true },
31
+ { "name": "OWNZIPCODE", "label": "Owner ZIP Code", "searchable": true }
32
+ ],
33
+ "sampleQuery": "https://assessormap.bernco.gov/server/rest/services/Enterprise_Assessment_And_Tax/Public_Access_Parcel_Data_EAT/MapServer/0/query?where=UPPER(OWNER)+LIKE+UPPER('%25SMITH%25')&outFields=UPC,OWNER,SITUSADD,SITUSCITY,OWNADD,OWNCITY,OWNZIPCODE&returnGeometry=false&f=json&resultRecordCount=10",
34
+ "license": "public",
35
+ "licenseUrl": "https://www.bernco.gov/assessor/assessors-gis-maps/",
36
+ "status": "live",
37
+ "lastVerified": "2026-06-05",
38
+ "verifiedBy": "automated"
39
+ }
40
+ ],
41
+ "contact": {
42
+ "department": "Bernalillo County Assessor's Office GIS",
43
+ "url": "https://www.bernco.gov/assessor/assessors-gis-maps/",
44
+ "email": null
45
+ },
46
+ "notes": "Bernalillo County is New Mexico's most populous county (pop. 680,000; county seat Albuquerque, which contains roughly 90% of the county population). The Public_Access_Parcel_Data_EAT MapServer on assessormap.bernco.gov (ArcGIS Server 11.1) is the Bernalillo County Assessor's enterprise assessment and tax parcel layer. Live query confirmed 256,034 parcels with full owner-name and situs-address exposure. Key fields: UPC (Unique Parcel Code, a 20-character alphanumeric ID, e.g. '102106049820341601AL'), TAXYR, OWNER, SITUSADD (full situs address, e.g. '3501 JUAN TABO NE J1'), SITUSCITY, SITUSSTATE, SITUSZIP, OWNADD, OWNADD2, OWNCITY, OWNSTATE, OWNCOUNTRY, OWNZIPCODE, OWNZIP4 (full owner mailing address), TAXDIST, LEGALDESC, ROLLTYPE, VALCLASS, PROPCLASS, LANDVALUE, AGVALUE, IMPTVALUE, TOTVALUE, TOTTXBLE, NETTAXABLE, ACREAGE. UPC format encodes township/range/section/parcel in a compound alphanumeric string. Owner-name search via UPPER() LIKE on OWNER works. The assessor also maintains a public property search UI at assessor.bernco.gov. Note: assessormap.bernco.gov is a separate subdomain from the county's PDS GIS server at pdsgismaps.bernco.gov. Both are public; only assessormap.bernco.gov has the parcel-with-owner layer. The county GIS server at pdsgismaps.bernco.gov has the canvass parcel polygons (BernCo_Public_Canvass_Update/MapServer layer 6) but that layer has only UPC + situs address, not owner name."
47
+ }
48
+ ]
49
+ }
@@ -73,7 +73,7 @@
73
73
  "url": "https://nycplanning.github.io/db-pluto/",
74
74
  "email": null
75
75
  },
76
- "notes": "New York County (FIPS 36061) is the formal name for the borough of Manhattan, but both endpoints below cover ALL FIVE NYC boroughs. Use either to query Brooklyn (Kings, 36047), Queens (36081), Bronx (36005), or Staten Island (Richmond, 36085). MAPPLUTO (96 fields) is the DCP-maintained primary source: BBL as the unique identifier, OwnerName, full zoning (ZoneDist1-4, overlays, FAR), building characteristics, political geography. Filter MAPPLUTO by Borough field with codes MN/BX/BK/QN/SI. The NYS Tax Parcels service (75+ fields) covers all 62 NY counties — filter by COUNTY_NAME='Kings'/'Queens'/'New York'/'Bronx'/'Richmond' for NYC boroughs, or any upstate county name for statewide reach."
76
+ "notes": "New York County (FIPS 36061) is the formal name for the borough of Manhattan, but both endpoints below cover ALL FIVE NYC boroughs. Use either to query Brooklyn (Kings, 36047), Queens (36081), Bronx (36005), or Staten Island (Richmond, 36085). MAPPLUTO (96 fields) is the DCP-maintained primary source: BBL as the unique identifier, OwnerName, full zoning (ZoneDist1-4, overlays, FAR), building characteristics, political geography. Filter MAPPLUTO by Borough field with codes MN/BX/BK/QN/SI. The NYS Tax Parcels service (75+ fields) covers all 62 NY counties, filter by COUNTY_NAME='Kings'/'Queens'/'New York'/'Bronx'/'Richmond' for NYC boroughs, or any upstate county name for statewide reach."
77
77
  },
78
78
  {
79
79
  "id": "ny-erie",
@@ -118,7 +118,7 @@
118
118
  }
119
119
  ],
120
120
  "contact": {
121
- "department": "Erie County Department of Environment and Planning — GIS Division",
121
+ "department": "Erie County Department of Environment and Planning, GIS Division",
122
122
  "url": "https://www.erie.gov/environment/gis",
123
123
  "email": null
124
124
  },
@@ -170,7 +170,7 @@
170
170
  "url": "https://www.monroecounty.gov/planning-gis",
171
171
  "email": null
172
172
  },
173
- "notes": "67 fields confirmed. Includes COUNTYSBL (full county SBL identifier), PRINTKEY, SWIS, OWNERNAME1, OWNERNAME2, mailing address (OWNERSTREETADDRESS, OWNERPOBOX, OWNERCITYSTATEZIPCODE), property address (PARCELADDRESS, PARCELADDRESSCITY, PARCELADDRESSZIPCODE), PROPERTYCLASS/PROPERTYCLASSDESCRIPTION, assessed values (TOTALASSESSEDVALUE, LANDASSESSEDVALUE), building details (YEARBUILT, BUILDINGSTYLE, EXTERIORWALLMATERIAL, NUMBEROFSTORIES, SQUAREFEETLIVINGAREA, NUMBEROFBEDROOMS, NUMBEROFFULLBATHROOMS, NUMBEROFHALFBATHROOMS, NUMBEROFKITCHENS, NUMBEROFFIREPLACES, BASEMENTTYPE, CENTRALAIR, HEATTYPE), utilities (SEWERTYPE, WATERSUPPLY), school district, neighborhood code, grid coordinates. Owner query confirmed returning real residential parcels. Monroe County, NY is the Rochester metropolitan area (FIPS 36055)."
173
+ "notes": "Monroe County is the Rochester metropolitan area (FIPS 36055, pop. 745,000 county-wide). The county-direct FeatureServer at services1.arcgis.com returns 67 confirmed fields on the BASE_MC_Parcels layer, maintained by the Monroe County Planning Department. Key identifiers: COUNTYSBL (full county SBL string, e.g. '141.03-2-47'), PRINTKEY (the formatted print key used on tax maps), and SWIS (the 6-digit State-Wide Information System code that identifies the assessing municipality within Monroe). Owner fields OWNERNAME1/OWNERNAME2 are public. Mailing address is in OWNERSTREETADDRESS, OWNERPOBOX, and OWNERCITYSTATEZIPCODE as a single concatenated field. Building detail fields include BUILDINGSTYLE, EXTERIORWALLMATERIAL, NUMBEROFSTORIES, SQUAREFEETLIVINGAREA, NUMBEROFBEDROOMS, BASEMENTTYPE, CENTRALAIR, and HEATTYPE -- unusually granular for a county REST layer. SEWERTYPE and WATERSUPPLY distinguish municipal vs. private systems. Owner-name queries confirmed live. For current deed and sale records, Monroe County's property lookup is at monroecounty.gov/gis."
174
174
  },
175
175
  {
176
176
  "id": "ny-onondaga",
@@ -214,7 +214,7 @@
214
214
  "url": "https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcels_Public/MapServer",
215
215
  "email": null
216
216
  },
217
- "notes": "Onondaga County (Syracuse, FIPS 36067) is served by the NYS Tax Parcels Public statewide layer — filter with COUNTY_NAME='Onondaga'. 75+ fields including PRIMARY_OWNER, PARCEL_ADDR, SWIS_SBL_ID, PRINT_KEY, MAIL_ADDR, MAIL_CITY, TOTAL_AV, PROP_CLASS, YR_BLT. Owner query confirmed returning real residential parcels (Smith, Gregg S at 2647 Ellsworth Rd). This same statewide endpoint covers all 62 NY counties; see the NYC entry for borough-specific filtering. Note: Monroe County (Rochester, 36055) has its own dedicated hosted service with richer attributes — see ny-monroe entry. The NYS statewide service may not always return Monroe data; use the dedicated Monroe endpoint for that county."
217
+ "notes": "Onondaga County (Syracuse, FIPS 36067) is served by the NYS Tax Parcels Public statewide layer, filter with COUNTY_NAME='Onondaga'. 75+ fields including PRIMARY_OWNER, PARCEL_ADDR, SWIS_SBL_ID, PRINT_KEY, MAIL_ADDR, MAIL_CITY, TOTAL_AV, PROP_CLASS, YR_BLT. Owner query confirmed returning real residential parcels (Smith, Gregg S at 2647 Ellsworth Rd). This same statewide endpoint covers all 62 NY counties; see the NYC entry for borough-specific filtering. Note: Monroe County (Rochester, 36055) has its own dedicated hosted service with richer attributes, see ny-monroe entry. The NYS statewide service may not always return Monroe data; use the dedicated Monroe endpoint for that county."
218
218
  }
219
219
  ,
220
220
  {
@@ -235,7 +235,7 @@
235
235
  "supportsQuery": true,
236
236
  "corsEnabled": null,
237
237
  "searchFields": [
238
- { "name": "COUNTY_NAME", "label": "County Name — filter with 'Suffolk'", "searchable": true },
238
+ { "name": "COUNTY_NAME", "label": "County Name, filter with 'Suffolk'", "searchable": true },
239
239
  { "name": "PRIMARY_OWNER", "label": "Primary Owner Name", "searchable": true },
240
240
  { "name": "ADD_OWNER", "label": "Additional Owner Name", "searchable": true },
241
241
  { "name": "PARCEL_ADDR", "label": "Parcel Address", "searchable": true },
@@ -265,7 +265,7 @@
265
265
  "url": "https://www.its.ny.gov/gis",
266
266
  "email": null
267
267
  },
268
- "notes": "75+ fields confirmed. This is the same NYS Tax Parcels Public statewide endpoint used for New York County (Manhattan) — filter by COUNTY_NAME='Suffolk' for Suffolk County. Suffolk is the most populous county on Long Island (~1.5M residents). SWIS_SBL_ID is the canonical parcel identifier (26-character SWIS + SBL concatenation); PRINT_KEY is the human-readable tax map reference (e.g. '1.-1-1'). PRIMARY_OWNER is the assessed owner. Note the NYC-area MAPPLUTO endpoint does NOT cover Suffolk — that endpoint is for the five NYC boroughs only. This statewide layer has 75+ attributes including assessed values, market values, year built, building style, heat/fuel type, bedrooms, school district, sewer/water type. Data is the annual NYS Real Property System roll export updated each September/October. ROLL_YR=2025 confirmed in live query results. Municipalities within Suffolk include Babylon, Brookhaven, East Hampton, Huntington, Islip, Riverhead, Shelter Island, Smithtown, Southampton, Southold — all accessible via the same COUNTY_NAME='Suffolk' filter."
268
+ "notes": "75+ fields confirmed. This is the same NYS Tax Parcels Public statewide endpoint used for New York County (Manhattan), filter by COUNTY_NAME='Suffolk' for Suffolk County. Suffolk is the most populous county on Long Island (~1.5M residents). SWIS_SBL_ID is the canonical parcel identifier (26-character SWIS + SBL concatenation); PRINT_KEY is the human-readable tax map reference (e.g. '1.-1-1'). PRIMARY_OWNER is the assessed owner. Note the NYC-area MAPPLUTO endpoint does NOT cover Suffolk. That endpoint is for the five NYC boroughs only. This statewide layer has 75+ attributes including assessed values, market values, year built, building style, heat/fuel type, bedrooms, school district, sewer/water type. Data is the annual NYS Real Property System roll export updated each September/October. ROLL_YR=2025 confirmed in live query results. Municipalities within Suffolk include Babylon, Brookhaven, East Hampton, Huntington, Islip, Riverhead, Shelter Island, Smithtown, Southampton, Southold, all accessible via the same COUNTY_NAME='Suffolk' filter."
269
269
  },
270
270
  {
271
271
  "id": "ny-westchester",
@@ -285,7 +285,7 @@
285
285
  "supportsQuery": true,
286
286
  "corsEnabled": null,
287
287
  "searchFields": [
288
- { "name": "COUNTY_NAME", "label": "County Name — filter with 'Westchester'", "searchable": true },
288
+ { "name": "COUNTY_NAME", "label": "County Name, filter with 'Westchester'", "searchable": true },
289
289
  { "name": "PRIMARY_OWNER", "label": "Primary Owner Name", "searchable": true },
290
290
  { "name": "ADD_OWNER", "label": "Additional Owner Name", "searchable": true },
291
291
  { "name": "PARCEL_ADDR", "label": "Parcel Address", "searchable": true },
@@ -312,7 +312,7 @@
312
312
  "url": "https://www.its.ny.gov/gis",
313
313
  "email": null
314
314
  },
315
- "notes": "75+ fields confirmed. Same NYS Tax Parcels Public statewide endpoint as New York County (Manhattan) and Suffolk County — filter by COUNTY_NAME='Westchester'. Westchester is the most affluent large county in the lower Hudson Valley (~1M residents), and a high-search-intent county for public notice tools. PRIMARY_OWNER is the assessed owner name. Municipalities within Westchester accessible via this layer include Yonkers, White Plains, New Rochelle, Mount Vernon, Scarsdale, Ardsley, Tarrytown, Port Chester, Mamaroneck, and 35+ other cities/towns/villages — all filtered by COUNTY_NAME='Westchester'. Data is NYS RPS annual roll export (ROLL_YR=2025 confirmed in live query). The Westchester County GIS portal at gis.westchestergov.com offers a browser-based property viewer but does NOT expose a separate county-run public parcel REST endpoint for owner-name search; the NYS statewide service is the only public REST option. For both Suffolk and Westchester, always pair COUNTY_NAME with the owner query (as shown in sampleQuery) to avoid cross-county false matches in this multi-county statewide layer."
315
+ "notes": "75+ fields confirmed. Same NYS Tax Parcels Public statewide endpoint as New York County (Manhattan) and Suffolk County, filter by COUNTY_NAME='Westchester'. Westchester is the most affluent large county in the lower Hudson Valley (~1M residents), and a high-search-intent county for public notice tools. PRIMARY_OWNER is the assessed owner name. Municipalities within Westchester accessible via this layer include Yonkers, White Plains, New Rochelle, Mount Vernon, Scarsdale, Ardsley, Tarrytown, Port Chester, Mamaroneck, and 35+ other cities/towns/villages, all filtered by COUNTY_NAME='Westchester'. Data is NYS RPS annual roll export (ROLL_YR=2025 confirmed in live query). The Westchester County GIS portal at gis.westchestergov.com offers a browser-based property viewer but does NOT expose a separate county-run public parcel REST endpoint for owner-name search; the NYS statewide service is the only public REST option. For both Suffolk and Westchester, always pair COUNTY_NAME with the owner query (as shown in sampleQuery) to avoid cross-county false matches in this multi-county statewide layer."
316
316
  }
317
317
  ]
318
318
  }
@@ -46,7 +46,7 @@
46
46
  "url": "https://maps.wake.gov/",
47
47
  "email": null
48
48
  },
49
- "notes": "435,382 polygon parcels covering Raleigh, Cary, Apex, Wake Forest, and the rest of Wake County. Verified 2026-05-11: UPPER(OWNER) LIKE '%SMITH%' returns real owners with full Raleigh-area site addresses (e.g., '600 HILLFARM DR'). Wake uses a 10-digit PIN_NUM keyed to the State Plane grid and a separate REID for Real Estate ID lookups against the assessor system. The MapServer endpoint also exposes a non-spatial OLD_PARCEL_NUMBER for legacy reconciliation."
49
+ "notes": "Wake County (Raleigh metro, pop. 1.17 million) hosts 435,382 parcel polygons in its county-direct ArcGIS FeatureServer. Owner-name queries use UPPER(OWNER) LIKE '%SMITH%' and return real site addresses (verified 2026-05-11). Two identifiers matter: PIN_NUM is a 10-digit code derived from State Plane grid coordinates and uniquely locates the parcel geographically; REID (Real Estate ID) is the assessor's account key, used by the Wake County Register of Deeds and the iMAPS application for cross-reference. The layer also carries OLD_PARCEL_NUMBER for reconciling legacy records that predate current PIN_NUM assignment. Wake County GIS and Raleigh GIS jointly maintain iMAPS (maps.raleighnc.gov/iMAPS) as a parallel lookup tool supporting owner, address, PIN, and REID searches. NC OneMap aggregates Wake data quarterly as well; the county's own FeatureServer is more current for recent splits and consolidations."
50
50
  },
51
51
  {
52
52
  "id": "nc-mecklenburg",
@@ -81,11 +81,11 @@
81
81
  }
82
82
  ],
83
83
  "contact": {
84
- "department": "Mecklenburg County GIS — Geospatial Information Services (Charlotte-Mecklenburg joint GIS)",
84
+ "department": "Mecklenburg County GIS, Geospatial Information Services (Charlotte-Mecklenburg joint GIS)",
85
85
  "url": "https://gis.mecknc.gov/",
86
86
  "email": null
87
87
  },
88
- "notes": "Mecklenburg County (Charlotte, pop. 1.2M) GIS endpoint is hosted on Charlotte's ArcGIS server (gis.charlottenc.gov). 13 fields on this public layer: OBJECTID, MAP_BOOK, MAP_PAGE, MAP_BLOCK, LOT_NUM, NC_PIN, PID, PARCEL_TYPE, CONDO_TOWN_FLAG, Legal_From, Shape. NOTE: Owner name and address are NOT exposed on this public REST endpoint — the Charlotte/Mecklenburg POLARIS system provides owner-name lookups at polaris3g.mecklenburgcountync.gov but does not expose a public REST API. For parcel + owner data, Mecklenburg County's Geospatial Information Services (GIS) division provides full POLARIS data through the county open mapping site. This endpoint is geometry + PIN only."
88
+ "notes": "Mecklenburg County (Charlotte, pop. 1.2M) GIS endpoint is hosted on Charlotte's ArcGIS server (gis.charlottenc.gov). 13 fields on this public layer: OBJECTID, MAP_BOOK, MAP_PAGE, MAP_BLOCK, LOT_NUM, NC_PIN, PID, PARCEL_TYPE, CONDO_TOWN_FLAG, Legal_From, Shape. NOTE: Owner name and address are NOT exposed on this public REST endpoint. The Charlotte/Mecklenburg POLARIS system provides owner-name lookups at polaris3g.mecklenburgcountync.gov but does not expose a public REST API. For parcel + owner data, Mecklenburg County's Geospatial Information Services (GIS) division provides full POLARIS data through the county open mapping site. This endpoint is geometry + PIN only."
89
89
  },
90
90
  {
91
91
  "id": "nc-forsyth",
@@ -126,11 +126,11 @@
126
126
  }
127
127
  ],
128
128
  "contact": {
129
- "department": "NC OneMap / NC Geographic Information Coordinating Council (GICC) — statewide parcel layer",
129
+ "department": "NC OneMap / NC Geographic Information Coordinating Council (GICC), statewide parcel layer",
130
130
  "url": "https://www.nconemap.gov/pages/parcels",
131
131
  "email": null
132
132
  },
133
- "notes": "Forsyth County (Winston-Salem, pop. 385,000) served via NC1Map statewide parcel layer. Filter by cntyfips='067' (3-digit string). 60+ fields: parno, ownname/ownname2, siteadd/scity/szip, mailadd/mcity/mstate/mzip, parval, landval, improvval, gisacres, parusecode/parusedesc, saledate, legdecfull, subdivisio, owntype, cntyfips, cntyname. This is the NC Geographic Information Coordinating Council's statewide parcel aggregation, updated quarterly from county submissions. Verified 2026-05-15: cntyfips='067' returns Winston-Salem area addresses."
133
+ "notes": "Forsyth County (Winston-Salem, pop. 385,000) is served via the NC Geographic Information Coordinating Council's NC1Map statewide parcel aggregation (services.gis.nc.gov). Filter by cntyfips='067' (3-digit string). Key fields: parno (parcel number), ownname/ownname2 (owner names), siteadd/scity/szip (site address), mailadd/mcity/mstate/mzip (mailing address), parval (total parcel value), landval, improvval, gisacres, parusecode/parusedesc (land use), saledate, legdecfull (legal description), subdivisio, owntype, and cntyname. The NC1Map layer is updated quarterly from county submissions to the GICC. Forsyth County also maintains MapForsyth (mapforsyth.org), a county-direct open data portal with weekly-updated parcel and address layers -- for the most current data, MapForsyth is the better path. The county Tax Assessor's Geo-Data Explorer (forsyth.cc/tax/geodata.aspx) provides parcel search by address, owner, and parcel ID."
134
134
  },
135
135
  {
136
136
  "id": "nc-guilford",
@@ -166,11 +166,11 @@
166
166
  }
167
167
  ],
168
168
  "contact": {
169
- "department": "NC OneMap / NC Geographic Information Coordinating Council (GICC) — statewide parcel layer",
169
+ "department": "NC OneMap / NC Geographic Information Coordinating Council (GICC), statewide parcel layer",
170
170
  "url": "https://www.nconemap.gov/pages/parcels",
171
171
  "email": null
172
172
  },
173
- "notes": "Guilford County (Greensboro, pop. 540,000) served via NC1Map statewide parcel layer. Filter by cntyfips='081'. Verified 2026-05-15: returns Greensboro addresses. Same endpoint as other NC1Map counties (Forsyth, Durham, Cumberland, Buncombe); filter by cntyfips differentiates. Guilford County GIS Hub at gcgis.guilfordcountync.gov exposes only boundary/road layers; for parcel + owner, NC1Map is the only public REST path."
173
+ "notes": "Guilford County (Greensboro and High Point metro, pop. 540,000) is served via the NC1Map statewide parcel aggregation (services.gis.nc.gov). Filter by cntyfips='081'. The same field schema applies as other NC1Map counties: ownname/ownname2, siteadd/scity/szip, mailadd/mcity, parval, landval, improvval, parusecode/parusedesc, saledate, and legdecfull. Guilford covers two large municipalities -- Greensboro and High Point -- whose parcel data are both captured in this single county layer; the scity field distinguishes them. Guilford County GIS Hub (gcgis.guilfordcountync.gov) exposes boundary and road layers but not the full parcel-plus-owner REST path; NC1Map remains the only public REST route for owner-level queries. Verified 2026-05-15: cntyfips='081' returns Greensboro and High Point addresses. Quarterly update cycle from county to GICC may lag recent deed recordings by up to 3 months."
174
174
  },
175
175
  {
176
176
  "id": "nc-durham",
@@ -214,7 +214,7 @@
214
214
  "url": "https://live-durhamnc.opendata.arcgis.com/",
215
215
  "email": null
216
216
  },
217
- "notes": "Durham County (Durham, pop. 330,000) parcel layer from City/County joint GIS. 75+ fields confirmed including PIN, REID, PROPERTY_OWNER, LOCATION_ADDR, PHYADDR_CITY/STATE/ZIP, OWNER_MAIL_1/2/3/CITY/STATE/ZIP/PLUS_4, TOTAL_LAND_VALUE_ASSESSED, TOTAL_BLDG_VALUE_ASSESSED, TOTAL_PROP_VALUE, DEED_DATE, DEED_BOOK, DEED_PAGE, ACREAGE, ZONING, LAND_CLASS, TOWNSHIP, PKG_SALE_DATE, PKG_SALE_PRICE. PROPERTY_OWNER field uses semicolon-delimited co-owner format (e.g., 'SMITH, CAROLYN D;SMITH, FRANK Q'). Verified 2026-05-15: returns Durham addresses."
217
+ "notes": "Durham County (Research Triangle, pop. 330,000) provides its parcel layer via a City/County joint GIS operation separate from NC1Map. The layer exposes 75+ confirmed fields. Key identifiers: PIN (parcel identification number) and REID (real estate ID, the assessor account key). PROPERTY_OWNER uses a semicolon-delimited format for co-owners (e.g., 'SMITH, CAROLYN D;SMITH, FRANK Q'). Address fields include LOCATION_ADDR and PHYADDR_CITY/STATE/ZIP for the site, plus OWNER_MAIL_1/2/3/CITY/STATE/ZIP/PLUS_4 for the mailing address. Valuation fields include TOTAL_LAND_VALUE_ASSESSED, TOTAL_BLDG_VALUE_ASSESSED, and TOTAL_PROP_VALUE. Deed fields DEED_DATE, DEED_BOOK, and DEED_PAGE point directly to recorded instruments. ZONING, LAND_CLASS, and TOWNSHIP provide planning context. Verified 2026-05-15: PROPERTY_OWNER queries return Durham addresses. For fuller record detail, the Durham County Tax Administration property search at dconc.gov is the authoritative portal."
218
218
  },
219
219
  {
220
220
  "id": "nc-cumberland",
@@ -250,11 +250,11 @@
250
250
  }
251
251
  ],
252
252
  "contact": {
253
- "department": "NC OneMap / NC Geographic Information Coordinating Council (GICC) — statewide parcel layer",
253
+ "department": "NC OneMap / NC Geographic Information Coordinating Council (GICC), statewide parcel layer",
254
254
  "url": "https://www.nconemap.gov/pages/parcels",
255
255
  "email": null
256
256
  },
257
- "notes": "Cumberland County (Fayetteville, pop. 335,000; includes Fort Liberty/Fort Bragg military installation) served via NC1Map statewide parcel layer. Filter by cntyfips='051'. Verified 2026-05-15: returns Cumberland County addresses."
257
+ "notes": "Cumberland County (Fayetteville, pop. 335,000; includes Fort Liberty, formerly Fort Bragg) is served via the NC1Map statewide parcel aggregation (services.gis.nc.gov). Filter by cntyfips='051'. The NC1Map field schema applies: ownname/ownname2, siteadd/scity/szip, mailadd/mcity/mstate/mzip, parval, landval, improvval, parusecode/parusedesc, saledate, and legdecfull. Cumberland's parcel inventory includes the substantial federal footprint of Fort Liberty; military installation parcels typically appear with US Government as owner and may carry limited attribute data. The county seat Fayetteville and surrounding municipalities like Spring Lake and Hope Mills are fully covered. Quarterly update cycle from county to GICC applies. For current ownership, the Cumberland County Tax Administration portal at co.cumberland.nc.us handles property search by owner, address, and parcel ID. Cumberland County also maintains an open data portal at opendata.co.cumberland.nc.us with downloadable parcel layers."
258
258
  },
259
259
  {
260
260
  "id": "nc-buncombe",
@@ -297,7 +297,7 @@
297
297
  "url": "https://www.buncombecounty.org/governing/depts/gis/",
298
298
  "email": null
299
299
  },
300
- "notes": "Buncombe County (Asheville, pop. 275,000 county-wide) property layer. Fields include pinnum (15-digit parcel identifier), owner (owner name), HouseNumber, NumberSuffix, TaxYear, DeedBook, DeedPage, PlatBook, PlatPage, SubName, SubLot, SubBlock, SubSect, CondoUnit, CondoBuilding. Service is property_bc_dis (dis = district), layer 1 of 3 (layer 0 = County Boundary, layer 2 = Street Centerline). Verified 2026-05-15: SMITH returns Asheville-area addresses."
300
+ "notes": "Buncombe County (Asheville, pop. 275,000) hosts its parcel layer on a county-direct ArcGIS service. The service name is property_bc_dis (dis = district); layer 1 of 3 is the parcel polygon layer (layer 0 is County Boundary, layer 2 is Street Centerline). The primary parcel identifier is pinnum, a 15-digit number. The owner field is named owner (lowercase). Building fields include HouseNumber, NumberSuffix, TaxYear, DeedBook, DeedPage, PlatBook, PlatPage, SubName, SubLot, SubBlock, SubSect, CondoUnit, and CondoBuilding. Data is refreshed daily at 6 a.m. on weekdays from CAMA sources. Verified 2026-05-15: SMITH returns Asheville-area addresses. Buncombe County's GIS portal (gis.buncombenc.gov/buncomap) is the primary web interface. For assessment detail, the SpatialEst Property Record Search at prc-buncombe.spatialest.com is the county-linked assessor lookup. Hurricane Helene (September 2024) caused significant disruptions in Asheville; some parcels in flood-affected areas may carry amended ownership or assessment data."
301
301
  }
302
302
  ]
303
303
  }
@@ -0,0 +1,57 @@
1
+ {
2
+ "stateSlug": "north-dakota",
3
+ "stateName": "North Dakota",
4
+ "stateAbbrev": "ND",
5
+ "lastUpdated": "2026-06-20",
6
+ "counties": [
7
+ {
8
+ "id": "nd-cass",
9
+ "state": "ND",
10
+ "stateName": "North Dakota",
11
+ "stateSlug": "north-dakota",
12
+ "county": "Cass",
13
+ "countySlug": "cass-county",
14
+ "countyFips": "38017",
15
+ "hasPublicRest": true,
16
+ "endpoints": [
17
+ {
18
+ "url": "https://gisweb.casscountynd.gov/arcgis/rest/services/Public/CountyParcels/MapServer/0",
19
+ "serviceType": "MapServer",
20
+ "layerIndex": 0,
21
+ "layerName": "CountyParcels",
22
+ "supportsQuery": true,
23
+ "corsEnabled": null,
24
+ "searchFields": [
25
+ { "name": "GISPIN", "label": "GIS Parcel ID", "searchable": true },
26
+ { "name": "PIN", "label": "Parcel Identification Number", "searchable": true },
27
+ { "name": "DASHPIN", "label": "Dash PIN", "searchable": true },
28
+ { "name": "Name", "label": "Owner Name", "searchable": true },
29
+ { "name": "PropertyAddress", "label": "Property Address", "searchable": true },
30
+ { "name": "LMVENU", "label": "Land Market Value (per unit)", "searchable": false },
31
+ { "name": "VENUDESC", "label": "Venue Description", "searchable": false },
32
+ { "name": "Section", "label": "Section", "searchable": false },
33
+ { "name": "Lot", "label": "Lot", "searchable": false },
34
+ { "name": "CommRes", "label": "Commercial/Residential flag", "searchable": false },
35
+ { "name": "Exempt", "label": "Exempt flag", "searchable": false },
36
+ { "name": "ACRES", "label": "Acres", "searchable": false },
37
+ { "name": "LGDESC", "label": "Legal Description", "searchable": false },
38
+ { "name": "SchoolDistrict", "label": "School District", "searchable": false },
39
+ { "name": "FireDistrict", "label": "Fire District", "searchable": false }
40
+ ],
41
+ "sampleQuery": "https://gisweb.casscountynd.gov/arcgis/rest/services/Public/CountyParcels/MapServer/0/query?where=UPPER(Name)+LIKE+UPPER('%25SMITH%25')&outFields=GISPIN,PIN,Name,PropertyAddress,SchoolDistrict&returnGeometry=false&f=json&resultRecordCount=10",
42
+ "license": "public",
43
+ "licenseUrl": "https://gisweb.casscountynd.gov/",
44
+ "status": "live",
45
+ "lastVerified": "2026-06-20",
46
+ "verifiedBy": "automated"
47
+ }
48
+ ],
49
+ "contact": {
50
+ "department": "Cass County GIS / Cass County Commission",
51
+ "url": "https://www.casscountynd.gov/county/depts/gis/Pages/default.aspx",
52
+ "email": null
53
+ },
54
+ "notes": "Cass County ND (Fargo metro; county seat Fargo; FIPS 38017; most populous county in ND, pop. 193,000) provides parcel data via gisweb.casscountynd.gov. The Public/CountyParcels/MapServer/0 layer exposes 20 fields: OBJECTID, GISPIN (14-digit GIS parcel ID, e.g., '64160000340000'), DASHPIN, PIN, ALTPIN, LMVENU, VENUDESC, Name (owner name), Section, Lot, CommRes, Exempt, As400Acres, ACRES, LGDESC (legal description), PLATID, PropertyAddress, SchoolDistrict, FireDistrict. Owner search via UPPER(Name) LIKE returns full owner name strings. Verified 2026-06-20: SMITH returns Fargo-area addresses (e.g., GISPIN '01001000210000', owner 'DANIEL N & LORETTA K WENTZ' at 2315 UNIVERSITY DR N). Note: the Name field holds the full owner name as a single string. Cass County ND (FIPS 38017) must not be confused with Cass County MO, NE, IL, or TX."
55
+ }
56
+ ]
57
+ }
package/data/ohio.json CHANGED
@@ -129,7 +129,7 @@
129
129
  "url": "https://data-franklincova.opendata.arcgis.com/",
130
130
  "email": null
131
131
  },
132
- "notes": "115+ fields confirmed. Includes OWNERNME1/2/3, SITEADDRESS, PSTLADDRES, PSTLCITYSTZIP, CLASSCD/CLASSDSCRP, NBHDCD, CVTTXCD (tax code), LNDVALUEBASE, BLDVALUEBASE, TOTVALUEBASE, SALEDATE, SALEPRICE, RESFLRAREA, RESYRBLT, RESSTRTYP, FLOORCOUNT, ROOMS, BATHS, HBATHS, BEDRMS, FIREPLC, AIRCOND, WALL, COND, GRADE, FLOOD, WATERSERV, SEWERSERV, OWNEROCCUPIED, RENTAL. Max record count 3000. Owner query tested and confirmed returning real results. Parcel ID format: 'XXX-XXXXXX'. Service uses Local Government Information Model (LGIM) schema."
132
+ "notes": "Franklin County, Ohio (Columbus metro, pop. 1.35M, county seat Columbus) is the most populous Ohio county. In Ohio, the county Auditor, not the Assessor, is the statutory data custodian for parcel records; the Franklin County Auditor's office publishes this GIS layer. 115+ fields confirmed including OWNERNME1/2/3, SITEADDRESS, PSTLADDRES, PSTLCITYSTZIP, CLASSCD/CLASSDSCRP, NBHDCD, CVTTXCD (tax district code), SCHLTXCD (school district), LNDVALUEBASE, BLDVALUEBASE, TOTVALUEBASE, SALEDATE, SALEPRICE, RESFLRAREA, RESYRBLT, RESSTRTYP, FLOORCOUNT, ROOMS, BATHS, HBATHS, BEDRMS, FIREPLC, AIRCOND, WALL, COND, GRADE, FLOOD, WATERSERV, SEWERSERV, OWNEROCCUPIED, RENTAL. Max record count 3000; owner query tested and confirmed returning real Columbus-area results. Parcel ID format: 'XXX-XXXXXX' (3-digit + 6-digit with hyphen). The service follows the ESRI Local Government Information Model (LGIM) parcel schema. Layer is updated Monday through Friday at 7:00 PM Eastern. Open-data downloads available at auditor-fca.opendata.arcgis.com. The Auditor's parcel viewer at property.franklincountyauditor.com is the browser-facing interface over the same data."
133
133
  },
134
134
  {
135
135
  "id": "oh-cuyahoga",
@@ -174,7 +174,7 @@
174
174
  "url": "https://fiscalhub.gis.cuyahogacounty.gov/",
175
175
  "email": "gis@cuyahogacounty.us"
176
176
  },
177
- "notes": "80+ fields confirmed including parcel_owner, deeded_owner, grantor, grantee, transfer_date, sales_amount, par_addr_all, par_city, par_zip, tax_luc, tax_luc_description, zoning_code, zoning_use, property_class, certified_tax_land, certified_tax_building, certified_tax_total, total_acreage, total_square_ft, res_bldg_count, total_res_liv_area. Owner query tested and returning real results (par_addr_all includes city and state in one field). The MyPLACE service (WGS84 projection) is the public-facing layer backing the county's MyPlace property search portal. Layer 0 = Point Parcel, Layer 1 = Air Parcel, Layer 2 = the full polygon parcel layer. The earlier 'saledate' field was renamed 'transfer_date' in 2026 — joined record retains the same semantics."
177
+ "notes": "80+ fields confirmed including parcel_owner, deeded_owner, grantor, grantee, transfer_date, sales_amount, par_addr_all, par_city, par_zip, tax_luc, tax_luc_description, zoning_code, zoning_use, property_class, certified_tax_land, certified_tax_building, certified_tax_total, total_acreage, total_square_ft, res_bldg_count, total_res_liv_area. Owner query tested and returning real results (par_addr_all includes city and state in one field). The MyPLACE service (WGS84 projection) is the public-facing layer backing the county's MyPlace property search portal. Layer 0 = Point Parcel, Layer 1 = Air Parcel, Layer 2 = the full polygon parcel layer. The earlier 'saledate' field was renamed 'transfer_date' in 2026, joined record retains the same semantics."
178
178
  },
179
179
  {
180
180
  "id": "oh-hamilton",
@@ -216,11 +216,89 @@
216
216
  }
217
217
  ],
218
218
  "contact": {
219
- "department": "CAGIS (Cincinnati Area Geographic Information System) — Hamilton County Auditor",
219
+ "department": "CAGIS (Cincinnati Area Geographic Information System), Hamilton County Auditor",
220
220
  "url": "https://www.hamilton-co.org/auditor/maps",
221
221
  "email": null
222
222
  },
223
223
  "notes": "99 fields confirmed. This is the CAGIS (Cincinnati Area Geographic Information System) cadastral parcel polygon layer. Key fields include: PARCELID (12-digit parcel ID), AUDPCLID (auditor parcel ID), OWNNM1/OWNNM2 (owner names), OWNAD1/OWNAD1A/OWNAD2 (owner address), LGLDS1/LGLDS2/LGLDS3 (legal description), PREVOWN1/PREVOWN2 (previous owners), BOOK/PAGE (deed reference), TAXDST (tax district), MLTOWN (municipality), GRPPCLID (group parcel ID), PNTPCLID (point parcel ID), PROPTYID (property ID). Condo layers are separate (layers 5 and 6). Layer 2 (Hamilton County Parcel Attributes) joins assessment data. Layer 0 is the polygon geometry with ownership. Owner query confirmed: UPPER(OWNNM1) LIKE '%SMITH%' returns real parcels. Hamilton County, OH is the Cincinnati metropolitan area (FIPS 39061)."
224
+ },
225
+ {
226
+ "id": "oh-summit",
227
+ "state": "OH",
228
+ "stateName": "Ohio",
229
+ "stateSlug": "ohio",
230
+ "county": "Summit",
231
+ "countySlug": "summit-county",
232
+ "countyFips": "39153",
233
+ "hasPublicRest": true,
234
+ "endpoints": [
235
+ {
236
+ "url": "https://maps.summitcounty.org/arcgis/rest/services/Maps/ParcelQuery/MapServer/0",
237
+ "serviceType": "MapServer",
238
+ "layerIndex": 0,
239
+ "layerName": "ParcelQuery",
240
+ "supportsQuery": true,
241
+ "corsEnabled": null,
242
+ "searchFields": [
243
+ { "name": "TXTACCOUNT", "label": "Account Number", "searchable": true },
244
+ { "name": "OwnershipTable_OWNER", "label": "Owner Name", "searchable": true },
245
+ { "name": "OwnershipTable_SITUS", "label": "Situs Address", "searchable": true },
246
+ { "name": "OwnershipTable_ADDRESS1", "label": "Owner Mailing Address", "searchable": false },
247
+ { "name": "OwnershipTable_CITY", "label": "Owner City", "searchable": false }
248
+ ],
249
+ "sampleQuery": "https://maps.summitcounty.org/arcgis/rest/services/Maps/ParcelQuery/MapServer/0/query?where=UPPER(OwnershipTable_OWNER)%20LIKE%20UPPER('%25SMITH%25')&outFields=TXTACCOUNT,OwnershipTable_OWNER,OwnershipTable_SITUS&returnGeometry=false&f=json&resultRecordCount=10",
250
+ "license": "public",
251
+ "licenseUrl": "https://data-summitgis.opendata.arcgis.com/",
252
+ "status": "live",
253
+ "lastVerified": "2026-05-30",
254
+ "verifiedBy": "manual"
255
+ }
256
+ ],
257
+ "contact": {
258
+ "department": "Summit County Fiscal Office / GIS",
259
+ "url": "https://data-summitgis.opendata.arcgis.com/",
260
+ "email": null
261
+ },
262
+ "notes": "Summit County, Ohio (Akron metro, county seat Akron, pop. ~540K) serves parcels via a ParcelQuery MapServer joining the county's OwnershipTable. In Ohio the county Fiscal Officer / Auditor is the statutory parcel-data custodian. Owner name is OwnershipTable_OWNER; owner mailing is OwnershipTable_ADDRESS1/ADDRESS2/CITY/STATE/ZIP; the site address is OwnershipTable_SITUS (with INCAREOF); identifiers are TXTACCOUNT, OwnershipTable_ACCOUNT, OwnershipTable_SERIAL and the integer Parcels_GISID. Field names carry the OwnershipTable_ join prefix; use them as-is in WHERE clauses. Owner search uses UPPER(OwnershipTable_OWNER) LIKE. Verified live 2026-05-30 (OwnershipTable_OWNER = STOUT PAUL DOUGLAS)."
263
+ },
264
+ {
265
+ "id": "oh-lucas",
266
+ "state": "OH",
267
+ "stateName": "Ohio",
268
+ "stateSlug": "ohio",
269
+ "county": "Lucas",
270
+ "countySlug": "lucas-county",
271
+ "countyFips": "39095",
272
+ "hasPublicRest": true,
273
+ "endpoints": [
274
+ {
275
+ "url": "https://lcaudgis.co.lucas.oh.us/gisaudserver/rest/services/Hosted/OSE_ParcelsAddresses_AREIS/FeatureServer/0",
276
+ "serviceType": "FeatureServer",
277
+ "layerIndex": 0,
278
+ "layerName": "Parcels Addresses (AREIS)",
279
+ "supportsQuery": true,
280
+ "corsEnabled": null,
281
+ "searchFields": [
282
+ { "name": "assessor_num", "label": "Assessor Number (8-digit)", "searchable": true },
283
+ { "name": "parid", "label": "Parcel ID (7-digit)", "searchable": true },
284
+ { "name": "owner", "label": "Owner Name", "searchable": true },
285
+ { "name": "property_address", "label": "Property Address", "searchable": true },
286
+ { "name": "mailing_address", "label": "Mailing Address", "searchable": false }
287
+ ],
288
+ "sampleQuery": "https://lcaudgis.co.lucas.oh.us/gisaudserver/rest/services/Hosted/OSE_ParcelsAddresses_AREIS/FeatureServer/0/query?where=UPPER(owner)%20LIKE%20UPPER('%25SMITH%25')&outFields=assessor_num,owner,property_address&returnGeometry=false&f=json&resultRecordCount=10",
289
+ "license": "public",
290
+ "licenseUrl": "https://auditor-lucascountyohio.hub.arcgis.com/",
291
+ "status": "live",
292
+ "lastVerified": "2026-05-30",
293
+ "verifiedBy": "manual"
294
+ }
295
+ ],
296
+ "contact": {
297
+ "department": "Lucas County Auditor (AREIS) GIS",
298
+ "url": "https://auditor-lucascountyohio.hub.arcgis.com/",
299
+ "email": null
300
+ },
301
+ "notes": "Lucas County, Ohio (Toledo metro, county seat Toledo, pop. ~430K) serves parcels from the Lucas County Auditor's AREIS (Assessment Real Estate Information System) via a hosted FeatureServer. Owner name is owner; the site address is property_address (full street/city/state/zip in one field); mailing is mailing_address; identifiers are assessor_num (8-digit) and parid (7-digit). The county's canonical Cadastre_Dataset FeatureServer (layer 8) carries only lot/block geometry with no owner field -- use OSE_ParcelsAddresses_AREIS for owner-name queries. Owner search uses UPPER(owner) LIKE. Verified live 2026-05-30 (owner = MARTRE TAMERA L & BILL)."
224
302
  }
225
303
  ]
226
304
  }
@@ -0,0 +1,49 @@
1
+ {
2
+ "stateSlug": "oklahoma",
3
+ "stateName": "Oklahoma",
4
+ "stateAbbrev": "OK",
5
+ "lastUpdated": "2026-06-05",
6
+ "counties": [
7
+ {
8
+ "id": "ok-oklahoma",
9
+ "state": "OK",
10
+ "stateName": "Oklahoma",
11
+ "stateSlug": "oklahoma",
12
+ "county": "Oklahoma",
13
+ "countySlug": "oklahoma-county",
14
+ "countyFips": "40109",
15
+ "hasPublicRest": true,
16
+ "endpoints": [
17
+ {
18
+ "url": "https://services8.arcgis.com/euhkr1dAJeQBIjV0/arcgis/rest/services/TaxParcelsPublics_view/FeatureServer/0",
19
+ "serviceType": "FeatureServer",
20
+ "layerIndex": 0,
21
+ "layerName": "TaxParcelPublic",
22
+ "supportsQuery": true,
23
+ "corsEnabled": null,
24
+ "searchFields": [
25
+ { "name": "accountno", "label": "Account Number (APN)", "searchable": true },
26
+ { "name": "name1", "label": "Owner Name (Primary)", "searchable": true },
27
+ { "name": "name2", "label": "Owner Name 2", "searchable": true },
28
+ { "name": "name3", "label": "Owner Name 3", "searchable": true },
29
+ { "name": "location", "label": "Property Address", "searchable": true },
30
+ { "name": "locationcity", "label": "Property City", "searchable": true },
31
+ { "name": "mailingaddress1", "label": "Mailing Address", "searchable": true }
32
+ ],
33
+ "sampleQuery": "https://services8.arcgis.com/euhkr1dAJeQBIjV0/arcgis/rest/services/TaxParcelsPublics_view/FeatureServer/0/query?where=UPPER(name1)+LIKE+UPPER('%25SMITH%25')&outFields=accountno,name1,name2,mailingaddress1,city,location,locationcity&returnGeometry=false&f=json&resultRecordCount=10",
34
+ "license": "public",
35
+ "licenseUrl": "https://ok-county-gis-hub-ok-co.hub.arcgis.com/",
36
+ "status": "live",
37
+ "lastVerified": "2026-06-05",
38
+ "verifiedBy": "automated"
39
+ }
40
+ ],
41
+ "contact": {
42
+ "department": "Oklahoma County GIS",
43
+ "url": "https://ok-county-gis-hub-ok-co.hub.arcgis.com/",
44
+ "email": null
45
+ },
46
+ "notes": "Oklahoma County is Oklahoma's most populous county (pop. 810,000; county seat Oklahoma City). The TaxParcelsPublics_view FeatureServer is hosted on ArcGIS Online (services8.arcgis.com, org ID euhkr1dAJeQBIjV0) and published via the OK County GIS Hub at ok-county-gis-hub-ok-co.hub.arcgis.com. Live query confirmed 336,922 parcels and owner-name exposure. Key fields: accountno (R-prefixed account number, e.g. 'R189878000'), name1/name2/name3 (up to three owners), mailingaddress1, city (mailing city), location (combined property address when populated, e.g. '17622 N INDIAN MERIDIAN RD OKLAHOMA CITY'), locationcity (property city), propertyid (numeric internal ID), taxdistrict, taxdistrictname, currentmarket, currentassessed, currenttaxable, landvalue, legal (legal description), subname, lot, block, section, township, range, acreage. Note: location and locationcity fields may be null for some rural parcels, when null, use legal/section/township/range for location. The former county ArcGIS Server at oklahomacounty.geocortex.com is no longer reachable (DNS fails as of 2026-06); the ArcGIS Online hosted view is the current canonical public layer. Oklahoma County Assessor portal at assessor.oklahomacounty.org provides the full record with appeals and valuation history."
47
+ }
48
+ ]
49
+ }