Westmoreland County, PA parcel and infrastructure data API
Korzy has about 210,000 parcel records for Westmoreland County, Pennsylvania, with source updates through October 2026. Nearly every record carries values, last sale and year built; 93% include land use and 93% include building size. In and around the county the API also maps 4 power plants with about 1,200 MW of capacity, led by natural gas; 1 data-center project; and 1 port with reported cargo. Look up any parcel by address or coordinates, then check water, sewer and infrastructure context at the same point.
Parcel coverage in Westmoreland County
About 210,000 parcel records with boundaries, situs addresses and parcel numbers, with the latest source update from October 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 | Most · 82% | |
| Assessed or market value | Nearly all · 99% | |
| Year built | Nearly all · 99% | |
| Building size | Most · 93% | |
| Last sale | Nearly all · 99% | |
| Land use | Most · 93% | |
| 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. 82% of Westmoreland County records carry an owner name.
Infrastructure in and around Westmoreland County
Power plants
4 operable plants with about 1,200 MW of nameplate capacity; largest by capacity: natural gas, battery and pumped storage, solar. Proposed generators add 8 MW.
Plant details: /api/power/plants/{plant_id}
Substations and transmission
About 50 in-service substations, 2 rated 230 kV or higher.
About 340 miles of transmission lines: about 280 mi at 100–161 kV; 7 mi at 220–287 kV; about 35 mi at 500 kV.
Water and sewer service
Service areas of about 35 community water systems cover about 68% of the county.
Sewer service areas of about 35 systems cover about 36%.
At a point: /api/utilities/context
Data-center projects
1 tracked project: 1 proposed. Reported operating capacity: about 10 MW. Reported planned capacity: about 3,000 MW.
Within 10 km of a point: /api/datacenters/context
Flood zones and wetlands
Mapped wetlands cover about 1%.
Rail, ports and freight
- About 190 miles of active rail, about 150 of it main line
- About 65 miles of national freight network highway
- 1 port area with reported cargo tonnage
Within 25 km of a point: /api/logistics/context
Example requests for Westmoreland 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 201 N 1ST ST, JEANNETTE, PA 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=201 N 1ST ST, JEANNETTE, PA' \
https://api.korzy.co/api/searchPython
import os
import requests
response = requests.get(
"https://api.korzy.co/api/search",
params={"q": "201 N 1ST ST, JEANNETTE, PA"},
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": "42129-514efd80d0db32229bdc",
"address": "201 N 1ST ST",
"city": "JEANNETTE",
"postcode": "15644",
"county": "Westmoreland",
"statefp": "42",
"longitude": -79.61193906036311,
"latitude": 40.329153399999996,
"match_type": "exact",
"parcelid": "14-02-09-0-442",
"parceladdr": "201 N 1ST ST",
"parcelcity": "JEANNETTE",
"situs_zip": "15644",
"usedesc": " ",
"land_use_code": "C",
"yearbuilt": 2012,
"bldgsqft": 7480,
"taxacres": 0,
"totalvalue": 107080,
"saledate": "2021-06-02",
"saleamt": 1,
"updated": "2026-10-30",
"geoid": "42129"
}
],
"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, 42129-514efd80d0db32229bdc, in records. 1 credit per 10 records requested.
curl --fail-with-body -sS --get \
-H "Authorization: Bearer $KORZY_API_KEY" \
--data-urlencode 'longitude=-79.611939' \
--data-urlencode 'latitude=40.329153' \
--data-urlencode 'limit=5' \
https://api.korzy.co/api/query/pointJavaScript
const params = new URLSearchParams({"longitude": "-79.611939", "latitude": "40.329153", "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=-79.611939' \
--data-urlencode 'latitude=40.329153' \
https://api.korzy.co/api/utilities/contextPython
import os
import requests
response = requests.get(
"https://api.korzy.co/api/utilities/context",
params={"longitude": "-79.611939", "latitude": "40.329153"},
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": -79.611939,
"latitude": 40.329153,
"matches": {
"water": [
{
"feature_id": "water:31335",
"name": "MAWC SWEENEY PLANT",
"boundary_basis": "System Sourced"
}
],
"sewer": [
{
"feature_id": "sewer:13865",
"name": "JEANNETTE CITY STP",
"boundary_basis": "Modeled"
}
]
},
"nearby_treatment": [
{
"feature_id": "treatment:16922",
"name": "JEANNETTE CITY STP",
"distance_km": 2.4470744911682747
},
{
"feature_id": "treatment:1",
"name": "HEMPFIELD TWP MA - DARRAGH STP",
"distance_km": 2.586251467363626
}
]
}Westmoreland County data questions
- How many parcels in Westmoreland County include year built?
- About 210,000 of about 210,000 parcel records (99%) include year built.
- Does the Korzy API return owner names for Westmoreland County parcels?
- Yes. 82% of Westmoreland 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 Westmoreland County?
- Korzy tracks 1 data-center project in Westmoreland County: 1 proposed. /api/datacenters/context lists projects within 10 km of any point.
- How much power generation is in Westmoreland County?
- 4 operable power plants in Westmoreland County total about 1,200 MW of nameplate capacity, mainly natural gas, battery and pumped storage and solar.
- Which water systems serve Westmoreland County?
- Service areas of about 35 community water systems cover about 68% of Westmoreland County, and sewer service areas cover about 36%. /api/utilities/context returns the water and sewer matches at a point.
More featured counties
- Allegheny County, PABorders Westmoreland County · about 590,000 parcels
- Montgomery County, PAabout 310,000 parcels
- Philadelphia County, PAabout 580,000 parcels
- Northampton County, PAabout 120,000 parcels
- York County, PAabout 180,000 parcels
Build on Westmoreland 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.