York County, SC parcel and infrastructure data API
Korzy has about 130,000 parcel records for York County, South Carolina, with source updates through November 2026. Nearly every record carries owner names, values, last sale and land use; 77% include building size and 71% include year built. In and around the county the API also maps 4 power plants with about 2,500 MW of capacity, led by nuclear; 1 data-center project (1 under construction); and about 50 miles of active rail. Look up any parcel by address or coordinates, then check water, sewer and infrastructure context at the same point.
Parcel coverage in York County
About 130,000 parcel records with boundaries, situs addresses and parcel numbers, with the latest source update from November 2026. Each record has a stable korzy_id you can store and look up again with /api/parcel-record. Share of records with each field:
| Field | Coverage | Share |
|---|---|---|
| Situs address | Nearly all · 99% | |
| Owner name | Nearly all · 99% | |
| Assessed or market value | Nearly all · 99% | |
| Year built | Many · 71% | |
| Building size | Most · 77% | |
| Last sale | Nearly all · 97% | |
| Land use | Nearly all · 100% | |
| Zoning | Not published |
Owner name and mailing address are returned with include_owner=true, which doubles a request's cost: a parcel record costs 2 credits instead of 1. 99% of York County records carry an owner name.
Infrastructure in and around York County
Power plants
4 operable plants with about 2,500 MW of nameplate capacity; largest by capacity: nuclear, hydro, oil.
Plant details: /api/power/plants/{plant_id}
Substations and transmission
About 95 in-service substations, 4 rated 230 kV or higher.
About 610 miles of transmission lines: about 30 mi at under 100 kV; about 330 mi at 100–161 kV; about 190 mi at 220–287 kV; about 50 mi at 500 kV.
Water and sewer service
Service areas of about 55 community water systems cover about 98% of the county.
Sewer service areas of 6 systems cover about 32%.
At a point: /api/utilities/context
Data-center projects
1 tracked project: 1 under construction.
Within 10 km of a point: /api/datacenters/context
Flood zones and wetlands
Special flood hazard areas cover about 8% of the county on the current federal flood maps, published October 2026.
Mapped wetlands cover about 1%.
Rail, ports and freight
- About 50 miles of active rail, about 45 of it main line
- About 20 miles of national freight network highway
Within 25 km of a point: /api/logistics/context
Example requests for York County
Real responses from the production API, trimmed to the main fields. Every request needs an API key with api:read; see authentication and credits and limits.
1. Find a parcel by address
/api/search matches 698 BRYANT BLVD, ROCK HILL, SC and returns the parcel's korzy_id, coordinates and record. 1 credit.
curl --fail-with-body -sS --get \
-H "Authorization: Bearer $KORZY_API_KEY" \
--data-urlencode 'q=698 BRYANT BLVD, ROCK HILL, SC' \
https://api.korzy.co/api/searchPython
import os
import requests
response = requests.get(
"https://api.korzy.co/api/search",
params={"q": "698 BRYANT BLVD, ROCK HILL, SC"},
headers={"Authorization": f"Bearer {os.environ['KORZY_API_KEY']}"},
timeout=30,
)
response.raise_for_status()
parcel = response.json()["results"][0]
print(parcel["korzy_id"], parcel["longitude"], parcel["latitude"])Response (trimmed)
{
"results": [
{
"korzy_id": "45091-12ab4e67c99e482f06d9",
"address": "698 BRYANT BLVD",
"city": "ROCK HILL",
"postcode": "29732",
"county": "York",
"statefp": "45",
"longitude": -81.04802127931774,
"latitude": 34.988064800000004,
"match_type": "exact",
"parcelid": "5890101030",
"parceladdr": "698 BRYANT BLVD",
"parcelcity": "ROCK HILL",
"situs_zip": "29732",
"usedesc": "COMMERCIAL IMPROVED",
"land_use_code": "CI",
"yearbuilt": 1989,
"bldgsqft": 19800,
"building_count": 1,
"taxacres": 3,
"totalvalue": 1564000,
"land_value_usd": 222000,
"improvement_value_usd": 1342000,
"assessed_value_usd": 91462,
"market_value_usd": 1633000,
"saledate": "2019-06-25",
"saleamt": 1500000,
"updated": "2026-11-03",
"geoid": "45091"
}
],
"truncated": false
}With include_owner=true (2 credits) the record adds owner fields, shown here as placeholders:
{
"owner_name": "EXAMPLE HOLDINGS LLC",
"owner_mailing_address": "100 EXAMPLE ST, SAMPLE CITY, ST 00000"
}2. Look up the parcel at a point
/api/query/point returns every parcel whose boundary covers the coordinates; here it returns the same record, 45091-12ab4e67c99e482f06d9, in records. 1 credit per 10 records requested.
curl --fail-with-body -sS --get \
-H "Authorization: Bearer $KORZY_API_KEY" \
--data-urlencode 'longitude=-81.048021' \
--data-urlencode 'latitude=34.988065' \
--data-urlencode 'limit=5' \
https://api.korzy.co/api/query/pointJavaScript
const params = new URLSearchParams({"longitude": "-81.048021", "latitude": "34.988065", "limit": "5"});
const response = await fetch(`https://api.korzy.co/api/query/point?${params}`, {
headers: { Authorization: `Bearer ${process.env.KORZY_API_KEY}` },
});
if (!response.ok) throw new Error(`Korzy API ${response.status}`);
const { records } = await response.json();
console.log(records.map((record) => record.korzy_id));3. Check water and sewer service
/api/utilities/context returns the water and sewer service areas at the point and the nearest treatment plants. 1 credit.
curl --fail-with-body -sS --get \
-H "Authorization: Bearer $KORZY_API_KEY" \
--data-urlencode 'longitude=-81.048021' \
--data-urlencode 'latitude=34.988065' \
https://api.korzy.co/api/utilities/contextPython
import os
import requests
response = requests.get(
"https://api.korzy.co/api/utilities/context",
params={"longitude": "-81.048021", "latitude": "34.988065"},
headers={"Authorization": f"Bearer {os.environ['KORZY_API_KEY']}"},
timeout=30,
)
response.raise_for_status()
matches = response.json()["matches"]
print([area["name"] for area in matches["water"]])Response (trimmed)
{
"longitude": -81.048021,
"latitude": 34.988065,
"matches": {
"water": [
{
"feature_id": "water:41326",
"name": "ROCK HILL CITY OF (SC4610002)",
"boundary_basis": "System Sourced"
}
],
"sewer": [
{
"feature_id": "sewer:16995",
"name": "MANCHESTER CREEK WWTP",
"boundary_basis": "Modeled"
}
]
},
"nearby_treatment": [
{
"feature_id": "treatment:8010",
"name": "FORT MILL WWTP",
"distance_km": 7.608220929693322
},
{
"feature_id": "treatment:8019",
"name": "MANCHESTER CREEK WWTP",
"distance_km": 8.936083343440425
}
]
}York County data questions
- How many parcels in York County include year built?
- About 92,000 of about 130,000 parcel records (71%) include year built.
- Does the Korzy API return owner names for York County parcels?
- Yes. 99% of York County parcel records carry an owner name. Add include_owner=true to a point, search or parcel-record request; it doubles the request's cost, so a single parcel record costs 2 credits.
- How many data-center projects are in York County?
- Korzy tracks 1 data-center project in York County: 1 under construction. /api/datacenters/context lists projects within 10 km of any point.
- How much power generation is in York County?
- 4 operable power plants in York County total about 2,500 MW of nameplate capacity, mainly nuclear, hydro and oil.
- Which water systems serve York County?
- Service areas of about 55 community water systems cover about 98% of York County, and sewer service areas cover about 32%. /api/utilities/context returns the water and sewer matches at a point.
More featured counties
- Mecklenburg County, NCBorders York County · about 430,000 parcels
- Greenville County, SCabout 240,000 parcels
- Lexington County, SCabout 150,000 parcels
- Spartanburg County, SCabout 170,000 parcels
- Beaufort County, SCabout 110,000 parcels
- Berkeley County, SCabout 120,000 parcels
Build on York County parcel data
Search, point and record lookups work the same in every county Korzy covers. Credits are shared across parcels, utilities, environment, logistics and data-center routes.