Get a property's details
const url = 'https://app-api.landinsights.co/api/public/v1/properties/7234891/';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://app-api.landinsights.co/api/public/v1/properties/7234891/ \ --header 'Authorization: Bearer <token>'Returns parcel details including geometry centroid, owner, situs address, acreage, year built, zoning, market valuation, and land-suitability signals such as soil types with septic suitability, road frontage, wetlands, and flood-zone coverage.
Cost: 10 tokens per call.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Land Insights numeric parcel identifier (also returned as property_id in search and filter responses).
Examples
Sample PropertyID
7234891Responses
Section titled “ Responses ”Full detail for a single parcel: identity, location and boundary, situs and mailing addresses, ownership, assessment and valuation, structures, sale and mortgage history, and derived signals such as terrain (slope and elevation), wetlands, flood zone, and road access.
object
Land Insights numeric identifier for the parcel. Stable.
Direct link to view this parcel in the Land Insights web app.
Assessor’s Parcel Number — the county-assigned property identifier.
Sequence number distinguishing multiple records sharing an APN.
Previous or alternate APN.
Flag indicating the APN recently changed.
County tax account / bill number.
5-digit county FIPS code (2-digit state FIPS + 3-digit county FIPS).
First American general property-class code (e.g. Residential, Commercial, Office).
Geographic centroid (point-on-surface) of the parcel as [longitude, latitude] in WGS84 (EPSG:4326). May be null if geometry is unavailable.
Parcel boundary polygon as a GeoJSON geometry object (WGS84). Null when geometry is unavailable.
object
Parcel acreage as reported by the county assessor (source field LotSizeAcres). This is the authoritative legal/recorded acreage. For the acreage measured from the parcel polygon, see calculated_acres. Acreage filters use effective_acres.
Parcel acreage computed from the parcel geometry (source field CalculatedAcres): the GIS area of the polygon in acres, rounded to two decimals. May differ from the assessor-reported acres due to surveying or geometry differences, and is null when geometry is unavailable.
Parcel acreage used for acreage filtering and sorting: the assessor-reported acres when present, otherwise the polygon-measured calculated_acres. Null only when both are unavailable.
Parcel area in square feet, per the assessor.
Physical street address of the parcel (situs).
Situs house number.
Situs house-number suffix (e.g. ‘1/2’).
Pre-directional of the situs street (e.g. ‘N’).
Situs street name.
Situs street suffix/mode (e.g. ‘ST’, ‘RD’).
Post-directional of the situs street (e.g. ‘SW’).
Situs unit type (e.g. ‘APT’, ‘STE’).
Situs unit number.
Situs city.
Situs two-letter US state code.
Situs 5-digit ZIP code.
Situs ZIP+4 extension.
USPS carrier route code for the situs address.
Assessor-provided situs latitude (WGS84).
Assessor-provided situs longitude (WGS84).
US Census tract.
US Census block.
Land-use description, resolved from the assessor land-use code.
State-normalized land-use code.
County-specific land-use code (raw).
Zoning code as recorded by the county assessor. Codes are not standardized across counties — interpret in county context.
Flag indicating a mobile/manufactured home on the parcel.
Name of the school district the parcel falls within.
Assessor topography code.
Assessor water-service code.
Lot code.
Lot number.
Land lot.
Block.
Section.
District.
Legal unit.
Municipality.
Subdivision name.
Subdivision phase number.
Subdivision tract number.
PLSS meridian.
Reference to the assessor’s parcel map.
Free-text legal description of the parcel.
Full name of the primary owner of record (raw string from assessor; typically uppercase, may include corporate suffixes like ‘LLC’).
Full name of the secondary owner of record, if any.
Set when the primary owner is a corporate entity.
Primary owner first name.
Primary owner middle name.
Primary owner last name (or entity name).
Primary owner name suffix.
Set when the secondary owner is a corporate entity.
Secondary owner first name.
Secondary owner middle name.
Secondary owner last name (or entity name).
Secondary owner name suffix.
‘Y’ when the owner occupies the parcel; blank/null otherwise.
Ownership-rights code for the primary owner.
Owner’s full mailing street address.
Mailing house number.
Mailing house-number suffix.
Mailing street pre-directional.
Mailing street name.
Mailing street suffix/mode (e.g. ‘ST’, ‘RD’).
Mailing street post-directional.
Mailing unit type.
Mailing unit number.
Mailing city.
Mailing two-letter US state code.
Mailing 5-digit ZIP code.
Mailing ZIP+4 extension.
USPS carrier route code for the mailing address.
Do-not-mail flag for the owner mailing address.
Set when the mailing address is outside the US.
Assessor’s total assessed value, in whole US dollars.
Assessor’s assessed land value, in whole US dollars.
Assessor’s assessed improvement value, in whole US dollars.
Assessor’s most recent total market value estimate, in whole US dollars.
Assessor’s market land value, in whole US dollars.
Assessor’s market improvement value, in whole US dollars.
Improvement value as a percentage of total value — a vacancy signal (low percentage suggests little/no structure).
Annual property tax amount, in US dollars (source TaxAmt).
Tax year for tax_amount.
Earliest year the parcel became tax-delinquent; null if current.
Year of the assessor market-value estimate.
Year of the assessed values.
Tax rate area code governing the parcel.
Homestead exemption flag.
Veteran exemption flag.
Disabled exemption flag.
Widow/widower exemption flag.
Senior exemption flag.
School/college exemption flag.
Religious exemption flag.
Welfare exemption flag.
Public-utility exemption flag.
Cemetery exemption flag.
Hospital exemption flag.
Library exemption flag.
Building square footage considered most representative for assessment/comparison; the source area is named by building_area_indicator (e.g. Living, Adjusted, Gross).
Code naming which area was used to populate building_area.
Total building square footage on the parcel.
Total living area sq ft.
Ground-floor sq ft.
Gross area sq ft.
Adjusted area sq ft.
Year the primary structure was built, per the assessor. Null for vacant land or unrecorded structures.
Effective year built (after major renovations).
Number of bedrooms.
Total number of rooms.
Calculated total bathroom count.
Number of full bathrooms.
Number of partial bathrooms.
Assessor air-conditioning code.
Assessor heating code.
Number of garage/parking spaces.
Assessor building-quality code.
Assessor roof-cover code.
Assessor number-of-stories code.
Assessor building-style code.
Number of residential units.
Number of buildings/structures on the parcel.
Number of commercial units.
True when the parcel appears to have a structure (per the vacancy heuristic over building square footage and year built).
Recording document number for the most recent sale.
Deed book (current sale).
Deed page (current sale).
Recording date of the most recent sale (YYYYMMDD).
Contract date of the most recent sale (YYYYMMDD).
Deed/document type description for the most recent sale.
Most recent sale price, in whole US dollars.
Description of the sale-price code (e.g. full value, partial).
Primary buyer in the most recent sale.
Secondary buyer in the most recent sale.
Primary seller in the most recent sale (prior owner).
Secondary seller in the most recent sale.
Recording document number for the first concurrent mortgage.
Mortgage 1 book.
Mortgage 1 page.
Recording date of the first concurrent mortgage (YYYYMMDD).
Loan amount of the first concurrent mortgage, in whole USD.
Lender on the first concurrent mortgage.
Term of the first concurrent mortgage.
Interest rate (%) of the first concurrent mortgage.
Due date of the first concurrent mortgage (YYYYMMDD).
Loan-type description for the first concurrent mortgage.
Financing-type description for the first concurrent mortgage.
Recording document number for the second concurrent mortgage.
Mortgage 2 book.
Mortgage 2 page.
Recording date of the second concurrent mortgage (YYYYMMDD).
Loan amount of the second concurrent mortgage, in whole USD.
Lender on the second concurrent mortgage.
Term of the second concurrent mortgage.
Interest rate (%) of the second concurrent mortgage.
Due date of the second concurrent mortgage (YYYYMMDD).
Loan-type code for the second concurrent mortgage.
Financing-type code for the second concurrent mortgage.
Recording document number for the prior sale.
Deed book (prior sale).
Deed page (prior sale).
Recording date of the prior sale (YYYYMMDD).
Contract date of the prior sale (YYYYMMDD).
Deed/document type code for the prior sale.
Prior sale price, in whole US dollars.
Sale-price code for the prior sale.
Primary buyer in the prior sale.
Secondary buyer in the prior sale.
Primary seller in the prior sale.
Secondary seller in the prior sale.
Recording document number for the prior first mortgage.
Prior mortgage 1 book.
Prior mortgage 1 page.
Recording date of the prior first mortgage (YYYYMMDD).
Loan amount of the prior first mortgage, in whole USD.
Lender on the prior first mortgage.
Term of the prior first mortgage.
Interest rate (%) of the prior first mortgage.
Due date of the prior first mortgage (YYYYMMDD).
Loan-type code for the prior first mortgage.
Financing-type code for the prior first mortgage.
Primary HOA name.
True when the parcel belongs to a primary HOA.
Secondary HOA name.
True when the parcel belongs to a secondary HOA.
True when the most recent transfer was between family members.
True when the owner’s mailing state differs from the parcel’s.
True when the owner’s mailing county differs from the parcel’s.
True when the owner’s mailing ZIP differs from the parcel’s.
Building square footage estimated from overlapping structures.
Percentage of the parcel area overlapping mapped wetlands.
Percentage of the parcel area within a mapped flood zone.
True when no qualifying public road borders the parcel.
Total length of road frontage along the parcel, in feet.
Roads bordering the parcel, each with its name, classification, and the parcel’s frontage along it (feet), ordered by frontage. Null when road frontage has not been computed for the parcel.
object
Road name, when known.
Road classification (e.g., residential, highway).
Length of the parcel’s frontage along this road, in feet.
USDA-NRCS soil map units overlapping the parcel, each with its share of parcel area (percent), drainage class, hydrologic group, septic limiting features, land capability class, flood frequency, and seasonal high water table depth, ordered by coverage. Empty when no mapped soil overlaps the parcel; null when soil has not been computed.
object
USDA-NRCS soil map unit name (e.g., ‘Cecil sandy loam, 2 to 6 percent slopes’).
Soil map unit symbol (musym).
Share of the parcel’s area covered by this soil map unit.
Dominant drainage class (e.g., ‘Well drained’).
Hydrologic soil group (A–D); later groups drain more slowly and run off more.
Soil conditions that constrain a conventional septic system, from the set ‘Shallow water table’, ‘Shallow bedrock’, ‘Flooding’, ‘Ponding’, ‘Poor drainage’, and ‘Steep slope’. Empty when no limiting feature was identified.
USDA non-irrigated land capability class (1–8). Classes 1–4 are suited to cultivation with increasing limitations; classes 5–8 are generally unsuited to cultivation and better for pasture, range, forest, or wildlife. Lower is better cropland.
How often the soil floods, dominant condition: one of ‘None’, ‘Very rare’, ‘Rare’, ‘Occasional’, ‘Frequent’, or ‘Very frequent’. ‘None’ means no flooding is expected; null when the soil has no flooding rating.
Shallowest annual depth to the seasonal high water table, in inches. Shallower water tables constrain building, basements, and septic. Null when no seasonal high water table is recorded within the surveyed profile.
True when the parcel falls within incorporated city limits.
Lowest ground elevation on the parcel, in feet above sea level.
Highest ground elevation on the parcel, in feet above sea level.
Average ground elevation across the parcel, in feet above sea level.
Resolution of the underlying elevation grid, in meters (1 = high-resolution source, 10 = coarser fallback). Lower is more precise.
Gentlest ground slope on the parcel, as a percent grade (rise/run × 100).
Steepest ground slope on the parcel, as a percent grade. Reported at the 99.5th percentile so a few outlier readings don’t dominate.
Average ground slope across the parcel, as a percent grade (rise/run × 100).
Breakdown of the parcel’s area by ground-slope band, flattest to steepest. Each entry gives the slope range (percent grade) and the share of parcel area in that range; shares sum to roughly 100%. Null when no elevation data is available for the parcel.
object
Lower slope bound of the band, in percent grade (inclusive).
Upper slope bound of the band, in percent grade (exclusive). Null for the open-ended steepest band (50%+).
Share of the parcel’s area whose ground slope falls in this band. Bands sum to roughly 100%.
Count of other parcels in the database with the same mailing address as the current owner — a rough portfolio-size signal.
Examples
Rural vacant parcel (abridged — full detail has many more fields)
{ "property_id": 7234891, "url": "https://app.landinsights.co/data?parcel=7234891", "apn": "07111-04-006", "fips": 8023, "point": [ -105.42, 37.2 ], "shape": { "type": "Polygon", "coordinates": [ [ [ -105.421, 37.198 ], [ -105.419, 37.198 ], [ -105.419, 37.201 ], [ -105.421, 37.201 ], [ -105.421, 37.198 ] ] ] }, "acres": 5, "calculated_acres": 5.13, "owner_name": "SMITH JOHN", "situs_address": null, "situs_city": "SAN LUIS", "situs_state": "CO", "situs_zip": "81152", "land_use": "Vacant Land", "year_built": null, "zoning": "AG", "assessed_total_value": 9800, "market_total_value": 12400, "land_locked": false, "wetlands_percent": 0, "elevation_avg_ft": 7530, "slope_avg_percent": 8.3, "slope_band_distribution": [ { "min_percent": 0, "max_percent": 0.5, "area_percent": 12.3 }, { "min_percent": 0.5, "max_percent": 2.5, "area_percent": 40.1 }, { "min_percent": 50, "max_percent": null, "area_percent": 0 } ], "owner_parcel_count": 3}Validation error.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}Missing or invalid credentials.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}A Pro subscription or higher API tier is required.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}Authenticated but not permitted.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}Resource not found.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}Rate limit exceeded.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}Internal error.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}