Buscar Propiedad por Código

Permite obtener la información completa de una propiedad específica a partir de su código único. La respuesta incluye datos generales, ubicación, valores económicos, características, propietarios, imágenes, videos y códigos de portales inmobiliarios. 

 ¿Para qué sirve este servicio? Úsalo cuando ya conoces el código del inmueble y necesitas consultar toda su información detallada. Es ideal para mostrar la ficha completa de una propiedad en tu sitio web, sincronizar datos de un inmueble puntual o verificar la información registrada en el sistema. 

 

 1. El Endpoint (La dirección web) 

 Apunta tu sistema a la siguiente dirección. Recuerda reemplazar {{instancia}} por la dirección web completa que utilizas para ingresar a tu plataforma, y {{code}} por el código numérico del inmueble que deseas consultar. 

 GET https://{{instancia}}/service/v2/public/properties/{{code}} 

 ¿Qué debes colocar en {{instancia}}? Es muy sencillo: corresponde a la  dirección web principal que utilizas a diario para ingresar a tu plataforma (incluyendo la terminación .nuby.app o .arrendasoft.co ). Por ejemplo, si para entrar a tu sistema escribes  inmobiliaria.nuby.app o inmobiliaria.arrendasoft.co en tu navegador, esa será exactamente tu instancia. Solo asegúrate de no incluir el "https://" ni barras diagonales ("/") al final. 

 2. La Petición (¿Qué debes enviarnos?) 

 Este servicio requiere autenticación mediante un Token JWT. Construye la URL con el código de la propiedad como parte de la ruta e incluye los encabezados requeridos: 

 

 

 

 Método 

 GET 

 

 

 Content-Type 

 application/json 

 

 

 Authorization 

 Bearer token , Token obtenido al consumir el servicio Login . 

 

 

 

 Autenticación requerida Este servicio requiere un Token de autenticación válido. Debes incluir el encabezado Authorization: Bearer TU_TOKEN en cada petición. El token se obtiene consumiendo el servicio de Login . Adicionalmente, el cliente OAuth debe contar con el scope read para poder consumir este endpoint. 

 Parámetro de ruta: 

 

 

 

 Parámetro 

 Tipo 

 Requerido 

 Descripción 

 

 

 

 

 code 

 integer 

 Sí 

 Código numérico único del inmueble que se desea consultar. Debe ser un número entero positivo. 

 

 

 

 Ejemplos de peticiones: 

 GET https://{{instancia}}/service/v2/public/properties/137 

 GET https://{{instancia}}/service/v2/public/properties/2045 

 3. La Respuesta (¿Qué te entregaremos?) 

 El sistema te devolverá un objeto JSON con toda la información de la propiedad solicitada. Si el código no corresponde a ningún inmueble registrado, se devolverá un arreglo vacío [] . 

 Respuesta como objeto, no como lista A diferencia del servicio Listar Propiedades que devuelve un arreglo de objetos [{...}, {...}] , este servicio devuelve directamente un único objeto {...} con la información del inmueble consultado. 

 La respuesta exitosa se verá similar a esta: 

 {

 "codigo": "137",

 "titulo": "Apartamento amplio con vista al parque central",

 "clase_id": "1247",

 "clase_inmueble": "Apartamento",

 "tipo_servicio_id": "arriendo",

 "tipo_servicio": "Arriendo",

 "estrato": "1258",

 "estrato_texto": "Cuatro",

 "fecha_consignacion": "2024-04-26",

 "asesor_id": "5",

 "asesor": "María López Ramírez",

 "pais_id": "1",

 "pais": "COLOMBIA",

 "departamento_id": "5",

 "departamento": "Antioquia",

 "municipio_id": "1",

 "municipio": "Medellin",

 "barrio_id": "3",

 "barrio": "Los Rosales",

 "direccion": "CALLE 45 # 32 - 18",

 "coordenadas": "6.24830000000000:-75.56120000000000",

 "valor_arriendo1": "1600000",

 "valor_arriendo2": "0",

 "valor_venta1": "0",

 "valor_venta2": "0",

 "valor_administracion": "250000",

 "avaluo_catastral": "185000000",

 "impuesto_predial": "1250000.00",

 "area": "75.00",

 "observaciones": "Inmueble ubicado en zona residencial tranquila, cerca de centros comerciales y transporte público.",

 "propiedad_destacada": "No",

 "llaves_en": "oficina",

 "llaves_otro": null,

 "paga_cuota_sost": "propietario",

 "folio_matricula": "001-123456",

 "referencia_catastral": "05001010203040",

 "edificio_unidad": "urbanizacion",

 "estado": "1",

 "estado_texto": "Activa",

 "cantidad_images": "3",

 "cantidad_videos": "1",

 "fecha_creacion": "2024-04-26 10:30:00",

 "ultima_fecha_modificacion": "2024-05-15 14:22:00",

 "caracteristicas": [

 {

 "id": "1",

 "descripcion": "Nº De Habitaciones",

 "tipo_campo": "numeric",

 "orden": "1",

 "grupo": "Características del inmueble",

 "valor": "4"

 },

 {

 "id": "2",

 "descripcion": "Nº De Baños",

 "tipo_campo": "numeric",

 "orden": "2",

 "grupo": "Características del inmueble",

 "valor": "3"

 },

 {

 "id": "5",

 "descripcion": "Nº De Piso",

 "tipo_campo": "numeric",

 "orden": "3",

 "grupo": "Características del inmueble",

 "valor": "1"

 },

 {

 "id": "4",

 "descripcion": "Antigüedad del Inmueble",

 "tipo_campo": "numeric",

 "orden": "5",

 "grupo": "Características del Inmueble",

 "valor": "3"

 },

 {

 "id": "14",

 "descripcion": "Cocina Integral",

 "tipo_campo": "checkbox",

 "orden": "5",

 "grupo": "Características Internas",

 "valor": "1"

 },

 {

 "id": "34",

 "descripcion": "Sala",

 "tipo_campo": "checkbox",

 "orden": "6",

 "grupo": "Características del Inmueble",

 "valor": "1"

 },

 {

 "id": "31",

 "descripcion": "Red de gas",

 "tipo_campo": "select",

 "orden": "5",

 "grupo": "Características del Inmueble",

 "valor": "si",

 "valor_texto": "Si"

 },

 {

 "id": "63",

 "descripcion": "Garaje",

 "tipo_campo": "checkbox",

 "orden": "10",

 "grupo": "Características Internas",

 "valor": "1"

 }

 ],

 "propietarios": [

 {

 "id": "272",

 "documento": "1020304050",

 "nombres": "ANA MARÍA",

 "apellidos": "PÉREZ RODRÍGUEZ"

 }

 ],

 "imagenes": [

 {

 "posicion": "1",

 "size": "19201080",

 "img": "img/fotos/1920x1080_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6.jpeg",

 "imagen": "https://mi-inmobiliaria.nuby.app/img/fotos/1920x1080_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6.jpeg"

 },

 {

 "posicion": "2",

 "size": "19201080",

 "img": "img/fotos/1920x1080_f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3.jpeg",

 "imagen": "https://mi-inmobiliaria.nuby.app/img/fotos/1920x1080_f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3.jpeg"

 },

 {

 "posicion": "3",

 "size": "19201080",

 "img": "img/fotos/1920x1080_b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8.jpeg",

 "imagen": "https://mi-inmobiliaria.nuby.app/img/fotos/1920x1080_b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8.jpeg"

 }

 ],

 "videos": [

 {

 "url": "dQw4w9WgXcQ",

 "tipo": "youtube",

 "descripcion": null,

 "posicion": "1"

 }

 ],

 "codigos_portales": [

 {

 "nombre_portal": "metrocuadrado",

 "id_portal": "MC-98765",

 "tipo_servicio": "arriendo"

 }

 ]

} 

 Cuando el código no corresponde a ningún inmueble, la respuesta será: 

 [] 

 Campos principales de la propiedad 

 Esta tabla enumera las claves presentes en el JSON de la propiedad y proporciona una descripción de cada una: 

 

 

 

 Clave 

 Descripción 

 

 

 

 

 codigo 

 Código único del inmueble en el sistema. 

 

 

 titulo 

 Título del anuncio del inmueble. 

 

 

 clase_id 

 Identificador de la clase de inmueble. Corresponde al id del servicio Listar Clases de Inmueble . 

 

 

 clase_inmueble 

 Nombre de la clase de inmueble (por ejemplo: "Apartamento", "Casa", "Finca"). 

 

 

 tipo_servicio_id 

 Identificador del tipo de servicio. Valores posibles: "arriendo" , "venta" , "venta y arriendo" . 

 

 

 tipo_servicio 

 Nombre descriptivo del tipo de servicio (por ejemplo: "Arriendo", "Venta"). 

 

 

 estrato 

 Identificador del estrato socioeconómico del inmueble. 

 

 

 estrato_texto 

 Texto descriptivo del estrato (por ejemplo: "Cuatro", "Tres"). 

 

 

 fecha_consignacion 

 Fecha en que el inmueble fue captado/consignado para su gestión. Formato: YYYY-MM-DD . 

 

 

 asesor_id 

 Identificador del asesor asignado al inmueble. Cadena vacía si no tiene asesor asignado. 

 

 

 asesor 

 Nombre completo del asesor asignado. 

 

 

 pais_id 

 Identificador del país donde se ubica el inmueble. 

 

 

 pais 

 Nombre del país. 

 

 

 departamento_id 

 Identificador del departamento/estado/provincia. 

 

 

 departamento 

 Nombre del departamento. 

 

 

 municipio_id 

 Identificador del municipio/ciudad. 

 

 

 municipio 

 Nombre del municipio. 

 

 

 barrio_id 

 Identificador del barrio. Puede ser null si no se ha asignado barrio. 

 

 

 barrio 

 Nombre del barrio. 

 

 

 direccion 

 Dirección física del inmueble. 

 

 

 coordenadas 

 Coordenadas geográficas del inmueble en formato latitud:longitud . 

 

 

 valor_arriendo1 

 Valor principal de arriendo (canon mensual). 

 

 

 valor_arriendo2 

 Valor secundario de arriendo. 0 si no aplica. 

 

 

 valor_venta1 

 Valor principal de venta. 

 

 

 valor_venta2 

 Valor secundario de venta. 0 si no aplica. 

 

 

 valor_administracion 

 Valor de la cuota de administración. 

 

 

 avaluo_catastral 

 Avalúo catastral del inmueble. 

 

 

 impuesto_predial 

 Valor del impuesto predial. 

 

 

 area 

 Área del inmueble en metros cuadrados. 

 

 

 observaciones 

 Observaciones o descripción adicional del inmueble. Puede ser null . 

 

 

 propiedad_destacada 

 Indica si la propiedad está marcada como destacada. Valores: "Si" o "No" . 

 

 

 llaves_en 

 Lugar donde se encuentran las llaves del inmueble (por ejemplo: "oficina"). 

 

 

 llaves_otro 

 Ubicación alternativa de las llaves, si aplica. Puede ser null . 

 

 

 paga_cuota_sost 

 Quién paga la cuota de sostenimiento (por ejemplo: "propietario"). Puede ser null . 

 

 

 folio_matricula 

 Número de folio de matrícula inmobiliaria. Puede ser null . 

 

 

 referencia_catastral 

 Referencia catastral del inmueble. Puede ser null . 

 

 

 edificio_unidad 

 Tipo de agrupamiento del inmueble (por ejemplo: "urbanizacion", "edificio", "conjunto"). 

 

 

 estado 

 Identificador numérico del estado del inmueble. Valores: 0 (Arrendada), 1 (Activa), 2 (Inactiva), 3 (Vendida). 

 

 

 estado_texto 

 Texto descriptivo del estado (por ejemplo: "Activa", "Arrendada"). 

 

 

 cantidad_images 

 Cantidad de imágenes asociadas al inmueble. 

 

 

 cantidad_videos 

 Cantidad de videos asociados al inmueble. 

 

 

 fecha_creacion 

 Fecha y hora de creación del registro en el sistema. Formato: YYYY-MM-DD HH:MM:SS . 

 

 

 ultima_fecha_modificacion 

 Fecha y hora de la última modificación del registro. Formato: YYYY-MM-DD HH:MM:SS . 

 

 

 caracteristicas 

 Lista de características del inmueble (ver tabla detallada abajo). 

 

 

 propietarios 

 Lista de propietarios del inmueble (ver tabla detallada abajo). 

 

 

 imagenes 

 Lista de imágenes del inmueble (ver tabla detallada abajo). 

 

 

 videos 

 Lista de videos del inmueble (ver tabla detallada abajo). 

 

 

 codigos_portales 

 Lista de códigos de publicación en portales inmobiliarios externos (ver tabla detallada abajo). 

 

 

 

 Características 

 Cada elemento dentro de la lista caracteristicas contiene la información de una característica del inmueble y su valor asignado: 

 

 

 

 Clave 

 Descripción 

 

 

 

 

 id 

 Identificador de la característica. Corresponde al id del servicio Listar Características . 

 

 

 descripcion 

 Nombre descriptivo de la característica (por ejemplo: "Nº De Habitaciones"). 

 

 

 tipo_campo 

 Tipo de campo: numeric , checkbox , select , entre otros. 

 

 

 orden 

 Posición de la característica dentro de su grupo. 

 

 

 grupo 

 Grupo al que pertenece la característica. 

 

 

 valor 

 Valor asignado a la característica para esta propiedad. Para numeric : un número. Para checkbox : "1" (marcado). Para select : el valor técnico de la opción seleccionada. 

 

 

 valor_texto 

 Descripción legible del valor seleccionado. Solo presente cuando tipo_campo es select (por ejemplo: valor "si" → valor_texto "Si" ). 

 

 

 

 Propietarios 

 Cada elemento dentro de la lista propietarios contiene la información de un propietario del inmueble: 

 

 

 

 Clave 

 Descripción 

 

 

 

 

 id 

 Identificador del propietario (tercero) en el sistema. 

 

 

 documento 

 Número de documento de identificación del propietario. 

 

 

 nombres 

 Nombres del propietario. 

 

 

 apellidos 

 Apellidos del propietario. 

 

 

 

 Imágenes 

 Cada elemento dentro de la lista imagenes contiene la información de una fotografía del inmueble: 

 

 

 

 Clave 

 Descripción 

 

 

 

 

 posicion 

 Posición de ordenamiento de la imagen (1 = principal). 

 

 

 size 

 Resolución de la imagen (por ejemplo: "19201080"). 

 

 

 img 

 Ruta relativa de la imagen en el servidor. 

 

 

 imagen 

 URL completa de la imagen, lista para consumir directamente. 

 

 

 

 Videos 

 Cada elemento dentro de la lista videos contiene la información de un video asociado al inmueble: 

 

 

 

 Clave 

 Descripción 

 

 

 

 

 url 

 Identificador o URL del video (por ejemplo, el ID de YouTube: "dQw4w9WgXcQ" ). 

 

 

 tipo 

 Plataforma del video (por ejemplo: "youtube" ). 

 

 

 descripcion 

 Descripción del video. Puede ser null . 

 

 

 posicion 

 Posición de ordenamiento del video. 

 

 

 

 Códigos de Portales 

 Cada elemento dentro de la lista codigos_portales contiene la información de publicación del inmueble en un portal inmobiliario externo: 

 

 

 

 Clave 

 Descripción 

 

 

 

 

 nombre_portal 

 Nombre del portal inmobiliario (por ejemplo: "metrocuadrado", "fincaraiz"). 

 

 

 id_portal 

 Identificador de la propiedad en el portal externo. 

 

 

 tipo_servicio 

 Tipo de servicio bajo el cual fue publicada la propiedad en ese portal. 

 

 

 

 4. Seguridad y Posibles Errores 

 El sistema realiza validaciones de autenticación, scopes y parámetros de ruta: 

 Cuando el código es numérico pero no corresponde a ningún inmueble registrado, el sistema no devuelve un error . En su lugar, responde con un HTTP 200 y un arreglo vacío: 

 [] 

 Importante Asegúrate de validar en tu integración si la respuesta es un arreglo vacío [] para manejar correctamente el caso en que la propiedad no exista. 

 

 

 

 Código HTTP 

 Descripción 

 

 

 

 

 200 

 Respuesta exitosa. Contiene el objeto JSON de la propiedad, o un arreglo vacío [] si no se encontró ningún inmueble con ese código. 

 

 

 400 

 Token faltante o inválido. Posibles causas: — No se envió el encabezado Authorization . Mensaje: "JWT Token required." — El encabezado no tiene el formato Bearer {token} . Mensaje: "JWT Token not send." — El token no fue encontrado en el sistema. Mensaje: "JWT Token not found." 

 

 

 401 

 El token ha expirado. Debes generar uno nuevo consumiendo el servicio de Login . Mensaje: "JWT Token expired." 

 

 

 403 

 El cliente OAuth no tiene el scope necesario para esta operación. Para endpoints GET se requiere el scope read . Mensaje: "Insufficient scope. Required: 'read', granted: '{scope_actual}'." 

 

 

 404 

 La ruta no fue encontrada. Ocurre cuando el valor de code no es numérico (por ejemplo: /properties/abc ). 

 

 

 

 

 5. Ejemplos de integración 

 Aquí tienes ejemplos de código listos para que tus desarrolladores los adapten a tu plataforma: 

 

 cURL 

 # Consultar propiedad por código

