elefymove

Documentación para desarrolladores

Guías y referencia de la Open API de ElefyMove.

Estas guías están disponibles actualmente solo en inglés.

Endpoints

MétodoEndpointÁmbitoQué hace
POST/api/public/v1/listingslistings:writeEnvía un anuncio nuevo a moderación, con el contenido en los idiomas que quieras de los 9 admitidos.
GET/api/public/v1/listingslistings:readLista todos los anuncios de tu clave con su estado de moderación actual.
GET/api/public/v1/listings/{externalId}listings:readConsulta uno de tus anuncios por el ID externo que le asignaste.
PATCH/api/public/v1/listings/{externalId}listings:writeActualiza uno de tus anuncios; los campos que omitas se mantienen igual.
DELETE/api/public/v1/listings/{externalId}listings:writeRetira uno de tus anuncios.
POST/api/public/v1/listings/{externalId}/photoslistings:writeAñade una foto a un anuncio sin necesidad de una actualización completa. ElefyMove obtiene y vuelve a alojar la imagen — tu URL nunca se almacena directamente.
DELETE/api/public/v1/listings/{externalId}/photos/{photoId}listings:writeElimina una foto de un anuncio. Se rechaza con un 400 si eso hiciera que un anuncio publicado quedara por debajo del número mínimo de fotos.

How listings work

  • You identify each listing by your own externalId — ElefyMove never asks you to store its internal ids.
  • Content is multilingual: submit any subset of the 9 supported locales, and ElefyMove serves the right language to each visitor.
  • New and updated listings pass moderation before going live. Subscribe to listing.approved / listing.rejected webhooks instead of polling for status.
  • PATCH is a partial update — any field you omit is left unchanged. DELETE unlists (it does not erase history).
  • Add or remove a single photo without a full PATCH round-trip. A photo you submit as a URL is fetched and re-hosted by ElefyMove — your URL is never stored or linked directly.
  • Removing a photo is refused with a MIN_PHOTOS_REQUIRED 400 if it would drop a currently-published listing below the minimum photo count.
  • Listings sourced through the API link back to their canonical page on elefymove.com.

Reference data

These routes need no scope — any valid key can read them. They expose the exact enum, locale, and currency values POST /listings validates against, and the canonical location hierarchy, so you never have to hard-code or guess them:

MétodoEndpointÁmbitoQué hace
GET/api/public/v1/locationsCualquier clave válidaConsulta el árbol canónico de ubicaciones: provincia → distrito → zona.
GET/api/public/v1/locations/searchCualquier clave válidaBúsqueda con autocompletado sobre la jerarquía canónica de ubicaciones.
GET/api/public/v1/reference/property-typesCualquier clave válidaEl conjunto exacto de valores de tipo de propiedad que acepta un anuncio.
GET/api/public/v1/reference/amenitiesCualquier clave válidaLos límites de longitud y cantidad que deben respetar las comodidades — las comodidades son texto libre, no un catálogo fijo.
GET/api/public/v1/reference/localesCualquier clave válidaEl conjunto exacto de códigos de idioma que aceptan las traducciones de un anuncio.
GET/api/public/v1/reference/currenciesCualquier clave válidaLa moneda en la que se expresa el precio de un anuncio. ElefyMove solo opera en Tailandia, así que siempre es THB.

amenities has no fixed catalog — it is free text validated only by a count and a per-item length limit. GET /reference/amenities returns those limits with an empty values array and freeText: true; do not treat the empty array as "no amenities allowed".