Parcel lines
On this page
YOUR_KEY. Get a free key to run them; it takes about a minute and needs no card.Get a free keyParcel lines are the property boundaries counties draw for tax maps. PinSharing returns the parcel at a point or by its id, with its boundary, the county parcel number (APN) and its area, and draws parcel lines on maps. They are included with the Growth plan and up.
Parcel at a point
curl "https://api.pinsharing.com/v1/parcels?lat=35.78035&lon=-78.63915&key=YOUR_KEY"
{
"parcel": {
"type": "Feature",
"id": "us-37183-1703790137",
"bbox": [-78.640007, 35.779656, -78.638176, 35.781147],
"geometry": { "type": "Polygon", "coordinates": [[[-78.6399, 35.7797], …]] },
"properties": {
"parcel_id": "us-37183-1703790137", "apn": "1703790137", "county_fips": "37183", "state": "NC",
"area_m2": 25107.9, "area_acres": 6.204, "source": "nc-onemap", "as_of": "2026-11-06", "keep_forever": true
}
},
"attribution": ["Parcels: NC OneMap (NC Center for Geographic Information and Analysis), from North Carolina county data"],
"license": "You may store these results indefinitely; the source is open-licensed.",
"notice": "Parcel lines come from county and state public records. They are approximate and are not a survey or a legal boundary."
}
parcel is null when no parcel covers the point (a street, water, or an area we don't cover yet). Each call counts 1 address lookup.
Parcel by id
curl "https://api.pinsharing.com/v1/parcels/us-37183-1703790137?geometry=simplified&key=YOUR_KEY"
A parcel_id is us-, the 5-digit county FIPS code and the county's parcel number with punctuation removed. It stays the same across data refreshes unless the county renumbers the parcel. 1 address lookup; 404 if there is no such parcel.
Parcels in an area
curl "https://api.pinsharing.com/v1/parcels?bbox=-78.642,35.778,-78.636,35.782&geometry=none&key=YOUR_KEY"
Returns a GeoJSON FeatureCollection of up to 200 parcels (limit lowers it) in a box of at most 1 km². truncated: true means there were more. Counts 1 address lookup per 10 parcels returned (at least 1). For whole counties or states, ask sales@pinsharing.com about bulk data.
Parameters
| Parameter | Meaning |
|---|---|
lat, lon | A point inside the parcel (WGS84). Geocode an address first if you only have the address. |
bbox | min_lon,min_lat,max_lon,max_lat, up to 1 km² |
geometry | full (default), simplified (about 1 m, much smaller) or none |
limit | bbox only: 1 to 200 |
On maps
- Static images:
parcels=1draws parcel lines under the labels (visible from zoom 13);parcel=<parcel_id>fills one parcel, and fits the view to it if you give nocenter. Both count as 1 static image. - Not with privacy areas: a request with
area=and parcels gets 409privacy_mode_active, because a parcel would reveal the exact property the area hides. - Vector overlay (MapLibre): TileJSON at
/v1/tiles/parcels.json, layerparcelswithidandapn, zoom 13 to 16 (overzoom beyond). - Raster overlay: transparent PNG tiles at
/v1/tiles/parcels/{z}/{x}/{y}.png(add@2xfor sharp screens), zoom 13 to 20, over any basemap.
https://api.pinsharing.com/v1/static?parcel=us-37183-1703790137&size=600x400&key=YOUR_KEY
https://api.pinsharing.com/v1/static?center=35.78035,-78.63915&zoom=17&parcels=1&key=YOUR_KEY
map.on("load", () => {
map.addSource("parcels", { type: "vector", url: "https://api.pinsharing.com/v1/tiles/parcels.json?key=YOUR_KEY" });
map.addLayer({ id: "parcels", type: "line", source: "parcels", "source-layer": "parcels",
paint: { "line-color": "#9a6b3c", "line-width": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 18, 1.5] } });
});
L.tileLayer("https://api.pinsharing.com/v1/tiles/parcels/{z}/{x}/{y}@2x.png?key=YOUR_KEY", {
minZoom: 13, maxZoom: 20, attribution: "Parcels: public records"
}).addTo(map);
Overlay tiles count as map tiles. AI assistants can use the parcel_lookup tool and the parcels and parcel_id options of static_map on the MCP server. Reverse lookups accept include=parcel to add the parcel to the answer (1 more address lookup).
Coverage (November 2026)
About 7.3 million parcels from these sources; GET /v1/parcels/coverage (no key) lists what is live now. We add counties and states as their publishers' terms allow.
| Source | Licence | Attribution to show |
|---|---|---|
| North Carolina statewide parcels (NC OneMap) | NC OneMap free and unrestricted use policy | Parcels: NC OneMap (NC Center for Geographic Information and Analysis), from North Carolina county data |
| Cook County, IL tax parcels, tax year 2020 (Cook County GIS) | Public Domain (Cook County Open Data catalog licence field) | Parcels: Cook County, Illinois (2020 tax parcels, public domain) |
| Kendall County, IL parcels (Kendall County GIS) | CC0 (Kendall County Open GeoData) | Parcels: Kendall County, Illinois GIS (CC0) |
Attribution and limits
- Show the
attributiontext from the response (or the coverage list) near parcel data, together with the OpenStreetMap attribution for the map. - Parcel lines are approximate. They come from tax maps, are not a survey and must not be used to locate legal property lines.
- Don't use parcel data to identify, contact or harass property owners. See Terms, section 4.