elefymove

Développez avec ElefyMove

Connectez votre plateforme à ElefyMove : publiez des annonces, synchronisez les disponibilités en temps réel et ne réservez plus jamais deux fois la même date.

Ce que permet l'API

Un point d'intégration unique pour les annonces, les disponibilités et la synchronisation en temps réel.

API Annonces

Envoyez des annonces immobilières multilingues vers ElefyMove. Le contenu peut être fourni dans tout sous-ensemble de nos 9 langues prises en charge ; chaque annonce est modérée avant sa mise en ligne.

Synchronisation des disponibilités

Le calendrier maître d'ElefyMove est l'unique source de vérité pour tout ce qui est réservable sur la plateforme. Chaque période porte un statut — disponible, retenue temporairement, réservée ou bloquée — et les délais de battement pour le ménage sont appliqués de manière centralisée, afin qu'aucun canal ne puisse créer de double réservation.

Retenues temporaires

Posez une retenue de courte durée, jusqu'à 10 minutes, le temps que le voyageur termine son paiement sur votre plateforme. Les conflits sont résolus au premier arrivé, premier servi ; la demande perdante reçoit une réponse 409 exploitable par une machine.

Webhooks

Abonnez-vous à des événements signés en HMAC-SHA256 — validations d'annonces, changements de disponibilité, cycle de vie des retenues et statut des réservations — livrés quasiment en temps réel. Les charges utiles ne contiennent que des dates et des références, jamais de données personnelles du voyageur.

Synchronisation iCal

Chaque annonce exporte un flux iCal signé, et ElefyMove peut également interroger le vôtre en retour, afin que les blocages externes restent reflétés des deux côtés sans écrire la moindre ligne de code d'intégration.

Ce que les partenaires peuvent — et ne peuvent pas — faire

Règle zéro : chaque opération est limitée à vos propres données. Il n'existe aucun accès entre partenaires, dans aucun sens.

Vous pouvez

  • Créer, mettre à jour et retirer vos propres annonces de biens, dans l'une de nos 9 langues
  • Consulter vos propres annonces et leur statut de modération
  • Consulter la disponibilité de vos propres annonces et enregistrer des blocages de canal externe avec une référence
  • Poser et libérer des retenues temporaires, jusqu'à 10 minutes, pendant votre processus de paiement
  • Enregistrer des webhooks et recevoir des événements signés — dates et références uniquement
  • Exporter les calendriers d'annonces (iCal) et enregistrer vos propres flux iCal
  • Consulter la hiérarchie de localisation publique
  • Publier des publications communautaires, sous réserve de la modération d'ElefyMove avant leur mise en ligne
  • Consulter vos propres réservations de la marketplace, et refuser celles encore en attente de paiement

Vous ne pouvez pas

  • Faire transiter un paiement, un remboursement ou un dépôt de garantie par cette API
  • Créer des réservations ou des contrats ElefyMove — une réservation externe n'est enregistrée que sous forme de blocage de calendrier
  • Envoyer ou recevoir des données personnelles de voyageurs ou de locataires
  • Accéder aux annonces, retenues, blocages ou paramètres d'un autre partenaire, ou les modifier
  • Envoyer des messages, contacter ou démarcher les utilisateurs d'ElefyMove
  • Consulter ou republier des annonces qui ne vous appartiennent pas
  • Dépasser les limites de débit, partager des clés ou automatiser la création de comptes

Obtenir un accès

Créez un compte développeur, vérifiez votre e-mail et émettez vos propres clés API de test directement depuis le tableau de bord. Les clés de production sont créées par le propriétaire dans le back-office ElefyMove.

Créez vos clés API

En créant un compte, vous acceptez les Conditions d'utilisation de l'API.

Périmètres disponibles

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

Limite de débit par défaut : 120 requêtes par minute par clé.

Démarrage rapide

Chaque requête est authentifiée via un en-tête X-Api-Key contenant votre clé attribuée.

Consulter la disponibilité d'une annonce

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" }
]

Poser une retenue temporaire

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 demande perdante reçoit une réponse 409 exploitable par une machine

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

Référence complète de l'API

Tous les schémas de requête et de réponse, les formats d'erreur et les exemples figurent dans la référence OpenAPI interactive — testez chaque endpoint en direct avec votre propre clé.

Ouvrir la documentation de l'APIParcourir la documentation complète

