Certified water-testing labs in North Carolina

238 listings · 25 marked as accepting public samples · 39 out-of-state labs certified by North Carolina

About this list

Agency
North Carolina Department of Health and Human Services (NC DHHS) - State Laboratory of Public Health, Environmental Sciences, Drinking Water Laboratory Certification
Format
HTML lists (Commercial; Health Departments/Municipalities): city, lab name, NC lab number and phone per lab, plus each lab's detail page with the contaminants it is certified for; no list date printed
Homeowner flag
County and district health departments: marked from NC DHHS's private-well testing FAQ, which tells well owners to contact their local health department to request well water testing. Other labs: not stated per lab.
Certified as ofgenerated on request (no date printed), fetched 2026-11-07

NC SLPH Environmental Sciences - Certified Drinking Water Laboratories (Commercial). Fetched 2026-11-07 (UTC).

Official source

Testing your well in North Carolina

How often to test

  • NC DHHS recommends testing a private well every year for total and fecal coliform bacteria, every two years for heavy metals, nitrates, nitrites, lead and copper, and every five years for pesticides and volatile organic compounds (VOCs). If you know of a particular pesticide applied in your area, it says to test for it yearly. [1]
  • DHHS also says well water should be tested after repairs or replacements of well parts and after flooding, and that you should test for nitrates if you are pregnant or have an infant at home. It suggests checking the wellhead once a year for cracks or openings. [1]

Free testing

We found no statewide free testing program in North Carolina. Ask your county health department whether it runs one.

Testing programs and help

  • DHHS says private well water can generally be tested through the North Carolina State Laboratory of Public Health (through your local health department) or a state-certified commercial lab. Procedures, fees and ordinances may vary from county to county, so it advises contacting the Environmental Health program at your local health department. [1]

State lab and rules

  • All newly constructed private wells in North Carolina must be tested by the State Laboratory of Public Health (scheduled through your local health department) or a state-certified commercial lab before the well is used as a drinking water source. DHHS says the tests for bacterial and chemical contaminants should be done within 30 days of well completion. [1]
  • The State Laboratory of Public Health tests samples from new or existing private wells for coliform bacteria only if the sample is submitted through a local health department. Results show the presence or absence of total coliform and E. coli and are sent within two working days after the lab receives the sample. [2]
  • The State Laboratory of Public Health's Certification Program keeps a list of drinking water labs certified for different analyses. NC DEQ notes that a lab may be certified for some tests but not for every test. [3]
North Carolina: counties by EPA radon zonecounties
Show the numbers
ItemValueNote
Zone 18 counties
Zone 231 counties
Zone 361 counties

Radon in indoor air, not in water. EPA: Zone 1 = highest potential (average indoor radon may be above 4 pCi/L); Zone 2 = 2 to 4; Zone 3 = below 2. EPA says the map should not be used to decide whether an individual home needs testing. Source: U.S. EPA, Map of Radon Zones, county list (EPA 402/A-16/001, spreadsheet Sep 2025), accessed 2026-11-01.

Loan test (FHA, VA, USDA) in North Carolina

  • VA. Test results are valid for 90 days from the date the local health authority certifies them, unless the local authority says otherwise. VA’s chapter names no list of contaminants: the water must meet the local health authority’s requirements, or EPA guidelines where it has none. Your lender may ask for specific tests.
  • FHA. A well test is required in the situations FHA’s handbook lists, among others, and the report may not be more than 180 days old at disbursement.
  • USDA. Guaranteed loans need a water quality test for a private well, done by the local health authority or a state-certified lab, and no more than 180 days old at closing.

Here:

  • 1 lab on the North Carolina list print a loan or home-sale package price on their own site: see the price table.

Lenders can ask for more (extra tests, a particular lab, who takes the sample): ask your lender before you book. Federal rules as read on Nov 3, 2026 source 1 source 2 source 3. Full comparison: VA, FHA and USDA well water test requirements. Loan test kits sold by mail, with price and days to results: kits compared.

What North Carolina labs say on their own websites

State lists say what a lab is certified for, not whether it takes your sample or what it costs. We read each lab’s own site; a second reader re-checked every fact below. 35 labs on this list are on our register so far; 17 say they take homeowner samples and 9 print a price.

