Conecta tu plataforma con ElefyMove: publica propiedades, sincroniza la disponibilidad en tiempo real y evita por completo la doble reserva de una misma fecha.
Un único punto de integración para propiedades, disponibilidad y sincronización en tiempo real.
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.
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.
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.
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.
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.
Regla cero: toda operación se limita a tus propios datos. No existe ningún acceso entre socios, en ninguna dirección.
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 APIAl crear una cuenta, aceptas las Condiciones de uso de la API.
listings:readlistings:writeavailability:readavailability:writeholds:writewebhooks:managecommunity:readcommunity:writemarketplace:readmarketplace:writeLímite de solicitudes por defecto: 120 solicitudes por minuto por clave.
Cada solicitud se autentica con una cabecera X-Api-Key que contiene tu clave asignada.
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" }
]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" }# Same request, the dates were just taken by another channel
# Response — 409 Conflict
{
"code": "SLOT_TAKEN",
"conflictingState": "HELD",
"wonBy": "external"
}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 completaLa 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
| Método | Endpoint | Ámbito | Qué hace |
|---|---|---|---|
/api/public/v1/listings | listings:write | Envía un anuncio nuevo a moderación, con el contenido en los idiomas que quieras de los 9 admitidos. | |
| GET | /api/public/v1/listings | listings:read | Lista todos los anuncios de tu clave con su estado de moderación actual. |
| GET | /api/public/v1/listings/{externalId} | listings:read | Consulta uno de tus anuncios por el ID externo que le asignaste. |
| PATCH | /api/public/v1/listings/{externalId} | listings:write | Actualiza uno de tus anuncios; los campos que omitas se mantienen igual. |
| DELETE | /api/public/v1/listings/{externalId} | listings:write | Retira uno de tus anuncios. |
/api/public/v1/listings/{externalId}/photos | listings:write | Añ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:write | Elimina 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. |
| Método | Endpoint | Ámbito | Qué hace |
|---|---|---|---|
| GET | /api/public/v1/locations | Cualquier clave válida | Consulta el árbol canónico de ubicaciones: provincia → distrito → zona. |
| GET | /api/public/v1/locations/search | Cualquier clave válida | Búsqueda con autocompletado sobre la jerarquía canónica de ubicaciones. |
| GET | /api/public/v1/reference/property-types | Cualquier clave válida | El conjunto exacto de valores de tipo de propiedad que acepta un anuncio. |
| GET | /api/public/v1/reference/amenities | Cualquier clave válida | Los 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/locales | Cualquier clave válida | El conjunto exacto de códigos de idioma que aceptan las traducciones de un anuncio. |
| GET | /api/public/v1/reference/currencies | Cualquier clave válida | La moneda en la que se expresa el precio de un anuncio. ElefyMove solo opera en Tailandia, así que siempre es THB. |
| Método | Endpoint | Ámbito | Qué hace |
|---|---|---|---|
| GET | /api/public/v1/listings/{id}/availability | availability:read | Consulta el calendario unificado de un anuncio en un rango de fechas: disponible, retenido, reservado o bloqueado. |
| GET | /api/public/v1/availability | availability:read | Consulta 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}/blocks | availability:read | Consulta tus propios bloqueos de canal externo activos para un anuncio, opcionalmente acotados a un rango de fechas. |
/api/public/v1/listings/{id}/blocks | availability:write | Crea o actualiza un bloqueo de canal externo identificado con tu propia referencia. | |
/api/public/v1/listings/{id}/blocks/batch | availability:write | Crea 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/batch | availability:write | Elimina 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:write | Elimina un bloqueo de canal externo que hayas creado. |
| Método | Endpoint | Ámbito | Qué hace |
|---|---|---|---|
| GET | /api/public/v1/holds | holds:write | Lista 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:write | Consulta una de tus retenciones por ID. |
/api/public/v1/listings/{id}/holds | holds:write | Reté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. | |
/api/public/v1/holds/{id}/extend | holds:write | Amplí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:write | Libera una de tus retenciones antes de que caduque. |
| Método | Endpoint | Ámbito | Qué hace |
|---|---|---|---|
| GET | /api/public/v1/listings/{id}/calendar.ics | URL firmada, sin clave | Descarga 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-sources | availability:write | Registra o sustituye el feed iCal entrante que ElefyMove consulta para uno de tus anuncios. |
| GET | /api/public/v1/listings/{id}/ical-sources | availability:read | Consulta el feed registrado de un anuncio, con su estado de sincronización y el último error. |
| DELETE | /api/public/v1/listings/{id}/ical-sources | availability:write | Deja de consultar y elimina el feed registrado de un anuncio. |
| Método | Endpoint | Ámbito | Qué hace |
|---|---|---|---|
| PUT | /api/public/v1/webhooks | webhooks:manage | Configura la URL de tu endpoint de webhook y, opcionalmente, sustituye tu lista de eventos suscritos. |
| GET | /api/public/v1/webhooks | webhooks:manage | Consulta tu configuración de webhook actual. Nunca devuelve el secreto de firma. |
| DELETE | /api/public/v1/webhooks | webhooks:manage | Borra la URL de tu webhook y detiene las entregas. |
/api/public/v1/webhooks/test | webhooks:manage | Envía un evento de prueba firmado a tu endpoint configurado, sea cual sea tu suscripción. | |
| GET | /api/public/v1/webhook-deliveries | webhooks:manage | Lista tus propios intentos de entrega de webhook, con estado, marca de tiempo e historial de reintentos. |
/api/public/v1/webhook-deliveries/{id}/redeliver | webhooks:manage | Reintenta manualmente una entrega fallida o marcada como no entregable. |
| Método | Endpoint | Ámbito | Qué hace |
|---|---|---|---|
/api/public/v1/community/posts | community:write | Enví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/posts | community:read | Lista tus propias publicaciones de comunidad y su estado de moderación. |
| GET | /api/public/v1/community/posts/{externalId} | community:read | Consulta una de tus publicaciones de comunidad por el ID externo que le asignaste. |
| PATCH | /api/public/v1/community/posts/{externalId} | community:write | Actualiza una de tus publicaciones de comunidad; los campos que omitas se mantienen igual. |
| DELETE | /api/public/v1/community/posts/{externalId} | community:write | Despublica una de tus publicaciones de comunidad. |
| Método | Endpoint | Ámbito | Qué hace |
|---|---|---|---|
| GET | /api/public/v1/marketplace/bookings | marketplace:read | Lista tus propias reservas del marketplace, paginadas y filtradas. Las respuestas solo incluyen fechas y referencias. |
| GET | /api/public/v1/marketplace/bookings/{id} | marketplace:read | Consulta una de tus reservas del marketplace por ID. |
/api/public/v1/marketplace/bookings/{id}/decline | marketplace:write | Rechaza 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. |
| Método | Endpoint | Ámbito | Qué hace |
|---|---|---|---|
| GET | /api/public/v1/ping | Cualquier clave válida | Comprueba que tu clave funciona y consulta el nombre de cliente y los ámbitos asociados. |
| GET | /api/public/v1/me | Cualquier clave válida | Consulta la identidad de tu propio cliente de API — nombre, entorno y los ámbitos asociados a tu clave. |
API abierta v1 — actualmente en proceso de incorporación de socios de integración.