> ## Documentation Index
> Fetch the complete documentation index at: https://developers.investorlift.com/llms.txt
> Use this file to discover all available pages before exploring further.

# The Property object

> One parcel: its facts, its owner, its listing, its short-term rental licence and every deal on it.

A property is one parcel. Its id is `prop_` plus 32 hex characters. Find one from a point, an APN or a street address with
[`GET /v1/properties/resolve`](/api-reference/endpoints/properties-resolve). Then read it with
[`GET /v1/properties/{property_id}`](/api-reference/endpoints/properties-get).

The parcel facts come from the assessor roll, and the API serves them to every key. The facts are the segment, the
beds, the baths, the square feet, the year built, the pool and the lot size.

## When the owner is named

Read this part carefully. The API finds investors and city-registered rental businesses. It is not a people-search
tool.

`owner.names` and `owner.mailing` exist in exactly two cases. On this host they come back null with
`contact_redacted: true` in both cases. So what the cases decide for you is `redacted_reason`. The cases are:

1. The parcel is a **confirmed holding of a registry investor**.
2. The city **registered the current owner as the operator of a short-term rental business** there, by a date or a
   name. `short_term_rental.business_use` is then true, with an `attribution_basis` of `PURCHASE_DATE`,
   `OWNER_NAME` or `LICENCE_START`.

Otherwise you get `names: null` with a `redacted_reason`. For an ordinary household the reason is
`not_an_investor_hold`, and that is deliberate. Three other cases keep the licence facts and lose the identity. They
are a prior owner's permit, an owner-occupied home with a casita permit, and a licence attributed only by assumption
(`attribution_basis: "ASSUMED"`).

The API always serves the owner facts that identify nobody: owner-occupied or absentee, a trust, how long held,
rental-registered.

## The side blocks

| Block                  | What it is                                                                        | Null when                                                                                         |
| ---------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| `deals[]`              | Every deal on this parcel, newest first.                                          | Never. An empty list means no investor deal on record.                                            |
| `listing`              | The MLS listing as the feed last saw it, with its agents.                         | The market has no published listing tables (`meta.coverage[].listings_data_end` is null).         |
| `short_term_rental`    | The city's licence record for this parcel.                                        | The parcel is outside every loaded city, or the market has no published short-term rental tables. |
| `wholesale_listings[]` | [Investorlift listings](/api-reference/objects/wholesale-listing) on this parcel. | The market has no published wholesale tables.                                                     |

A null block means "no data of this kind for this market", not "nothing found". A block that is present with zeros or
`status: "NONE"` means the market has the roll, and the parcel is not on it. See
[Coverage and freshness](/guides/concepts/coverage).


## Related topics

- [The Financing object](/api-reference/objects/financing.md)
- [The Permit object](/api-reference/objects/permit.md)
- [The Deal object](/api-reference/objects/deal.md)
- [The Comp object](/api-reference/objects/comp.md)
- [The Investor object](/api-reference/objects/investor.md)
