---
title: "Find long-held parcels (10+ years)"
method: GET
path: "/api/v1/deals/long-hold"
tags: ["Deals"]
---

# Find long-held parcels (10+ years)

`GET /api/v1/deals/long-hold`

## Request

- Base URL: `https://propraven.com`
- URL: `https://propraven.com/api/v1/deals/long-hold`
- Auth: HTTP bearer

Returns parcels not sold in `min_years` or more. Long-hold owners are often motivated sellers — estate planning, deferred maintenance, life changes. `county_fips` or `state_fips` is required.

## Query parameters

- `county_fips` string
- `state_fips` string
- `min_years` integer
- `hold_tier` '10-15yr' | '15-20yr' | '20-30yr' | '30yr+'
- `min_value` integer
- `tax_delinquent` boolean
- `limit` integer
- `offset` integer

## Response `200`

Long-hold parcels returned.

- object
  - `data` LongHoldParcel[], required
    - `county_fips` string, required
    - `state_fips` string, required
    - `parcel_id` string, required
    - `owner_name` string, nullable, required
    - `address` string, nullable, required
    - `city` string, nullable, required
    - `state` string, nullable, required
    - `zip` string, nullable, required
    - `total_assessed_value` integer, nullable, required
    - `last_sale_date` string, date, nullable, required
    - `last_sale_price` number, nullable, required
    - `years_held` number, nullable, required
    - `year_built` integer, nullable, required
    - `building_age` integer, nullable, required
    - `lot_size_acres` number, nullable, required
    - `hold_tier` '10-15yr' | '15-20yr' | '20-30yr' | '30yr+' | 'null', nullable, required
    - `land_use_desc` string, nullable, required
    - `latitude` number, nullable, required
    - `longitude` number, nullable, required
  - `total` integer, required
  - `limit` integer, required
  - `offset` integer, required
  - `tax_delinquency_filter` TaxDelinquencyFilter: Present when `tax_delinquent=true` was applied.
    - `applied` boolean, required
    - `statuses` string[], required
    - `note` string, required

## Other responses

- `400`: Either county_fips or state_fips is required.
- `401`: Missing, malformed or invalid credential.
- `402`: Monthly call cap reached (free tier, or a paid tier with the hard cap enabled).
- `405`: The endpoint exists but does not support this method. `Allow` lists the methods it does.
- `429`: Rate limit exceeded.
- `500`: Unexpected server error. The body never carries database or driver text.
- `503`: `tax_delinquent=true` before the tax delinquency layer's first load (`code: "tax_delinquency_unavailable"`).
- `504`: The query did not finish in time. Retry after `Retry-After` seconds or narrow the request.

---

[API](https://skmtc.dev/propraven/apis/propraven-api.md) · [All operations](https://skmtc.dev/propraven/apis/propraven-api/llms.txt) · [OpenAPI document](https://skmtc.dev/propraven/apis/propraven-api/revisions/37f8158c4eda?raw)