LabBacteria (coliform / E. coli)NitrateArsenicLeadBasic well panelHome sale / loan packageTurnaround
BRUNSWICK COUNTY HEALTH DEPARTMENT
Bolivia, NC · Lab staff collect the sample
Bacteria ($50) sourceNitrate/Nitrite ($50) source–––––
CLAY COUNTY HEALTH DEPARTMENT
Hayesville, NC · You collect it, or lab staff can
1) Bacteria ……$ 30 source3) Nitrate/Nitrite……$ 75 source–––––
DURHAM COUNTY HEALTH DEPARTMENT
Durham, NC
Bacteriolgocial Sample (Total Coliform/E-coli) $135.00 source––––––
GUILFORD COUNTY HEALTH DEPT.
Greensboro, NC · Lab staff collect the sample
Bacteria – $50 source–––––Bacteriological results ... will generally be available toward the end of the week in which the sample is collected. ... Results for those samples are usually ready in approximately four (4) to six (6) weeks
NASH COUNTY HEALTH DEPARTMENT
Nashville, NC
Bacteria $70.00 sourceNitrate/Nitrite $75.00 source––Well Panel for existing Wells (Bact,,Nitrate/Nitrite,Inorganic) $200.00 source––
SPECIALTY LLC
Greensboro, NC · You collect it, or lab staff can
Microbiology (E. Coli and Coliform) Water Testing Kit – Bacteria test for water $ 85.00 sourceNitrate and Nitrite in Water Test Kit $ 85.00 source–Lead in Water Test Kit (Pb) $ 85.00 source–"Microbiological" – Coliforms & E. Col $135 $165 $185 (5 Day / 3 Day / Next-Day Results) source
"Full" Water Test, which includes: -"Microbiological" test -Nitrate & Nitrite -Lead $245 $275 $295 source
Our standard water tests are completed within 3 business days of our receipt or collection of the water sample.
TOE RIVER HEALTH DISTRICT - AVERY COUNTY
Newland, NC
Bacterial $75.00 source–––Bacterial & Inorganic Chemical $175.00 source–Bacteriological tests are done In- House. Results are typically given within 48 hours. All our other tests are sent to the State Lab and typically take 4 wks to get back the results.
TOE RIVER HEALTH DISTRICT - MITCHELL COUNTY
Bakersville, NC
Bacterial $75.00 source–––––Bacteriological tests are done In- House. Results are typically given within 48 hours. All our other tests are sent to the State Lab and typically take 4 wks to get back the results.
WAKE COUNTY HUMAN SERVICES-PUBLIC HEALTH CTR.
Raleigh, NC · You collect it, or lab staff can
Cost: $25 + trip fee if Wake County collects this. source–––––Bacteria results are usually ready within 48 hours. Allow plenty of time for other tests. They can take 2–4 weeks.

Say they take homeowner samples: BRUNSWICK COUNTY HEALTH DEPARTMENT, CARTERET COUNTY ENVIRONMENTAL HEALTH, CLAY COUNTY HEALTH DEPARTMENT, CRAVEN COUNTY HEALTH DEPT.-ENV HEALTH LAB, DURHAM COUNTY HEALTH DEPARTMENT, GUILFORD COUNTY HEALTH DEPT., HAYWOOD COUNTY HEALTH & HUMAN SERVICES AGENCY, K & W LABORATORIES, LLC, LINCOLN COUNTY HEALTH DEPARTMENT, MACON COUNTY HEALTH DEPT., MICROBAC - FAYETTEVILLE DIVISION, NEW HANOVER COUNTY HEALTH DEPT., SPECIALTY LLC, STATESVILLE ANALYTICAL, HOLDINGS, LLC, TOE RIVER HEALTH DISTRICT - AVERY COUNTY, TOE RIVER HEALTH DISTRICT - MITCHELL COUNTY, WAKE COUNTY HUMAN SERVICES-PUBLIC HEALTH CTR..

Prices exactly as each lab prints them, read 14 Nov 2026; re-checked every 90 days. Labs not shown have not been read yet or print nothing for homeowners. Confirm price and turnaround with the lab.

County health department well tests in North Carolina: fee, who samples, turnaround

In North Carolina, county or district health departments sample private wells. We read 40 departments’ own well-testing pages; 25 publish current fees. Each figure is copied from the department’s own page or fee schedule and was re-read by a second checker. Fees change, usually on July 1: confirm when you book.

