elefymove

Crea junto a ElefyMove

Conecta tu plataforma con ElefyMove: publica propiedades, sincroniza la disponibilidad en tiempo real y evita por completo la doble reserva de una misma fecha.

Qué permite hacer la API

Un único punto de integración para propiedades, disponibilidad y sincronización en tiempo real.

API de propiedades

Envía anuncios de propiedades multilingües a ElefyMove. Puedes enviar contenido en cualquier subconjunto de nuestros 9 idiomas; cada anuncio se modera antes de publicarse.

Sincronización de disponibilidad

El calendario maestro de ElefyMove es la única fuente de verdad para todo lo que se puede reservar en la plataforma. Cada rango de fechas tiene un estado: disponible, retenido, reservado o bloqueado; los márgenes de limpieza se aplican de forma centralizada para que ningún canal pueda generar una doble reserva.

Retenciones temporales

Crea una retención de corta duración, de hasta 10 minutos, mientras el huésped completa el pago en tu plataforma. Los conflictos se resuelven por orden de llegada, y la solicitud perdedora recibe una respuesta 409 legible por máquina.

Webhooks

Suscríbete a eventos firmados con HMAC-SHA256 sobre aprobaciones de anuncios, cambios de disponibilidad, el ciclo de vida de las retenciones y el estado de las reservas, entregados casi en tiempo real. Los payloads solo contienen fechas y referencias, nunca datos personales del huésped.

Sincronización iCal

Cada anuncio exporta un feed iCal firmado, y ElefyMove también puede consultar periódicamente tu propio feed, de modo que los bloqueos externos se reflejan en ambos sistemas sin necesidad de escribir código de integración.

Qué pueden hacer los socios — y qué no

Regla cero: toda operación se limita a tus propios datos. No existe ningún acceso entre socios, en ninguna dirección.

Puedes

  • Crear, actualizar y retirar tus propios anuncios de propiedades, en cualquiera de nuestros 9 idiomas
  • Consultar tus propios anuncios y su estado de moderación
  • Consultar la disponibilidad de tus propios anuncios y registrar bloqueos de canal externo con una referencia
  • Crear y liberar retenciones temporales, de hasta 10 minutos, durante tu proceso de pago
  • Registrar webhooks y recibir eventos firmados — solo fechas y referencias
  • Exportar calendarios de anuncios (iCal) y registrar tus propios feeds de iCal
  • Consultar la jerarquía de ubicaciones pública
  • Publicar publicaciones de comunidad, sujetas a la moderación de ElefyMove antes de que se muestren
  • Consultar tus propias reservas del marketplace, y rechazar las que sigan pendientes de pago

No puedes

  • Mover ningún pago, reembolso o depósito a través de esta API
  • Crear reservas o contratos de ElefyMove — una reserva externa solo se registra como un bloqueo de calendario
  • Enviar ni recibir datos personales de huéspedes o inquilinos
  • Acceder ni modificar los anuncios, retenciones, bloqueos o configuración de otro socio
  • Enviar mensajes, contactar o captar a usuarios de ElefyMove
  • Consultar o republicar anuncios que no te pertenecen
  • Superar los límites de solicitudes, compartir claves o automatizar la creación de cuentas

Cómo obtener acceso

Crea una cuenta de desarrollador, verifica tu correo y emite tus propias claves API de prueba directamente desde el panel. Las claves de producción las crea el propietario en el back office de ElefyMove.

Crea tus claves API

Al crear una cuenta, aceptas las Condiciones de uso de la API.

Ámbitos disponibles

listings:readlistings:writeavailability:readavailability:writeholds:writewebhooks:managecommunity:readcommunity:writemarketplace:readmarketplace:write

Límite de solicitudes por defecto: 120 solicitudes por minuto por clave.

Guía rápida

Cada solicitud se autentica con una cabecera X-Api-Key que contiene tu clave asignada.

Consultar la disponibilidad de un anuncio

