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.
Un point d'intégration unique pour les annonces, les disponibilités et la synchronisation en temps réel.
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.
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.
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.
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.
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.
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.
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 APIEn créant un compte, vous acceptez les Conditions d'utilisation de l'API.
listings:readlistings:writeavailability:readavailability:writeholds:writewebhooks:managecommunity:readcommunity:writemarketplace:readmarketplace:writeLimite de débit par défaut : 120 requêtes par minute par clé.
Chaque requête est authentifiée via un en-tête X-Api-Key contenant votre clé attribuée.
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"
}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èteL'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
| Méthode | Endpoint | Portée | Rôle |
|---|---|---|---|
/api/public/v1/listings | listings:write | Soumettez 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/listings | listings:read | Listez toutes les annonces de votre clé avec leur statut de modération actuel. |
| GET | /api/public/v1/listings/{externalId} | listings:read | Consultez une de vos annonces via l'identifiant externe que vous lui avez attribué. |
| PATCH | /api/public/v1/listings/{externalId} | listings:write | Mettez à jour une de vos annonces ; les champs omis restent inchangés. |
| DELETE | /api/public/v1/listings/{externalId} | listings:write | Retirez une de vos annonces. |
/api/public/v1/listings/{externalId}/photos | listings:write | Ajoutez 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:write | Retirez une photo d'une annonce. Refusé avec un 400 si cela ferait passer une annonce publiée sous le nombre minimal de photos. |
| Méthode | Endpoint | Portée | Rôle |
|---|---|---|---|
| GET | /api/public/v1/locations | Toute clé valide | Consultez l'arborescence canonique province → district → zone. |
| GET | /api/public/v1/locations/search | Toute clé valide | Recherche à saisie assistée dans la hiérarchie de localisation canonique. |
| GET | /api/public/v1/reference/property-types | Toute clé valide | L'ensemble exact des valeurs de type de bien acceptées par une annonce. |
| GET | /api/public/v1/reference/amenities | Toute clé valide | Les 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/locales | Toute clé valide | L'ensemble exact des codes de langue acceptés par les traductions d'une annonce. |
| GET | /api/public/v1/reference/currencies | Toute clé valide | La devise dans laquelle le prix d'une annonce est libellé. ElefyMove n'opère qu'en Thaïlande, donc c'est toujours le THB. |
| Méthode | Endpoint | Portée | Rôle |
|---|---|---|---|
| GET | /api/public/v1/listings/{id}/availability | availability:read | Consultez le calendrier unifié d'une annonce sur une période : disponible, retenu, réservé ou bloqué. |
| GET | /api/public/v1/availability | availability:read | Consultez 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}/blocks | availability:read | Consultez vos propres blocages de canal externe actifs pour une annonce, éventuellement restreints à une plage de dates. |
/api/public/v1/listings/{id}/blocks | availability:write | Créez ou mettez à jour un blocage de canal externe, identifié par votre propre référence. | |
/api/public/v1/listings/{id}/blocks/batch | availability:write | Cré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/batch | availability:write | Supprimez 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:write | Supprimez un blocage de canal externe que vous avez créé. |
| Méthode | Endpoint | Portée | Rôle |
|---|---|---|---|
| GET | /api/public/v1/holds | holds:write | Listez 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:write | Consultez une de vos retenues par identifiant. |
/api/public/v1/listings/{id}/holds | holds:write | Retenez une période pendant que le voyageur finalise son paiement chez vous. La requête perdante reçoit un 409 avec SLOT_TAKEN. | |
/api/public/v1/holds/{id}/extend | holds:write | Repoussez 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:write | Libérez une de vos retenues avant son expiration. |
| Méthode | Endpoint | Portée | Rôle |
|---|---|---|---|
| GET | /api/public/v1/listings/{id}/calendar.ics | URL 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-sources | availability:write | Enregistrez ou remplacez le flux iCal entrant qu'ElefyMove interroge pour une de vos annonces. |
| GET | /api/public/v1/listings/{id}/ical-sources | availability:read | Consultez le flux enregistré d'une annonce, avec son statut de synchronisation et la dernière erreur. |
| DELETE | /api/public/v1/listings/{id}/ical-sources | availability:write | Arrêtez l'interrogation et supprimez le flux enregistré d'une annonce. |
| Méthode | Endpoint | Portée | Rôle |
|---|---|---|---|
| PUT | /api/public/v1/webhooks | webhooks:manage | Définissez l'URL de votre endpoint webhook et, éventuellement, remplacez votre liste d'événements souscrits. |
| GET | /api/public/v1/webhooks | webhooks:manage | Consultez votre configuration webhook actuelle. Ne renvoie jamais le secret de signature. |
| DELETE | /api/public/v1/webhooks | webhooks:manage | Effacez l'URL de votre webhook et arrêtez les envois. |
/api/public/v1/webhooks/test | webhooks:manage | Envoyez un événement de test signé à votre endpoint configuré, quel que soit votre abonnement. | |
| GET | /api/public/v1/webhook-deliveries | webhooks:manage | Listez vos propres tentatives d'envoi de webhook, avec statut, horodatage et historique des tentatives. |
/api/public/v1/webhook-deliveries/{id}/redeliver | webhooks:manage | Relancez manuellement un envoi échoué ou passé en dead-letter. |
| Méthode | Endpoint | Portée | Rôle |
|---|---|---|---|
/api/public/v1/community/posts | community:write | Soumettez 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/posts | community:read | Listez vos propres publications communautaires et leur statut de modération. |
| GET | /api/public/v1/community/posts/{externalId} | community:read | Consultez une de vos publications communautaires via l'identifiant externe que vous lui avez attribué. |
| PATCH | /api/public/v1/community/posts/{externalId} | community:write | Mettez à jour une de vos publications communautaires ; les champs omis restent inchangés. |
| DELETE | /api/public/v1/community/posts/{externalId} | community:write | Dépubliez une de vos publications communautaires. |
| Méthode | Endpoint | Portée | Rôle |
|---|---|---|---|
| GET | /api/public/v1/marketplace/bookings | marketplace:read | Listez 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:read | Consultez une de vos réservations de la marketplace par identifiant. |
/api/public/v1/marketplace/bookings/{id}/decline | marketplace:write | Refusez 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. |
| Méthode | Endpoint | Portée | Rôle |
|---|---|---|---|
| GET | /api/public/v1/ping | Toute clé valide | Vérifiez que votre clé fonctionne et récupérez le nom du client et les portées associées. |
| GET | /api/public/v1/me | Toute clé valide | Consultez l'identité de votre propre client API — nom, environnement et portées associées à votre clé. |
API ouverte v1 — actuellement en phase d'intégration des partenaires.