CountyWho takes the sampleBacteriaInorganic / nitrate / new wellReal estate or loanTurnaround
Avery CountyHealth department staff take the sampleBacterial $75.00 sourceInorganic Chemical $125.00 source
Anions $125.00 source
–Bacteriological tests are done In-House. Results are typically given within 48 hours. All our other tests are sent to the State Lab and typically take 4 wks to get back the results.
Beaufort CountyHealth department staff take the sampleBacteriological (required well inspection) $40.00 sourceChemical $100.00 source
Nitrates $75.00 source
––
Burke CountyHealth department staff take the sampleBacteriological $60.00 sourceChemical $110.00 source–It can take up to 3 weeks to get results back from the state laboratory.
Caldwell CountyHealth department staff take the sample––––
Carteret CountyNot stated––––
Clay CountyStaff take it, or you can with the department's bottles
Health Department Water Sample Collection Request $ 50
Bacteria ... $ 30 sourceInorganic Chemistry: Metals Panel only ... $ 100 source
Nitrate/Nitrite ... $ 75 source
––
Cleveland CountyNot stated––––
Columbus CountyHealth department staff take the sample––––
Craven CountyNot stated
Private Well Water Analysis from State Laboratory of Public Health Collection Fee, in Addition to the Associated State Laboratory of Public Health Sample Fee $35.00
Potable – Total Coliform/ E. coli-Noncompliance (New lines, private drinking water wells etc.) $45.00 source–––
Cumberland CountyNot statedWater Sample - Bacteriological $45.00 source
Follow Up Bacteriological Sample $45.00 source
Water Sample - Inorganic $100.00 source
Water Sample - Nitrate $40.00 source
––
Davie CountyNot stated––––
Duplin CountyHealth department staff take the sampleCOLIFORM (BACTERIA) 60.00 sourceFULL PANEL (COLIFORM-NITRATE-INORGANIC) 150.00 source––
Durham CountyNot stated––––
Forsyth CountyNot stated$52 Water Sample, Bacteria (WSB) source$102 Water Sample Inorganic (WSI) source
$54 Water Sample Nitrate/Nitrite (WSN) source
$108 Water Supply Inorganic and Nitrate (WIN) source
––
Gaston CountyHealth department staff take the sampleBacteriological AND Inorganic Water Analysis $150.00 source
Bacteriological Only $80.00 source
State Required Water Test for New Wells** $150.00 source
Inorganic Only $80.00 source
––
Graham CountyNot stated–––The submitter should receive a copy of the analytical results within three weeks of the date of sample collection.
Greene CountyNot stated––––
Guilford CountyHealth department staff take the sample
Trip charge - $65 (A trip fee is included for any sampling.)
Bacteria – $50 sourceInorganic Full Panel (Included Nitrate/Nitrite) – $70 source
If you want to have all parameters tested at one time, the fee is $335. A trip fee is included for any sampling. source
––
Halifax CountyNot statedBacterial Water Sample (total coliform & fecal coliform) $80.00 sourceInorganic Water Sample $130.00 source
Nitrate/Nitrite Water Sample $85.00 source
Full Private Drinking Water Well Water Sample Panel (bacterial/nitrate/nitrite/inorganic metals) $130.00 source
Private Drinking Water Well Permit-New (includes State mandated sampling) $370.00 source
––
Haywood CountyNot stated––––
Henderson CountyNot stated––––
Hoke CountyNot statedBacteria water sample 35 sourceInorganic water sample 84 source
Inorganic Panel (Metals, Anions, Nitrates/Nitrites) 88 source
Nitrate/Nitrite water sample 38 source
––
Iredell CountyNot statedBacteriological $200.00 sourceInorganic $250.00 source––
Jones CountyHealth department staff take the sample
Water Sample Collection Fee, 1 per site + the Lab Fee $35.00
Bacteriological Existing well water sample lab fee $75.00 sourceChemical Existing well water sample lab fee $125.00 source
Nitrate / Nitrite (nutrient) Existing well water sample lab fee $75.00 source
––
Lenoir CountyHealth department staff take the sample––––
Lincoln CountyNot statedBacteriological Samples (e-Coli and for lending purposes) $ 50.00 sourceInorganic Chemical Sample Regular Parameters $ 73.00 source
Nitrate/Nitrite $ 36.00 source
State Required Water Sample (17 parameters) $ 200.00 source
––
Mitchell CountyHealth department staff take the sampleBacterial $75.00 sourceInorganic Chemical $125.00 source
Anions $125.00 source
–Bacteriological tests are done In- House. Results are typically given within 48 hours. All our other tests are sent to the State Lab and typically take 4 wks to get back the results.
Montgomery CountyHealth department staff take the sampleBacteria Water Sample $40.00 sourceFull Well Panel (Bacteria, Inorganic Chemical, Nitrite/Nitrate) $100.00 source
Inorganic Chemical $65.00 source
Nitrate/Nitrite $35.00 source
––
Moore CountyNot stated––––
New Hanover CountyHealth department staff take the sampleWater Sample - Bacteriological $140.00 source
Water Sample - Bacteriological - resample $70.00 source
Water Sample - Inorganic $140.00 source––
Orange CountyNot stated–––Chemical analysis can take several weeks.
Pitt CountyHealth department staff take the sampleWater Sample Testing Coliform $80.00 sourcePesticide, Petroleum, or Inorganic Compounds $160.00 source––
Richmond CountyNot statedThe $50.00 fee will not be refunded if your well is not properly constructed and cannot be sampled. source––Please allow 2 weeks to receive results for bacteriological well samples and 3 weeks on all other samples.
Rowan CountyHealth department staff take the sample–––Results for water samples are mailed to the local Health Department within 3 to 4 weeks after the sample is taken from the well.
Swain CountyNot statedBacteriological Water Sample $75.00 sourceChemical Water Sample $100.00 source
Nitrate Water Sample $70.00 source
––
Transylvania CountyNot statedBacteria – $50 sourceFULL PANEL in one visit – $200 (bacteriological, inorganic, nitrates, nitrites) source
$500 permit fee ... The permit fee includes water sampling after completion. source
––
Wayne CountyNot stated––––
Wilkes CountyHealth department staff take the sample––––
Yadkin CountyNot statedBACTERIAL: $60.00 sourceINORGANIC: $95.00 source
NITRATE/NITRITE $60.00 source
––
Yancey CountyHealth department staff take the sampleBacterial $75.00 sourceInorganic Chemical $125.00 source
Anions $125.00 source
–Bacteriological tests are done In-House. Results are typically given within 48 hours. All our other tests are sent to the State Lab and typically take 4 wks to get back the results.

