elefymove

Создавайте вместе с ElefyMove

Подключите свою платформу к ElefyMove: публикуйте объекты, синхронизируйте доступность в реальном времени и больше никогда не бронируйте одну и ту же дату дважды.

Что умеет API

Единая точка интеграции для объявлений, доступности и синхронизации в реальном времени.

API объявлений

Передавайте многоязычные объявления об объектах в ElefyMove. Контент можно отправлять на любом сочетании из 9 поддерживаемых языков — каждое объявление проходит модерацию перед публикацией.

Синхронизация доступности

Главный календарь ElefyMove — единственный достоверный источник данных обо всём, что можно забронировать на платформе. Каждый временной диапазон имеет статус — свободно, временно удержано, забронировано или заблокировано, — а буферное время на уборку применяется централизованно, поэтому двойное бронирование через разные каналы исключено.

Временное удержание

Устанавливайте кратковременное удержание — до 10 минут, — пока гость завершает оплату на вашей стороне. Конфликты разрешаются по принципу «кто первый — того и слот»: проигравший запрос получает машиночитаемый ответ 409.

Вебхуки

Подписывайтесь на события, подписанные по алгоритму HMAC-SHA256, — одобрение объявлений, изменение доступности, жизненный цикл удержаний и статус бронирований, — доставляемые почти в реальном времени. В теле события передаются только даты и идентификаторы, никогда — персональные данные гостя.

Синхронизация iCal

Каждое объявление экспортирует подписанную ссылку iCal, а ElefyMove, в свою очередь, может опрашивать вашу собственную ленту — внешние блокировки остаются согласованными на обеих сторонах без написания дополнительного кода интеграции.

Что партнёры могут — и не могут — делать

Правило номер один: любая операция ограничена только вашими собственными данными. Доступ между партнёрами отсутствует в любом направлении.

Вы можете

  • Создавать, обновлять и снимать с публикации собственные объявления о недвижимости на любом из 9 поддерживаемых языков
  • Просматривать собственные объявления и статус их модерации
  • Просматривать доступность собственных объявлений и записывать блокировки из внешних каналов с указанием идентификатора
  • Создавать и снимать временные удержания, до 10 минут, во время оформления заказа
  • Регистрировать webhook и получать подписанные события — только даты и идентификаторы
  • Экспортировать календари объявлений (iCal) и регистрировать собственные iCal-фиды
  • Просматривать публичную иерархию местоположений
  • Публиковать публикации сообщества — при условии прохождения модерации ElefyMove перед показом
  • Просматривать собственные бронирования маркетплейса и отклонять те, что ещё ожидают оплаты

Вы не можете

  • Проводить какие-либо платежи, возвраты или залоги через этот API
  • Создавать бронирования или договоры ElefyMove — внешнее бронирование фиксируется только как блокировка в календаре
  • Отправлять или получать персональные данные гостей или арендаторов
  • Получать доступ к объявлениям, удержаниям, блокировкам или настройкам другого партнёра либо изменять их
  • Отправлять сообщения, связываться с пользователями ElefyMove или привлекать их
  • Просматривать или повторно публиковать объявления, которые вам не принадлежат
  • Превышать лимиты запросов, передавать ключи третьим лицам или автоматизировать создание аккаунтов

Как получить доступ

Создайте аккаунт разработчика, подтвердите e-mail и выпускайте собственные тестовые API-ключи прямо из панели управления. Рабочие ключи создаёт арендодатель в бэк-офисе ElefyMove.

Создайте свои API-ключи

Создавая аккаунт, вы принимаете Условия использования API.

Доступные области действия

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

Лимит запросов по умолчанию: 120 запросов в минуту на ключ.

Быстрый старт

Каждый запрос аутентифицируется через заголовок X-Api-Key с вашим выданным ключом.

Проверить доступность объявления

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

Проигравший запрос получает машиночитаемый ответ 409

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

Полный справочник API

Все схемы запросов и ответов, форматы ошибок и примеры собраны в интерактивной документации OpenAPI — любой эндпоинт можно вызвать прямо там своим ключом.

Открыть документацию APIОткрыть полную документацию

Все эндпоинты сразу

Полный набор Open API v1. Каждый запрос передаёт ваш ключ в заголовке X-Api-Key, и любой маршрут работает только с вашими собственными данными.

