Propiedades

Una clave con properties:read lee tus propiedades y los Agentes, Lugares, Áreas y amenidades a los que se refieren. Para crearlas y editarlas también por la API, consulta Escribir propiedades.

Leer propiedades

  • GET /v1/properties — una página con cursor de propiedades en orden de cambio. Envía updated_since para traer solo lo que cambió e include_archived=true para ver también las archivadas (retiradas).
  • GET /v1/properties/{property_id} — una propiedad por su id.
  • GET /v1/properties/by-slug/{slug} — una propiedad por su slug. Un slug antiguo todavía encuentra la propiedad; su slug es el actual, así que redirige cuando no coinciden.
curl "https://api.letsrealty.io/v1/properties?limit=200&listing_type=sale" \
  -H "Authorization: Bearer $LETSREALTY_API_KEY"

La lista también acepta listing_type, place (un código de Lugar: propiedades allí o debajo), area (el id de un Área), is_featured y q (el título o tu referencia interna).

Paginar y sincronizar

Pagina con limit (hasta 200) y el next_cursor de la página anterior hasta que sea null. Para mantener una copia al día, recorre todo una vez y luego consulta con updated_since un minuto antes del updated_at más reciente que hayas visto, y actualiza por id. Una propiedad archivada vuelve con archived: true cuando envías include_archived=true. Consulta Paginación.

Idiomas

El title, la description y los highlights de una propiedad llegan en uno de tus Idiomas del Sitio por respuesta:

  • ?lang=es elige un Idioma del Sitio activado. Sin él se usa el primer idioma activado de tu cabecera Accept-Language, y si no, tu Idioma Predeterminado.
  • Un lang que no está activado es un 422 que nombra los activados.
  • lang en la respuesta es el idioma del texto, y available_langs lista todos los idiomas en que la propiedad tiene texto. Una propiedad sin texto en el idioma que pediste llega en tu Idioma Predeterminado, o en el idioma en que se escribió cuando tampoco tiene texto en ese.
curl "https://api.letsrealty.io/v1/properties/by-slug/casa-tamarindo?lang=en" \
  -H "Authorization: Bearer $LETSREALTY_API_KEY"

Los nombres de place y areas de una propiedad también siguen el idioma que pediste.

La galería

images es la galería de la propiedad en orden, cada imagen con su id, su url en el CDN, is_primary y sort_order. primary_image_url es la URL de la imagen principal, o null si no hay ninguna marcada.

Los campos

  • Identidad: id, slug, internal_ref (tu propia referencia), title, description, highlights, lang, available_langs.
  • Precio: listing_type, price, currency, rent_price (una venta que también se ofrece en alquiler), price_reduced_at, price_reduced_from.
  • El inmueble: property_type, bedrooms, bathrooms, area, lot_area, parking_spaces, year_built, floor, hoa_fee, amenities.
  • Ubicación: address, latitude, longitude, location_precision, place_code, place (su ruta y textos para mostrar), areas (slug y name), needs_location (aún sin Lugar, así que no está en tu sitio web).
  • Presentación: agent_id, is_featured, primary_image_url, images, video_url, tour_url.
  • Estado: archived, created_at, updated_at.

Las notas privadas, los datos de importación y las estadísticas de la consola nunca forman parte de la API. La referencia de la API tiene el tipo de cada campo.

Agentes, Lugares, Áreas y amenidades

La misma clave lee aquello a lo que se refiere una propiedad:

  • GET /v1/agents — una página con cursor de los perfiles públicos de tus Agentes (nombre, slug, foto, cargo, biografía, teléfono, correo, redes sociales, idioma e is_active), con updated_since. Los Agentes desactivados no aparecen salvo que envíes include_inactive=true, como debería hacer una sincronización para verlos pasar a is_active: false. GET /v1/agents/{agent_id} lee uno; el agent_id de una propiedad lo identifica. Los accesos a la consola nunca forman parte.
  • GET /v1/places — cada Lugar donde están tus propiedades y cada Lugar por encima, de menor a mayor profundidad, cada uno con su parent_code. El place_code de una propiedad es uno de ellos.
  • GET /v1/areas — una página con cursor de tus Áreas con su slug y su name en lang, con updated_since.
  • GET /v1/amenities — cada key que pueden tener las amenities de una propiedad, con su group y su label en lang.

Los Lugares y las amenidades llegan en una sola página: next_cursor siempre es null.