Charleston County, SC Parcels & GIS Data

Charleston County, SC parcel data: 196,337 property records with owner names, assessed values, land use, acreage, and addresses. Preview and download.

Land Records publishes Charleston County, South Carolina parcel data covering 196,337 property records.

This page documents parcel-level coverage for Charleston County, South 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 Charleston County are listed in the attribute-coverage table below. Preview the data in the interactive explorer, or download the complete Charleston County property dataset.

Charleston County is located in the U.S. state of South Carolina along the Atlantic coast. As of the 2020 census, the population was 408,235, making it the third-most populous county in South Carolina. Its county seat is Charleston.

FIPS 45019

Official county website: http://www.charlestoncounty.org

The FIPS code for Charleston County is 45019.

BerkeleyGeorgetownColletonDorchesterCharleston
Hosted Web API$200/mo

Attribute coverage

Charleston County contains 196,337 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%196,337
parcelid100%196,337
parcelid2<0.1%0
ogparcelid100%196,337
ogparcelid2<0.1%0
parentid<0.1%0
stackid<0.1%0
geoid100%196,337
statefp100%196,337
countyfp100%196,337
countyname100%196,337
cousubfp100%196,337
cousubname100%196,337
tractce100%196,337
tractname100%196,337
taxacctnum<0.1%0
taxyear100%196,337
taxdistrict99.9%196,162
usecode99.9%196,162
usedesc38.5%75,520
zoningcode61.3%120,337
zoningdesc15.0%29,503
numbldgs99.6%195,536
numunits4.8%9,486
yearbuilt<0.1%0
numfloors4.8%9,486
bldgsqft<0.1%0
bedrooms<0.1%0
halfbaths<0.1%0
fullbaths<0.1%0
imprvalue<0.1%0
landvalue<0.1%0
agvalue<0.1%0
totalvalue<0.1%0
taxacres99.9%196,162
calcarea100%196,337
saleamt99.9%196,155
saledate99.9%196,054
ownertype99.9%196,162
ownername99.9%196,162
owneraddr95.6%187,706
ownercity99.9%196,088
ownerstate99.9%196,076
ownerzip99.9%196,109
parceladdr87.5%171,765
parcelcity85.8%168,541
parcelstate100%196,337
parcelzip100%196,314
legaldesc96.2%188,911
township<0.1%0
section<0.1%0
qtrsection<0.1%0
range<0.1%0
plssdesc<0.1%0
book99.9%196,162
page99.9%196,160
block<0.1%0
lot<0.1%0
parceltype0.5%964
accesstype0.5%972
iucnclass0.1%182
placename11.7%22,903
placetype11.5%22,585
firmid100%196,334
firmdate100%196,334
fldzone100%196,334
zonesubty65.5%128,666
staticbfe33.4%65,666
elevmin99.7%195,767
elevmax99.7%195,767
elevavg99.7%195,767
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
naicscode24.2%47,449
frsid<0.1%0
dfrurl<0.1%0
caapermit<0.1%0
cwapermit<0.1%0
rcrapermit<0.1%0
updated100%196,247
centroidx100%196,337
centroidy100%196,337
surfpointx100%196,337
surfpointy100%196,337
geom100%196,337
extras100%196,337
ownerlist99.5%195,399
placefp81.8%160,576
zoningurl56.5%110,984
lbcsactivity57.5%112,918
lbcsfunction56.4%110,667
lbcstype68.2%133,969
lbcscharacter85.8%168,362
lbcsownership99.9%196,163
sourceurl<0.1%0

Schema mapping

