@urbankitstudio/atlas 0.1.0 → 0.4.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 (45) hide show
  1. package/README.md +16 -2
  2. package/data/alabama.json +57 -0
  3. package/data/alaska.json +51 -0
  4. package/data/arizona.json +94 -1
  5. package/data/california.json +349 -2
  6. package/data/colorado.json +95 -1
  7. package/data/connecticut.json +62 -0
  8. package/data/florida.json +304 -17
  9. package/data/georgia.json +85 -1
  10. package/data/idaho.json +54 -0
  11. package/data/illinois.json +5 -5
  12. package/data/index.json +404 -54
  13. package/data/indiana.json +132 -0
  14. package/data/iowa.json +51 -0
  15. package/data/kansas.json +49 -0
  16. package/data/kentucky.json +52 -0
  17. package/data/louisiana.json +102 -0
  18. package/data/maine.json +138 -0
  19. package/data/massachusetts.json +78 -0
  20. package/data/michigan.json +92 -0
  21. package/data/minnesota.json +44 -0
  22. package/data/mississippi.json +100 -0
  23. package/data/missouri.json +52 -0
  24. package/data/nebraska.json +137 -0
  25. package/data/nevada.json +53 -2
  26. package/data/new-hampshire.json +42 -0
  27. package/data/new-jersey.json +493 -0
  28. package/data/new-york.json +240 -1
  29. package/data/north-carolina.json +253 -2
  30. package/data/ohio.json +208 -1
  31. package/data/oregon.json +150 -0
  32. package/data/rhode-island.json +25 -0
  33. package/data/south-carolina.json +102 -0
  34. package/data/tennessee.json +153 -0
  35. package/data/texas.json +294 -4
  36. package/data/utah.json +193 -0
  37. package/data/vermont.json +59 -0
  38. package/data/virginia.json +1 -1
  39. package/data/washington.json +140 -2
  40. package/data/wisconsin.json +374 -0
  41. package/dist/index.cjs +6135 -783
  42. package/dist/index.d.cts +12 -1
  43. package/dist/index.d.ts +12 -1
  44. package/dist/index.js +6135 -784
  45. package/package.json +1 -1
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "new-york",
3
3
  "stateName": "New York",
4
4
  "stateAbbrev": "NY",