Checked Nov 14, 2026. Counties not shown did not publish a fee we could read. Fees are as printed; some include the sampling visit, some do not.

Labs by contaminant

Labs on the North Carolina list for one test, with homeowner-accepting labs first.

Well water by county

Private-well population (USGS, 2015), arsenic estimate, radon zone and nearby labs for each county with at least 1,000 people on private wells, largest first.

Mecklenburg County180,063 on wellsWake County137,401 on wellsGuilford County100,953 on wellsBuncombe County96,247 on wellsForsyth County86,585 on wellsRowan County69,856 on wellsRandolph County60,072 on wellsIredell County58,162 on wellsNew Hanover County56,602 on wellsAlamance County49,917 on wellsUnion County49,181 on wellsGaston County49,095 on wellsSurry County47,109 on wellsJohnston County46,270 on wellsCatawba County45,129 on wellsLincoln County43,549 on wellsFranklin County42,580 on wellsHenderson County40,824 on wellsRockingham County38,795 on wellsCabarrus County37,863 on wellsOrange County37,751 on wellsNash County34,686 on wellsSampson County32,125 on wellsMcDowell County31,078 on wellsHarnett County29,056 on wellsChatham County28,893 on wellsColumbus County28,609 on wellsGranville County28,434 on wellsPender County28,231 on wellsRutherford County27,430 on wellsPerson County27,108 on wellsYadkin County25,748 on wellsDurham County25,458 on wellsVance County25,236 on wellsWilkes County24,719 on wellsMoore County24,589 on wellsRobeson County23,091 on wellsAshe County22,259 on wellsDuplin County21,910 on wellsMacon County20,911 on wellsBurke County20,398 on wellsCaswell County19,383 on wellsStanly County19,348 on wellsWatauga County18,765 on wellsPitt County18,553 on wellsWilson County18,513 on wellsCumberland County18,512 on wellsBladen County18,437 on wellsCherokee County17,649 on wellsHaywood County17,597 on wellsJackson County17,396 on wellsTransylvania County17,041 on wellsCaldwell County16,356 on wellsOnslow County16,175 on wellsStokes County14,329 on wellsMadison County14,297 on wellsAlexander County13,297 on wellsCarteret County12,526 on wellsYancey County12,384 on wellsEdgecombe County10,936 on wellsScotland County10,859 on wellsSwain County9,960 on wellsDavie County9,938 on wellsPolk County9,748 on wellsHoke County9,715 on wellsLee County9,420 on wellsMitchell County9,100 on wellsClay County8,810 on wellsAnson County8,618 on wellsDavidson County8,540 on wellsCraven County8,424 on wellsWarren County8,187 on wellsAlleghany County7,766 on wellsAvery County6,310 on wellsCleveland County6,281 on wellsBrunswick County6,139 on wellsMartin County5,834 on wellsWayne County5,788 on wellsHertford County5,118 on wellsGraham County4,199 on wellsBertie County3,490 on wellsDare County3,038 on wellsGreene County2,951 on wellsLenoir County2,905 on wellsCamden County2,813 on wellsRichmond County2,272 on wellsPerquimans County2,266 on wellsHalifax County2,078 on wellsCurrituck County1,889 on wellsNorthampton County1,827 on wellsGates County1,679 on wellsPasquotank County1,532 on wellsWashington County1,161 on wells