Tous les endpoints en un coup d'œil

L'intégralité de l'Open API v1. Chaque requête porte votre clé dans l'en-tête X-Api-Key et chaque route n'accède qu'à vos propres données.

URL de base https://elefymove.com

Annonces

MéthodeEndpointPortéeRôle
POST/api/public/v1/listingslistings:writeSoumettez une nouvelle annonce à la modération, avec un contenu dans les langues de votre choix parmi les 9 prises en charge.
GET/api/public/v1/listingslistings:readListez toutes les annonces de votre clé avec leur statut de modération actuel.
GET/api/public/v1/listings/{externalId}listings:readConsultez une de vos annonces via l'identifiant externe que vous lui avez attribué.
PATCH/api/public/v1/listings/{externalId}listings:writeMettez à jour une de vos annonces ; les champs omis restent inchangés.
DELETE/api/public/v1/listings/{externalId}listings:writeRetirez une de vos annonces.
POST/api/public/v1/listings/{externalId}/photoslistings:writeAjoutez une photo à une annonce sans passer par une mise à jour complète. L'image est récupérée puis réhébergée par ElefyMove — votre URL n'est jamais stockée directement.
DELETE/api/public/v1/listings/{externalId}/photos/{photoId}listings:writeRetirez une photo d'une annonce. Refusé avec un 400 si cela ferait passer une annonce publiée sous le nombre minimal de photos.

Données de référence

MéthodeEndpointPortéeRôle
GET/api/public/v1/locationsToute clé valideConsultez l'arborescence canonique province → district → zone.
GET/api/public/v1/locations/searchToute clé valideRecherche à saisie assistée dans la hiérarchie de localisation canonique.
GET/api/public/v1/reference/property-typesToute clé valideL'ensemble exact des valeurs de type de bien acceptées par une annonce.
GET/api/public/v1/reference/amenitiesToute clé valideLes limites de longueur et de nombre que les équipements doivent respecter — les équipements sont du texte libre, pas un catalogue fixe.
GET/api/public/v1/reference/localesToute clé valideL'ensemble exact des codes de langue acceptés par les traductions d'une annonce.
GET/api/public/v1/reference/currenciesToute clé valideLa devise dans laquelle le prix d'une annonce est libellé. ElefyMove n'opère qu'en Thaïlande, donc c'est toujours le THB.

Disponibilités et blocages

MéthodeEndpointPortéeRôle
GET/api/public/v1/listings/{id}/availabilityavailability:readConsultez le calendrier unifié d'une annonce sur une période : disponible, retenu, réservé ou bloqué.
GET/api/public/v1/availabilityavailability:readConsultez la disponibilité de jusqu'à 50 annonces en un seul appel. Un identifiant que vous ne possédez pas ou qui n'existe pas est répertorié dans notFound plutôt que de faire échouer toute la requête.
GET/api/public/v1/listings/{id}/blocksavailability:readConsultez vos propres blocages de canal externe actifs pour une annonce, éventuellement restreints à une plage de dates.
POST/api/public/v1/listings/{id}/blocksavailability:writeCréez ou mettez à jour un blocage de canal externe, identifié par votre propre référence.
POST/api/public/v1/listings/{id}/blocks/batchavailability:writeCréez ou mettez à jour jusqu'à 100 blocages de canal externe sur une même annonce en un seul appel, avec un résultat de réussite/échec par élément.
DELETE/api/public/v1/listings/{id}/blocks/batchavailability:writeSupprimez jusqu'à 100 blocages de canal externe sur une même annonce en un seul appel, avec un résultat de réussite/échec par élément.
DELETE/api/public/v1/listings/{id}/blocks/{externalRef}availability:writeSupprimez un blocage de canal externe que vous avez créé.

Réservations temporaires

MéthodeEndpointPortéeRôle
GET/api/public/v1/holdsholds:writeListez vos propres retenues, des plus récentes aux plus anciennes. Par défaut, seules les retenues actives s'affichent ; élargissez avec ?status=all.
GET/api/public/v1/holds/{id}holds:writeConsultez une de vos retenues par identifiant.
POST/api/public/v1/listings/{id}/holdsholds:writeRetenez une période pendant que le voyageur finalise son paiement chez vous. La requête perdante reçoit un 409 avec SLOT_TAKEN.
POST/api/public/v1/holds/{id}/extendholds:writeRepoussez l'expiration d'une retenue à partir de maintenant. La durée de vie totale d'une retenue est plafonnée à 30 minutes depuis sa création — une prolongation qui dépasserait ce plafond est refusée avec un 409.
DELETE/api/public/v1/holds/{id}holds:writeLibérez une de vos retenues avant son expiration.

