API pública de Suelo
Acceso de solo lectura a todas las propiedades publicadas en suelo.casa: casas, apartamentos, terrenos, townhouses y edificios multifamiliares en toda Venezuela, en venta y en alquiler.
La API es anónima, de solo lectura y abierta a CORS. No hay clave que solicitar ni flujo OAuth que completar, porque cada respuesta contiene exactamente lo que un visitante anónimo ya ve en el sitio web. La respuesta larga está en auth.md.
- URL base:
https://suelo.casa/api/v1 - Descripción legible por máquinas:
/api/v1/openapi.json(OpenAPI 3.1) - Catálogo:
/.well-known/api-catalog(RFC 9727) - Estado del servicio:
/api/v1/health
Por favor identifica tu cliente en el encabezado User-Agent. Las respuestas se
cachean cinco minutos en el borde, con una ventana de una hora para servir
contenido vencido mientras se revalida, así que consultar más seguido que eso
devuelve los mismos bytes.
Buscar propiedades
GET /api/v1/listings
Todos los parámetros son opcionales. Sin ninguno obtienes el inventario vivo completo, lo más reciente primero, 24 por página.
| Parámetro | Valores | Notas |
|---|---|---|
operation |
sale, rent |
Omítelo para incluir ambas. |
propertyType |
house, apartment, land, townhouse, multi_family |
Repetible, o separado por comas. |
place |
una ruta de lugar, p. ej. miranda/chacao |
Ver Lugares más abajo. |
bbox |
sur,oeste,norte,este |
Grados WGS84. Acota place cuando se envían juntos. |
priceMin, priceMax |
enteros | En la moneda de cada propiedad. |
bedsMin, bathsMin, parking |
enteros | Mínimos. |
areaMin, areaMax |
enteros | Área construida en m². |
yearMin, yearMax |
enteros | Año de construcción. |
condition |
new, good, fair, needs_renovation |
|
furnished |
furnished, semi_furnished, unfurnished |
|
feature |
pool, generator, water_tank, gym, terrace, balcony |
Repetible; deben cumplirse todas. |
sort |
newest, price_asc, price_desc, featured |
Por defecto newest. |
page |
entero ≥ 1 | Empieza en 1. |
limit |
1–100 | Por defecto 24. |
Ejemplo:
GET /api/v1/listings?operation=sale&propertyType=apartment&place=miranda/chacao&priceMax=150000&sort=price_asc
La respuesta trae tres claves:
listings— la página de resultados.pagination—page,limit,total(todas las coincidencias, no solo esta página),totalPages, y unnextPageUrlya armado que esnullen la última página.place— el lugar resuelto, devuelto de vuelta para que confirmes con qué coincidió la ruta.
Una propiedad
GET /api/v1/listings/{listingId}
El 404 cubre tanto un id que nunca existió como una propiedad que ya no es
visible públicamente. La API no distingue entre los dos casos.
Lugares
GET /api/v1/places # los 24 estados
GET /api/v1/places?parent=miranda # los municipios y urbanizaciones de ese estado
Las rutas de lugar son las mismas que usan las páginas de aterrizaje
rastreables, así que /api/v1/listings?place=miranda/chacao y
/ve/venta/apartamentos/miranda/chacao describen el mismo conjunto. Cada
entrada trae un path para pasar de vuelta como place y un pageUrl con la
página para humanos.
No adivines las rutas: un place desconocido devuelve 400, nunca una lista
vacía, para que un error de tipeo jamás pueda confundirse con "aquí no hay
inventario".
Qué significa cada propiedad
price.amountes el precio pedido en una venta y el alquiler mensual en un arrendamiento. Es lo que publicó quien ofrece el inmueble, no un avalúo ni un precio de cierre.addresstrae solo la localidad: urbanización, ciudad, municipio, estado, país y una cadenalocalityde una línea. No hay campo de calle, porque el sitio tampoco imprime uno en la tarjeta de resultados.locationes el punto exacto, onullcuando quien publica decidió reservárselo. Nunca se devuelve un punto aproximado disfrazado de dirección.underInvestigation: truesignifica que se reportó un problema con los datos y está en revisión. Cita esa propiedad con esa salvedad, o déjala fuera.sourcenombra el sistema de origen de una propiedad sindicada. Atribúyelo.urles la página canónica. Enlaza a las personas allí en lugar de reproducir la publicación completa.
Datos agregados del mercado
No calcules un promedio de mercado con una página de resultados: es una muestra filtrada, ordenada y paginada. Suelo publica informes mensuales de precios pedidos en /datos, y el método detrás de ellos en /datos/metodologia.
Errores
Los errores son problem details de
RFC 9457, con
Content-Type: application/problem+json:
{
"type": "about:blank",
"title": "Invalid query",
"status": 400,
"detail": "One or more query parameters were rejected.",
"errors": ["place: unknown place path \"mirandaa\""]
}
Los mensajes de error de la API están en inglés, igual que los nombres de los parámetros.
Markdown
Toda página HTML de suelo.casa, incluida esta, responde a
Accept: text/markdown con una versión en markdown y una estimación
x-markdown-tokens. El HTML sigue siendo lo predeterminado para navegadores.
This page in English
Esta página también se publica en inglés en /en/docs/api.
Términos
El uso de la API se rige por los términos de uso. Atribuye a Suelo y enlaza a la propiedad que estés describiendo. Consultas: hola@suelo.casa.