curl -X GET "https://{{instancia}}/service/v2/public/properties/137" \

-H "Content-Type: application/json" \

-H "Authorization: Bearer TU_TOKEN_AQUI" 

 

 

 PHP 

 <?php

$instance = 'tu_instancia'; // Reemplaza con tu instancia real

$token = 'TU_TOKEN_AQUI'; // Token obtenido del servicio Login

$code = 137; // Código de la propiedad a consultar

$url = "https://{$instance}/service/v2/public/properties/{$code}";

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HTTPHEADER, [

 'Content-Type: application/json',

 "Authorization: Bearer {$token}"

]);

$response = curl_exec($ch);

$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch)) {

 echo 'Error: ' . curl_error($ch);

} else {

 echo "Código de estado HTTP: " . $http_code . "\n";

 if ($http_code === 200) {

 $propiedad = json_decode($response, true);

 if (!empty($propiedad)) {

 echo "Propiedad encontrada:\n";

 echo " Código: {$propiedad['codigo']}\n";

 echo " Título: {$propiedad['titulo']}\n";

 echo " Estado: {$propiedad['estado_texto']}\n";

 echo " Dirección: {$propiedad['direccion']}\n";

 echo " Imágenes: {$propiedad['cantidad_images']}\n";

 } else {

 echo "No se encontró ninguna propiedad con el código {$code}.\n";

 }

 } else {

 echo "Error al consultar la propiedad.\n";

 echo $response . "\n";

 }

}