Synchronisation du calendrier (iCal)

MéthodeEndpointPortéeRôle
GET/api/public/v1/listings/{id}/calendar.icsURL signée, sans cléTéléchargez le calendrier d'une annonce sous forme de flux iCal. Le jeton signé dans l'URL fait office d'authentification : les applications de calendrier peuvent s'y abonner directement.
PUT/api/public/v1/listings/{id}/ical-sourcesavailability:writeEnregistrez ou remplacez le flux iCal entrant qu'ElefyMove interroge pour une de vos annonces.
GET/api/public/v1/listings/{id}/ical-sourcesavailability:readConsultez le flux enregistré d'une annonce, avec son statut de synchronisation et la dernière erreur.
DELETE/api/public/v1/listings/{id}/ical-sourcesavailability:writeArrêtez l'interrogation et supprimez le flux enregistré d'une annonce.

Webhooks

MéthodeEndpointPortéeRôle
PUT/api/public/v1/webhookswebhooks:manageDéfinissez l'URL de votre endpoint webhook et, éventuellement, remplacez votre liste d'événements souscrits.
GET/api/public/v1/webhookswebhooks:manageConsultez votre configuration webhook actuelle. Ne renvoie jamais le secret de signature.
DELETE/api/public/v1/webhookswebhooks:manageEffacez l'URL de votre webhook et arrêtez les envois.
POST/api/public/v1/webhooks/testwebhooks:manageEnvoyez un événement de test signé à votre endpoint configuré, quel que soit votre abonnement.
GET/api/public/v1/webhook-deliverieswebhooks:manageListez vos propres tentatives d'envoi de webhook, avec statut, horodatage et historique des tentatives.
POST/api/public/v1/webhook-deliveries/{id}/redeliverwebhooks:manageRelancez manuellement un envoi échoué ou passé en dead-letter.

Publications de la communauté

MéthodeEndpointPortéeRôle
POST/api/public/v1/community/postscommunity:writeSoumettez une publication communautaire. Toute publication créée par un partenaire entre en modération et n'est pas publiée instantanément.
GET/api/public/v1/community/postscommunity:readListez vos propres publications communautaires et leur statut de modération.
GET/api/public/v1/community/posts/{externalId}community:readConsultez une de vos publications communautaires via l'identifiant externe que vous lui avez attribué.
PATCH/api/public/v1/community/posts/{externalId}community:writeMettez à jour une de vos publications communautaires ; les champs omis restent inchangés.
DELETE/api/public/v1/community/posts/{externalId}community:writeDépubliez une de vos publications communautaires.

Réservations de la marketplace

MéthodeEndpointPortéeRôle
GET/api/public/v1/marketplace/bookingsmarketplace:readListez vos propres réservations de la marketplace, paginées et filtrées. Les réponses ne contiennent que des dates et des références.
GET/api/public/v1/marketplace/bookings/{id}marketplace:readConsultez une de vos réservations de la marketplace par identifiant.
POST/api/public/v1/marketplace/bookings/{id}/declinemarketplace:writeRefusez une réservation encore en attente de paiement. Il n'existe pas de route de confirmation — une réservation est confirmée au moment où le paiement est capturé, jamais par l'approbation du prestataire.

Général

MéthodeEndpointPortéeRôle
GET/api/public/v1/pingToute clé valideVérifiez que votre clé fonctionne et récupérez le nom du client et les portées associées.
GET/api/public/v1/meToute clé valideConsultez l'identité de votre propre client API — nom, environnement et portées associées à votre clé.

Données et usage loyal

  • Aucune donnée personnelle du voyageur ne transite par l'API : les blocages externes ne contiennent que des dates et une référence, conformément à la PDPA thaïlandaise.
  • Les annonces importées via l'API renvoient toujours vers leur page canonique sur elefymove.com.
  • Les clés ont un périmètre défini et peuvent être révoquées à tout moment par l'équipe ElefyMove.

API ouverte v1 — actuellement en phase d'intégration des partenaires.