---
title: "Update Property Info"
method: POST
path: "/v1.0/leads/{leadId}/property"
tags: ["Leads"]
---

# Update Property Info

`POST /v1.0/leads/{leadId}/property`

Attach a property (or mailing address) to the specified lead. The behaviour depends on the `property.id` field in the request body:

- **`id` omitted or `<= 0`** — the service first tries to merge with an existing property on the lead that has the same street/city/state/zip; if no match is found, a new property record is created.
- **`id > 0`** — the named property is updated in place. The property must belong to this lead (its `leadUserId` must match the lead's); otherwise the request is rejected with 200108 LEAD_PROPERTY_NOT_EXIST.

Validation:
- At least one of `city`, `state`, `zipCode`, `streetAddress` must be non-blank; otherwise 200057 PROPERTY_ADDRESS_EMPTY is returned.
- Caller must have manage permission on the lead.

## Path parameters

- `leadId` integer, required

## Headers

- `Authorization` string, required
- `Content-Type` string, required

## Request body

- LeadProperty — Lead property or mailing address details
  - `price` integer — The price Applies to lead routing only if the leadType field is Seller(1)
  - `state` string — The state Applies to lead routing only if the leadType field is Seller(1)
  - `city` string — The city Applies to lead routing only if the leadType field is Seller(1)
  - `streetAddress` string — The street address Applies to lead routing only if the leadType field is Seller(1)
  - `zipCode` string — The zip code Applies to lead routing only if the leadType field is Seller(1)
  - `county` string — The county Applies to lead routing only if the leadType field is Seller(1)
  - `propertyType` string — Property type: `Single Family Home`, `Multi-Family`, `Condo`, `Townhouse`, `Mobile Home`, `Manufactured Home`, `Vacant Land`, `Commercial`.
  - `bedrooms` integer — The bed rooms.
  - `bathrooms` number, double — The bath rooms.
  - `squareFeet` integer — The square feet.
  - `lotSize` number, double — The lot size (acreage).
  - `parkingSpace` integer — The parking space.
  - `floors` integer — The floors.
  - `mailAddress` boolean — If set to true, the address is a mailing address; otherwise, it is a property address.
  - `id` integer — The property ID. Required when updating an existing mailing address or property address. If not provided, a new address will be created.
  - `leadUserId` integer
  - `listingId` string
  - `autoListingId` integer
  - `label` string
  - `note` string
  - `listingStatus` string
  - `labelList` string
  - `pictureUrl` string
  - `siteListingUrl` string
  - `labelType` string
  - `priceMax` integer — The max price Applies to lead routing only if the leadType field is Seller(1)
  - `priceMin` integer — The min price Applies to lead routing only if the leadType field is Seller(1)

## Response `200`

Property created or updated.

- LeadIdResponse — Response containing the lead ID.
  - `leadId` integer — ID of the lead.

## Other responses

- `400` — Validation failure. Includes: every address field blank (200057 PROPERTY_ADDRESS_EMPTY); malformed or missing request body.
- `401` — Missing or invalid authentication token.
- `404` — Lead does not exist or is not accessible (20006 LEAD_NOT_EXIST); supplied `property.id` does not belong to this lead (200108 LEAD_PROPERTY_NOT_EXIST).
- `500` — Internal server error.

---

[API](https://skmtc.net/lofty/apis/lofty-service-open-apis.md) · [All operations](https://skmtc.net/lofty/apis/lofty-service-open-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lofty/lofty-service-open-apis/revisions/23e640467118/schema)