Certified labs on the North Carolina list

Aberdeen · 1

Apex · 2

Arden · 1

Asheboro · 1

Asheville · 3

Bakersville · 1

Banner Elk · 1

Belmont · 1

Bessemer City · 1

Black Mountain · 1

Bolivia · 1

Boone · 3

Brevard · 2

Brown Summit · 1

Bryson City · 1

Burlington · 1

Butner · 1

Camden · 1

Camp Lejeune · 1

Canton · 1

Carolina Beach · 1

Carrboro · 1

Cary · 2

Chapel Hill · 2

Charlotte · 4

Cherokee · 1

Cherry Point · 1

Cherryville · 1

Clemmons · 1

Clinton · 1

Clyde · 1

Columbus · 1

Concord · 2

Corolla · 1

Dallas · 1

Denver · 1

Dobson · 1

Durham · 2

Eden · 2

Edenton · 1

Elizabeth City · 1

Erwin · 1

Fayetteville · 2

Forest City · 1

Fort Bragg · 2

Franklin · 3

Gastonia · 3

Goldsboro · 1

Granite Falls · 2

Greensboro · 4

Greenville · 2

Hayesville · 1

Henderson · 1

Hendersonville · 2

Hickory · 2

High Point · 1

Hillsborough · 1

Holly Springs · 1

Huntersville · 1

Jackson · 1

Jacksonville · 3

Jamestown · 1

Jefferson · 1

K.D.H. · 1

Kannapolis · 1

Kernersville · 1

Kings Mountain · 1

Kinston · 1

Lagrange · 1

Laurinburg · 1

Lawndale · 1

Leland · 1

Lexington · 2

Lilesville · 1

Lillington · 1

Lincolnton · 2

Louisburg · 1

Lumberton · 2

Madison · 1

Manteo · 2

Marion · 1

Maxton · 1

Mayodan · 1

Mebane · 1

Midland · 1

Mills River · 2

Monroe · 3

Mooresboro · 1

Mooresville · 1

Morehead City · 3

Morganton · 1

Morrisville · 1

Mount Holly · 1

Mt Airy · 1

Mt Gilead · 1

Murphy · 2

N. Wilkesboro · 1

Nags Head · 1

Nashville · 1

New Bern · 2

New London · 1

Newland · 1

Newton · 1

Oxford · 1

Pembroke · 1

Pfafftown · 1

Pinebluff · 1

Pineville · 1

Pisgah Forest · 3

R.T.P. · 1

Raeford · 1

Raleigh · 2

Randleman · 2

Reidsville · 2

Roanoke Rapids · 1

Rockingham · 1

Rocky Mount · 1

Roxboro · 1

Rutherfordton · 1

Salisbury · 1

Sanford · 2

Shelby · 1

Smithfield · 2

Statesville · 2

Supply · 1

Sylva · 3

Tarboro · 1

Thomasville · 1

Tobaccoville · 1

Tryon · 1

Valdese · 1

Wake Forest · 1

Washington · 1

Waynesville · 1

Weaverville · 2

Whiteville · 1

Wilkesboro · 1

Wilmington · 9

Wilson · 1

Yadkinville · 1

Pomona, CA · 1

Wheat Ridge, CO · 1

Dayville, CT · 1

Altamonte Sprng, FL · 1

Orlando, FL · 1

Ormond Beach, FL · 1

Savannah, GA · 1

South Bend, IN · 1

Madisonville, KY · 1

East Longmeadow, MA · 1

Ann Arbor, MI · 1

East Lansing, MI · 1

Holt, MI · 1

Ypsilanti, MI · 1

Minneapolis, MN · 1

Earth City, MO · 1

Cherry Hill, NJ · 1

Cinnaminson, NJ · 1

Cuyahoga Falls, OH · 1

Marion, OH · 1

Bryn Mawr, PA · 1

Greensburg, PA · 1

Lancaster, PA · 1

Charleston, SC · 1

Conway, SC · 1

Greenville, SC · 1

Gresham, SC · 1

Ruby, SC · 1

Knoxville, TN · 1

Mt Juliet, TN · 1

Hampton, VA · 1

Hillsville, VA · 1

Midlothian, VA · 1

N. Chesterfield, VA · 1

Newport News, VA · 1

Port Royal, VA · 1

Richmond, VA · 1

Williston, VT · 1

Beaver, WV · 1