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 no requiere cuerpo en la petición ni autenticación. Solo necesitas construir la URL con el código de la propiedad como parte de la ruta:
| Método | GET |
| Content-Type | application/json |
Endpoint público
Este servicio no requiere Token de autenticación. Puedes consumirlo directamente sin necesidad de pasar por el servicio de Login.
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 parámetro code es validado automáticamente por la ruta: solo acepta valores numéricos. Si se envía un valor no numérico, el sistema responderá con un error 404 (ruta no encontrada).
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. |
| 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"
PHP
<?php
$instance = 'tu_instancia'; // Reemplaza con tu instancia real
$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'
]);
$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
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"
}
# 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 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'
}
});
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
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"
]
]),
// 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