Surry County, NC Parcels & GIS Data

Surry County, NC parcel data: 44,575 property records with owner names, assessed values, land use, acreage, and addresses. Preview and download.

Land Records publishes Surry County, North Carolina parcel data covering 44,575 property records.

This page documents parcel-level coverage for Surry County, North Carolina. Each parcel record carries its boundary polygon (GIS geometry) along with attributes such as the parcel ID/APN, owner name and mailing address, situs (property) address, assessed land and improvement values, acreage, land-use and zoning codes, year built, and most recent sale price and date. Exact fill rates for Surry County are listed in the attribute-coverage table below. Preview the data in the interactive explorer, or download the complete Surry County property dataset.

Surry County is a county located in the U.S. state of North Carolina. As of the 2020 census, the population was 71,359. Its county seat is Dobson, and its largest community is Mount Airy.

FIPS 37171

Official county website: http://www.co.surry.nc.us

The FIPS code for Surry County is 37171.

ForsythYadkinStokesAlleghanyWilkesCarrollGraysonSurry
Hosted Web API$200/mo

Attribute coverage

Surry County contains 44,575 parcels in the current dataset. Column coverage is the percentage of those parcels for which the attribute is populated (non-NULL). For the LBCS columns, only real classifications count: the to-be-determined and not-applicable placeholder codes are excluded.

ColumnCoverageRecords populated
lrid100%44,575
parcelid100%44,575
parcelid298.7%43,987
ogparcelid100%44,575
ogparcelid298.5%43,907
parentid<0.1%0
stackid<0.1%0
geoid100%44,575
statefp100%44,575
countyfp100%44,575
countyname100%44,575
cousubfp100%44,575
cousubname100%44,575
tractce100%44,575
tractname100%44,575
taxacctnum<0.1%0
taxyear100%44,575
taxdistrict99.1%44,157
usecode97.3%43,390
usedesc99.6%44,415
zoningcode99.3%44,257
zoningdesc99.3%44,257
numbldgs100%44,575
numunits76.1%33,912
yearbuilt82.7%36,866
numfloors82.7%36,852
bldgsqft<0.1%0
bedrooms<0.1%0
halfbaths<0.1%0
fullbaths<0.1%0
imprvalue100%44,575
landvalue100%44,575
agvalue84.2%37,518
totalvalue100%44,575
taxacres99.1%44,181
calcarea100%44,575
saleamt<0.1%0
saledate0.6%254
ownertype100%44,566
ownername100%44,566
owneraddr99.8%44,503
ownercity99.2%44,215
ownerstate99.2%44,211
ownerzip99.2%44,212
parceladdr100%44,564
parcelcity0.8%338
parcelstate100%44,575
parcelzip100%44,575
legaldesc34.2%15,239
township<0.1%0
section<0.1%0
qtrsection<0.1%0
range<0.1%0
plssdesc<0.1%0
book98.3%43,803
page98.3%43,803
block<0.1%0
lot<0.1%0
parceltype0.2%90
accesstype0.5%210
iucnclass0.4%174
placename5.0%2,233
placetype4.9%2,202
firmid100%44,560
firmdate100%44,560
fldzone100%44,560
zonesubty98.9%44,099
staticbfe<0.1%0
elevmin99.2%44,208
elevmax99.2%44,208
elevavg99.2%44,208
fireplaces<0.1%0
heating<0.1%0
heatfuel<0.1%0
cooling<0.1%0
foundation<0.1%0
roofcover<0.1%0
siding<0.1%0
bldgtype<0.1%0
naicscode10.2%4,530
frsid<0.1%0
dfrurl<0.1%0
caapermit<0.1%0
cwapermit<0.1%0
rcrapermit<0.1%0
updated100%44,575
centroidx100%44,575
centroidy100%44,575
surfpointx100%44,575
surfpointy100%44,575
geom100%44,575
extras100%44,575
ownerlist86.1%38,376
placefp27.6%12,317
zoningurl99.3%44,257
lbcsactivity99.2%44,198
lbcsfunction98.2%43,757
lbcstype99.2%44,223
lbcscharacter99.8%44,484
lbcsownership100%44,568
sourceurl<0.1%0

Schema mapping