Базовый URL https://elefymove.com

Объявления

МетодЭндпоинтОбласть доступаНазначение
POST/api/public/v1/listingslistings:writeОтправить новое объявление на модерацию — содержимое можно передать на любых из 9 поддерживаемых языков.
GET/api/public/v1/listingslistings:readПолучить все объявления этого ключа с текущим статусом модерации.
GET/api/public/v1/listings/{externalId}listings:readПрочитать одно из своих объявлений по заданному вами внешнему идентификатору.
PATCH/api/public/v1/listings/{externalId}listings:writeОбновить своё объявление; не переданные поля остаются без изменений.
DELETE/api/public/v1/listings/{externalId}listings:writeСнять своё объявление с публикации.
POST/api/public/v1/listings/{externalId}/photoslistings:writeДобавить одну фотографию к объявлению без полного обновления. Изображение получает и повторно размещает ElefyMove — ваш URL никогда не сохраняется напрямую.
DELETE/api/public/v1/listings/{externalId}/photos/{photoId}listings:writeУдалить фотографию из объявления. Запрос отклоняется с кодом 400, если это приведёт к тому, что у опубликованного объявления окажется меньше фотографий, чем требуется минимум.

Справочные данные

МетодЭндпоинтОбласть доступаНазначение
GET/api/public/v1/locationsЛюбой действующий ключПолучить каноническое дерево местоположений: провинция → район → зона.
GET/api/public/v1/locations/searchЛюбой действующий ключПоиск с автодополнением по канонической иерархии местоположений.
GET/api/public/v1/reference/property-typesЛюбой действующий ключТочный набор значений типа недвижимости, допустимых для объявления.
GET/api/public/v1/reference/amenitiesЛюбой действующий ключОграничения по длине и количеству, которым должны соответствовать удобства — удобства это свободный текст, а не фиксированный список.
GET/api/public/v1/reference/localesЛюбой действующий ключТочный набор кодов локалей, допустимых для переводов объявления.
GET/api/public/v1/reference/currenciesЛюбой действующий ключВалюта, в которой указана цена объявления. ElefyMove работает только в Таиланде, поэтому это всегда THB.

Доступность и блокировки

МетодЭндпоинтОбласть доступаНазначение
GET/api/public/v1/listings/{id}/availabilityavailability:readПолучить сводный календарь объявления за период — свободно, придержано, забронировано или заблокировано.
GET/api/public/v1/availabilityavailability:readПолучить доступность сразу для 50 объявлений за один вызов. Идентификатор, который вам не принадлежит или не существует, попадает в notFound, а не приводит к отказу всего запроса.
GET/api/public/v1/listings/{id}/blocksavailability:readПолучить собственные активные блокировки внешнего канала для объявления, при необходимости с ограничением по датам.
POST/api/public/v1/listings/{id}/blocksavailability:writeСоздать или обновить блокировку внешнего канала с вашим собственным идентификатором.
POST/api/public/v1/listings/{id}/blocks/batchavailability:writeСоздать или обновить до 100 блокировок внешнего канала для одного объявления за один вызов, с отдельным результатом успех/ошибка по каждой записи.
DELETE/api/public/v1/listings/{id}/blocks/batchavailability:writeУдалить до 100 блокировок внешнего канала для одного объявления за один вызов, с отдельным результатом успех/ошибка по каждой записи.
DELETE/api/public/v1/listings/{id}/blocks/{externalRef}availability:writeУдалить ранее созданную блокировку внешнего канала.

Временные брони

МетодЭндпоинтОбласть доступаНазначение
GET/api/public/v1/holdsholds:writeПолучить список собственных броней, сначала новые. По умолчанию показываются только активные; расширить можно с помощью ?status=all.
GET/api/public/v1/holds/{id}holds:writeПолучить одну из своих броней по идентификатору.
POST/api/public/v1/listings/{id}/holdsholds:writeПридержать даты, пока гость оформляет оплату на вашей стороне. Проигравший запрос получает 409 с кодом SLOT_TAKEN.
POST/api/public/v1/holds/{id}/extendholds:writeПродлить срок действия брони, отсчитывая от текущего момента. Общий срок жизни брони ограничен 30 минутами с момента создания — продление, которое превысило бы этот лимит, отклоняется с кодом 409.
DELETE/api/public/v1/holds/{id}holds:writeСнять свою временную бронь до истечения срока.