curl_close($ch);

?> 

 

 

 Python 

 import requests

# 1. Configura tus datos de acceso

instancia = 'mi-inmobiliaria.nuby.app' # Reemplaza con tu dirección web completa

token = 'TU_TOKEN_AQUI' # Token obtenido del servicio Login

codigo = 137 # Código de la propiedad a consultar

# 2. Prepara la dirección de la petición

url = f"https://{instancia}/service/v2/public/properties/{codigo}"

headers = {

 "Content-Type": "application/json",

 "Authorization": f"Bearer {token}"

}

# 3. Envía la petición GET y procesa la respuesta

try:

 response = requests.get(url, headers=headers)

 print(f"Código de estado HTTP: {response.status_code}")

 if response.status_code == 200:

 propiedad = response.json()

 if propiedad:

 print(f"Propiedad encontrada:")

 print(f" Código: {propiedad['codigo']}")

 print(f" Título: {propiedad['titulo']}")

 print(f" Estado: {propiedad['estado_texto']}")

 print(f" Dirección: {propiedad['direccion']}")

 print(f" Características: {len(propiedad['caracteristicas'])}")

 else:

 print(f"No se encontró ninguna propiedad con el código {codigo}.")

 else:

 print("Error al consultar la propiedad.")

 print(f"Detalle del error: {response.text}")