How source columns from the acquired Surry County GIS layers map into the harmonized entity schemas and assemble into the published parcel table, alongside supplemented fields (elevation, flood zone) and deterministic columns.

Schema mapping — Surry County, North Carolina (37171) 2 entities · most recent acquisition per entity · generated 2026-10-10 direct column transformed (expression) geometry extras json supplemented determined ALL ENTITIES → FINAL PARCEL SCHEMA Harmonized entity columns assemble into publish.parcel_layer — matched by column name. Supplemented fields show their fill rate in this county. SOURCE COLUMNS HARMONIZED ENTITIES PUBLISH.PARCEL_LAYER PARCEL parno altparno parusecode parusecd2 parusedesc parusedsc2 struct structyear improvval landval parval recareatx recareano gisacres saledate ownname ownfrst ownlast ownname2 mailadd maddpref maddrno maddstname maddstr maddstsuf maddsttyp mcity mstate mzip siteadd saddpref saddno saddstname saddstr saddstsuf saddsttyp scity sstate stname szip legdecfull revisedate geom cntyname munit sunit multistruc saledatetx parvaltype owntype sourceref sourcedate sourcedatx subdivisio nparno cntyfips stfips stcntyfips gnisid sourceagnt transfdate revdatetx reviseyear mapref subowntype subsurfown structno presentval st_area_shape_ st_perimeter_shape_ parcelid parcelid2 usecode usedesc numbldgs yearbuilt imprvalue landvalue totalvalue taxacres saledate ownername owneraddr ownercity ownerstate ownerzip parceladdr parcelcity parcelstate parcelzip legaldesc updated geom taxdistrict extras ZONING zoning zoning_name geom 2 cols ⇢ zoningcode zoningdesc geom extras determined · ground truth 100% lrid 100% geoid 100% statefp 100% countyfp 100% countyname 100% cousubfp 100% cousubname 100% tractce 100% tractname 100% taxyear geom · derived from geometry geom dem.us_1m · USGS 1m DEM 99.2% elevmin 99.2% elevmax 99.2% elevavg s_fld_haz_ar · FEMA NFHL 100% fldzone 98.9% zonesubty 100% firmdate 100% firmid supplemented · derived / other pipelines 76.1% numunits 82.7% numfloors 84.2% agvalue 98.3% book 98.3% page 86.1% ownerlist 99.3% zoningurl 99.2% lbcsactivity 98.2% lbcsfunction 99.2% lbcstype 100% lbcscharacter 100% lbcsownership lrid parcelid parcelid2 ogparcelid ogparcelid2 geoid statefp countyfp countyname cousubfp cousubname tractce tractname taxyear taxdistrict usecode usedesc zoningcode zoningdesc numbldgs numunits yearbuilt numfloors imprvalue landvalue agvalue totalvalue taxacres calcarea saledate ownertype ownername owneraddr ownercity ownerstate ownerzip parceladdr parcelcity parcelstate parcelzip legaldesc book page firmid firmdate fldzone zonesubty elevmin elevmax elevavg updated centroidx centroidy surfpointx surfpointy geom extras ownerlist zoningurl lbcsactivity lbcsfunction lbcstype lbcscharacter lbcsownership publish.parcel_layer columns not fed by these sources (37) — empty or below 50% fill in this county parentid, stackid, taxacctnum, bldgsqft, bedrooms, halfbaths, fullbaths, saleamt, township, section, qtrsection, range, plssdesc, block, lot parceltype, accesstype, iucnclass, placename, placetype, staticbfe, fireplaces, heating, heatfuel, cooling, foundation, roofcover, siding bldgtype, naicscode, frsid, dfrurl, caapermit, cwapermit, rcrapermit, placefp, sourceurl PARCEL 25 mapped · 21 transformed · 30 unmapped (NULL) SOURCE COLUMNS HARMONIZED → PARCEL parno altparno parusecode parusecd2 parusedesc parusedsc2 struct structyear improvval landval parval recareatx recareano gisacres saledate ownname ownfrst ownlast ownname2 mailadd maddpref maddrno maddstname maddstr maddstsuf maddsttyp mcity mstate mzip siteadd saddpref saddno saddstname saddstr saddstsuf saddsttyp scity sstate stname szip legdecfull revisedate geom cntyname munit sunit multistruc saledatetx parvaltype owntype sourceref sourcedate sourcedatx subdivisio nparno cntyfips stfips stcntyfips gnisid sourceagnt transfdate revdatetx reviseyear mapref subowntype subsurfown structno presentval st_area_shape_ st_perimeter_shape_ parcelid NULLIF(TRIM(parno), '')::text parcelid2 NULLIF(TRIM(altparno), '')::text usecode COALESCE( NULLIF(TRIM(parusecode), '')::text, NULLIF(TRIM(parus… usedesc COALESCE( NULLIF(TRIM(parusedesc), '')::text, NULLIF(TRIM(parus… numbldgs CASE WHEN UPPER(TRIM(struct)) = 'Y' THEN '1'::text WHEN UPPER(T… yearbuilt NULLIF(structyear, 0)::text imprvalue landvalue totalvalue taxacres COALESCE( NULLIF(TRIM(recareatx), '')::text, CASE WHEN recarean… saledate CASE WHEN saledate IS NOT NULL AND saledate > 0 THEN to_timesta… ownername NULLIF(TRIM(concat_ws('; ', COALESCE( NULLIF(TRIM(ownname), '')… owneraddr COALESCE( NULLIF(TRIM(mailadd), '')::text, NULLIF(TRIM(concat_w… ownercity NULLIF(TRIM(mcity), '')::text ownerstate NULLIF(TRIM(mstate), '')::text ownerzip NULLIF(TRIM(mzip), '')::text parceladdr COALESCE( NULLIF(TRIM(siteadd), '')::text, NULLIF(TRIM(concat_w… parcelcity NULLIF(TRIM(scity), '')::text parcelstate COALESCE( NULLIF(TRIM(sstate), '')::text, NULLIF(TRIM(stname), … parcelzip NULLIF(TRIM(szip), '')::text legaldesc NULLIF(TRIM(legdecfull), '')::text updated CASE WHEN revisedate IS NOT NULL AND revisedate > 0 THEN to_tim… geom taxdistrict NULLIF(TRIM(cntyname), '')::text extras (json_build_object( 'munit', munit::text, 'sunit', sunit::text,… not present in source — filled with NULL (30) taxacctnum, taxyear, zoningcode, zoningdesc, numunits, numfloors, bldgsqft, bedrooms, halfbaths, fullbaths, agvalue, saleamt, township, section qtrsection, range, plssdesc, book, page, block, lot, sourceurl, parentid, heatfuel, fireplaces, heating, cooling, foundation, roofcover, siding ZONING 3 mapped · 2 kept in extras · 6 unmapped (NULL) SOURCE COLUMNS HARMONIZED → ZONING zoning zoning_name geom zoningcode zoningdesc geom extras · 2 source columns preserved as json municipality, globalid extras not present in source — filled with NULL (6) zoningtype, ordinance, setbacks, restrictions, notes, sourceurl

Neighboring counties

Parcel data for counties bordering Surry County:

Frequently asked questions

Where can I find Surry County, NC parcel and GIS data?

Land Records publishes a Surry County, NC parcel dataset in which every parcel carries its boundary polygon (GIS geometry) along with ownership, assessed value, land use, acreage, and sale history. Preview it in the interactive explorer on this page, or download the full Surry County, NC dataset as a GeoPackage or CSV.

How many parcels are in Surry County, NC?

The current dataset contains 44,575 parcel records for Surry County, NC, each with its boundary geometry and assessor attributes.

What is the FIPS code for Surry County, NC?

The FIPS code for Surry County, NC is 37171.

What information does each Surry County, NC parcel record include?

Each Surry County, NC parcel record includes the parcel ID/APN, owner name and mailing address, situs (property) address, assessed land and improvement values, acreage, land-use and zoning codes, year built, and the most recent sale price and date — plus the parcel boundary polygon. Per-attribute fill rates are listed in the coverage table on this page.

Is Surry County, NC parcel data free?

You can preview Surry County, NC parcels for free in the interactive explorer. The complete dataset is available as a one-time download or through the nationwide parcel web service; see the download options on this page for current pricing.

Does Surry County, NC have an official GIS or property records website?

Yes — the official Surry County, NC government website is linked in the county details above. Land Records standardizes Surry County, NC assessor and recorder records into a single nationwide parcel schema with GIS boundary geometry.

On this page