Actualizar propiedad

PATCHhttps://api.bydomu.com/v1/properties/{id}

Actualiza solo los campos enviados. Cambiar price o status emite los eventos de dominio correspondientes (property.price_changed, property.status_changed).

Permiso
properties:write
Claves
Solo secreta (desde un servidor)

Encabezados

X-API-Keystringobligatorio
Tu clave secreta.
Idempotency-Keystring
Clave única de la operación (8-128 caracteres de [a-zA-Z0-9._:-]). Un reintento con la misma clave y el mismo cuerpo devuelve la respuesta original sin repetir la operación. Vive 24 horas. · 8–128 chars

Parámetros de ruta

idstringobligatorio
ID de la propiedad

Cuerpo (JSON)

titlestring
5–200 chars
typestring
APARTMENTHOUSEOFFICECOMMERCIALLANDWAREHOUSEROOMFARMOTHER
transactionTypestring
SALERENTSALE_OR_RENT
rentalServiceTypestring
BROKERAGEMANAGEMENT · nullable
addressstring
≤ 300 chars
neighborhoodstring
≤ 100 chars
citystring
2–100 chars
statestring
≤ 100 chars
countrystring
default="CO"
zipCodestring
≤ 20 chars
latitudenumber
-90–90 · nullable
longitudenumber
-180–180 · nullable
locationPrecisionstring
EXACTAPPROXIMATE
pricenumber
≥ 0
currencystring
COPUSDEURMXNBRLARSBOBCADCLPCRCCUPDOPGBPGTQHNLNIOPENPYGUYUVES · default="COP"
rentPricenumber
≥ 0 · nullable
adminFeenumber
≥ 0 · nullable
securityDepositnumber
≥ 0 · nullable
bedroomsinteger
≥ 0 · nullable
bathroomsinteger
≥ 0 · nullable
halfBathroomsinteger
≥ 0 · nullable
totalRoomsinteger
≥ 0 · nullable
closetsinteger
≥ 0 · nullable
parkingSpotsinteger
≥ 0 · nullable
areanumber
≥ 0 · nullable
builtAreanumber
≥ 0 · nullable
floorinteger
nullable
totalFloorsinteger
≥ 0 · nullable
yearBuiltinteger
1900–2035 · nullable
stratuminteger
1–6 · nullable
elevatorboolean
furnishedstring
UNFURNISHEDSEMI_FURNISHEDFURNISHED · nullable
orientationstring
NORTHSOUTHEASTWESTNORTHEASTNORTHWESTSOUTHEASTSOUTHWEST · nullable
petFriendlyboolean
garageTypestring
NONECOVEREDUNCOVEREDDOUBLEUNDERGROUND · nullable
heatingTypestring
NONECENTRALELECTRICGASRADIANT · nullable
waterHeaterboolean
gasConnectionboolean
viewTypestring
NONECITYMOUNTAINSEAGARDENPOOLINTERIORPANORAMIC · nullable
securityLevelstring
NONEBASICMEDIUMHIGHGATED_COMMUNITY · nullable
propertyConditionstring
NEWEXCELLENTGOODFAIRNEEDS_RENOVATIONUNDER_CONSTRUCTIONPRE_SALE · nullable
legalStatusstring
CLEARMORTGAGELIENIN_PROCESSINHERITANCE · nullable
amenitiesstring[]
customFieldsobject
descriptionstring
≤ 5000 chars
virtualTourUrlstring | string
tour3dUrlstring | string
videoUrlstring | string
internalNotesstring
≤ 2000 chars
statusstring
DRAFTACTIVERESERVEDSOLDRENTEDINACTIVE · default="DRAFT"
agentIdstring
contactOwnerIdstring
nullable
isFeaturedboolean
imagesobject[]

Respuestas

200Propiedad actualizada
400Datos inválidos: el cuerpo o la query no cumplen el esquema, o `Idempotency-Key` está mal formada.
401UNAUTHORIZED · Clave faltante, inválida, desactivada o vencida.
402PAYMENT_REQUIRED · Cuenta en modo solo lectura: se rechaza toda mutación.
403FORBIDDEN · La clave no puede usar esta operación: falta el scope, es una secreta en el navegador, el nivel de la cuenta no la permite, está suspendida o se alcanzó un tope del plan.
404NOT_FOUND · El recurso no existe en la organización.
409DUPLICATE · Choca con un dato existente o con el estado actual, o la `Idempotency-Key` ya se usó con otro cuerpo o sigue en curso.
429RATE_LIMITED · Límite de peticiones excedido: el de la clave (`RATE_LIMITED`), el de escrituras de la organización (`TENANT_RATE_LIMITED`) o bloqueo temporal de la IP por claves inválidas.
500INTERNAL_ERROR · Error interno del servidor.
cURL
curl -X PATCH "https://api.bydomu.com/v1/properties/clx1prop001" \
  -H "X-API-Key: $BYDOMU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "price": 430000000,
  "status": "ACTIVE"
}'
JavaScript
const res = await fetch("https://api.bydomu.com/v1/properties/clx1prop001", {
  method: "PATCH",
  headers: {
    "X-API-Key": process.env.BYDOMU_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "price": 430000000,
    "status": "ACTIVE"
  }),
});
const data = await res.json();
Python
import os, requests

r = requests.patch(
    "https://api.bydomu.com/v1/properties/clx1prop001",
    headers={"X-API-Key": os.environ["BYDOMU_API_KEY"]},
    json={
        "price": 430000000,
        "status": "ACTIVE"
    }
)
data = r.json()
Respuesta · 200 · ejemplo
{
  "data": {
    "id": "clx1prop001",
    "code": "P-0042",
    "title": "Apartamento en Chapinero con vista",
    "description": "Apartamento de 85 m² con balcón y vista a los cerros.",
    "type": "APARTMENT",
    "transactionType": "SALE",
    "rentalServiceType": "BROKERAGE",
    "status": "DRAFT",
    "price": "450000000.00",
    "rentPrice": "3500000.00",
    "currency": "COP",
    "adminFee": "380000.00",
    "securityDeposit": "3500000.00",
    "neighborhood": "Chapinero",
    "city": "Bogotá",
    "state": "Cundinamarca",
    "country": "CO",
    "bedrooms": 3,
    "bathrooms": 2,
    "halfBathrooms": 1,
    "parkingSpots": 1,
    "area": 85,
    "builtArea": 80,
    "floor": 8,
    "stratum": 4,
    "yearBuilt": 2015,
    "elevator": true,
    "petFriendly": true,
    "furnished": "UNFURNISHED",
    "amenities": [
      "pool"
    ],
    "virtualTourUrl": "https://my.matterport.com/show/?m=abc123",
    "videoUrl": "https://youtu.be/abc123",
    "tour3dUrl": "https://cdn.bydomu.com/tours/clx1prop001/model.splat",
    "isFeatured": false,
    "viewCount": 128,
    "agentId": "clx1usr001",
    "createdAt": "2026-08-01T14:30:00.000Z",
    "updatedAt": "2026-09-20T10:00:00.000Z",
    "address": "Cra 7 #45-12",
    "latitude": 4.648625,
  …

La clave va en la variable BYDOMU_API_KEY. Los datos del ejemplo no son de ninguna inmobiliaria.