curl "https://elefymove.com/api/public/v1/listings/{listingId}/availability?from=2026-09-01&to=2026-09-30" \
  -H "X-Api-Key: efy_live_xxxxxxxxxxxxxxxxxxxxxxxx"

# Response — 200 OK
[
  { "from": "2026-09-01", "to": "2026-09-14", "state": "AVAILABLE" },
  { "from": "2026-09-15", "to": "2026-09-20", "state": "BLOCKED", "source": "partner-site", "externalRef": "HMXYZ123" },
  { "from": "2026-09-21", "to": "2026-09-30", "state": "AVAILABLE" }
]

Crear una retención temporal

curl -X POST "https://elefymove.com/api/public/v1/listings/{listingId}/holds" \
  -H "X-Api-Key: efy_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"from": "2026-09-15", "to": "2026-09-20", "ttlSeconds": 300}'

# Response — 201 Created
{ "holdId": "hld_9f3a2c1b", "expiresAt": "2026-08-13T10:15:00Z" }

La solicitud perdedora recibe una respuesta 409 legible por máquina

# Same request, the dates were just taken by another channel
# Response — 409 Conflict
{
  "code": "SLOT_TAKEN",
  "conflictingState": "HELD",
  "wonBy": "external"
}

Referencia completa de la API

Todos los esquemas de petición y respuesta, los formatos de error y los ejemplos están en la referencia interactiva de OpenAPI: prueba cualquier endpoint en directo con tu propia clave.

Abrir documentación de la APIConsultar la documentación completa

Todos los endpoints de un vistazo

La superficie completa de Open API v1. Cada petición lleva tu clave en la cabecera X-Api-Key y cada ruta accede únicamente a tus propios datos.

URL base https://elefymove.com

Anuncios

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.

Datos de referencia

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.

Disponibilidad y bloqueos

MétodoEndpointÁmbitoQué hace
GET/api/public/v1/listings/{id}/availabilityavailability:readConsulta el calendario unificado de un anuncio en un rango de fechas: disponible, retenido, reservado o bloqueado.
GET/api/public/v1/availabilityavailability:readConsulta la disponibilidad de hasta 50 anuncios en una sola llamada. Un ID que no te pertenece o que no existe se incluye en notFound en lugar de hacer fallar toda la solicitud.
GET/api/public/v1/listings/{id}/blocksavailability:readConsulta tus propios bloqueos de canal externo activos para un anuncio, opcionalmente acotados a un rango de fechas.
POST/api/public/v1/listings/{id}/blocksavailability:writeCrea o actualiza un bloqueo de canal externo identificado con tu propia referencia.
POST/api/public/v1/listings/{id}/blocks/batchavailability:writeCrea o actualiza hasta 100 bloqueos de canal externo en un mismo anuncio en una sola llamada, con un resultado de éxito/fallo por elemento.
DELETE/api/public/v1/listings/{id}/blocks/batchavailability:writeElimina hasta 100 bloqueos de canal externo en un mismo anuncio en una sola llamada, con un resultado de éxito/fallo por elemento.
DELETE/api/public/v1/listings/{id}/blocks/{externalRef}availability:writeElimina un bloqueo de canal externo que hayas creado.

Reservas temporales

MétodoEndpointÁmbitoQué hace
GET/api/public/v1/holdsholds:writeLista tus propias retenciones, de más reciente a más antigua. Por defecto muestra solo las activas; amplía con ?status=all.
GET/api/public/v1/holds/{id}holds:writeConsulta una de tus retenciones por ID.
POST/api/public/v1/listings/{id}/holdsholds:writeRetén un rango de fechas mientras el huésped completa el pago en tu plataforma. La petición perdedora recibe un 409 con SLOT_TAKEN.
POST/api/public/v1/holds/{id}/extendholds:writeAmplía la caducidad de una retención a partir de ahora. La duración total de una retención está limitada a 30 minutos desde su creación — una ampliación que supere ese límite se rechaza con un 409.
DELETE/api/public/v1/holds/{id}holds:writeLibera una de tus retenciones antes de que caduque.

