Union County, NC parcel and infrastructure data API

Korzy has about 110,000 parcel records for Union County, North Carolina, with source updates through August 2026. Nearly every record carries owner names, values, land use and year built; 89% include last sale and 77% include building size. In and around the county the API also maps 1 data-center project; 7 power plants with about 110 MW of capacity, led by solar; and about 55 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 Union County

About 110,000 parcel records with boundaries, situs addresses and parcel numbers, with the latest source update from August 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:

FieldCoverageShare
Situs addressNearly all · 99%
Owner nameNearly all · 99%
Assessed or market valueNearly all · 99%
Year builtNearly all · 99%
Building sizeMost · 77%
Last saleMost · 89%
Land useNearly all · 99%
ZoningNot 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 Union County records carry an owner name.

Infrastructure in and around Union County

Power plants

7 operable plants with about 110 MW of nameplate capacity; largest by capacity: solar, natural gas, oil. Proposed generators add about 10 MW.

Plant details: /api/power/plants/{plant_id}

Substations and transmission

About 45 in-service substations, 2 rated 230 kV or higher.

About 260 miles of transmission lines: about 15 mi at under 100 kV; about 140 mi at 100–161 kV; about 40 mi at 220–287 kV; about 25 mi at 500 kV.

Water and sewer service

Service areas of about 10 community water systems cover about 49% of the county.

Sewer service areas of 8 systems cover about 20%.

At a point: /api/utilities/context

Data-center projects

1 tracked project: 1 status not reported.

Within 10 km of a point: /api/datacenters/context

Flood zones and wetlands

Special flood hazard areas cover about 6% of the county on the current federal flood maps, published October 2026.

Mapped wetlands cover about 1%.

Rail, ports and freight

  • About 55 miles of active rail, about 40 of it main line

Within 25 km of a point: /api/logistics/context

Example requests for Union 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 5114 ROGERS RD, MONROE, NC 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=5114 ROGERS RD, MONROE, NC' \
  https://api.korzy.co/api/search
Python
import os
import requests

response = requests.get(
    "https://api.korzy.co/api/search",
    params={"q": "5114 ROGERS RD, MONROE, NC"},
    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": "37179-95fe02ace9117d0dc4a9",
      "address": "5114 ROGERS RD",
      "city": "MONROE",
      "postcode": "28110",
      "county": "UNION",
      "statefp": "37",
      "longitude": -80.64914023437899,
      "latitude": 35.03612750003945,
      "match_type": "exact",
      "parcelid": "194182",
      "parceladdr": "5114 ROGERS RD",
      "parcelcity": "MONROE",
      "situs_zip": "28110",
      "usedesc": "EXEMPT",
      "yearbuilt": 0,
      "bldgsqft": 230000,
      "building_count": 0,
      "taxacres": 1.7726,
      "totalvalue": 0,
      "land_value_usd": 0,
      "improvement_value_usd": 0,
      "saledate": "2004-01-28",
      "saleamt": 8890000,
      "updated": "2026-05-15",
      "geoid": "37179"
    }
  ],
  "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, 37179-95fe02ace9117d0dc4a9, in records. 1 credit per 10 records requested.

curl --fail-with-body -sS --get \
  -H "Authorization: Bearer $KORZY_API_KEY" \
  --data-urlencode 'longitude=-80.64914' \
  --data-urlencode 'latitude=35.036128' \
  --data-urlencode 'limit=5' \
  https://api.korzy.co/api/query/point
JavaScript
const params = new URLSearchParams({"longitude": "-80.64914", "latitude": "35.036128", "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=-80.64914' \
  --data-urlencode 'latitude=35.036128' \
  https://api.korzy.co/api/utilities/context
Python
import os
import requests

response = requests.get(
    "https://api.korzy.co/api/utilities/context",
    params={"longitude": "-80.64914", "latitude": "35.036128"},
    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": -80.64914,
  "latitude": 35.036128,
  "matches": {
    "water": [
      {
        "feature_id": "water:28939",
        "name": "UNION COUNTY WATER SYSTEM",
        "boundary_basis": "System Sourced"
      }
    ],
    "sewer": []
  },
  "nearby_treatment": [
    {
      "feature_id": "treatment:7983",
      "name": "OLDE SYCAMORE WWTP",
      "distance_km": 1.9379049698770523
    },
    {
      "feature_id": "treatment:7984",
      "name": "CROOKED CREEK WWTP",
      "distance_km": 3.886788147866794
    }
  ]
}

Union County data questions

How many parcels in Union County include year built?
About 110,000 of about 110,000 parcel records (99%) include year built.
Does the Korzy API return owner names for Union County parcels?
Yes. 99% of Union 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 Union County?
Korzy tracks 1 data-center project in Union County: 1 status not reported. /api/datacenters/context lists projects within 10 km of any point.
How much power generation is in Union County?
7 operable power plants in Union County total about 110 MW of nameplate capacity, mainly solar, natural gas and oil.
Which water systems serve Union County?
Service areas of about 10 community water systems cover about 49% of Union County, and sewer service areas cover about 20%. /api/utilities/context returns the water and sewer matches at a point.

More featured counties

All featured North Carolina counties

Build on Union 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.