{"openapi":"3.1.0","info":{"title":"Alquilo public listing API","version":"1.0.0","summary":"Read-only rental listings for Bogotá.","description":"Public HTTP API for published rental listings on alquilo.co. No authentication. Errors use RFC 9457 application/problem+json.","contact":{"name":"Alquilo","email":"notificaciones@alquilo.co","url":"https://alquilo.co"},"license":{"name":"Proprietary","identifier":"LicenseRef-Alquilo-Public-ReadOnly"}},"servers":[{"url":"https://alquilo.co","description":"Public site origin"}],"tags":[{"name":"Listings","description":"Published rentals"},{"name":"Health","description":"Liveness"}],"paths":{"/health":{"get":{"operationId":"getHealth","tags":["Health"],"summary":"Process liveness","responses":{"200":{"description":"Service is up","content":{"application/json":{"schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","example":true}}}}}}}}},"/api/propiedades":{"get":{"operationId":"listPublishedListings","tags":["Listings"],"summary":"List published rentals","description":"Returns published rental listings. Optional query filters match the /propiedades UI.","parameters":[{"name":"zone","in":"query","required":false,"schema":{"type":"string"},"description":"Barrio o zona (texto libre)."},{"name":"min","in":"query","required":false,"schema":{"type":"integer","minimum":0},"description":"Canon mínimo en COP."},{"name":"max","in":"query","required":false,"schema":{"type":"integer","minimum":0},"description":"Canon máximo en COP."},{"name":"beds","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"baths","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["price_asc","price_desc","newest","distance"]}},{"name":"chips","in":"query","required":false,"schema":{"type":"string"},"description":"Filtros rápidos separados por coma: nuevo, pet_friendly, amoblado, parqueadero, estudios, premium."},{"name":"north","in":"query","required":false,"schema":{"type":"number"}},{"name":"south","in":"query","required":false,"schema":{"type":"number"}},{"name":"east","in":"query","required":false,"schema":{"type":"number"}},{"name":"west","in":"query","required":false,"schema":{"type":"number"}}],"responses":{"200":{"description":"Filtered listings","content":{"application/json":{"schema":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","slug","title","city","propertyType"],"properties":{"id":{"type":"string","description":"Identificador interno del inmueble."},"slug":{"type":"string","description":"Slug público usado en /propiedades/{slug}."},"title":{"type":"string"},"neighborhood":{"type":["string","null"]},"city":{"type":"string","example":"Bogotá"},"propertyType":{"type":"string","example":"apartment"},"bedrooms":{"type":["number","null"]},"bathrooms":{"type":["number","null"]},"area":{"type":["number","null"]},"areaUnit":{"type":"string","example":"m2"},"parkingSpots":{"type":["number","null"]},"displayPrice":{"type":["number","null"],"description":"Canon mensual en COP que paga el inquilino."},"maintenanceFee":{"type":["number","null"]},"isMaintenanceFeeIncluded":{"type":["boolean","null"]},"coverImage":{"type":["string","null"],"format":"uri"},"lat":{"type":["number","null"]},"lng":{"type":["number","null"]},"isNew":{"type":"boolean"},"isFeatured":{"type":"boolean"},"amenities":{"type":"array","items":{"type":"string"}},"createdAt":{"type":["string","null"],"format":"date-time"},"distanceKm":{"type":"number"}}}},"total":{"type":"integer"}}},"example":{"items":[],"total":0}}}},"500":{"description":"Inventory backend failed","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"}}}}}}}}},"/api/propiedades/{slug}/nearby":{"get":{"operationId":"listNearbyListings","tags":["Listings"],"summary":"List nearby rentals for a listing slug","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Nearby listings and origin listing","content":{"application/json":{"schema":{"type":"object","required":["items","origin"],"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","slug","title","city","propertyType"],"properties":{"id":{"type":"string","description":"Identificador interno del inmueble."},"slug":{"type":"string","description":"Slug público usado en /propiedades/{slug}."},"title":{"type":"string"},"neighborhood":{"type":["string","null"]},"city":{"type":"string","example":"Bogotá"},"propertyType":{"type":"string","example":"apartment"},"bedrooms":{"type":["number","null"]},"bathrooms":{"type":["number","null"]},"area":{"type":["number","null"]},"areaUnit":{"type":"string","example":"m2"},"parkingSpots":{"type":["number","null"]},"displayPrice":{"type":["number","null"],"description":"Canon mensual en COP que paga el inquilino."},"maintenanceFee":{"type":["number","null"]},"isMaintenanceFeeIncluded":{"type":["boolean","null"]},"coverImage":{"type":["string","null"],"format":"uri"},"lat":{"type":["number","null"]},"lng":{"type":["number","null"]},"isNew":{"type":"boolean"},"isFeatured":{"type":"boolean"},"amenities":{"type":"array","items":{"type":"string"}},"createdAt":{"type":["string","null"],"format":"date-time"},"distanceKm":{"type":"number"}}}},"origin":{"type":"object","additionalProperties":false,"required":["id","slug","title","city","propertyType"],"properties":{"id":{"type":"string","description":"Identificador interno del inmueble."},"slug":{"type":"string","description":"Slug público usado en /propiedades/{slug}."},"title":{"type":"string"},"neighborhood":{"type":["string","null"]},"city":{"type":"string","example":"Bogotá"},"propertyType":{"type":"string","example":"apartment"},"bedrooms":{"type":["number","null"]},"bathrooms":{"type":["number","null"]},"area":{"type":["number","null"]},"areaUnit":{"type":"string","example":"m2"},"parkingSpots":{"type":["number","null"]},"displayPrice":{"type":["number","null"],"description":"Canon mensual en COP que paga el inquilino."},"maintenanceFee":{"type":["number","null"]},"isMaintenanceFeeIncluded":{"type":["boolean","null"]},"coverImage":{"type":["string","null"],"format":"uri"},"lat":{"type":["number","null"]},"lng":{"type":["number","null"]},"isNew":{"type":"boolean"},"isFeatured":{"type":"boolean"},"amenities":{"type":"array","items":{"type":"string"}},"createdAt":{"type":["string","null"],"format":"date-time"},"distanceKm":{"type":"number"}}}}}}}},"404":{"description":"Listing not found","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"}}}}}},"500":{"description":"Inventory backend failed","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"}}}}}}}}}},"components":{"schemas":{"Listing":{"type":"object","additionalProperties":false,"required":["id","slug","title","city","propertyType"],"properties":{"id":{"type":"string","description":"Identificador interno del inmueble."},"slug":{"type":"string","description":"Slug público usado en /propiedades/{slug}."},"title":{"type":"string"},"neighborhood":{"type":["string","null"]},"city":{"type":"string","example":"Bogotá"},"propertyType":{"type":"string","example":"apartment"},"bedrooms":{"type":["number","null"]},"bathrooms":{"type":["number","null"]},"area":{"type":["number","null"]},"areaUnit":{"type":"string","example":"m2"},"parkingSpots":{"type":["number","null"]},"displayPrice":{"type":["number","null"],"description":"Canon mensual en COP que paga el inquilino."},"maintenanceFee":{"type":["number","null"]},"isMaintenanceFeeIncluded":{"type":["boolean","null"]},"coverImage":{"type":["string","null"],"format":"uri"},"lat":{"type":["number","null"]},"lng":{"type":["number","null"]},"isNew":{"type":"boolean"},"isFeatured":{"type":"boolean"},"amenities":{"type":"array","items":{"type":"string"}},"createdAt":{"type":["string","null"],"format":"date-time"},"distanceKm":{"type":"number"}}},"Problem":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"}}}},"securitySchemes":{}},"security":[]}