5
- "lastUpdated": "2026-05-11",
5
+ "lastUpdated": "2026-05-14",
6
6
  "counties": [
7
7
  {
8
8
  "id": "ny-new-york",
@@ -74,6 +74,245 @@
74
74
  "email": null
75
75
  },
76
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
+ },
78
+ {
79
+ "id": "ny-erie",
80
+ "state": "NY",
81
+ "stateName": "New York",
82
+ "stateSlug": "new-york",
83
+ "county": "Erie",
84
+ "countySlug": "erie-county",
85
+ "countyFips": "36029",
86
+ "hasPublicRest": true,
87
+ "endpoints": [
88
+ {
89
+ "url": "https://services1.arcgis.com/CgOSc11uky3egK6O/arcgis/rest/services/Erie_County_Parcels/FeatureServer/0",
90
+ "serviceType": "FeatureServer",
91
+ "layerIndex": 0,
92
+ "layerName": "Erie_County_Parcels",
93
+ "supportsQuery": true,
94
+ "corsEnabled": null,
95
+ "searchFields": [
96
+ { "name": "PIN", "label": "Parcel Identification Number", "searchable": true },
97
+ { "name": "SBL", "label": "Section-Block-Lot (SBL) Key", "searchable": true },
98
+ { "name": "OWNER1", "label": "Owner Name (Primary)", "searchable": true },
99
+ { "name": "OWNER2", "label": "Owner Name (Secondary)", "searchable": true },
100
+ { "name": "MAILAD1", "label": "Mailing Address Line 1", "searchable": true },
101
+ { "name": "MAILAD2", "label": "Mailing Address Line 2", "searchable": true },
102
+ { "name": "STREET", "label": "Property Street Address", "searchable": true },
103
+ { "name": "CITY", "label": "Property City", "searchable": false },
104
+ { "name": "ZIP", "label": "ZIP Code", "searchable": false },
105
+ { "name": "ZIP4", "label": "ZIP+4", "searchable": false },
106
+ { "name": "CLASS", "label": "Property Class Code", "searchable": false },
107
+ { "name": "PROP_TYPE", "label": "Property Type", "searchable": false },
108
+ { "name": "PROP_DESC", "label": "Property Description", "searchable": false },
109
+ { "name": "SCHOOL", "label": "School District Name", "searchable": false },
110
+ { "name": "SCHL_DIST", "label": "School District Code", "searchable": false }
111
+ ],
112
+ "sampleQuery": "https://services1.arcgis.com/CgOSc11uky3egK6O/arcgis/rest/services/Erie_County_Parcels/FeatureServer/0/query?where=UPPER(OWNER1)+LIKE+UPPER('%25SMITH%25')&outFields=PIN,SBL,OWNER1,OWNER2,STREET,CITY,ZIP&returnGeometry=false&f=json&resultRecordCount=10",
113
+ "license": "public",
114
+ "licenseUrl": "https://www.erie.gov/environment/gis",
115
+ "status": "live",
116
+ "lastVerified": "2026-05-15",
117
+ "verifiedBy": "manual"
118
+ }
119
+ ],
120
+ "contact": {
121
+ "department": "Erie County Department of Environment and Planning — GIS Division",
122
+ "url": "https://www.erie.gov/environment/gis",
123
+ "email": null
124
+ },
125
+ "notes": "54 fields confirmed. Includes PIN (21-char unique parcel ID), SBL (section-block-lot key), OWNER1, OWNER2, mailing address (MAILAD1/MAILAD2), property address (STREET, CITY, ZIP, ZIP4), property class (CLASS), property type/description, school district (SCHOOL, SCHL_DIST), SWIS code, lot dimensions (FRONT, DEPTH), acreage (ASSESSACRE, CALCACRES). Owner query tested and confirmed: UPPER(OWNER1) LIKE UPPER('%SMITH%') returns real residential parcels. This is the 2023 vintage Erie County parcel dataset. Erie County, NY is the Buffalo metropolitan area (FIPS 36029)."
126
+ },
127
+ {
128
+ "id": "ny-monroe",
129
+ "state": "NY",
130
+ "stateName": "New York",
131
+ "stateSlug": "new-york",
132
+ "county": "Monroe",
133
+ "countySlug": "monroe-county",
134
+ "countyFips": "36055",
135
+ "hasPublicRest": true,
136
+ "endpoints": [
137
+ {
138
+ "url": "https://services1.arcgis.com/yisUfwZZ4fyubK3R/arcgis/rest/services/Monroe_County_Parcels/FeatureServer/0",
139
+ "serviceType": "FeatureServer",
140
+ "layerIndex": 0,
141
+ "layerName": "BASE_MC_Parcels",
142
+ "supportsQuery": true,
143
+ "corsEnabled": null,
144
+ "searchFields": [
145
+ { "name": "COUNTYSBL", "label": "County SBL Parcel Identifier", "searchable": true },
146
+ { "name": "PRINTKEY", "label": "Print Key", "searchable": true },
147
+ { "name": "OWNERNAME1", "label": "Owner Name (Primary)", "searchable": true },
148
+ { "name": "OWNERNAME2", "label": "Owner Name (Secondary)", "searchable": true },
149
+ { "name": "PARCELADDRESS", "label": "Property Address", "searchable": true },
150
+ { "name": "PARCELADDRESSCITY", "label": "Property City", "searchable": true },
151
+ { "name": "PARCELADDRESSZIPCODE", "label": "ZIP Code", "searchable": false },
152
+ { "name": "PROPERTYCLASS", "label": "Property Class Code", "searchable": false },
153
+ { "name": "PROPERTYCLASSDESCRIPTION", "label": "Property Class Description", "searchable": false },
154
+ { "name": "TOTALASSESSEDVALUE", "label": "Total Assessed Value", "searchable": false },
155
+ { "name": "LANDASSESSEDVALUE", "label": "Land Assessed Value", "searchable": false },
156
+ { "name": "YEARBUILT", "label": "Year Built", "searchable": false },
157
+ { "name": "SQUAREFEETLIVINGAREA", "label": "Square Feet Living Area", "searchable": false },
158
+ { "name": "SCHOOLDISTRICTNAME", "label": "School District", "searchable": false }
159
+ ],
160
+ "sampleQuery": "https://services1.arcgis.com/yisUfwZZ4fyubK3R/arcgis/rest/services/Monroe_County_Parcels/FeatureServer/0/query?where=UPPER(OWNERNAME1)+LIKE+UPPER('%25SMITH%25')&outFields=COUNTYSBL,OWNERNAME1,OWNERNAME2,PARCELADDRESS,PARCELADDRESSCITY,PARCELADDRESSZIPCODE&returnGeometry=false&f=json&resultRecordCount=10",
161
+ "license": "public",
162
+ "licenseUrl": "https://www.monroecounty.gov/planning-gis",
163
+ "status": "live",
164
+ "lastVerified": "2026-05-15",
165
+ "verifiedBy": "manual"
166
+ }
167
+ ],
168
+ "contact": {
169
+ "department": "Monroe County Planning Department GIS",
170
+ "url": "https://www.monroecounty.gov/planning-gis",
171
+ "email": null
172
+ },
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
+ },
175
+ {
176
+ "id": "ny-onondaga",
177
+ "state": "NY",
178
+ "stateName": "New York",
179
+ "stateSlug": "new-york",
180
+ "county": "Onondaga",
181
+ "countySlug": "onondaga-county",
182
+ "countyFips": "36067",
183
+ "hasPublicRest": true,
184
+ "endpoints": [
185
+ {
186
+ "url": "https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcels_Public/MapServer/1",
187
+ "serviceType": "MapServer",
188
+ "layerIndex": 1,
189
+ "layerName": "NYS_Tax_Parcels_Public",
190
+ "supportsQuery": true,
191
+ "corsEnabled": null,
192
+ "searchFields": [
193
+ { "name": "COUNTY_NAME", "label": "County Name (e.g. Onondaga)", "searchable": true },
194
+ { "name": "PRIMARY_OWNER", "label": "Primary Owner Name", "searchable": true },
195
+ { "name": "PARCEL_ADDR", "label": "Parcel Address", "searchable": true },
196
+ { "name": "PRINT_KEY", "label": "Print Key", "searchable": true },
197
+ { "name": "SWIS_SBL_ID", "label": "SWIS-SBL Parcel Identifier", "searchable": true },
198
+ { "name": "MAIL_ADDR", "label": "Mailing Address", "searchable": true },
199
+ { "name": "MAIL_CITY", "label": "Mailing City", "searchable": false },
200
+ { "name": "TOTAL_AV", "label": "Total Assessed Value", "searchable": false },
201
+ { "name": "PROP_CLASS", "label": "Property Class Code", "searchable": false },
202
+ { "name": "YR_BLT", "label": "Year Built", "searchable": false }
203
+ ],
204
+ "sampleQuery": "https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcels_Public/MapServer/1/query?where=COUNTY_NAME%3D'Onondaga'+AND+UPPER(PRIMARY_OWNER)+LIKE+UPPER('%25SMITH%25')&outFields=COUNTY_NAME,PRIMARY_OWNER,PARCEL_ADDR,SWIS_SBL_ID&returnGeometry=false&f=json&resultRecordCount=10",
205
+ "license": "public",
206
+ "licenseUrl": "https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcels_Public/MapServer",
207
+ "status": "live",
208
+ "lastVerified": "2026-05-15",
209
+ "verifiedBy": "manual"
210
+ }
211
+ ],
212
+ "contact": {
213
+ "department": "NYS Office of Information Technology Services GIS (statewide layer)",
214
+ "url": "https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcels_Public/MapServer",
215
+ "email": null
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."
218
+ }
219
+ ,
220
+ {
221
+ "id": "ny-suffolk",
222
+ "state": "NY",
223
+ "stateName": "New York",
224
+ "stateSlug": "new-york",
225
+ "county": "Suffolk",
226
+ "countySlug": "suffolk-county",
227
+ "countyFips": "36103",
228
+ "hasPublicRest": true,
229
+ "endpoints": [
230
+ {
231
+ "url": "https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcels_Public/MapServer/1",
232
+ "serviceType": "MapServer",
233
+ "layerIndex": 1,
234
+ "layerName": "NYS_Tax_Parcels_Public",
235
+ "supportsQuery": true,
236
+ "corsEnabled": null,
237
+ "searchFields": [
238
+ { "name": "COUNTY_NAME", "label": "County Name — filter with 'Suffolk'", "searchable": true },
239
+ { "name": "PRIMARY_OWNER", "label": "Primary Owner Name", "searchable": true },
240
+ { "name": "ADD_OWNER", "label": "Additional Owner Name", "searchable": true },
241
+ { "name": "PARCEL_ADDR", "label": "Parcel Address", "searchable": true },
242
+ { "name": "SWIS_SBL_ID", "label": "SWIS-SBL Parcel Identifier", "searchable": true },
243
+ { "name": "PRINT_KEY", "label": "Print Key (tax map reference)", "searchable": true },
244
+ { "name": "MUNI_NAME", "label": "Municipality Name", "searchable": false },
245
+ { "name": "MAIL_ADDR", "label": "Mailing Address", "searchable": true },
246
+ { "name": "MAIL_ZIP", "label": "Mailing ZIP", "searchable": false },
247
+ { "name": "PROP_CLASS", "label": "Property Class Code", "searchable": false },
248
+ { "name": "TOTAL_AV", "label": "Total Assessed Value", "searchable": false },
249
+ { "name": "FULL_MARKET_VAL", "label": "Full Market Value", "searchable": false },
250
+ { "name": "YR_BLT", "label": "Year Built", "searchable": false },
251
+ { "name": "ACRES", "label": "Acres", "searchable": false },
252
+ { "name": "NBR_BEDROOMS", "label": "Bedrooms", "searchable": false },
253
+ { "name": "SCHOOL_NAME", "label": "School District Name", "searchable": false }
254
+ ],
255
+ "sampleQuery": "https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcels_Public/MapServer/1/query?where=COUNTY_NAME%3D'Suffolk'+AND+UPPER(PRIMARY_OWNER)+LIKE+UPPER('%25SMITH%25')&outFields=COUNTY_NAME,PRIMARY_OWNER,PARCEL_ADDR,SWIS_SBL_ID,MUNI_NAME,TOTAL_AV&returnGeometry=false&f=json&resultRecordCount=10",
256
+ "license": "public",
257
+ "licenseUrl": "https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcels_Public/MapServer",
258
+ "status": "live",
259
+ "lastVerified": "2026-05-14",
260
+ "verifiedBy": "automated"
261
+ }
262
+ ],
263
+ "contact": {
264
+ "department": "NYS Office of Information Technology Services (ITS) GIS Program Office",
265
+ "url": "https://www.its.ny.gov/gis",
266
+ "email": null
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."
269
+ },
270
+ {
271
+ "id": "ny-westchester",
272
+ "state": "NY",
273
+ "stateName": "New York",
274
+ "stateSlug": "new-york",
275
+ "county": "Westchester",
276
+ "countySlug": "westchester-county",
277
+ "countyFips": "36119",
278
+ "hasPublicRest": true,
279
+ "endpoints": [
280
+ {
281
+ "url": "https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcels_Public/MapServer/1",
282
+ "serviceType": "MapServer",
283
+ "layerIndex": 1,
284
+ "layerName": "NYS_Tax_Parcels_Public",
285
+ "supportsQuery": true,
286
+ "corsEnabled": null,
287
+ "searchFields": [
288
+ { "name": "COUNTY_NAME", "label": "County Name — filter with 'Westchester'", "searchable": true },
289
+ { "name": "PRIMARY_OWNER", "label": "Primary Owner Name", "searchable": true },
290
+ { "name": "ADD_OWNER", "label": "Additional Owner Name", "searchable": true },
291
+ { "name": "PARCEL_ADDR", "label": "Parcel Address", "searchable": true },
292
+ { "name": "SWIS_SBL_ID", "label": "SWIS-SBL Parcel Identifier", "searchable": true },
293
+ { "name": "PRINT_KEY", "label": "Print Key (tax map reference)", "searchable": true },
294
+ { "name": "MUNI_NAME", "label": "Municipality Name", "searchable": false },
295
+ { "name": "MAIL_ADDR", "label": "Mailing Address", "searchable": true },
296
+ { "name": "PROP_CLASS", "label": "Property Class Code", "searchable": false },
297
+ { "name": "TOTAL_AV", "label": "Total Assessed Value", "searchable": false },
298
+ { "name": "FULL_MARKET_VAL", "label": "Full Market Value", "searchable": false },
299
+ { "name": "YR_BLT", "label": "Year Built", "searchable": false },
300
+ { "name": "SCHOOL_NAME", "label": "School District Name", "searchable": false }
301
+ ],
302
+ "sampleQuery": "https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcels_Public/MapServer/1/query?where=COUNTY_NAME%3D'Westchester'+AND+UPPER(PRIMARY_OWNER)+LIKE+UPPER('%25SMITH%25')&outFields=COUNTY_NAME,PRIMARY_OWNER,PARCEL_ADDR,SWIS_SBL_ID,MUNI_NAME,TOTAL_AV&returnGeometry=false&f=json&resultRecordCount=10",
303
+ "license": "public",
304
+ "licenseUrl": "https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcels_Public/MapServer",
305
+ "status": "live",
306
+ "lastVerified": "2026-05-14",
307
+ "verifiedBy": "automated"
308
+ }
309
+ ],
310
+ "contact": {
311
+ "department": "NYS Office of Information Technology Services (ITS) GIS Program Office",
312
+ "url": "https://www.its.ny.gov/gis",
313
+ "email": null
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."
77
316
  }
78
317
  ]
79
318
  }
@@ -2,7 +2,7 @@
2
2
  "stateSlug": "north-carolina",
3
3
  "stateName": "North Carolina",
4
4
  "stateAbbrev": "NC",
5
- "lastUpdated": "2026-05-11",
5
+ "lastUpdated": "2026-05-15",
6
6
  "counties": [
7
7
  {
8
8
  "id": "nc-wake",
@@ -46,7 +46,258 @@
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
+ },
51
+ {
52
+ "id": "nc-mecklenburg",
53
+ "state": "NC",
54
+ "stateName": "North Carolina",
55
+ "stateSlug": "north-carolina",
56
+ "county": "Mecklenburg",
57
+ "countySlug": "mecklenburg-county",
58
+ "countyFips": "37119",
59
+ "hasPublicRest": true,
60
+ "endpoints": [
61
+ {
62
+ "url": "https://gis.charlottenc.gov/arcgis/rest/services/CountyData/Parcels/MapServer/0",
63
+ "serviceType": "MapServer",
64
+ "layerIndex": 0,
65
+ "layerName": "Parcels",
66
+ "supportsQuery": true,
67
+ "corsEnabled": null,
68
+ "searchFields": [
69
+ { "name": "NC_PIN", "label": "NC Parcel Identification Number", "searchable": true },
70
+ { "name": "PID", "label": "Parcel ID", "searchable": true },
71
+ { "name": "MAP_BOOK", "label": "Map Book", "searchable": false },
72
+ { "name": "MAP_PAGE", "label": "Map Page", "searchable": false },
73
+ { "name": "LOT_NUM", "label": "Lot Number", "searchable": false }
74
+ ],
75
+ "sampleQuery": "https://gis.charlottenc.gov/arcgis/rest/services/CountyData/Parcels/MapServer/0/query?where=NC_PIN%3D'11906103'&outFields=NC_PIN,PID,MAP_BOOK,MAP_PAGE&returnGeometry=false&f=json",
76
+ "license": "public",
77
+ "licenseUrl": "https://gis.mecknc.gov/data-center",
78
+ "status": "live",
79
+ "lastVerified": "2026-05-15",
80
+ "verifiedBy": "manual"
81
+ }
82
+ ],
83
+ "contact": {
84
+ "department": "Mecklenburg County GIS — Geospatial Information Services (Charlotte-Mecklenburg joint GIS)",
85
+ "url": "https://gis.mecknc.gov/",
86
+ "email": null
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."
89
+ },
90
+ {
91
+ "id": "nc-forsyth",
92
+ "state": "NC",
93
+ "stateName": "North Carolina",
94
+ "stateSlug": "north-carolina",
95
+ "county": "Forsyth",
96
+ "countySlug": "forsyth-county",
97
+ "countyFips": "37067",
98
+ "hasPublicRest": true,
99
+ "endpoints": [
100
+ {
101
+ "url": "https://services.nconemap.gov/secure/rest/services/NC1Map_Parcels/MapServer/1",
102
+ "serviceType": "MapServer",
103
+ "layerIndex": 1,
104
+ "layerName": "Parcels (polys)",
105
+ "supportsQuery": true,
106
+ "corsEnabled": null,
107
+ "searchFields": [
108
+ { "name": "parno", "label": "Parcel Number", "searchable": true },
109
+ { "name": "ownname", "label": "Owner Name", "searchable": true },
110
+ { "name": "ownname2", "label": "Owner Name 2", "searchable": false },
111
+ { "name": "siteadd", "label": "Site Address", "searchable": true },
112
+ { "name": "scity", "label": "Site City", "searchable": false },
113
+ { "name": "mailadd", "label": "Mailing Address", "searchable": false },
114
+ { "name": "mcity", "label": "Mailing City", "searchable": false },
115
+ { "name": "mstate", "label": "Mailing State", "searchable": false },
116
+ { "name": "mzip", "label": "Mailing ZIP", "searchable": false },
117
+ { "name": "cntyfips", "label": "County FIPS (3-digit, '067' = Forsyth)", "searchable": true },
118
+ { "name": "cntyname", "label": "County Name", "searchable": false }
119
+ ],
120
+ "sampleQuery": "https://services.nconemap.gov/secure/rest/services/NC1Map_Parcels/MapServer/1/query?where=cntyfips%3D'067'+AND+UPPER(ownname)+LIKE+UPPER('%25SMITH%25')&outFields=parno,ownname,siteadd,scity,mailadd,cntyfips&returnGeometry=false&f=json&resultRecordCount=10",
121
+ "license": "public",
122
+ "licenseUrl": "https://www.nconemap.gov/",
123
+ "status": "live",
124
+ "lastVerified": "2026-05-15",
125
+ "verifiedBy": "manual"
126
+ }
127
+ ],
128
+ "contact": {
129
+ "department": "NC OneMap / NC Geographic Information Coordinating Council (GICC) — statewide parcel layer",
130
+ "url": "https://www.nconemap.gov/pages/parcels",
131
+ "email": null
132
+ },
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
+ },
135
+ {
136
+ "id": "nc-guilford",
137
+ "state": "NC",
138
+ "stateName": "North Carolina",
139
+ "stateSlug": "north-carolina",
140
+ "county": "Guilford",
141
+ "countySlug": "guilford-county",
142
+ "countyFips": "37081",
143
+ "hasPublicRest": true,
144
+ "endpoints": [
145
+ {
146
+ "url": "https://services.nconemap.gov/secure/rest/services/NC1Map_Parcels/MapServer/1",
147
+ "serviceType": "MapServer",
148
+ "layerIndex": 1,
149
+ "layerName": "Parcels (polys)",
150
+ "supportsQuery": true,
151
+ "corsEnabled": null,
152
+ "searchFields": [
153
+ { "name": "parno", "label": "Parcel Number", "searchable": true },
154
+ { "name": "ownname", "label": "Owner Name", "searchable": true },
155
+ { "name": "siteadd", "label": "Site Address", "searchable": true },
156
+ { "name": "scity", "label": "Site City", "searchable": false },
157
+ { "name": "mailadd", "label": "Mailing Address", "searchable": false },
158
+ { "name": "cntyfips", "label": "County FIPS (3-digit, '081' = Guilford)", "searchable": true }
159
+ ],
160
+ "sampleQuery": "https://services.nconemap.gov/secure/rest/services/NC1Map_Parcels/MapServer/1/query?where=cntyfips%3D'081'+AND+UPPER(ownname)+LIKE+UPPER('%25SMITH%25')&outFields=parno,ownname,siteadd,scity,mailadd,cntyfips&returnGeometry=false&f=json&resultRecordCount=10",
161
+ "license": "public",
162
+ "licenseUrl": "https://www.nconemap.gov/",
163
+ "status": "live",
164
+ "lastVerified": "2026-05-15",
165
+ "verifiedBy": "manual"
166
+ }
167
+ ],
168
+ "contact": {
169
+ "department": "NC OneMap / NC Geographic Information Coordinating Council (GICC) — statewide parcel layer",
170
+ "url": "https://www.nconemap.gov/pages/parcels",
171
+ "email": null
172
+ },
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
+ },
175
+ {
176
+ "id": "nc-durham",
177
+ "state": "NC",
178
+ "stateName": "North Carolina",
179
+ "stateSlug": "north-carolina",
180
+ "county": "Durham",
181
+ "countySlug": "durham-county",
182
+ "countyFips": "37063",
183
+ "hasPublicRest": true,
184
+ "endpoints": [
185
+ {
186
+ "url": "https://webgis.durhamnc.gov/server/rest/services/PublicServices/Property/MapServer/4",
187
+ "serviceType": "MapServer",
188
+ "layerIndex": 4,
189
+ "layerName": "Parcels",
190
+ "supportsQuery": true,
191
+ "corsEnabled": null,
192
+ "searchFields": [
193
+ { "name": "PIN", "label": "Parcel Identification Number", "searchable": true },
194
+ { "name": "REID", "label": "Real Estate ID", "searchable": true },
195
+ { "name": "PROPERTY_OWNER", "label": "Property Owner Name", "searchable": true },
196
+ { "name": "LOCATION_ADDR", "label": "Site Address", "searchable": true },
197
+ { "name": "PHYADDR_CITY", "label": "Site City", "searchable": false },
198
+ { "name": "OWNER_MAIL_1", "label": "Owner Mailing Address 1", "searchable": false },
199
+ { "name": "OWNER_MAIL_CITY", "label": "Owner Mailing City", "searchable": false },
200
+ { "name": "OWNER_MAIL_STATE", "label": "Owner Mailing State", "searchable": false },
201
+ { "name": "TOTAL_PROP_VALUE", "label": "Total Property Value", "searchable": false },
202
+ { "name": "DEED_DATE", "label": "Deed Date", "searchable": false }
203
+ ],
204
+ "sampleQuery": "https://webgis.durhamnc.gov/server/rest/services/PublicServices/Property/MapServer/4/query?where=UPPER(PROPERTY_OWNER)+LIKE+UPPER('%25SMITH%25')&outFields=PIN,PROPERTY_OWNER,LOCATION_ADDR,PHYADDR_CITY,OWNER_MAIL_1&returnGeometry=false&f=json&resultRecordCount=10",
205
+ "license": "public",
206
+ "licenseUrl": "https://www.durhamnc.gov/1455/Interactive-Maps",
207
+ "status": "live",
208
+ "lastVerified": "2026-05-15",
209
+ "verifiedBy": "manual"
210
+ }
211
+ ],
212
+ "contact": {
213
+ "department": "City-County GIS (Durham City + Durham County joint)",
214
+ "url": "https://live-durhamnc.opendata.arcgis.com/",
215
+ "email": null
216
+ },
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
+ },
219
+ {
220
+ "id": "nc-cumberland",
221
+ "state": "NC",
222
+ "stateName": "North Carolina",
223
+ "stateSlug": "north-carolina",
224
+ "county": "Cumberland",
225
+ "countySlug": "cumberland-county",
226
+ "countyFips": "37051",
227
+ "hasPublicRest": true,
228
+ "endpoints": [
229
+ {
230
+ "url": "https://services.nconemap.gov/secure/rest/services/NC1Map_Parcels/MapServer/1",
231
+ "serviceType": "MapServer",
232
+ "layerIndex": 1,
233
+ "layerName": "Parcels (polys)",
234
+ "supportsQuery": true,
235
+ "corsEnabled": null,
236
+ "searchFields": [
237
+ { "name": "parno", "label": "Parcel Number", "searchable": true },
238
+ { "name": "ownname", "label": "Owner Name", "searchable": true },
239
+ { "name": "siteadd", "label": "Site Address", "searchable": true },
240
+ { "name": "scity", "label": "Site City", "searchable": false },
241
+ { "name": "mailadd", "label": "Mailing Address", "searchable": false },
242
+ { "name": "cntyfips", "label": "County FIPS (3-digit, '051' = Cumberland)", "searchable": true }
243
+ ],
244
+ "sampleQuery": "https://services.nconemap.gov/secure/rest/services/NC1Map_Parcels/MapServer/1/query?where=cntyfips%3D'051'+AND+UPPER(ownname)+LIKE+UPPER('%25SMITH%25')&outFields=parno,ownname,siteadd,scity,mailadd,cntyfips&returnGeometry=false&f=json&resultRecordCount=10",
245
+ "license": "public",
246
+ "licenseUrl": "https://www.nconemap.gov/",
247
+ "status": "live",
248
+ "lastVerified": "2026-05-15",
249
+ "verifiedBy": "manual"
250
+ }
251
+ ],
252
+ "contact": {
253
+ "department": "NC OneMap / NC Geographic Information Coordinating Council (GICC) — statewide parcel layer",
254
+ "url": "https://www.nconemap.gov/pages/parcels",
255
+ "email": null
256
+ },
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
+ },
259
+ {
260
+ "id": "nc-buncombe",
261
+ "state": "NC",
262
+ "stateName": "North Carolina",
263
+ "stateSlug": "north-carolina",
264
+ "county": "Buncombe",
265
+ "countySlug": "buncombe-county",
266
+ "countyFips": "37021",
267
+ "hasPublicRest": true,
268
+ "endpoints": [
269
+ {
270
+ "url": "https://gis.buncombecounty.org/arcgis/rest/services/property_bc_dis/MapServer/1",
271
+ "serviceType": "MapServer",
272
+ "layerIndex": 1,
273
+ "layerName": "Property",
274
+ "supportsQuery": true,
275
+ "corsEnabled": null,
276
+ "searchFields": [
277
+ { "name": "pinnum", "label": "PIN Number (Parcel ID)", "searchable": true },
278
+ { "name": "pin", "label": "PIN", "searchable": true },
279
+ { "name": "owner", "label": "Owner Name", "searchable": true },
280
+ { "name": "HouseNumber", "label": "House Number", "searchable": false },
281
+ { "name": "NumberSuffix", "label": "Number Suffix", "searchable": false },
282
+ { "name": "TaxYear", "label": "Tax Year", "searchable": false },
283
+ { "name": "DeedBook", "label": "Deed Book", "searchable": false },
284
+ { "name": "DeedPage", "label": "Deed Page", "searchable": false },
285
+ { "name": "SubName", "label": "Subdivision Name", "searchable": false }
286
+ ],
287
+ "sampleQuery": "https://gis.buncombecounty.org/arcgis/rest/services/property_bc_dis/MapServer/1/query?where=UPPER(owner)+LIKE+UPPER('%25SMITH%25')&outFields=pinnum,owner,HouseNumber,NumberSuffix&returnGeometry=false&f=json&resultRecordCount=10",
288
+ "license": "public",
289
+ "licenseUrl": "https://www.buncombecounty.org/governing/depts/gis/",
290
+ "status": "live",
291
+ "lastVerified": "2026-05-15",
292
+ "verifiedBy": "manual"
293
+ }
294
+ ],
295
+ "contact": {
296
+ "department": "Buncombe County GIS Department",
297
+ "url": "https://www.buncombecounty.org/governing/depts/gis/",
298
+ "email": null
299
+ },
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."
50
301
  }
51
302
  ]
52
303
  }