API reference
All routes are under https://api.korzy.co/v1 and need an API key or OAuth token with api:read (see Authentication). POST routes take a JSON body of at most 64 KB. Every successful JSON response includes request_id and credits (charged and refunded); the exception is Ask, whose credits is an integer. Errors return a detail message and, where applicable, a machine-readable code. Costs are explained in Credits.
The same routes, with request and response schemas and per-route credits, are in the OpenAPI 3.1 spec (https://korzy.co/openapi.json).
Example responses are real production responses, captured November 5, 2026 and abbreviated: long lists trimmed, source identifiers removed, owner values and the model name replaced with placeholders.
Lookup
Everything Korzy knows about one location: the parcels there, and any of the sections you ask for. 1 credit for the parcels, plus each section's credits.
/v1/lookup1 credit, plus 1–2 credits per section (up to 10 credits)The parcels at an address or point, and the sections you ask for: utilities, environment, logistics, data centers, power, grid, terrain and parcel boundaries.
Body
| Field | Type | Description |
|---|---|---|
address | string | A street address, 3–160 characters, such as 714 Mordecai Towne Pl, Raleigh, NC. Must match exactly; including the state gives the most precise match. |
longitude | number | Longitude, −180 to 180. Send with latitude instead of address. |
latitude | number | Latitude, −85 to 85. |
sections | array | Any of utilities, environment, logistics, datacenters, power, grid, terrain, boundary. Default: none, parcels only. |
Response (200)
| Field | Type | Description |
|---|---|---|
location | object | longitude, latitude, the matched address and match_type (exact), or nulls for a point. |
parcels | object | records: up to 20 parcels covering the point, each with id and the parcel fields below (never owner fields); truncated; provenance with as_of. |
sections | object | One entry per requested section: status (ok, unavailable or error), data, error and provenance (dataset and as_of date). Records carry an id you can pass to /v1/records/{id}. |
credits | object | charged and refunded: what this request spent and what was given back (failed items or sections). |
request_id | string | ID of this request. Include it in support requests. |
Send exactly one location: address, or longitude and latitude. An address must match exactly; otherwise the request returns 404 address_not_found and is refunded.
A section that fails or is unavailable has status error or unavailable and its credits are refunded; the rest of the response is unaffected.
Errors
| Status | Code | Meaning |
|---|---|---|
404 | address_not_found | No exact match for the address. Refunded. |
422 | invalid_request | The body is missing a field, has an unknown one or a value out of range. detail says which. |
Example: An address with utilities and environment · 3 credits
curl --fail-with-body -sS \
-H "Authorization: Bearer $KORZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"address":"714 Mordecai Towne Pl, Raleigh, NC","sections":["utilities","environment"]}' \
https://api.korzy.co/v1/lookupProduction response · 200 (abbreviated)
{
"location": {
"longitude": -78.62700116632315,
"latitude": 35.79988145,
"address": "714 MORDECAI TOWNE PL, RALEIGH",
"match_type": "exact"
},
"parcels": {
"records": [
{
"id": "37183-676db8ae68362b7a3685",
"bldgsqft": 2393,
"countyname": "Wake",
"latitude": 35.79988145,
"longitude": -78.62700116632315,
"korzy_id": "37183-676db8ae68362b7a3685",
"parceladdr": "714 MORDECAI TOWNE PL",
"parcelcity": "RALEIGH",
"parcelid": "1714066205",
"saleamt": 740000,
"saledate": "2025-07-10",
"statefp": "37",
"taxacres": 0.03,
"totalvalue": 662832,
"updated": "2026-05-17",
"usedesc": "R",
"yearbuilt": 2009,
"situs_state": null,
"situs_zip": "27604",
"municipality": null,
"subdivision": null,
"legal_description": "LO4 MORDECAI TOWNS AT COURTLAND DRIVE BM2007 -01069",
"land_use_code": "RHS",
"zoning_code": null,
"zoning_description": null,
"alternate_parcel_number": "0364254",
"living_area_sqft": null,
"building_count": 1,
"tax_year": null,
"land_value_usd": 135000,
"improvement_value_usd": 527832,
"assessed_value_usd": null,
"market_value_usd": null,
"taxable_value_usd": null,
"tax_amount_usd": null,
"last_sale_document": "Deed Book/Page 019954/02049",
"geoid": "37183",
"parcelid2": "0364254",
"ogparcelid": "1714066205",
"taxacctnum": null
}
],
"truncated": false,
"provenance": {
"source": "Korzy parcels",
"as_of": "2026-11-04"
}
},
"sections": {
"utilities": {
"status": "ok",
"data": {
"water": [
{
"id": "utility:water:29943",
"feature_id": "water:29943",
"name": "RALEIGH, CITY OF",
"boundary_basis": "System Sourced"
}
],
"sewer": [
{
"id": "utility:sewer:2161",
"feature_id": "sewer:2161",
"name": "NEUSE RIVER RESOURCE RECOVERY FACILITY",
"boundary_basis": "Sourced"
}
],
"treatment_plants": [
{
"id": "utility:treatment:7989",
"feature_id": "treatment:7989",
"name": "NORTH CARY WWTP",
"distance_km": 14.090844006673105
},
{
"id": "utility:treatment:15459",
"feature_id": "treatment:15459",
"name": "Smith Creek Resource Recovery Facility",
"distance_km": 14.651385662091693
},
{
"id": "utility:treatment:7987",
"feature_id": "treatment:7987",
"name": "NEUSE RIVER RESOURCE RECOVERY FACILITY",
"distance_km": 15.556300140909235
}
],
"truncated": {
"water": false,
"sewer": false
}
},
"error": null,
"provenance": [
{
"dataset": "water",
"as_of": null,
"data_version": "63b7c1c3-9661-4fed-a59f-ddbfff80c2e4"
},
{
"dataset": "sewer",
"as_of": null,
"data_version": "63b7c1c3-9661-4fed-a59f-ddbfff80c2e4"
},
{
"dataset": "treatment",
"as_of": null,
"data_version": "63b7c1c3-9661-4fed-a59f-ddbfff80c2e4"
}
]
},
"environment": {
"status": "ok",
"data": {
"radius_km": 10,
"matches": {
"air_quality_areas": [
{
"id": "poi:air-quality-areas:air_quality_areas:0:103",
"feature_id": "air_quality_areas:0:103",
"name": "Raleigh-Durham-Chapel Hill Area · Ozone 8-hr (1997 standard) · NC",
"operator": null,
"status": "Maintenance",
"state": "NC",
"city": null,
"category": "Ozone 8-hr (1997 standard)",
"boundary_basis": null,
"source_date": null,
"poi_slug": "air-quality-areas",
"geometry_kind": "area"
},
{
"id": "poi:air-quality-areas:air_quality_areas:10:64",
"feature_id": "air_quality_areas:10:64",
"name": "Raleigh-Durham Area · Ozone 1-hr (1979 standard-revoked) · NC",
"operator": null,
"status": "Maintenance (NAAQS revoked)",
"state": "NC",
"city": null,
"category": "Ozone 1-hr (1979 standard-revoked)",
"boundary_basis": null,
"source_date": null,
"poi_slug": "air-quality-areas",
"geometry_kind": "area"
},
{
"id": "poi:air-quality-areas:air_quality_areas:9:38",
"feature_id": "air_quality_areas:9:38",
"name": "Raleigh-Durham Area · CO (1971 Standard) · NC",
"operator": null,
"status": "Maintenance",
"state": "NC",
"city": null,
"category": "CO (1971 Standard)",
"boundary_basis": null,
"source_date": null,
"poi_slug": "air-quality-areas",
"geometry_kind": "area"
}
]
},
"nearby": {
"superfund_npl": [
{
"id": "poi:superfund-npl-sites:superfund_npl:records:266",
"feature_id": "superfund_npl:records:266",
"name": "North Carolina State University (Lot 86, Farm Unit #1)",
"operator": null,
"status": "NPL Site",
"state": "North Carolina",
"city": "Raleigh",
"category": "Superfund NPL sites",
"boundary_basis": null,
"source_date": null,
"distance_km": 7.811814554041426,
"poi_slug": "superfund-npl-sites",
"geometry_kind": "point"
}
],
"brownfields": [
{
"id": "poi:brownfields:brownfields:records:11457",
"feature_id": "brownfields:records:11457",
"name": "PROPERTY 25",
"operator": null,
"status": null,
"state": "NC",
"city": "RALEIGH",
"category": "Brownfields",
"boundary_basis": null,
"source_date": null,
"distance_km": 2.1660816702315127,
"poi_slug": "brownfields",
"geometry_kind": "point"
},
{
"id": "poi:brownfields:brownfields:records:4939",
"feature_id": "brownfields:records:4939",
"name": "702 706 E MARTIN STREET",
"operator": null,
"status": null,
"state": "NC",
"city": "RALEIGH",
"category": "Brownfields",
"boundary_basis": null,
"source_date": null,
"distance_km": 2.5975875078144046,
"poi_slug": "brownfields",
"geometry_kind": "point"
},
{
"id": "poi:brownfields:brownfields:records:3287",
"feature_id": "brownfields:records:3287",
"name": "301 HILLSBOROUGH STREET",
"operator": null,
"status": null,
"state": "NC",
"city": "RALEIGH",
"category": "Brownfields",
"boundary_basis": null,
"source_date": null,
"distance_km": 2.621628914901275,
"poi_slug": "brownfields",
"geometry_kind": "point"
}
]
},
"coverage": {
"flood_hazard": {
"status": "unavailable",
"states": [],
"stale_states": [],
"note": "No published state package covers the reference point; coverage is unknown."
},
"wetlands": {
"status": "unavailable",
"states": [],
"stale_states": [],
"note": "No published state package covers the reference point; coverage is unknown."
}
},
"truncated": {
"brownfields": true
},
"note": "Screening at the supplied reference point, not a full parcel overlap analysis. Area and line matches intersect the published geometry at that point. Nearby cleanup records use reported point locations and straight-line distance. Source coverage and geometry limitations apply; absence of a match is not an environmental clearance. Flood hazard and wetland coverage at the point is reported under coverage: no intersecting polygon is unknown, never a finding that the point is outside a flood zone or wetland."
},
"error": null,
"provenance": [
{
"dataset": "superfund_sites",
"as_of": "2026-11-05",
"data_version": "20261105T023448534475Z"
},
{
"dataset": "superfund_npl",
"as_of": "2026-11-05",
"data_version": "20261105T023448534475Z"
},
{
"dataset": "brownfields",
"as_of": "2026-11-05",
"data_version": "20261105T023448534475Z"
}
]
}
},
"credits": {
"charged": 3,
"refunded": 0
},
"credits_url": "/v1/fields#attribution",
"request_id": "5479539e-2cd0-4d09-91df-5dbef1fd5676"
}Example: A point with data centers, power and grid · 4 credits
curl --fail-with-body -sS \
-H "Authorization: Bearer $KORZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"longitude":-77.4874,"latitude":39.0438,"sections":["datacenters","power","grid"]}' \
https://api.korzy.co/v1/lookupProduction response · 200 (abbreviated)
{
"location": {
"longitude": -77.4874,
"latitude": 39.0438,
"address": null,
"match_type": null
},
"parcels": {
"records": [
{
"id": "51107-19850a84f297b5dd3844",
"bldgsqft": null,
"countyname": "Loudoun",
"latitude": 39.043759,
"longitude": -77.48727612877775,
"korzy_id": "51107-19850a84f297b5dd3844",
"parceladdr": "20702 ASHBURN RD",
"parcelcity": "Loudoun County",
"parcelid": "085165792000",
"saleamt": null,
"saledate": null,
"statefp": "51",
"taxacres": 0.37,
"totalvalue": null,
"updated": "2026-07-31",
"usedesc": null,
"yearbuilt": null,
"situs_state": null,
"situs_zip": "20147",
"municipality": "Loudoun County",
"subdivision": null,
"legal_description": null,
"land_use_code": null,
"zoning_code": null,
"zoning_description": null,
"alternate_parcel_number": "085165792000",
"living_area_sqft": null,
"building_count": null,
"tax_year": null,
"land_value_usd": null,
"improvement_value_usd": null,
"assessed_value_usd": null,
"market_value_usd": null,
"taxable_value_usd": null,
"tax_amount_usd": null,
"last_sale_document": null,
"geoid": "51107",
"parcelid2": "5110700044723",
"ogparcelid": "085165792000",
"taxacctnum": "085165792000"
}
],
"truncated": false,
"provenance": {
"source": "Korzy parcels",
"as_of": "2026-11-04"
}
},
"sections": {
"datacenters": {
"status": "ok",
"data": {
"radius_km": 10,
"projects": [
{
"id": "datacenter:dc_1aac762b0a7956be5cdb",
"project_id": "dc_1aac762b0a7956be5cdb",
"name": "Equinix Ashburn Campus (DC1–DC15)",
"operator": "Equinix",
"status": "operating",
"state": "VA",
"city": "Ashburn",
"address": "",
"longitude": -77.4875,
"latitude": 39.0437,
"location_precision": "exact",
"operational_mw": 500,
"planned_mw": null,
"it_mw": null,
"source_count": 1,
"source_date": "2026-09-14",
"mapped": true,
"distance_km": 0.014079285656724639
},
{
"id": "datacenter:dc_8538a6a80d32ecb8753b",
"project_id": "dc_8538a6a80d32ecb8753b",
"name": "STACK NVA Loudoun 144MW Hyperscale Campus",
"operator": "STACK Infrastructure",
"status": "permitted",
"state": "VA",
"city": "Ashburn",
"address": "",
"longitude": -77.49,
"latitude": 39.04,
"location_precision": "exact",
"operational_mw": null,
"planned_mw": 144,
"it_mw": null,
"source_count": 1,
"source_date": "2026-09-21",
"mapped": true,
"distance_km": 0.4784995143588063
},
{
"id": "datacenter:dc_fbe24f4974aa4e1c69aa",
"project_id": "dc_fbe24f4974aa4e1c69aa",
"name": "Bridgefield Tech Center",
"operator": "Amazon Web Services",
"status": "proposed",
"state": "VA",
"city": "Ashburn",
"address": "",
"longitude": -77.4744148,
"latitude": 39.029784,
"location_precision": "approximate",
"operational_mw": null,
"planned_mw": null,
"it_mw": null,
"source_count": 1,
"source_date": "2026-08-26",
"mapped": true,
"distance_km": 1.9200998223812187
}
],
"truncated": true,
"note": "Straight-line distance to the reported project point; inspect location_precision. Projects merge supported source matches, not every nearby building. Approximate locations do not identify a parcel. Reported IT load, facility power, planned capacity and estimates remain separate source claims. No record or unknown status does not establish absence or inactivity."
},
"error": null,
"provenance": [
{
"dataset": "datacenters",
"as_of": "2026-11-02",
"data_version": "20261102T123021962884Z"
}
]
},
"power": {
"status": "ok",
"data": {
"radius_km": 50,
"plants": [
{
"id": "plant:59004",
"plant_id": "59004",
"plant_name": "Potomac Energy Center, LLC",
"state": "VA",
"longitude": -77.545,
"latitude": 39.058056,
"site_status": "operating",
"primary_fuel": "gas",
"nameplate_mw": 812,
"proposed_nameplate_mw": null,
"generator_count": 3,
"distance_km": 5.22
},
{
"id": "plant:70232",
"plant_id": "70232",
"plant_name": "Evergreen Energy Center, LLC",
"state": "VA",
"longitude": -77.581908,
"latitude": 39.044885,
"site_status": "proposed",
"primary_fuel": "storage",
"nameplate_mw": null,
"proposed_nameplate_mw": 20,
"generator_count": 1,
"distance_km": 8.163
},
{
"id": "plant:65043",
"plant_id": "65043",
"plant_name": "Dulles Solar and Storage",
"state": "VA",
"longitude": -77.5,
"latitude": 38.95,
"site_status": "proposed",
"primary_fuel": "solar",
"nameplate_mw": null,
"proposed_nameplate_mw": 150,
"generator_count": 2,
"distance_km": 10.487
}
],
"truncated": true,
"report_year": 2025,
"note": "Nameplate MW is generation inventory, not available power or interconnection capacity. Distances are straight-line."
},
"error": null,
"provenance": [
{
"dataset": "power_plants",
"as_of": null,
"data_version": "2b27929d26cc1da9ad6a530da1cac6718cd8496098ee560c4d47cfffd96d08ba"
}
]
},
"grid": {
"status": "ok",
"data": {
"radius_km": 10,
"capacity": [
{
"source_object_id": "15787",
"utility": "phi",
"data_kind": "load_headroom",
"scope": "feeder",
"season": "unspecified",
"phase": "1,2",
"scenario": "published",
"coverage": "DC, Maryland, Delaware, New Jersey",
"feeder_id": "15230",
"substation": "QUINCE ORCHARD SUB. 118",
"substation_id": null,
"transformer_id": null,
"state": null,
"bank_id": null,
"voltage_kv": 13.8,
"source_date": "2026-02-16T15:41:05+00:00",
"source_band": null,
"local_headroom_mw": 3,
"local_headroom_mva": null,
"feeder_headroom_mw": 3,
"feeder_headroom_mva": null,
"substation_headroom_mw": 40.52,
"substation_headroom_mva": null,
"bank_headroom_mw": null,
"bank_headroom_mva": null,
"qualifications": null,
"asset_status": null,
"asset_type": null,
"address": null,
"project_name": null,
"project_type": null,
"project_status": null,
"expected_in_service": null,
"project_description": null,
"transmission_node_id": null,
"backfeed_protection": null,
"fetched_at": "2026-11-01T11:03:11.689514+00:00",
"geometry_repaired": false,
"observations": [
{
"metric": "headroom",
"scenario": "published",
"scope": "local",
"season": "unspecified",
"source_field": "Capacity_MW",
"unit": "MW",
"value": 3,
"year": null
},
{
"metric": "headroom",
"scenario": "published",
"scope": "feeder",
"season": "unspecified",
"source_field": "Feeder_Capacity_MW",
"unit": "MW",
"value": 3,
"year": null
},
{
"metric": "headroom",
"scenario": "published",
"scope": "substation",
"season": "unspecified",
"source_field": "Substation_Capacity_MW",
"unit": "MW",
"value": 40.52,
"year": null
}
]
},
{
"source_object_id": "15792",
"utility": "phi",
"data_kind": "load_headroom",
"scope": "feeder",
"season": "unspecified",
"phase": "1,2",
"scenario": "published",
"coverage": "DC, Maryland, Delaware, New Jersey",
"feeder_id": "15235",
"substation": "QUINCE ORCHARD SUB. 118",
"substation_id": null,
"transformer_id": null,
"state": null,
"bank_id": null,
"voltage_kv": 13.8,
"source_date": "2026-02-16T15:41:05+00:00",
"source_band": null,
"local_headroom_mw": 6.02,
"local_headroom_mva": null,
"feeder_headroom_mw": 6.02,
"feeder_headroom_mva": null,
"substation_headroom_mw": 40.52,
"substation_headroom_mva": null,
"bank_headroom_mw": null,
"bank_headroom_mva": null,
"qualifications": null,
"asset_status": null,
"asset_type": null,
"address": null,
"project_name": null,
"project_type": null,
"project_status": null,
"expected_in_service": null,
"project_description": null,
"transmission_node_id": null,
"backfeed_protection": null,
"fetched_at": "2026-11-01T11:03:11.689514+00:00",
"geometry_repaired": false,
"observations": [
{
"metric": "headroom",
"scenario": "published",
"scope": "local",
"season": "unspecified",
"source_field": "Capacity_MW",
"unit": "MW",
"value": 6.02,
"year": null
},
{
"metric": "headroom",
"scenario": "published",
"scope": "feeder",
"season": "unspecified",
"source_field": "Feeder_Capacity_MW",
"unit": "MW",
"value": 6.02,
"year": null
},
{
"metric": "headroom",
"scenario": "published",
"scope": "substation",
"season": "unspecified",
"source_field": "Substation_Capacity_MW",
"unit": "MW",
"value": 40.52,
"year": null
}
]
},
{
"source_object_id": "18092",
"utility": "phi",
"data_kind": "load_headroom",
"scope": "feeder",
"season": "unspecified",
"phase": "3",
"scenario": "published",
"coverage": "DC, Maryland, Delaware, New Jersey",
"feeder_id": "15230",
"substation": "QUINCE ORCHARD SUB. 118",
"substation_id": null,
"transformer_id": null,
"state": null,
"bank_id": null,
"voltage_kv": 13.8,
"source_date": "2026-02-16T17:18:32+00:00",
"source_band": null,
"local_headroom_mw": 3,
"local_headroom_mva": null,
"feeder_headroom_mw": 3,
"feeder_headroom_mva": null,
"substation_headroom_mw": 40.52,
"substation_headroom_mva": null,
"bank_headroom_mw": null,
"bank_headroom_mva": null,
"qualifications": null,
"asset_status": null,
"asset_type": null,
"address": null,
"project_name": null,
"project_type": null,
"project_status": null,
"expected_in_service": null,
"project_description": null,
"transmission_node_id": null,
"backfeed_protection": null,
"fetched_at": "2026-11-01T11:01:32.304797+00:00",
"geometry_repaired": false,
"observations": [
{
"metric": "headroom",
"scenario": "published",
"scope": "local",
"season": "unspecified",
"source_field": "Capacity_MW",
"unit": "MW",
"value": 3,
"year": null
},
{
"metric": "headroom",
"scenario": "published",
"scope": "feeder",
"season": "unspecified",
"source_field": "Feeder_Capacity_MW",
"unit": "MW",
"value": 3,
"year": null
},
{
"metric": "headroom",
"scenario": "published",
"scope": "substation",
"season": "unspecified",
"source_field": "Substation_Capacity_MW",
"unit": "MW",
"value": 40.52,
"year": null
}
]
}
],
"truncated": false,
"transmission": {
"radius_km": 5,
"lines": [
{
"id": "poi:transmission-lines:142003",
"line_id": "142003",
"status": "IN SERVICE",
"owner": "VIRGINIA ELECTRIC & POWER CO",
"voltage_kv": 230,
"voltage_class": "220-287",
"line_type": "AC; OVERHEAD",
"substation_1": "ASHBURN",
"substation_2": "BEAUMEADE",
"source_date": "2014-06-17T00:00:00+00:00",
"distance_km": 0.02
},
{
"id": "poi:transmission-lines:119843",
"line_id": "119843",
"status": "IN SERVICE",
"owner": "VIRGINIA ELECTRIC & POWER CO",
"voltage_kv": 230,
"voltage_class": "220-287",
"line_type": "AC; OVERHEAD",
"substation_1": "ASHBURN",
"substation_2": "BEAUMEADE",
"source_date": "2014-09-03T00:00:00+00:00",
"distance_km": 0.023
},
{
"id": "poi:transmission-lines:115875",
"line_id": "115875",
"status": "IN SERVICE",
"owner": "VIRGINIA ELECTRIC & POWER CO",
"voltage_kv": 230,
"voltage_class": "220-287",
"line_type": "AC; OVERHEAD",
"substation_1": "PLEASANT VIEW",
"substation_2": "ASHBURN",
"source_date": "2014-09-03T00:00:00+00:00",
"distance_km": 1.267
}
],
"truncated": true
},
"note": "Utility screening estimates, not reserved power or confirmed parcel service. Shared feeder, bank and substation values repeat across source geometries and must not be summed. MW and MVA are separate; forecasts, ratings and available load headroom are separate observations. Missing values are unknown."
},
"error": null,
"provenance": [
{
"dataset": "grid_capacity",
"as_of": "2026-11-01",
"data_version": "20261101T110021240424Z-ae344efa"
},
{
"dataset": "transmission",
"as_of": "2026-11-03",
"data_version": null
}
]
}
},
"credits": {
"charged": 4,
"refunded": 0
},
"credits_url": "/v1/fields#attribution",
"request_id": "f78daf11-f76a-4790-abaf-26cc35d85778"
}Lookup sections
| Section | Credits | Returns |
|---|---|---|
utilities | +1 credit | Water and sewer service areas at the point, treatment plants within 50 km, and up to 5 natural gas pipelines (gas_pipelines) and 5 fiber routes (fiber_routes) within 25 km, nearest first, each with operator, category, status, distance_km and source_date. Each of the two has truncated and coverage, whose status is mapped (a route is within 25 km), unknown (the layer covers the area but no route is within 25 km) or unavailable (the layer does not cover the point, or could not be read for this request). Fiber routes are California’s state middle-mile network only: a point with none of its routes within 25 km is unknown inside California and unavailable outside it, while a point just outside California within 25 km of a route still lists it as mapped. An empty list is never a finding that there is no gas or fiber. A nearby route does not establish service. |
environment | +1 credit | Mapped environmental layers at the point: flood zones, wetlands, protected areas and critical habitat (coverage says whether each layer is mapped, unknown or unavailable there), and up to 5 cleanup sites and other records within 10 km. |
logistics | +1 credit | Up to 5 rail lines, ports, airports, freight corridors and other transport features per layer within 25 km. |
datacenters | +1 credit | Up to 5 data-center projects within 10 km, nearest first, with status, reported capacity and approximate_location (true when the source gives only an approximate point, so the distance is approximate). |
power | +1 credit | Up to 5 power plants within 50 km, with nameplate MW, primary fuel and distance. |
grid | +1 credit | Up to 5 utility-published load-capacity records within about 10 km, nearest first, and the nearest transmission lines within about 5 km. |
terrain | +2 credits | Elevation (minimum, maximum, relief) and slope (median, 90th percentile) over the first parcel. unavailable when the analysis does not finish in 20 seconds. |
boundary | +1 credit | The boundaries of the parcels at the point: parcels, one entry for each of the first 5 of parcels.records in the same order, with id, korzy_id, geometry (a GeoJSON Polygon or MultiPolygon in WGS84 longitude and latitude, coordinates only) and geometry_info (status, vertices, max_vertices, tolerance_m, simplified). Each boundary is simplified for display to within 1 m and has at most 2,000 vertices; a larger one is simplified further until it fits, and tolerance_m says how far. Rings follow the GeoJSON right-hand rule (exteriors counter-clockwise, holes clockwise). geometry_info.status is ok, unavailable (the parcel has no boundary within the size limit; geometry is null) or error (its request failed; geometry is null, so retry rather than keep the answer). truncated is true when more parcels matched than are listed (at most 5, and 4,000 vertices in all). The published parcel shape, not a survey or a legal description. The section is unavailable and refunded when no parcel is at the point or no listed parcel has a boundary. |
Enrich
Selected parcel fields for a batch of up to 25 addresses, points or parcel IDs. 1 credit per item, 2 credits per item with owner fields. Owner fields are available only here.
/v1/enrich1 credit per item; 2 credits per item with owner fieldsParcel fields for up to 25 items in one request. Each item is an address, a point or a korzy_id.
Body
| Field | Type | Description |
|---|---|---|
items (required) | array | 1–25 items, each {"address": …}, {"longitude": …, "latitude": …} or {"korzy_id": …}. |
fields | array | Field names or groups (identity, address, location, land, building, value, sale, owner); see Enrich fields. Not with preset. |
preset | string | basic, standard, owner. Default standard when neither fields nor preset is sent. |
Response (200)
| Field | Type | Description |
|---|---|---|
fields | array | The field names returned, after groups and presets are expanded. |
results | array | One entry per item, in order: index, input, status (ok or error), records (up to 20, each with id, korzy_id and the selected fields), truncated and credits; or error with code (not_found, invalid or unavailable) and detail. |
credits | object | charged and refunded: what this request spent and what was given back (failed items or sections). |
request_id | string | ID of this request. Include it in support requests. |
Asking for the owner group or any of its fields, or a preset that includes it, makes every item cost 2 credits. Lookup, records and Ask never return owner fields.
A valid request always returns 200. Items that fail have status error and their credits are refunded.
Errors
| Status | Code | Meaning |
|---|---|---|
403 | owner_data_unavailable | Owner fields are not available for your organization. Not charged. |
422 | invalid_request | The body is missing a field, has an unknown one or a value out of range. detail says which. |
Example: Three kinds of item with the basic preset · 3 credits
curl --fail-with-body -sS \
-H "Authorization: Bearer $KORZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"address":"714 Mordecai Towne Pl, Raleigh, NC"},{"korzy_id":"37183-676db8ae68362b7a3685"},{"longitude":-78.627,"latitude":35.7999}],"preset":"basic"}' \
https://api.korzy.co/v1/enrichProduction response · 200 (abbreviated)
{
"fields": [
"korzy_id",
"parcelid",
"alternate_parcel_number"
],
"results": [
{
"index": 0,
"input": {
"address": "714 Mordecai Towne Pl, Raleigh, NC"
},
"status": "ok",
"records": [
{
"id": "37183-676db8ae68362b7a3685",
"korzy_id": "37183-676db8ae68362b7a3685",
"parcelid": "1714066205",
"alternate_parcel_number": "0364254",
"statefp": "37",
"geoid": "37183",
"countyname": "Wake",
"updated": "2026-05-17",
"parceladdr": "714 MORDECAI TOWNE PL",
"parcelcity": "RALEIGH",
"situs_state": null,
"situs_zip": "27604",
"municipality": null,
"subdivision": null,
"legal_description": "LO4 MORDECAI TOWNS AT COURTLAND DRIVE BM2007 -01069",
"longitude": -78.62700116632315,
"latitude": 35.79988145,
"taxacres": 0.03,
"land_use_code": "RHS",
"usedesc": "R",
"zoning_code": null,
"zoning_description": null
}
],
"truncated": false,
"credits": 1
},
{
"index": 1,
"input": {
"korzy_id": "37183-676db8ae68362b7a3685"
},
"status": "ok",
"records": [
{
"id": "37183-676db8ae68362b7a3685",
"korzy_id": "37183-676db8ae68362b7a3685",
"parcelid": "1714066205",
"alternate_parcel_number": "0364254",
"statefp": "37",
"geoid": "37183",
"countyname": "Wake",
"updated": "2026-05-17",
"parceladdr": "714 MORDECAI TOWNE PL",
"parcelcity": "RALEIGH",
"situs_state": null,
"situs_zip": "27604",
"municipality": null,
"subdivision": null,
"legal_description": "LO4 MORDECAI TOWNS AT COURTLAND DRIVE BM2007 -01069",
"longitude": -78.62700116632315,
"latitude": 35.79988145,
"taxacres": 0.03,
"land_use_code": "RHS",
"usedesc": "R",
"zoning_code": null,
"zoning_description": null
}
],
"truncated": false,
"credits": 1
},
{
"index": 2,
"input": {
"longitude": -78.627,
"latitude": 35.7999
},
"status": "ok",
"records": [
{
"id": "37183-676db8ae68362b7a3685",
"korzy_id": "37183-676db8ae68362b7a3685",
"parcelid": "1714066205",
"alternate_parcel_number": "0364254",
"statefp": "37",
"geoid": "37183",
"countyname": "Wake",
"updated": "2026-05-17",
"parceladdr": "714 MORDECAI TOWNE PL",
"parcelcity": "RALEIGH",
"situs_state": null,
"situs_zip": "27604",
"municipality": null,
"subdivision": null,
"legal_description": "LO4 MORDECAI TOWNS AT COURTLAND DRIVE BM2007 -01069",
"longitude": -78.62700116632315,
"latitude": 35.79988145,
"taxacres": 0.03,
"land_use_code": "RHS",
"usedesc": "R",
"zoning_code": null,
"zoning_description": null
}
],
"truncated": false,
"credits": 1
}
],
"credits": {
"charged": 3,
"refunded": 0
},
"credits_url": "/v1/fields#attribution",
"request_id": "7fcb2798-ac8e-49ab-96e4-1fd30d093461"
}Example: Owner and sale fields · 2 credits
curl --fail-with-body -sS \
-H "Authorization: Bearer $KORZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"address":"1600 Glenarm Pl, Denver, CO"}],"fields":["identity","sale","owner"]}' \
https://api.korzy.co/v1/enrichProduction response · 200 (abbreviated)
{
"fields": [
"korzy_id",
"parcelid",
"alternate_parcel_number"
],
"results": [
{
"index": 0,
"input": {
"address": "1600 Glenarm Pl, Denver, CO"
},
"status": "ok",
"records": [
{
"id": "08031-00608646b37458fef5b5",
"korzy_id": "08031-00608646b37458fef5b5",
"parcelid": "0234610034000",
"alternate_parcel_number": null,
"statefp": "08",
"geoid": "08031",
"countyname": "Denver",
"updated": "2026-04-21",
"saledate": "2018-07-11",
"saleamt": 131000000,
"last_sale_document": null,
"owner_name": "EXAMPLE HOLDINGS LLC",
"owner_mailing_address": "100 EXAMPLE ST, SAMPLE CITY, ST 00000"
},
{
"id": "08031-38ea02a85c11fd253b1c",
"korzy_id": "08031-38ea02a85c11fd253b1c",
"parcelid": "0234610035000",
"alternate_parcel_number": null,
"statefp": "08",
"geoid": "08031",
"countyname": "Denver",
"updated": "2026-04-21",
"saledate": "2018-07-11",
"saleamt": 131000000,
"last_sale_document": null,
"owner_name": "EXAMPLE HOLDINGS LLC",
"owner_mailing_address": "100 EXAMPLE ST, SAMPLE CITY, ST 00000"
},
{
"id": "08031-5b4cf0a0a15d0ff3a944",
"korzy_id": "08031-5b4cf0a0a15d0ff3a944",
"parcelid": "0234610034998",
"alternate_parcel_number": null,
"statefp": "08",
"geoid": "08031",
"countyname": "Denver",
"updated": "2026-04-21",
"saledate": "2026-06-15",
"saleamt": 0,
"last_sale_document": null
}
],
"truncated": false,
"credits": 2
}
],
"credits": {
"charged": 2,
"refunded": 0
},
"credits_url": "/v1/fields#attribution",
"request_id": "fdce65b2-8dc1-48a2-8d8f-dfa134d28acf"
}Enrich fields
Pass groups or single fields in fields. Every record also has id and korzy_id. Any field can be null where the source doesn't publish it. Lookup and records return the same parcel fields, without the owner group.
| Group | Fields |
|---|---|
identity | korzy_id: Parcel ID. Treat it as an opaque string.parcelid: The jurisdiction’s parcel number.alternate_parcel_number: Another parcel number the jurisdiction publishes.statefp: State FIPS code.geoid: County FIPS code.countyname: County name.updated: Date the record was last updated. |
address | parceladdr: Situs (property) street address.parcelcity: Situs city.situs_state: Situs state.situs_zip: Situs ZIP code.municipality: Municipality.subdivision: Subdivision.legal_description: Legal description. |
location | longitude: Longitude of a point on the parcel.latitude: Latitude of a point on the parcel. |
land | taxacres: Lot size (acreage).land_use_code: Land-use code.usedesc: Land-use description.zoning_code: Zoning code.zoning_description: Zoning description. |
building | yearbuilt: Year built.bldgsqft: Building area in square feet.living_area_sqft: Living area in square feet.building_count: Number of buildings. |
value | totalvalue: Total value in US dollars.land_value_usd: Land value in US dollars.improvement_value_usd: Improvement value in US dollars.assessed_value_usd: Assessed value in US dollars.market_value_usd: Market value in US dollars.taxable_value_usd: Taxable value in US dollars.tax_year: Tax year.tax_amount_usd: Tax amount in US dollars. |
sale | saledate: Date of the last reported sale.saleamt: Price of the last reported sale.last_sale_document: Document number of the last reported sale. |
owner (2 credits per item) | owner_name: Owner name.owner_name_additional: Additional owner names.owner_mailing_address: Owner mailing address.owner_type: Owner type, such as individual or company. |
Presets
| Preset | Groups | Credits per item |
|---|---|---|
basic | identity, address, location, land | 1 credit |
standard (default) | identity, address, location, land, building, value, sale | 1 credit |
owner | identity, address, location, owner | 2 credits |
Records
One record by the id a lookup or enrich returned: a parcel, power plant, data-center project, utility, energy facility, grid-capacity, property or nearby record.
/v1/records/{id}1 creditOne record by ID, with its provenance.
Path parameters
| Field | Type | Description |
|---|---|---|
id | string | An id from a lookup or enrich response, URL-encoded. See record IDs. |
Response (200)
| Field | Type | Description |
|---|---|---|
id | string | The ID you asked for. |
type | string | One of parcel, power_plant, data_center, utility, energy_facility, grid_capacity, property, poi. |
record | object | The record. Parcel and property records never include owner fields. |
provenance | array | Dataset, as_of date and data version of each source. |
credits | object | charged and refunded: what this request spent and what was given back (failed items or sections). |
request_id | string | ID of this request. Include it in support requests. |
Errors
| Status | Code | Meaning |
|---|---|---|
404 | record_not_found | No record has this ID. Refunded. |
422 | invalid_id | The ID is not in a known form. Refunded. |
Example: A parcel · 1 credit
curl --fail-with-body -sS \
-H "Authorization: Bearer $KORZY_API_KEY" \
https://api.korzy.co/v1/records/37183-676db8ae68362b7a3685Production response · 200 (abbreviated)
{
"id": "37183-676db8ae68362b7a3685",
"type": "parcel",
"record": {
"id": "37183-676db8ae68362b7a3685",
"bldgsqft": 2393,
"countyname": "Wake",
"latitude": 35.79988145,
"longitude": -78.62700116632315,
"korzy_id": "37183-676db8ae68362b7a3685",
"parceladdr": "714 MORDECAI TOWNE PL",
"parcelcity": "RALEIGH",
"parcelid": "1714066205",
"saleamt": 740000,
"saledate": "2025-07-10",
"statefp": "37",
"taxacres": 0.03,
"totalvalue": 662832,
"updated": "2026-05-17",
"usedesc": "R",
"yearbuilt": 2009,
"situs_state": null,
"situs_zip": "27604",
"municipality": null,
"subdivision": null,
"legal_description": "LO4 MORDECAI TOWNS AT COURTLAND DRIVE BM2007 -01069",
"land_use_code": "RHS",
"zoning_code": null,
"zoning_description": null,
"alternate_parcel_number": "0364254",
"living_area_sqft": null,
"building_count": 1,
"tax_year": null,
"land_value_usd": 135000,
"improvement_value_usd": 527832,
"assessed_value_usd": null,
"market_value_usd": null,
"taxable_value_usd": null,
"tax_amount_usd": null,
"last_sale_document": "Deed Book/Page 019954/02049",
"geoid": "37183",
"parcelid2": "0364254",
"ogparcelid": "1714066205",
"taxacctnum": null
},
"provenance": [
{
"dataset": "parcels",
"as_of": null,
"data_version": null
}
],
"credits": {
"charged": 1,
"refunded": 0
},
"credits_url": "/v1/fields#attribution",
"request_id": "c3ea32bf-0db7-4173-be4a-51cdca989f57"
}Example: A power plant · 1 credit
curl --fail-with-body -sS \
-H "Authorization: Bearer $KORZY_API_KEY" \
https://api.korzy.co/v1/records/plant%3A57695Production response · 200 (abbreviated)
{
"id": "plant:57695",
"type": "power_plant",
"record": {
"plant_id": "57695",
"plant_name": "Topaz Solar Farm",
"utility_id": "59874",
"utility_name": "Topaz Solar Farms LLC",
"state": "CA",
"county": "San Luis Obispo",
"street_address": "10400 Helios Way",
"city": "Santa Margarita",
"zip_code": "93453",
"latitude": 35.405556,
"longitude": -120.068611,
"nerc_region": "WECC",
"balancing_authority_code": "CISO",
"balancing_authority_name": "California Independent System Operator",
"grid_owner": "Pacific Gas & Electric Co",
"grid_owner_id": "14328",
"grid_voltage_kv": 230,
"grid_voltage_2_kv": null,
"grid_voltage_3_kv": null,
"water_source": null,
"natural_gas_ldc": null,
"gas_pipeline_1": null,
"gas_pipeline_2": null,
"gas_pipeline_3": null,
"pipeline_notes": null,
"report_year": 2025,
"data_version": "2b27929d26cc1da9ad6a530da1cac6718cd8496098ee560c4d47cfffd96d08ba",
"source_workbook": "[internal reference]",
"source_sheet": "Plant",
"state_fips": "06",
"coordinate_status": "valid",
"generators": [
{
"plant_id": "57695",
"plant_name": "Topaz Solar Farm",
"utility_id": "59874",
"utility_name": "Topaz Solar Farms LLC",
"state": "CA",
"county": "San Luis Obispo",
"generator_id": "TPZ1",
"technology": "Solar Photovoltaic",
"prime_mover": "PV",
"energy_source_1": "SUN",
"energy_source_2": null,
"status_code": "OP",
"nameplate_capacity_mw": 129.8,
"summer_capacity_mw": 129.8,
"winter_capacity_mw": 129.8,
"minimum_load_mw": null,
"operating_month": 4,
"operating_year": 2013,
"planned_retirement_month": null,
"planned_retirement_year": null,
"retirement_month": null,
"retirement_year": null,
"planned_operating_month": null,
"planned_operating_year": null,
"lmp_node": null,
"wholesale_location": null,
"chp_code": "N",
"report_year": 2025,
"data_version": "2b27929d26cc1da9ad6a530da1cac6718cd8496098ee560c4d47cfffd96d08ba",
"source_workbook": "[internal reference]",
"source_sheet": "Operable",
"state_fips": "06",
"status": "operating",
"inventory_group": "operable",
"date_issues": [],
"fuel_group": "solar"
},
{
"plant_id": "57695",
"plant_name": "Topaz Solar Farm",
"utility_id": "59874",
"utility_name": "Topaz Solar Farms LLC",
"state": "CA",
"county": "San Luis Obispo",
"generator_id": "TPZ2",
"technology": "Solar Photovoltaic",
"prime_mover": "PV",
"energy_source_1": "SUN",
"energy_source_2": null,
"status_code": "OP",
"nameplate_capacity_mw": 151.2,
"summer_capacity_mw": 151.2,
"winter_capacity_mw": 151.2,
"minimum_load_mw": null,
"operating_month": 6,
"operating_year": 2013,
"planned_retirement_month": null,
"planned_retirement_year": null,
"retirement_month": null,
"retirement_year": null,
"planned_operating_month": null,
"planned_operating_year": null,
"lmp_node": null,
"wholesale_location": null,
"chp_code": "N",
"report_year": 2025,
"data_version": "2b27929d26cc1da9ad6a530da1cac6718cd8496098ee560c4d47cfffd96d08ba",
"source_workbook": "[internal reference]",
"source_sheet": "Operable",
"state_fips": "06",
"status": "operating",
"inventory_group": "operable",
"date_issues": [],
"fuel_group": "solar"
},
{
"plant_id": "57695",
"plant_name": "Topaz Solar Farm",
"utility_id": "59874",
"utility_name": "Topaz Solar Farms LLC",
"state": "CA",
"county": "San Luis Obispo",
"generator_id": "TPZ3",
"technology": "Solar Photovoltaic",
"prime_mover": "PV",
"energy_source_1": "SUN",
"energy_source_2": null,
"status_code": "OP",
"nameplate_capacity_mw": 102.1,
"summer_capacity_mw": 102.1,
"winter_capacity_mw": 102.1,
"minimum_load_mw": null,
"operating_month": 1,
"operating_year": 2014,
"planned_retirement_month": null,
"planned_retirement_year": null,
"retirement_month": null,
"retirement_year": null,
"planned_operating_month": null,
"planned_operating_year": null,
"lmp_node": null,
"wholesale_location": null,
"chp_code": "N",
"report_year": 2025,
"data_version": "2b27929d26cc1da9ad6a530da1cac6718cd8496098ee560c4d47cfffd96d08ba",
"source_workbook": "[internal reference]",
"source_sheet": "Operable",
"state_fips": "06",
"status": "operating",
"inventory_group": "operable",
"date_issues": [],
"fuel_group": "solar"
}
],
"generator_count": 5,
"generators_truncated": false,
"energy": {
"latest_period": "2026-08",
"observations": [
{
"dataset": "plant_monthly",
"plant_id": "57695",
"generator_id": null,
"region": "CA",
"period": "2026-08",
"metric": "fuel_consumption_mmbtu",
"value": 422341,
"unit": "MMBtu",
"dimensions_json": "{\"aggregation\": \"plant_fuel\", \"data_status\": \"preliminary\", \"fuel\": \"SUN\", \"nuclear_unit_id\": \".\", \"prime_mover\": \"PV\", \"source_sheet\": \"Page 1 Generation and Fuel Data\", \"source_workbook\": \"[internal reference]\"}",
"data_version": "50ec141c118547dc0219356171476319e45b5ea382446bda617752a5635e4e91",
"source_date": "2026-08",
"retrieved_at": "2026-10-31T10:30:48.104651+00:00"
},
{
"dataset": "plant_monthly",
"plant_id": "57695",
"generator_id": null,
"region": "CA",
"period": "2026-08",
"metric": "fuel_consumption_quantity",
"value": 0,
"unit": "source fuel units",
"dimensions_json": "{\"aggregation\": \"plant_fuel\", \"data_status\": \"preliminary\", \"fuel\": \"SUN\", \"nuclear_unit_id\": \".\", \"prime_mover\": \"PV\", \"source_sheet\": \"Page 1 Generation and Fuel Data\", \"source_workbook\": \"[internal reference]\"}",
"data_version": "50ec141c118547dc0219356171476319e45b5ea382446bda617752a5635e4e91",
"source_date": "2026-08",
"retrieved_at": "2026-10-31T10:30:48.104651+00:00"
},
{
"dataset": "plant_monthly",
"plant_id": "57695",
"generator_id": null,
"region": "CA",
"period": "2026-08",
"metric": "generation_mwh",
"value": 123781,
"unit": "MWh",
"dimensions_json": "{\"aggregation\": \"plant_fuel\", \"data_status\": \"preliminary\", \"fuel\": \"SUN\", \"nuclear_unit_id\": \".\", \"prime_mover\": \"PV\", \"source_sheet\": \"Page 1 Generation and Fuel Data\", \"source_workbook\": \"[internal reference]\"}",
"data_version": "50ec141c118547dc0219356171476319e45b5ea382446bda617752a5635e4e91",
"source_date": "2026-08",
"retrieved_at": "2026-10-31T10:30:48.104651+00:00"
}
],
"truncated": false
}
},
"provenance": [
{
"dataset": "power_plants",
"as_of": null,
"data_version": "2b27929d26cc1da9ad6a530da1cac6718cd8496098ee560c4d47cfffd96d08ba"
},
{
"dataset": "energy_operations",
"as_of": "2026-11-05",
"data_version": "20261105T054519113327Z"
}
],
"credits": {
"charged": 1,
"refunded": 0
},
"credits_url": "/v1/fields#attribution",
"request_id": "39927bef-3c40-4635-8e30-cb8523b0b817"
}Record IDs
Use IDs exactly as a response returned them, URL-encoded in the path. Treat them as opaque.
| Type | ID | Record |
|---|---|---|
parcel | <korzy_id>, e.g. 37183-676db8ae68362b7a3685 | The parcel record, without owner fields. |
power_plant | plant:<plant id> | The plant, its generators and a summary of recent generation and fuel. |
data_center | datacenter:<project id> | The project with its timeline and capacity evidence. |
utility | utility:<feature id> | A water, sewer, treatment, gas or fiber record. |
energy_facility | energy:<feature id> | An oil, gas or coal facility or route. |
grid_capacity | capacity:<record id> | A load-capacity record with dated observations. |
property | property:<record id> | A property address, sale and assessment record, without owner or mailing fields. |
poi | poi:<record id> | An environmental, logistics or transmission record from a lookup section. |
Ask
A question about one place, answered from Korzy data with cited sources. The answer looks up parcels, sections and records itself; owner fields are never used. The question and the Korzy data it draws on are sent to an external language model that writes the answer. 10 credits per question, at most 6 a minute and 200 a day per organization.
/v1/ask10 creditsAnswer a question about an address or point, with citations to the records used.
Body
| Field | Type | Description |
|---|---|---|
question (required) | string | The question, 3–1,000 characters. |
address | string | A street address, 3–160 characters, such as 714 Mordecai Towne Pl, Raleigh, NC. Must match exactly; including the state gives the most precise match. |
longitude | number | Longitude, −180 to 180. Send with latitude instead of address. |
latitude | number | Latitude, −85 to 85. |
Response (200)
| Field | Type | Description |
|---|---|---|
answer | string | The answer, with inline citations such as [c1]. |
citations | array | Each citation: ref (c1), id of the record, and field, source and as_of where known. |
model | string | The model that wrote the answer. |
usage | object | Token counts, model calls and data lookups used. |
credits | integer | Credits this question spent, as a number (unlike other routes, not a charged/refunded object). |
request_id | string | ID of this request. Include it in support requests. |
Send the question with exactly one location: address, or longitude and latitude.
Errors
| Status | Code | Meaning |
|---|---|---|
422 | invalid_request | The body is missing a field, has an unknown one or a value out of range. detail says which. |
404 | address_not_found | No exact match for the address. Refunded. |
429 | ask_rate_limited | Your organization reached its Ask limit for the minute or day. Wait for Retry-After. |
502 | ask_location_unavailable | The location was found but could not be loaded for the answer. Refunded; retry. |
503 | ask_capacity | Ask is at capacity for today. Refunded; try again later. |
503 | ask_unavailable | Ask is temporarily unavailable. Refunded. |
Example · 10 credits
curl --fail-with-body -sS \
-H "Authorization: Bearer $KORZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"question":"Does this property have public water and sewer, and are there cleanup sites nearby?","address":"2304 Hillsborough St, Raleigh, NC"}' \
https://api.korzy.co/v1/askProduction response · 200 (abbreviated)
{
"answer": "Yes.\n\n- Public water: the parcel is within the Raleigh, City of water boundary [c2].\n- Public sewer: the parcel is within the Neuse River Resource Recovery Facility sewer boundary [c3].\n\nNearby cleanup sites:\n- Brownfield site “FORMER TAO AUTO,” about 1.74 km away [c11].\n- Superfund NPL site “North Carolina State University (Lot 86, Farm Unit #1),” about 4.56 km away [c10].\n\nKorzy data does not say whether those cleanup sites affect the parcel itself.",
"citations": [
{
"ref": "c2",
"id": "utility:water:29943",
"field": null,
"source": "water, sewer, treatment",
"as_of": null
},
{
"ref": "c3",
"id": "utility:sewer:2161",
"field": null,
"source": "water, sewer, treatment",
"as_of": null
},
{
"ref": "c11",
"id": "poi:brownfields:brownfields:records:5117",
"field": null,
"source": "superfund_sites, superfund_npl, brownfields, protected_areas, critical_habitat_areas, critical_habitat_lines, air_quality_areas, flood_hazard, wetlands",
"as_of": null
}
],
"model": "example-model",
"usage": {
"input_tokens": 4215,
"cached_input_tokens": 4096,
"output_tokens": 163,
"reasoning_tokens": 41,
"model_calls": 1,
"tool_calls": 0
},
"credits": 10,
"request_id": "7a2558aa-cd4a-4847-9f9f-ce063bbfe1d7"
}/v1/ask/stream10 creditsThe same answer as server-sent events, as it is written.
Body
| Field | Type | Description |
|---|---|---|
question (required) | string | The question, 3–1,000 characters. |
address | string | A street address, 3–160 characters, such as 714 Mordecai Towne Pl, Raleigh, NC. Must match exactly; including the state gives the most precise match. |
longitude | number | Longitude, −180 to 180. Send with latitude instead of address. |
latitude | number | Latitude, −85 to 85. |
The response is text/event-stream. Each event is event: <name> and one line of JSON data; see stream events.
If the stream ends without a done event (an error, a dropped connection or a cancel), the request is refunded.
Errors
| Status | Code | Meaning |
|---|---|---|
422 | invalid_request | The body is missing a field, has an unknown one or a value out of range. detail says which. |
404 | address_not_found | No exact match for the address. Refunded. |
429 | ask_rate_limited | Your organization reached its Ask limit for the minute or day. |
502 | ask_location_unavailable | Sent as an error event after start: the location could not be loaded. Refunded. |
503 | ask_capacity | Ask is at capacity for today. Refunded; try again later. |
503 | ask_unavailable | Ask is temporarily unavailable. Refunded. |
Example · 10 credits
curl --fail-with-body -sS -N \
-H "Authorization: Bearer $KORZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"question":"Does this property have public water and sewer, and are there cleanup sites nearby?","address":"2304 Hillsborough St, Raleigh, NC"}' \
https://api.korzy.co/v1/ask/streamProduction response · 200 (abbreviated)
event: start
data: {"request_id":"b7f165f6-5b37-4520-acc9-02558ac980d0","model":"example-model"}
event: step
data: {"step":1,"tool":"lookup","arguments":{"address":"2304 Hillsborough St, Raleigh, NC"},"status":"ok","ms":1098}
event: delta
data: {"text":"Kor"}
event: delta
data: {"text":"zy"}
event: delta
data: {"text":" data"}
event: done
data: {"answer":"Korzy data shows the parcel is within the Raleigh, City of water utility boundary [c2], and it is associated with sewer context tied to the Neuse River Resource Recovery Facility [c3]. However, Korzy data does not explicitly confirm parcel-level water/sewer service or a connection.\n\nYes, there are cleanup sites nearby: a Brownfields site, “FORMER TAO AUTO,” about 1.74 km away [c11], and a Superfund NPL site, “North Carolina State University (Lot 86, Farm Unit #1),” about 4.56 km away [c10].","citations":[{"ref":"c2","id":"utility:water:29943","field":null,"source":"water, sewer, treatment","as_of":null},{"ref":"c3","id":"utility:sewer:2161","field":null,"source":"water, sewer, treatment","as_of":null},{"ref":"c11","id":"poi:brownfields:brownfields:records:5117","field":null,"source":"superfund_sites, superfund_npl, brownfields, protected_areas, critical_habitat_areas, critical_habitat_lines, air_quality_areas, flood_hazard, wetlands","as_of":null}],"model":"example-model","usage":{"input_tokens":4215,"cached_input_tokens":4096,"output_tokens":245,"reasoning_tokens":114,"model_calls":1,"tool_calls":0},"credits":10,"request_id":"b7f165f6-5b37-4520-acc9-02558ac980d0"}
Stream events
| Event | Data |
|---|---|
start | request_id, model. |
step | A data lookup the answer made: step, tool, arguments, status (ok or error) and ms. |
delta | text: the next piece of the answer. |
done | The same object /v1/ask returns. Credits are kept only when done arrives. |
error | code and detail; the stream then ends and the request is refunded. |
Support
Report missing or wrong data, request a feature or report a bug. Free; at most 10 an hour and 30 a day per organization.
/v1/supportFreeOpen a support request. We read every one.
Body
| Field | Type | Description |
|---|---|---|
type (required) | string | feature, data or bug. |
message (required) | string | What happened or what you need, 1–4,000 characters. |
context | object | Optional: request_id, korzy_id, longitude, latitude and endpoint the message is about. |
Response (201)
| Field | Type | Description |
|---|---|---|
ticket_id | string | ID of the request. |
status | string | open. |
created_at | string | When it was opened (ISO 8601). |
credits | object | charged and refunded: what this request spent and what was given back (failed items or sections). |
request_id | string | ID of this request. Include it in support requests. |
Errors
| Status | Code | Meaning |
|---|---|---|
422 | invalid_request | The body is missing a field, has an unknown one or a value out of range. detail says which. |
429 | support_rate_limited | Your organization reached its support limit for the hour or day. |
Example · Free
curl --fail-with-body -sS \
-H "Authorization: Bearer $KORZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"feature","message":"Example request captured for the Korzy API docs; no action needed.","context":{"endpoint":"/v1/lookup"}}' \
https://api.korzy.co/v1/supportProduction response · 201 (abbreviated)
{
"ticket_id": "8550bff4-622f-4146-abf5-258109c9bee2",
"status": "open",
"created_at": "2026-11-05T21:13:00.283Z",
"credits": {
"charged": 0,
"refunded": 0
},
"credits_url": "/v1/fields#attribution",
"request_id": "082817b9-2595-4c3d-96bc-2a8d386c787d"
}Fields
What each route returns and costs, read by programs and agents before they spend credits. Free.
/v1/fieldsFreeLookup sections, enrich fields, groups and presets, record types, credits, limits and data attribution.
Response (200)
| Field | Type | Description |
|---|---|---|
lookup | object | credits and sections: each with name, credits, description, key data fields and coverage. |
enrich | object | max_items, item_credits, owner_multiplier, groups (each with owner and typed fields), presets and default_preset. |
records | object | credits and types, each with its id_format. |
ask | object | credits and limits. |
support | object | Credits and limits. |
attribution | array | Data sources and the attribution each requires. |
credits | object | charged and refunded: what this request spent and what was given back (failed items or sections). |
request_id | string | ID of this request. Include it in support requests. |
Example · Free
curl --fail-with-body -sS \
-H "Authorization: Bearer $KORZY_API_KEY" \
https://api.korzy.co/v1/fieldsProduction response · 200 (abbreviated)
{
"lookup": {
"credits": 1,
"max_parcels": 20,
"sections": [
{
"name": "utilities",
"credits": 1,
"description": "Mapped water and sewer service areas covering the point and wastewater treatment plants within 50 km.",
"data": [
{
"name": "water",
"type": "array",
"unit": null
},
{
"name": "sewer",
"type": "array",
"unit": null
},
{
"name": "treatment_plants[].distance_km",
"type": "number",
"unit": "km"
}
],
"coverage": "Mapped service areas where published; no match means unknown."
},
{
"name": "environment",
"credits": 1,
"description": "Environmental areas at the point and cleanup sites within 10 km (up to 5 per layer), with flood hazard and wetland mapping coverage.",
"data": [
{
"name": "matches",
"type": "object",
"unit": null
},
{
"name": "nearby[].distance_km",
"type": "number",
"unit": "km"
},
{
"name": "coverage",
"type": "object",
"unit": null
}
],
"coverage": "Coverage is mapped, unknown or unavailable; never a finding that the point is outside a flood zone or wetland."
},
{
"name": "logistics",
"credits": 1,
"description": "Rail, ports, terminals, waterways, roads, bridges and warehouses within 25 km (up to 5 per layer).",
"data": [
{
"name": "nearby[].distance_km",
"type": "number",
"unit": "km"
}
],
"coverage": "Straight-line distances to mapped geometry, not routed distances."
}
]
},
"enrich": {
"max_items": 25,
"item_credits": 1,
"max_records_per_item": 20,
"groups": [
{
"name": "identity",
"owner": false,
"fields": [
{
"name": "korzy_id",
"type": "string",
"unit": null,
"description": "Korzy parcel ID (stable across releases)"
},
{
"name": "parcelid",
"type": "string",
"unit": null,
"description": "Source parcel number (APN)"
},
{
"name": "alternate_parcel_number",
"type": "string",
"unit": null,
"description": "Alternate source parcel number"
}
]
},
{
"name": "address",
"owner": false,
"fields": [
{
"name": "parceladdr",
"type": "string",
"unit": null,
"description": "Situs (property) street address"
},
{
"name": "parcelcity",
"type": "string",
"unit": null,
"description": "Situs city"
},
{
"name": "situs_state",
"type": "string",
"unit": null,
"description": "Situs state"
}
]
},
{
"name": "location",
"owner": false,
"fields": [
{
"name": "longitude",
"type": "number",
"unit": "degrees",
"description": "Longitude of a point inside the parcel"
},
{
"name": "latitude",
"type": "number",
"unit": "degrees",
"description": "Latitude of a point inside the parcel"
}
]
}
],
"presets": {
"basic": [
"identity",
"address",
"location"
],
"standard": [
"identity",
"address",
"location"
],
"owner": [
"identity",
"address",
"location"
]
},
"default_preset": "standard"
},
"records": {
"credits": 1,
"types": [
{
"type": "parcel",
"id_format": "<korzy_id> for served counties, otherwise parcel:<korzy_id>@<z>/<x>/<y>; use the ID exactly as returned",
"example": "37183-676db8ae68362b7a3685"
},
{
"type": "power_plant",
"id_format": "plant:<plant id>",
"example": "plant:3"
},
{
"type": "data_center",
"id_format": "datacenter:<project id>"
}
]
},
"ask": {
"credits": 10,
"limits": {
"per_org_per_minute": 6,
"per_org_per_day": 200
}
},
"support": {
"credits": 0,
"types": [
"feature",
"data",
"bug"
],
"message_max": 4000,
"limits": {
"per_org_per_hour": 10,
"per_org_per_day": 30
}
},
"fields": {
"credits": 0
},
"attribution": [
{
"license": "ODbL-1.0"
},
{},
{
"license": "ODbL-1.0"
}
],
"credits": {
"charged": 0,
"refunded": 0
},
"credits_url": "/v1/fields#attribution",
"request_id": "c42fb0f6-865a-43d5-8c7b-4bacca9de2aa"
}Error responses
Errors return JSON with a detail message and, where applicable, a machine-readable code. Status codes every route can return are listed under Errors; codes for each route are listed with it above.
Unknown record
curl --fail-with-body -sS \
-H "Authorization: Bearer $KORZY_API_KEY" \
https://api.korzy.co/v1/records/plant%3A0Production response · 404
{
"detail": "No record with this ID",
"code": "record_not_found"
}Invalid body
curl --fail-with-body -sS \
-H "Authorization: Bearer $KORZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"address":"x"}' \
https://api.korzy.co/v1/lookupProduction response · 422
{
"detail": "address: String should have at least 3 characters",
"code": "invalid_request"
}