Edit a property
https://secure.alterestate.com/api/v1/properties/edit/{uid}/Updates an existing property. Send only the fields that change.
Change one field or many on a listing that already exists. Fields you omit stay as they are. The public list endpoint is read-only and cannot update a property.
Authentication
Send Authorization: Token your_api_key_here. Account token. Keep it on your server.
Path parameters
uidstringrequired- Property uid from List properties. Example result: cid 292960, uid JSORJ9S5AY.Example:
JSORJ9S5AY
Main information
| Field | Type | Description |
|---|---|---|
name | string | Public title. Maximum 300 characters. Example: Modern apartment in Naco. |
short_description | string | Short text shown on cards. Example: Bright apartment close to parks and restaurants.. |
description | string | Full description. Example: Bright apartment with a balcony, ready for showings.. |
category | number | Category ID. See Categories below. Example: 1. |
listing_type | number[] | Operations: 1 sale, 2 rent. Replaces the current list. Example: [1] or [1, 2]. Example: [1]. |
condition | string | Condition code. See Condition below. Example: 9. |
status | string | Publication status. See Status below. Example: 1. |
show_on_website | boolean | Whether the listing is visible on the agency website. Example: true. |
featured | boolean | Mark the listing as featured. Example: false. |
exclusive | boolean | Mark the listing as exclusive. Example: true. |
furnished | boolean | Whether the property is furnished. Example: false. |
year_construction | string | Year the property was built. Example: 2018. |
Price
| Field | Type | Description |
|---|---|---|
sale_price | number | Sale price, in currency_sale. Example: 250000. |
currency_sale | string | Currency of sale_price. See Currencies below. Example: USD. |
rent_price | number | Long-term rent price, in currency_rent. Example: 1200. |
currency_rent | string | Currency of rent_price. Example: USD. |
rental_price | number | Short-term rent price, in currency_rental. Example: 150. |
currency_rental | string | Currency of rental_price. Example: USD. |
furnished_price | number | Furnished rent price, in currency_furnished. Example: 1500. |
currency_furnished | string | Currency of furnished_price. Example: USD. |
furnished_sale_price | number | Furnished sale price, in currency_sale_furnished. Example: 270000. |
currency_sale_furnished | string | Currency of furnished_sale_price. Example: USD. |
maintenance_fee | number | Maintenance fee, in currency_maintenance. Example: 150. |
currency_maintenance | string | Currency of maintenance_fee. Example: USD. |
Features
| Field | Type | Description |
|---|---|---|
room | number | Bedrooms. Example: 3. |
bathroom | number | Bathrooms. Example: 2. |
half_bathrooms | number | Half bathrooms. Example: 1. |
parkinglot | number | Parking spaces. Example: 2. |
property_area | number | Built area. Example: 120. |
terrain_area | number | Land area. Example: 180. |
amenities | number[] | Amenity IDs. Replaces the current list. Same IDs as the features filter on List properties. Example: [74, 73]. |
Location
| Field | Type | Description |
|---|---|---|
country | number | Country ID. Example: 1. |
province | number | Province ID. See Locations. Example: 1. |
city | number | City ID. See Locations. Example: 156. |
sector | number | Sector ID. See Locations. Example: 2234. |
address | string | Street address. Example: Calle El Recodo 12. |
address2 | string | Additional address line. Example: Piso 4. |
zip_code | string | Postal code. Example: 10111. |
latitude | string | Latitude. Example: 18.4762. |
longitude | string | Longitude. Example: -69.9312. |
hide_location | boolean | Hide the exact location on the public site. Example: true. |
Agent and extras
| Field | Type | Description |
|---|---|---|
agents | string[] | UIDs of the agents responsible for the listing. Replaces the current list. Get uids from Users. Example: ["IZHIZ6C3Z6"]. |
virtual_tour | string | Virtual tour URL. Do not send embed markup. Example: https://example.com/tour. |
youtubeiframe | string | YouTube video URL. Do not send embed markup. Example: https://www.youtube.com/watch?v=dQw4w9WgXcQ. |
external_route | string | Public URL of this listing on an external website. Maximum 255 characters. Example: https://example.com/propiedad/apartamento-naco. |
ikey | string | Your own internal property code. Example: NACO-120. |
Example request
curl --request PATCH \
--url 'https://secure.alterestate.com/api/v1/properties/edit/JSORJ9S5AY/' \
--header 'Authorization: Token your_api_key_here' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"name": "Modern apartment in Naco",
"room": 3,
"bathroom": 2,
"sale_price": 250000,
"currency_sale": "USD",
"short_description": "Bright apartment close to parks and restaurants.",
"show_on_website": true
}'Example response
{
"cid": 292960,
"uid": "JSORJ9S5AY",
"name": "Modern apartment in Naco",
"room": 3,
"bathroom": 2,
"sale_price": 250000,
"currency_sale": "USD",
"short_description": "Bright apartment close to parks and restaurants.",
"show_on_website": true
}{
"message": "failed",
"details": {
"category": [
"Invalid pk \"999\" - object does not exist."
]
}
}{
"detail": "No estas autorizado para visualizar esto."
}{
"detail": "Not found."
}Categories
| ID | Category |
|---|---|
| 1 | Apartments |
| 2 | Houses |
| 3 | Buildings |
| 4 | Lots |
| 5 | Hotels |
| 6 | Commercial spaces |
| 7 | Industrial warehouses |
| 10 | Penthouses |
| 13 | Villas |
| 14 | Lofts |
| 17 | Townhouses |
Condition
| Value | Meaning |
|---|---|
| 1 | New |
| 9 | Ready |
| 5 | In construction |
| 2 | Second use |
| 3 | Remodeled |
| 7 | In plans |
Status
| Value | Meaning |
|---|---|
| 1 | Published |
| 2 | Reserved |
| 3 | Sold |
| 4 | Rented |
| 6 | Unpublished |
Currencies
Send the amount and its currency together. Supported values: USD, DOP, MXN, COP, CRC, GTQ and PEN. AlterEstate stores the price in that currency. You do not convert it to USD.
Status codes
| Status | Meaning |
|---|---|
| 200 | The property was updated. The body is the property record. |
| 400 | The body is invalid. message is "failed" and details names the field. |
| 401 | The account token is missing or invalid. |
| 403 | This user cannot edit this property. |
| 404 | No property exists with that uid. |
| 500 | Server error while processing the request. |
- Use PATCH. A PUT expects a full property payload.
- amenities and agents, when sent, replace the current list.
- external_route accepts at most 255 characters. A longer URL returns 400.
- The account token comes from POST /api/v1/login/ with username and password. The response field is token. The public aetoken cannot call this endpoint.
- The user must belong to the agency that owns the property and must be allowed to edit it: an administrator, or an agent assigned to that listing.
Frequently asked questions
Do I update a property with cid or uid?
Use uid in the URL. List properties returns cid and uid together. cid is the public listing code and is not accepted by this endpoint.
Can the public API token update a property?
No. The aetoken only reads listings. Send Authorization: Token with an account token from POST /api/v1/login/.
Do I have to send every property field?
No. PATCH updates only the fields you send. amenities and agents are the exception: sending either one replaces that whole list.
Last updated . Questions? Emailengineering@alterestate.com.