How source columns from the acquired Charleston 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 — Charleston County, South Carolina (45019) 4 entities · most recent acquisition per entity · generated 2026-10-17 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 ADDRESS whole_address bldg_type house_number st_name unit postal_code postal_town county inc_muni postal_state country geom st_seg_key st_name_key house_suffix unit_type st_premod st_predir st_pretyp st_presep st_postyp st_posdir st_posmod jurisdiction addr_type data_source side pid full_house_num location_x location_y create_date create_who edit_date edit_who active_flag address_key_2 anomaly discrpagid site_nguid house category house_number road unit postcode suburb city_district city state country geom extras PARCEL pid class_code acreage sale_price doc_date owner1 owner2 mail_st_no mail_st_name mail_st_type mail_city mail_state mail_zip legal_descr deed_book_page plat_book_page recorded_date geom tax_district 7 cols ⇢ parcelid usecode taxacres saleamt saledate ownername owneraddr ownercity ownerstate ownerzip legaldesc book page updated geom taxdistrict extras REFTABLE parcelid tms genuse yrbuilt imp_appr land_appr apprval gisacres sale_price sale_date owner address city state zip lgldesc legal_resi house street unit subdiv county country assesval tax_dist geom 11 cols ⇢ parcelid parcelid2 usecode yearbuilt imprvalue landvalue totalvalue taxacres saleamt saledate ownername owneraddr ownercity ownerstate ownerzip legaldesc landusecode house_number road unit suburb state_district country assessedvalue taxdistrict geom extras ZONING geom zoning 19 cols ⇢ geom zoningcode 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 100% elevmin 100% elevmax 100% elevavg s_fld_haz_ar · FEMA NFHL 100% fldzone 65.5% zonesubty 33.4% staticbfe 100% firmdate 100% firmid supplemented · derived / other pipelines 100% numbldgs 87.5% parceladdr 85.8% parcelcity 100% parcelstate 100% parcelzip 100% ownerlist 81.8% placefp 56.5% zoningurl 57.5% lbcsactivity 56.4% lbcsfunction 68.2% lbcstype 85.8% lbcscharacter 100% lbcsownership lrid parcelid parcelid2 ogparcelid ogparcelid2 geoid statefp countyfp countyname cousubfp cousubname tractce tractname taxyear taxdistrict usecode zoningcode numbldgs yearbuilt imprvalue landvalue totalvalue taxacres calcarea saleamt saledate ownertype ownername owneraddr ownercity ownerstate ownerzip parceladdr parcelcity parcelstate parcelzip legaldesc book page firmid firmdate fldzone zonesubty staticbfe elevmin elevmax elevavg updated centroidx centroidy surfpointx surfpointy geom extras ownerlist placefp zoningurl lbcsactivity lbcsfunction lbcstype lbcscharacter lbcsownership publish.parcel_layer columns not fed by these sources (39) — empty or below 50% fill in this county parentid, stackid, taxacctnum, usedesc, zoningdesc, numunits, numfloors, bldgsqft, bedrooms, halfbaths, fullbaths, agvalue, township, section qtrsection, range, plssdesc, block, lot, parceltype, accesstype, iucnclass, placename, placetype, fireplaces, heating, heatfuel, cooling foundation, roofcover, siding, bldgtype, naicscode, frsid, dfrurl, caapermit, cwapermit, rcrapermit, sourceurl ADDRESS 13 mapped · 1 transformed · 9 unmapped (NULL) SOURCE COLUMNS HARMONIZED → ADDRESS whole_address bldg_type house_number st_name unit postal_code postal_town county inc_muni postal_state country geom st_seg_key st_name_key house_suffix unit_type st_premod st_predir st_pretyp st_presep st_postyp st_posdir st_posmod jurisdiction addr_type data_source side pid full_house_num location_x location_y create_date create_who edit_date edit_who active_flag address_key_2 anomaly discrpagid site_nguid house category house_number road unit postcode suburb city_district city state country geom extras json_build_object( 'st_seg_key', st_seg_key::text, 'st_name_key… not present in source — filled with NULL (9) near, level, staircase, entrance, po_box, island, state_district, country_region, world_region PARCEL 16 mapped · 13 transformed · 7 kept in extras · 38 unmapped (NULL) SOURCE COLUMNS HARMONIZED → PARCEL pid class_code acreage sale_price doc_date owner1 owner2 mail_st_no mail_st_name mail_st_type mail_city mail_state mail_zip legal_descr deed_book_page plat_book_page recorded_date geom tax_district parcelid nullif(btrim(pid), '')::text usecode nullif(btrim(split_part(btrim(class_code), ' - ', 1)), '')::text taxacres saleamt saledate to_timestamp(NULLIF(doc_date, 0) / 1000.0)::text ownername nullif(btrim(concat_ws('; ', btrim(owner1), btrim(owner2))), ''… owneraddr nullif(btrim(concat_ws(' ', btrim(mail_st_no), btrim(mail_st_na… ownercity nullif(btrim(mail_city), '')::text ownerstate nullif(btrim(mail_state), '')::text ownerzip nullif(btrim(mail_zip), '')::text legaldesc nullif(btrim(legal_descr), '')::text book nullif(btrim(deed_book_page), '')::text page nullif(btrim(plat_book_page), '')::text updated to_timestamp(NULLIF(recorded_date, 0) / 1000.0)::text geom taxdistrict nullif(btrim(tax_district), '')::text extras · 7 source columns preserved as json mail_2nd_addr, mail_2nd_addt, mail_country, subdivision legal_residence, other, agr extras not present in source — filled with NULL (38) parcelid2, taxacctnum, taxyear, usedesc, zoningcode, zoningdesc, numbldgs, numunits, yearbuilt, numfloors, bldgsqft, bedrooms, halfbaths fullbaths, imprvalue, landvalue, agvalue, totalvalue, parceladdr, parcelcity, parcelstate, parcelzip, township, section, qtrsection, range plssdesc, block, lot, sourceurl, parentid, heatfuel, fireplaces, heating, cooling, foundation, roofcover, siding REFTABLE 26 mapped · 16 transformed · 11 kept in extras · 95 unmapped (NULL) SOURCE COLUMNS HARMONIZED → REFTABLE parcelid tms genuse yrbuilt imp_appr land_appr apprval gisacres sale_price sale_date owner address city state zip lgldesc legal_resi house street unit subdiv county country assesval tax_dist geom parcelid parcelid2 usecode yearbuilt CASE WHEN yrbuilt IS NULL OR yrbuilt = 0 THEN NULL::text ELSE y… imprvalue NULLIF(TRIM(imp_appr), '')::text landvalue NULLIF(TRIM(land_appr), '')::text totalvalue taxacres saleamt saledate CASE WHEN sale_date IS NULL OR sale_date = 0 THEN NULL::text EL… ownername NULLIF(TRIM(owner), '')::text owneraddr NULLIF(TRIM(address), '')::text ownercity NULLIF(TRIM(city), '')::text ownerstate NULLIF(TRIM(state), '')::text ownerzip NULLIF(TRIM(zip), '')::text legaldesc NULLIF(TRIM(lgldesc), '')::text landusecode NULLIF(TRIM(legal_resi), '')::text house_number NULLIF(TRIM(house), '')::text road NULLIF(TRIM(street), '')::text unit NULLIF(TRIM(unit), '')::text suburb NULLIF(TRIM(subdiv), '')::text state_district country NULLIF(TRIM(country), '')::text assessedvalue taxdistrict geom extras · 11 source columns preserved as json objectid_1, lglacres, juris, plat, deed, co_name, address2 lots, datadate, calc, orig_fid extras not present in source — filled with NULL (95) taxacctnum, taxyear, usedesc, zoningcode, zoningdesc, numbldgs, numunits, bldgsqft, bedrooms, halfbaths, fullbaths, agvalue, parceladdr parcelcity, parcelstate, parcelzip, township, section, qtrsection, range, plssdesc, book, page, block, lot, zoningtype, zoningordinance zoningsetbacks, zoningrestrictions, landusedesc, lbcsdimension, lbcscode, house, category, near, level, staircase, entrance, po_box, postcode city_district, city, island, state, country_region, world_region, bldgtype, numfloors, yearremodel, livingarea, bldgquality, bldgcondition architecture, totalrooms, fireplaces, heating, cooling, foundation, attic, atticsqft, intwall, extwall, roofstyle, roofcover, roofheight fsagpfeet, siding, framing, basementsqft, attgaragesqft, detgaragesqft, garagestalls, situsaddress, appraisedvalue, boatlift, boatdock boathouse, pool, gazebo, irrigation, riprap, solarium, carport, greenhouse, openporch, enclporch, sauna, wooddeck, hottub, patio, shed workshop, sourceurl, parentid, heatfuel ZONING 2 mapped · 19 kept in extras · 7 unmapped (NULL) SOURCE COLUMNS HARMONIZED → ZONING geom zoning geom zoningcode extras · 19 source columns preserved as json pid, gpin, prccd, acres_cal, created_user, created_date last_edited_user, last_edited_date, road_dist, protecland_dst hist_rat, parcel_size, road_rating, zone_rating, zone_weight parcesize_weight, roaddst_weight, hist_weight, devpres_index extras not present in source — filled with NULL (7) zoningdesc, zoningtype, ordinance, setbacks, restrictions, notes, sourceurl

Neighboring counties

Parcel data for counties bordering Charleston County:

Frequently asked questions

Where can I find Charleston County, SC parcel and GIS data?

Land Records publishes a Charleston County, SC 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 Charleston County, SC dataset as a GeoPackage or CSV.

How many parcels are in Charleston County, SC?

The current dataset contains 196,337 parcel records for Charleston County, SC, each with its boundary geometry and assessor attributes.

What is the FIPS code for Charleston County, SC?

The FIPS code for Charleston County, SC is 45019.

What information does each Charleston County, SC parcel record include?

Each Charleston County, SC 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 Charleston County, SC parcel data free?

You can preview Charleston County, SC 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 Charleston County, SC have an official GIS or property records website?

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

On this page