Para publicar ou atualizar um anúncio você precisa montar um objeto property com a estrutura descrita nesta página. Ele é enviado dentro do campo property do body de POST /cabaprop/publish e PUT /cabaprop/property.

status, external_reference, real_estate_id e branch_office_id são preenchidos automaticamente pelo servidor — não os envie (se você os enviar, serão ignorados).

Modelo

{
  "title": "Hermosa casa 4 ambientes con parrilla",
  "description": "Casa de 4 ambientes con jardín y parrilla, a metros del subte D.",
  "operation_type": "1",
  "property_type": "3",
  "sub_property_type": "12",
  "location": {
    "barrios": [1234],
    "area_level_1": "Buenos Aires",
    "area_level_2": "Palermo",
    "cp": "1425",
    "cp_suffix": "",
    "letter": "",
    "lat": "-34.5885",
    "lng": "-58.4306",
    "locality": "Palermo, Capital Federal",
    "street": "Av. Santa Fe",
    "number": "3253"
  },
  "share": {},
  "surface": {
    "totalSurface": 180,
    "coveredSurface": 140
  },
  "antiquity": {
    "years": 15,
    "type": 2
  },
  "price": {
    "currency": 1,
    "total": 250000,
    "expenses": 15000,
    "expensesCurrency": 2
  },
  "characteristics": {
    "ambience": 4,
    "bedrooms": 3,
    "bathrooms": 2,
    "toilettes": 1,
    "accessibilities": false
  },
  "images": [
    {
      "url": "https://tu-servidor.com/fotos/casa-4amb-1.jpg",
      "title": "imagen1",
      "originalname": "Hermosa casa 4 ambientes1",
      "filename": null
    }
  ],
  "houseMaps": [
    {
      "url": "https://tu-servidor.com/planos/casa-4amb.jpg",
      "title": "plano",
      "originalname": "Hermosa casa 4 ambientes",
      "filename": null
    }
  ],
  "video": "https://www.youtube.com/watch?v=xxxxxxxxxxx",
  "video360": "",
  "extras": {
    "serviciosEsenciales": {
      "internet_wifi": true,
      "tv_cable": false,
      "telefono": false
    },
    "seguridad": {
      "alarma": true,
      "grupoElectrogeno": false
    },
    "calefaccion": {
      "aireAcondicionado": true,
      "split": true,
      "termotanque_calefon": true
    },
    "vigilancia": {
      "encargado": false,
      "vigilancia_24hs": false
    },
    "adicionales": {
      "amoblado": false,
      "hidromasaje": false,
      "laundry": false,
      "parrilla": true,
      "piscina": false,
      "sala_de_juegos": false,
      "sum": false
    }
  }
}

Campos

CampoTipoObrigatórioDescrição
titlestringsimTítulo do anúncio. Não pode ser modificado depois de publicado (veja as notas).
descriptionstringnãoDescrição do anúncio.
operation_typestring/numbersimId da operação no Cabaprop. Resolva-o com GET /cabaprop/utils/get-operations ou com o mapeamento de operação.
property_typestring/numbersimId do tipo de imóvel no Cabaprop. Resolva-o com GET /cabaprop/utils/get-types ou com o mapeamento de tipo.
sub_property_typestring/numbernãoId do subtipo. 0 se não se aplica.
location.barriosnumbersimUm ou mais ids de bairro (CABA), resolvidos com GET /cabaprop/utils/get-zones ou com o mapeamento de zona. Não pode ser modificado depois de publicado (veja as notas).
location.area_level_1stringnãoProvíncia/estado. Para CABA, normalmente "Buenos Aires".
location.area_level_2stringnãoBairro/localidade.
location.cpstringnãoCódigo postal.
location.cp_suffixstringnãoSufixo do código postal.
location.letterstringnãoLetra do código postal.
location.lat / location.lngstring/numbernãoCoordenadas. Devem corresponder a um ponto dentro de CABA (veja as notas).
location.localitystringnãoLocalidade descritiva.
location.streetstringnãoRua.
location.numberstringsim (a key)Número da rua. A key deve estar presente mesmo que o valor seja "" — veja as notas.
surface.totalSurfacenumbernãoÁrea total (m²).
surface.coveredSurfacenumbernãoÁrea construída (m²).
antiquity.yearsnumber/stringnãoIdade do imóvel em anos.
antiquity.typenumber/stringnão2 quando a idade do imóvel é informada, vazio se não se aplica.
price.currencynumbersimMoeda do preço: 2 = ARS, 1 = qualquer outra moeda.
price.totalnumbernãoPreço da operação.
price.expensesnumbernãoDespesas de condomínio (expensas).
price.expensesCurrencynumbernãoMoeda das despesas de condomínio: mesmo código de price.currency.
characteristics.ambiencenumbernãoQuantidade de ambientes.
characteristics.bedroomsnumbernãoQuantidade de quartos.
characteristics.bathroomsnumbernãoQuantidade de banheiros.
characteristics.toilettesnumbernãoQuantidade de lavabos.
characteristics.accessibilitiesboolean/numbernãoAcessibilidade.
imagesarraysim, mínimo 3Veja Imagens abaixo. Requisito do Cabaprop para publicar.
houseMapsarraynãoPlantas. Mesmo formato de images.
videostringnãoURL de vídeo (YouTube ou outro incorporado).
video360stringnãoURL de tour 360°.
extrasobjectnãoComodidades/amenities, agrupadas por categoria (veja o modelo acima).

Imagens

Cada imagem é um objeto:

CampoTipoDescrição
urlstringURL pública da imagem (acessível sem autenticação).
titlestringTítulo da imagem.
originalnamestringNome original do arquivo.
filenamestring | nullNome de arquivo interno, se aplicável.

O Cabaprop exige um mínimo de 3 imagens para publicar um anúncio. POST /cabaprop/publish devolve 400 com a mensagem "La propiedad debe tener al menos 3 imagenes para publicarse en Cabaprop" se forem enviadas menos.

Notas

  • title, location e property_type/operation_type não podem ser modificados depois que o anúncio é publicado. Para alterá-los é preciso despublicar (DELETE /cabaprop/property/unpublish) e publicar novamente (POST /cabaprop/publish).
  • Se operation_type, property_type ou location.barrios estiverem faltando ou vazios, POST /cabaprop/publish devolve 400 com {"error":"La zona/tipo/operacion no tiene mapping en Cabaprop","missing":[...]} antes de tentar publicar.
  • A key location.number deve estar presente no JSON mesmo que você não tenha o dado (envie-a como ""). Se a key estiver ausente, o Cabaprop rejeita a publicação com a mensagem "Debe ingresar una calle y un número de calle".
  • Se as coordenadas (location.lat/location.lng) não corresponderem a um ponto dentro de CABA, o Cabaprop pode rejeitar a publicação com a mensagem "Las coordenadas ingresadas no se encuentran dentro de los límites de la ciudad".
  • Esses erros de negócio do portal são devolvidos com HTTP 200 e o formato {"success":false,"errorCode":"...","detail":"..."} — veja a seção de erros de POST /cabaprop/publish, PUT /cabaprop/property e DELETE /cabaprop/property/unpublish.