elefymove

ElefyMove와 함께 구축하세요

플랫폼을 ElefyMove에 연결하여 매물을 등록하고, 예약 가능 일정을 실시간으로 동기화하며, 동일 날짜가 이중으로 예약되는 일이 없도록 하세요.

API로 할 수 있는 것

매물 등록, 일정 동기화, 실시간 연동을 하나의 연동 지점에서.

Listings API

다국어 매물 정보를 ElefyMove로 전송할 수 있습니다. 지원하는 9개 언어 중 원하는 언어로 콘텐츠를 제출할 수 있으며, 모든 매물은 게시 전 검수를 거칩니다.

예약 가능 일정 동기화

ElefyMove의 마스터 캘린더는 예약 가능한 모든 항목에 대한 단 하나의 신뢰할 수 있는 데이터 소스입니다. 모든 날짜 범위에는 예약 가능, 임시 홀드, 예약 완료, 차단됨 중 하나의 상태가 표시되며, 청소·인수인계를 위한 버퍼 시간도 중앙에서 일괄 적용되어 어떤 채널을 통하더라도 이중 예약이 발생하지 않습니다.

임시 홀드

게스트가 귀사 측에서 결제를 완료하는 동안 최대 10분간 임시 홀드를 설정할 수 있습니다. 충돌은 선착순으로 해결되며, 밀린 요청에는 프로그램이 처리할 수 있는 409 응답이 반환됩니다.

웹훅

HMAC-SHA256으로 서명된 이벤트—매물 승인, 예약 가능 일정 변경, 홀드 생명주기, 예약 상태—를 거의 실시간으로 구독할 수 있습니다. 페이로드에는 날짜와 참조 정보만 포함되며 게스트 개인정보는 절대 포함되지 않습니다.

iCal 동기화

모든 매물은 서명된 iCal 피드를 내보낼 수 있으며, ElefyMove가 귀사의 피드 URL을 폴링할 수도 있습니다. 별도의 연동 코드를 작성하지 않아도 외부 차단 정보가 양쪽에 동일하게 반영됩니다.

파트너가 할 수 있는 것 — 할 수 없는 것

제1원칙: 모든 작업은 오직 자신의 데이터로만 제한됩니다. 어느 방향으로도 파트너 간 접근은 존재하지 않습니다.

할 수 있는 것

  • 지원되는 9개 언어 중 어느 것으로든 자사 매물을 등록, 수정, 등록 취소할 수 있습니다
  • 자사 매물과 그 심사 상태를 조회할 수 있습니다
  • 자사 매물의 예약 가능 일정을 조회하고, 참조 정보가 포함된 외부 채널 차단을 기록할 수 있습니다
  • 체크아웃 진행 중 최대 10분간 임시 홀드를 생성하고 해제할 수 있습니다
  • webhook을 등록하고 서명된 이벤트를 수신할 수 있습니다(날짜와 참조 정보만 포함)
  • 매물 캘린더(iCal)를 내보내고, 자사의 iCal 피드를 등록할 수 있습니다
  • 공개된 지역 계층 정보를 조회할 수 있습니다
  • 커뮤니티 게시물을 게시할 수 있습니다(ElefyMove의 심사를 거친 후 노출됩니다)
  • 자사의 마켓플레이스 예약을 조회하고, 아직 결제 대기 중인 예약을 거절할 수 있습니다

할 수 없는 것

  • 본 API를 통해 결제, 환불, 보증금을 이동시키는 것
  • ElefyMove 예약이나 계약을 생성하는 것 — 외부 예약은 캘린더 차단 형태로만 등록됩니다
  • 게스트 또는 세입자의 개인정보를 송수신하는 것
  • 다른 파트너의 매물, 홀드, 차단, 설정에 접근하거나 수정하는 것
  • ElefyMove 사용자에게 메시지를 보내거나 연락, 권유하는 것
  • 소유하지 않은 매물을 조회하거나 재게시하는 것
  • 요청 제한을 초과하거나, 키를 공유하거나, 계정 생성을 자동화하는 것

액세스 신청

개발자 계정을 만들고 이메일을 인증하면 대시보드에서 직접 테스트 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직접 지정한 외부 ID로 본인 매물 하나를 조회합니다.
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개 매물의 예약 가능 여부를 조회합니다. 소유하지 않았거나 존재하지 않는 ID는 요청 전체를 실패시키지 않고 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:writeID로 본인 홀드 하나를 조회합니다.
POST/api/public/v1/listings/{id}/holdsholds:write고객이 파트너 사이트에서 결제하는 동안 기간을 임시로 잡아 둡니다. 경합에서 밀린 요청에는 SLOT_TAKEN이 담긴 409가 반환됩니다.
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:writeElefyMove가 본인 매물을 위해 가져올 인바운드 iCal 피드를 등록하거나 교체합니다.
GET/api/public/v1/listings/{id}/ical-sourcesavailability:read매물에 등록된 피드를 가져오기 상태 및 최근 오류와 함께 확인합니다.
DELETE/api/public/v1/listings/{id}/ical-sourcesavailability:write가져오기를 중단하고 매물에 등록된 피드를 삭제합니다.

웹훅

메서드엔드포인트스코프설명
PUT/api/public/v1/webhookswebhooks:managewebhook 엔드포인트 URL을 설정하고, 선택적으로 이벤트 구독 목록을 교체합니다.
GET/api/public/v1/webhookswebhooks:manage현재 webhook 설정을 조회합니다. 서명 시크릿은 절대 반환되지 않습니다.
DELETE/api/public/v1/webhookswebhooks:managewebhook URL을 지우고 전송을 중단합니다.
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직접 지정한 외부 ID로 본인 커뮤니티 게시물 하나를 조회합니다.
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:readID로 본인 마켓플레이스 예약 하나를 조회합니다.
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 팀이 언제든지 폐기할 수 있습니다.

Open API v1 — 현재 연동 파트너를 순차적으로 온보딩하고 있습니다.