Sincronización de calendario (iCal)

MétodoEndpointÁmbitoQué hace
GET/api/public/v1/listings/{id}/calendar.icsURL firmada, sin claveDescarga el calendario de un anuncio como feed iCal. El token firmado de la URL es la autenticación, así que cualquier app de calendario puede suscribirse directamente.
PUT/api/public/v1/listings/{id}/ical-sourcesavailability:writeRegistra o sustituye el feed iCal entrante que ElefyMove consulta para uno de tus anuncios.
GET/api/public/v1/listings/{id}/ical-sourcesavailability:readConsulta el feed registrado de un anuncio, con su estado de sincronización y el último error.
DELETE/api/public/v1/listings/{id}/ical-sourcesavailability:writeDeja de consultar y elimina el feed registrado de un anuncio.

Webhooks

MétodoEndpointÁmbitoQué hace
PUT/api/public/v1/webhookswebhooks:manageConfigura la URL de tu endpoint de webhook y, opcionalmente, sustituye tu lista de eventos suscritos.
GET/api/public/v1/webhookswebhooks:manageConsulta tu configuración de webhook actual. Nunca devuelve el secreto de firma.
DELETE/api/public/v1/webhookswebhooks:manageBorra la URL de tu webhook y detiene las entregas.
POST/api/public/v1/webhooks/testwebhooks:manageEnvía un evento de prueba firmado a tu endpoint configurado, sea cual sea tu suscripción.
GET/api/public/v1/webhook-deliverieswebhooks:manageLista tus propios intentos de entrega de webhook, con estado, marca de tiempo e historial de reintentos.
POST/api/public/v1/webhook-deliveries/{id}/redeliverwebhooks:manageReintenta manualmente una entrega fallida o marcada como no entregable.

Publicaciones de la comunidad

MétodoEndpointÁmbitoQué hace
POST/api/public/v1/community/postscommunity:writeEnvía una publicación de comunidad. Toda publicación creada por un socio entra en moderación y no se publica al instante.
GET/api/public/v1/community/postscommunity:readLista tus propias publicaciones de comunidad y su estado de moderación.
GET/api/public/v1/community/posts/{externalId}community:readConsulta una de tus publicaciones de comunidad por el ID externo que le asignaste.
PATCH/api/public/v1/community/posts/{externalId}community:writeActualiza una de tus publicaciones de comunidad; los campos que omitas se mantienen igual.
DELETE/api/public/v1/community/posts/{externalId}community:writeDespublica una de tus publicaciones de comunidad.

Reservas del marketplace

MétodoEndpointÁmbitoQué hace
GET/api/public/v1/marketplace/bookingsmarketplace:readLista tus propias reservas del marketplace, paginadas y filtradas. Las respuestas solo incluyen fechas y referencias.
GET/api/public/v1/marketplace/bookings/{id}marketplace:readConsulta una de tus reservas del marketplace por ID.
POST/api/public/v1/marketplace/bookings/{id}/declinemarketplace:writeRechaza una reserva que todavía está pendiente de pago. No existe una ruta de confirmación: una reserva se confirma en el momento en que se cobra el pago, nunca por la aprobación del proveedor.

General

MétodoEndpointÁmbitoQué hace
GET/api/public/v1/pingCualquier clave válidaComprueba que tu clave funciona y consulta el nombre de cliente y los ámbitos asociados.
GET/api/public/v1/meCualquier clave válidaConsulta la identidad de tu propio cliente de API — nombre, entorno y los ámbitos asociados a tu clave.

Datos y uso responsable

  • Ningún dato personal del huésped circula por la API: los bloqueos externos solo incluyen fechas y una referencia, conforme a la PDPA de Tailandia.
  • Los anuncios obtenidos a través de la API enlazan siempre con su página canónica en elefymove.com.
  • Las claves tienen un alcance definido y el equipo de ElefyMove puede revocarlas en cualquier momento.

API abierta v1 — actualmente en proceso de incorporación de socios de integración.