except Exception as e:

 print(f"Ocurrió un error de conexión: {e}")

 

 

 

 JavaScript 

 // 1. Configura tus datos de acceso

const instancia = 'mi-inmobiliaria.nuby.app'; // Reemplaza con tu dirección web completa

const token = 'TU_TOKEN_AQUI'; // Token obtenido del servicio Login

const codigo = 137; // Código de la propiedad a consultar

// 2. Prepara la dirección de la petición

const url = `https://${instancia}/service/v2/public/properties/${codigo}`;

// 3. Función para consultar la propiedad

async function consultarPropiedad() {

 try {

 const response = await fetch(url, {

 method: 'GET',

 headers: {

 'Content-Type': 'application/json',

 'Authorization': `Bearer ${token}`

 }

 });

 console.log(`Código de estado HTTP: ${response.status}`);

 if (response.ok) {

 const propiedad = await response.json();

 if (propiedad && !Array.isArray(propiedad)) {

 console.log(`Propiedad encontrada:`);

 console.log(` Código: ${propiedad.codigo}`);

 console.log(` Título: ${propiedad.titulo}`);

 console.log(` Estado: ${propiedad.estado_texto}`);

 console.log(` Dirección: ${propiedad.direccion}`);

 console.log(` Imágenes: ${propiedad.cantidad_images}`);

 } else {

 console.log(`No se encontró ninguna propiedad con el código ${codigo}.`);

 }

 } else {

 console.log('Error al consultar la propiedad.');

 const errorData = await response.text();

 console.log(`Detalle del error: ${errorData}`);

 }

 } catch (error) {

 console.error(`Ocurrió un error de conexión: ${error}`);

 }

}

// 4. Ejecutamos la función

consultarPropiedad();

 

 

 

 Power Query M (Excel / Power BI) 

 let

 // 1. Configura tus datos de acceso

 instancia = "mi-inmobiliaria.nuby.app", // Reemplaza con tu dirección web completa

 token = "TU_TOKEN_AQUI", // Token obtenido del servicio Login

 codigo = "137", // Código de la propiedad a consultar

 // 2. Prepara la dirección de la petición

 url = "https://" & instancia & "/service/v2/public/properties/" & codigo,

 // 3. Envía la petición GET

 response = Web.Contents(url, [

 Headers = [

 #"Content-Type" = "application/json",

 #"Authorization" = "Bearer " & token

 ]

 ]),

 // 4. Decodifica la respuesta JSON y conviértela en registro

 jsonResponse = Json.Document(response),

 resultado = Record.ToTable(jsonResponse),

 expandido = Table.Pivot(resultado, List.Distinct(resultado[Name]), "Name", "Value")

in

 expandido