Listar Propiedades
Permite obtener una lista de elementos, donde cada elemento contiene la informaciónpaginada de cada una de las propiedades registradas en la inmobiliaria.inmobiliaria, incluyendo información detallada de cada una: datos generales, ubicación, valores económicos, características, propietarios, imágenes, videos y códigos de portales inmobiliarios.
Endpoint:¿Para qué sirve este servicio? https://
Úsalo para sincronizar el inventario de propiedades con tu sistema externo, alimentar un sitio web, generar reportes o integrar la información de inmuebles con plataformas de terceros. El endpoint soporta paginación y filtros por rangos de fecha para consultas eficientes.
1. El Endpoint (La dirección web)
Apunta tu sistema a la siguiente dirección. Recuerda reemplazar {{instancia}}.arrendasoft.co/ por la dirección web completa que utilizas para ingresar a tu plataforma.
GET https://{{instancia}}/service/v2/public/properties
¿Qué debes colocar en {{instancia}}:? Hace
Es referenciamuy sencillo: corresponde a la instanciadirecció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 cadano inmobiliaria.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 enviar los encabezados y opcionalmente los parámetros de filtrado en la URL:
| Método | GET |
| Content-Type | application/json |
AuthorizationEndpoint público
Este
Parámetros de consulta (query string):
| Parámetro | Tipo | Requerido | Por defecto | Descripción |
|---|---|---|---|---|
| ||||
| integer | No | 1 | ||
| limit | integer | No | 10 | |
| listing_start_date | string | No | — |
Formato: YYYY-MM-DD (ejemplo: 2024-03-01). |
| listing_end_date | string | No | — |
inmueble. YYYY-MM-DD. |
created_start_date |
string | No | — |
YYYY-MM-DD. |
created_end_date |
string | No | — |
YYYY-MM-DD. |
last_modified_start_date |
string | No | — |
inmueble. YYYY-MM-DD. |
last_modified_end_date |
string | No | — |
inmueble. YYYY-MM-DD. |
Nota:Comportamiento de los filtros de fecha
Para los parámetros de tipo fecha que se compongancomponen de un rango,rango como(por ejemplo listing_start_date y listing_end_date,):
— seSi debeenvías tener en cuenta que si se envía solo el start_date,: se retornarán registros dondecon lafecha condición es “>= (mayor o igual)”.igual (>=) a la indicada.
— Si envías solo se envía el end_date,: se retornarán registros dondecon fecha menor o igual (<=) a la condiciónindicada.
— esSi “<=envías (menos o igual)”, y si se envían ambas, entoncesambos: se retornarán registros dentro de ese rango de fechas.fechas (BETWEEN).
— La fecha de inicio no puede ser mayor que la fecha de fin; de lo contrario se devolverá un error de validación.
Ejemplos de peticionespeticiones:
GET https://{{instancia}}.arrendasoft.co//service/v2/public/properties
GET https://{{instancia}}.arrendasoft.co/service/v2/public/properties/https://{{instancia}}.arrendasoft.co/service/v2/public/properties?page=1&limit=10
GET https://{{instancia}}.arrendasoft.co//service/v2/public/properties?page=1&limit=10&listing_start_date=2024-03-26
GET https://{{instancia}}.arrendasoft.co//service/v2/public/properties?page=1&limit=10&listing_start_date=2024-03-2601&listing_end_date=2024-03-2631
GET https://{{instancia}}/service/v2/public/properties?page=2&limit=20&created_start_date=2024-01-01&created_end_date=2024-06-30
3. La Respuesta (¿Qué te entregaremos?)
ListaEl sistema te devolverá una lista con las propiedades que coincidan con los filtros aplicados. Cada propiedad incluye datos generales, ubicación, valores económicos, características, propietarios, imágenes, videos y códigos de elementos,portales dondeinmobiliarios. cadaLa elementorespuesta contienese laverá informaciónsimilar dea cada una de las propiedades.esta:
[
{
"codigo": "137",
"titulo": "Apartamento cercaamplio delcon estadiovista yal laparque cuarta brigada"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": "InterServicios"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": "Estadio"Los Rosales",
"direccion": "CALLE 5045 # 7432 - 12"18",
"coordenadas": "6.21505012838972:24830000000000:-75.57529436962885"56120000000000",
"valor_arriendo1": "1600000",
"valor_arriendo2": "0",
"valor_venta1": "0",
"valor_venta2": "0",
"valor_administracion": "0",
"avaluo_catastral": "0",
"impuesto_predial": "0.00",
"area": "75.00",
"observaciones": null,
"propiedad_destacada": "No",
"llaves_en": "oficina",
"llaves_otro": null,
"paga_cuota_sost": "propietario",
"folio_matricula": null,
"referencia_catastral": null,
"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"14",
"descripcion": "Garaje"Cocina Integral",
"tipo_campo": "checkbox",
"orden": "10"5",
"grupo": "Características Internas",
"valor": "1"
}
],
"propietarios": [
{
"id": "272",
"documento": "4207050496"1020304050",
"nombres": "CRISTINAANA GUERRERO"MARÍA",
"apellidos": ""PÉREZ RODRÍGUEZ"
}
],
"imagenes": [
{
"posicion": "1",
"size": "19201080",
"img": "img/fotos/1920x1080_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6.jpeg",
"imagen": "https://qa.arrendasoft.co/mi-inmobiliaria.nuby.app/img/fotos/1920x1080_66ae4cfba9aa891473fe8f78a0c7e6f6.1920x1080_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6.jpeg"
},
{
"posicion": "2",
"size": "19201080",
"imagen"img": "https://qa.arrendasoft.co/img/fotos/1920x1080_660ae9fb29a0ff3c0e47cf13cde4740e.1920x1080_f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3.jpeg"
},
{
"posicion": "3",
"size": "19201080",
"imagen": "https://qa.arrendasoft.co/mi-inmobiliaria.nuby.app/img/fotos/1920x1080_83883a0f75ddae325f41eafce4066631.1920x1080_f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3.jpeg"
}
],
"videos": [
{
"url": "608AV8w6gL0"dQw4w9WgXcQ",
"tipo": "youtube",
"descripcion": null,
"posicion": "1"
}
],
},"codigos_portales": [
{
"codigo"nombre_portal": "136"metrocuadrado",
"titulo"id_portal": "FINCA",
"clase_id": "1254",
"clase_inmueble": "Finca",
"tipo_servicio_id": "venta y arriendo"MC-12345",
"tipo_servicio": "Venta y Arriendo",
"estrato": "1258",
"estrato_texto": "Cuatro",
"fecha_consignacion": "2021-04-16",
"asesor_id": "6",
"asesor": "KAREN CANO",
"pais_id": "1",
"pais": "COLOMBIA",
"departamento_id": "11",
"departamento": "Bogota D.c.",
"municipio_id": "150",
"municipio": "Bogota",
"barrio_id": "838",
"barrio": "Bosa",
"direccion": "CR 145 # 85 - 9",
"coordenadas": "4.875468815048683:-73.62556445019526",
"valor_arriendo1": "6050000",
"valor_arriendo2": "0",
"valor_venta1": "500000000",
"valor_venta2": "0",
"valor_administracion": "0",
"avaluo_catastral": "0",
"impuesto_predial": "0.00",
"area": "1200.00",
"observaciones": "Esta finca ofrece una experiencia rural única con comodidades modernas. La espaciosa casa principal cuenta con encantadoras habitaciones, cuenta con una reluciente piscina y áreas verdes bien cuidadas.",
"propiedad_destacada": "No",
"llaves_en": "oficina",
"llaves_otro": null,
"paga_cuota_sost": null,
"folio_matricula": "0",
"referencia_catastral": "0",
"edificio_unidad": "urbanizacion",
"estado": "1",
"estado_texto": "Activa",
"cantidad_images": "2",
"cantidad_videos": "0",
"caracteristicas": [
{
"id": "1",
"descripcion": "Nº De Habitaciones",
"tipo_campo": "numeric",
"orden": "1",
"grupo": "Características del inmueble",
"valor": "9"
},
{
"id": "2",
"descripcion": "Nº De Baños",
"tipo_campo": "numeric",
"orden": "2",
"grupo": "Características del inmueble",
"valor": "4"
},
{
"id": "11",
"descripcion": "Zona de lavandería",
"tipo_campo": "checkbox",
"orden": "14",
"grupo": "Características del inmueble",
"valor": "1"
},
{
"id": "9",
"descripcion": "Cuarto de servicio",
"tipo_campo": "checkbox",
"orden": "5",
"grupo": "Características del Inmueble",
"valor": "1"
},
{
"id": "26",
"descripcion": "Sauna / Turco / Jacuzzi",
"tipo_campo": "checkbox",
"orden": "6",
"grupo": "Características del Inmueble",
"valor": "1"arriendo"
}
],
"propietarios": [
{
"id": "83",
"documento": "2830863285",
"nombres": "LILIA MARLEN",
"apellidos": "LOPEZ CASTELLANOS"
}
],
"imagenes": [
{
"posicion": "1",
"size": "19201080",
"imagen": "https://qa.arrendasoft.co/img/fotos/1920x1080_431b70772304a609c280036305f66ac4.jpeg"
},
{
"posicion": "2",
"size": "19201080",
"imagen": "https://qa.arrendasoft.co/img/fotos/1920x1080_209e299b845c8bdf9479f5fb055461fe.jpeg"
}
],
"videos": []
}
]
ClavesCampos y Descripciones del JSONprincipales de Propiedadesla propiedad
Esta tabla enumera las claves presentes en el JSON de unacada propiedad y proporciona una breve descripción de cada una, explicando su propósito y el tipo de información que contienen.una:
| Clave | Descripción |
|---|---|
codigo |
Código único del inmueble en el sistema. |
titulo |
Título del anuncio del |
clase_id |
id del |
clase_inmueble |
|
tipo_servicio_id |
"arriendo", "venta", "venta y arriendo". |
| tipo_servicio | Nombre descriptivo del tipo de servicio (por ejemplo: "Arriendo", "Venta"). |
estrato |
|
| |
estrato_texto |
Texto descriptivo del estrato (por ejemplo: "Cuatro", "Tres"). |
fecha_consignacion |
Fecha YYYY-MM-DD. |
asesor_id |
|
asesor |
Nombre completo del asesor asignado. |
| pais_id | Identificador del país donde se ubica el inmueble. |
| pais | Nombre del |
departamento_id |
|
departamento |
Nombre del |
municipio_id |
|
municipio |
Nombre del |
barrio_id |
null si no se ha asignado barrio. |
barrio |
Nombre del |
direccion |
|
| |
| |
coordenadas |
Coordenadas geográficas del inmueble en formato latitud:longitud. |
valor_arriendo1 |
Valor principal de arriendo (canon mensual). |
valor_arriendo2 |
Valor secundario de 0 si no aplica. |
valor_venta1 |
Valor principal de |
valor_venta2 |
Valor secundario de 0 si no aplica. |
valor_administracion |
Valor de |
avaluo_catastral |
Avalúo catastral del |
impuesto_predial |
|
area |
Área del inmueble en metros cuadrados. |
observaciones |
Observaciones null. |
propiedad_destacada |
"Si" o "No". |
llaves_en |
Lugar donde |
llaves_otro |
null. |
paga_cuota_sost |
Quién paga la cuota de sostenimiento (por ejemplo: "propietario"). Puede ser null. |
folio_matricula |
null. |
referencia_catastral |
Referencia catastral del inmueble. Puede ser null. |
edificio_unidad |
|
estado |
0 (Arrendada), 1 (Activa), 2 (Inactiva), 3 (Vendida). |
estado_texto |
Texto descriptivo del estado (por ejemplo: "Activa", "Arrendada"). |
cantidad_images |
Cantidad de imágenes |
cantidad_videos |
Cantidad de videos |
| 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 tienecontiene lasla siguientesinformación claves:de una característica del inmueble y su valor asignado:
| Clave | Descripción |
|---|---|
id |
id del servicio Listar Características. |
descripcion |
|
tipo_campo |
Tipo de numeric, checkbox, select, entre otros. |
orden |
|
grupo |
Grupo al que pertenece la |
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 |
valor_texto |
tipo_campo es select ("si" → valor_texto "Si"). |
Propietarios
Cada elemento dentro de la lista propietarios tienecontiene lasla siguientesinformación claves:de un propietario del inmueble:
| Clave | Descripción |
|---|---|
id |
|
documento |
|
nombres |
Nombres del |
apellidos |
Apellidos del |
Imágenes
Cada elemento dentro de la lista imagenes tienecontiene lasla siguientesinformación claves:de una fotografía del inmueble:
| Clave | Descripción |
|---|---|
posicion |
Posición de ordenamiento de la imagen (1 = principal). |
size |
|
img |
|
| imagen | URL completa de la imagen, lista para consumir directamente. |
Videos
Cada elemento dentro de la lista videos tienecontiene lasla siguientesinformación claves:de un video asociado al inmueble:
| Clave | Descripción |
|---|---|
url |
Identificador o URL del video (por ejemplo, el ID de YouTube: "608AV8w6gL0"). |
| tipo | Plataforma del video (por ejemplo: ). |
| 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 | el
| publicada |
|
Ejemplos4. Seguridad y Posibles Errores
Si alguno de los parámetros enviados no cumple con las validaciones, el sistema devolverá un error 400 con la descripción del problema. Por ejemplo:
{
"error": [
"El límite debe ser un número y no mayor a 50"
]
}
Posibles errores de validación:
| Código HTTP | Descripción |
|---|---|
| 400 | Parámetros inválidos. Posibles causas: — page no es numérico.— limit no es numérico o es mayor a 50.— Las fechas no tienen el formato YYYY-MM-DD.— La fecha de inicio es mayor que la fecha de fin en un rango. |
5. Ejemplos de integración
Aquí tienes ejemplos de código listos para que tus desarrolladores los adapten a tu plataforma:
CurlcURL
# Listar propiedades con paginación
curl -X GET "https://{{instancia}}.arrendasoft.co//service/v2/public/properties?page=1&limit=10" \
-H "Content-Type: application/json"
# Filtrar por rango de fecha de consignación
curl -X GET "https://{{instancia}}/service/v2/public/properties?page=1&limit=10&listing_start_date=2024-03-01&listing_end_date=2024-03-31" \
-H "Content-Type: application/json"
# Filtrar por fecha de creación
curl -X GET "https://{{instancia}}/service/v2/public/properties?page=1&limit=20&created_start_date=2024-01-01" \
-H "Authorization:Content-Type: Bearer YOUR_AUTHENTICATION_TOKEN"application/json"
PHP Curl
<?php
$instance = 'your_instance'tu_instancia'; // ReplaceReemplaza withcon yourtu actualinstancia instance
$token = 'YOUR_AUTHENTICATION_TOKEN';real
// ReplaceParámetros withde the token obtained from the login service
// Example parameters for listing propertiesconsulta
$page = 1;
$limit = 10;
$listingStartDate = '2024-03-01';
$listingEndDate = '2024-03-31';
$url = "https://{$instance}.arrendasoft.co/service/v2/public/properties?";
$queryParams = http_build_query([
'page' => $page,
'limit' => $limit,
'listing_start_date' => $listingStartDate,
'listing_end_date' => $listingEndDate
]);
$url .= http_build_query("https://{$queryParams)instance}/service/v2/public/properties?{$queryParams}";
$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 "HTTPCódigo Statusde Code:estado HTTP: " . $http_code . "\n";
echoif "Response:($http_code "=== .200) {
$response . "\n";
// You can further process the JSON response here
$propertiespropiedades = json_decode($response, true);
if ($http_code == 200 && !empty($properties)) {
echo "SuccessfullyPropiedades retrievedencontradas: " . count($properties)propiedades) . " properties.\n";
// Example: print the title of the first property
ifforeach (isset($properties[0]['titulo']))propiedades as $propiedad) {
echo "First property[{$propiedad['codigo']}] title: " . {$properties[0][propiedad['titulo']} .- "{$propiedad['estado_texto']}\n";
}
} else {
echo "FailedError toal retrieveconsultar propertieslas orpropiedades.\n";
noecho properties$response found.. "\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
# 2. Prepara la dirección y los parámetros
url = f"https://{instancia}/service/v2/public/properties"
params = {
"page": 1,
"limit": 10,
"listing_start_date": "2024-03-01",
"listing_end_date": "2024-03-31"
}
headers = {
"Content-Type": "application/json"
}
# 3. Envía la petición GET y procesa la respuesta
try:
response = requests.get(url, params=params, headers=headers)
print(f"Código de estado HTTP: {response.status_code}")
if response.status_code == 200:
propiedades = response.json()
print(f"Propiedades encontradas: {len(propiedades)}")
for prop in propiedades:
print(f" [{prop['codigo']}] {prop['titulo']} - {prop['estado_texto']}")
else:
print("Error al consultar las propiedades.")
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
// 2. Prepara la dirección con parámetros
const params = new URLSearchParams({
page: 1,
limit: 10,
listing_start_date: '2024-03-01',
listing_end_date: '2024-03-31'
});
const url = `https://${instancia}/service/v2/public/properties?${params}`;
// 3. Función para consultar las propiedades
async function consultarPropiedades() {
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 propiedades = await response.json();
console.log(`Propiedades encontradas: ${propiedades.length}`);
propiedades.forEach(prop => {
console.log(` [${prop.codigo}] ${prop.titulo} - ${prop.estado_texto}`);
});
} else {
console.log('Error al consultar las propiedades.');
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
consultarPropiedades();
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
// 2. Prepara la dirección de la petición con parámetros
url = "https://" & instancia & "/service/v2/public/properties?page=1&limit=50",
// 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 tabla
jsonResponse = Json.Document(response),
tabla = Table.FromList(jsonResponse, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
expandido = Table.ExpandRecordColumn(tabla, "Column1",
{"codigo", "titulo", "clase_inmueble", "tipo_servicio", "estado_texto", "direccion", "municipio", "departamento", "area", "valor_arriendo1", "valor_venta1", "fecha_consignacion"},
{"Codigo", "Titulo", "ClaseInmueble", "TipoServicio", "Estado", "Direccion", "Municipio", "Departamento", "Area", "ValorArriendo", "ValorVenta", "FechaConsignacion"})
in
expandido