Синхронизация календаря (iCal)

МетодЭндпоинтОбласть доступаНазначение
GET/api/public/v1/listings/{id}/calendar.icsПодписанный URL, без ключаСкачать календарь объявления в виде ленты iCal. Подписанный токен в URL и есть авторизация, поэтому календарные приложения могут подписаться напрямую.
PUT/api/public/v1/listings/{id}/ical-sourcesavailability:writeЗарегистрировать или заменить входящую ленту iCal, которую ElefyMove опрашивает для вашего объявления.
GET/api/public/v1/listings/{id}/ical-sourcesavailability:readПосмотреть зарегистрированную ленту объявления вместе со статусом опроса и последней ошибкой.
DELETE/api/public/v1/listings/{id}/ical-sourcesavailability:writeПрекратить опрос и удалить зарегистрированную ленту объявления.

Вебхуки

МетодЭндпоинтОбласть доступаНазначение
PUT/api/public/v1/webhookswebhooks:manageЗадать URL эндпоинта webhook и при необходимости заменить список событий подписки.
GET/api/public/v1/webhookswebhooks:manageПолучить текущую конфигурацию webhook. Секрет подписи никогда не возвращается.
DELETE/api/public/v1/webhookswebhooks:manageОчистить URL webhook и остановить доставку.
POST/api/public/v1/webhooks/testwebhooks:manageОтправить подписанное тестовое событие на настроенный эндпоинт независимо от текущей подписки.
GET/api/public/v1/webhook-deliverieswebhooks:manageПолучить список собственных попыток доставки webhook со статусом, временными метками и историей повторов.
POST/api/public/v1/webhook-deliveries/{id}/redeliverwebhooks:manageВручную повторить неудачную или помеченную как недоставленную доставку.

Публикации сообщества

МетодЭндпоинтОбласть доступаНазначение
POST/api/public/v1/community/postscommunity:writeОтправить публикацию сообщества. Любая публикация, созданная партнёром, проходит модерацию и не публикуется мгновенно.
GET/api/public/v1/community/postscommunity:readПолучить список собственных публикаций сообщества с их статусом модерации.
GET/api/public/v1/community/posts/{externalId}community:readПрочитать одну из своих публикаций сообщества по заданному вами внешнему идентификатору.
PATCH/api/public/v1/community/posts/{externalId}community:writeОбновить свою публикацию сообщества; не переданные поля остаются без изменений.
DELETE/api/public/v1/community/posts/{externalId}community:writeСнять свою публикацию сообщества с публикации.

Бронирования маркетплейса

МетодЭндпоинтОбласть доступаНазначение
GET/api/public/v1/marketplace/bookingsmarketplace:readПолучить список собственных бронирований маркетплейса с постраничным выводом и фильтрами. В ответе только даты и идентификаторы.
GET/api/public/v1/marketplace/bookings/{id}marketplace:readПолучить одно из своих бронирований маркетплейса по идентификатору.
POST/api/public/v1/marketplace/bookings/{id}/declinemarketplace:writeОтклонить бронирование, которое всё ещё ожидает оплаты. Маршрута подтверждения не существует — бронирование подтверждается в момент списания оплаты, а не по одобрению поставщика.

Общее

МетодЭндпоинтОбласть доступаНазначение
GET/api/public/v1/pingЛюбой действующий ключПроверить работоспособность ключа и получить имя клиента и привязанные области доступа.
GET/api/public/v1/meЛюбой действующий ключПолучить данные собственного API-клиента — имя, окружение и области доступа, привязанные к ключу.

Данные и добросовестное использование

  • Персональные данные гостей никогда не передаются через API — внешние блокировки содержат только даты и идентификатор, в соответствии с тайским законом о защите персональных данных (PDPA).
  • Объявления, полученные через API, всегда ведут обратно на канонический адрес на elefymove.com.
  • У каждого ключа есть заданная область действия, и команда ElefyMove может отозвать его в любой момент.

Открытый API v1 — сейчас идёт подключение партнёров по интеграции.