เชื่อมต่อแพลตฟอร์มของคุณเข้ากับ ElefyMove เพื่อลงประกาศที่พัก ซิงค์ห้องว่างแบบเรียลไทม์ และไม่มีวันจองซ้ำวันเดียวกันสองครั้ง
จุดเชื่อมต่อเดียวสำหรับประกาศที่พัก ห้องว่าง และการซิงค์แบบเรียลไทม์
ส่งประกาศที่พักหลายภาษาเข้าสู่ ElefyMove ได้โดยตรง ส่งเนื้อหาได้ในภาษาใดก็ได้จาก 9 ภาษาที่เรารองรับ ทุกประกาศจะถูกตรวจสอบก่อนเผยแพร่จริง
ปฏิทินหลักของ ElefyMove คือแหล่งข้อมูลที่แท้จริงเพียงหนึ่งเดียวสำหรับทุกสิ่งที่จองได้บนแพลตฟอร์ม ทุกช่วงวันที่มีสถานะกำกับ ได้แก่ ว่าง กันไว้ชั่วคราว จองแล้ว หรือถูกบล็อก และช่วงเวลาเว้นสำหรับทำความสะอาดถูกบังคับใช้จากส่วนกลาง เพื่อไม่ให้ช่องทางใดจองซ้ำกันได้
กันห้องไว้ชั่วคราวได้นานสูงสุด 10 นาที ระหว่างที่แขกกำลังชำระเงินฝั่งของคุณ หากมีคำขอชนกัน ระบบจะให้สิทธิ์ตามลำดับคำขอที่มาถึงก่อน โดยคำขอที่มาทีหลังจะได้รับสถานะ 409 ที่ระบบอ่านค่าต่อได้
สมัครรับอีเวนต์ที่เซ็นด้วย HMAC-SHA256 สำหรับการอนุมัติประกาศ การเปลี่ยนแปลงห้องว่าง วงจรของการกันห้อง และสถานะการจอง ส่งถึงคุณใกล้เคียงเรียลไทม์ เพย์โหลดมีเฉพาะวันที่และหมายเลขอ้างอิงเท่านั้น ไม่มีข้อมูลส่วนบุคคลของแขก
ทุกประกาศส่งออกฟีด iCal ที่เซ็นรับรองได้ และ ElefyMove สามารถดึงข้อมูลจากฟีดของคุณกลับมาได้เช่นกัน ทำให้การบล็อกจากภายนอกสะท้อนตรงกันทั้งสองฝั่งโดยไม่ต้องเขียนโค้ดเชื่อมต่อเพิ่ม
กฎข้อแรก: ทุกการทำงานผ่าน API จำกัดอยู่เฉพาะข้อมูลของคุณเองเท่านั้น ไม่มีการเข้าถึงข้อมูลข้ามพาร์ตเนอร์ไม่ว่าทิศทางใด
สร้างบัญชีนักพัฒนา ยืนยันอีเมล แล้วออกคีย์ API แบบทดสอบของคุณเองได้จากแดชบอร์ดทันที ส่วนคีย์ใช้งานจริง ผู้ให้เช่าจะเป็นผู้สร้างในระบบหลังบ้านของ ElefyMove
สร้าง API key ของคุณการสร้างบัญชีถือว่าคุณยอมรับข้อกำหนดการใช้งาน 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" }# Same request, the dates were just taken by another channel
# Response — 409 Conflict
{
"code": "SLOT_TAKEN",
"conflictingState": "HELD",
"wonBy": "external"
}สคีมาของคำขอและการตอบกลับ รูปแบบข้อผิดพลาด และตัวอย่างทั้งหมด อยู่ในเอกสารอ้างอิง OpenAPI แบบโต้ตอบ — ทดลองเรียกทุกเอนด์พอยต์ได้จริงด้วยคีย์ของคุณเอง
เปิดเอกสาร APIอ่านเอกสารประกอบฉบับเต็มครบทุกเอนด์พอยต์ของ Open API v1 ทุกคำขอต้องแนบคีย์ของคุณในเฮดเดอร์ X-Api-Key และทุกเส้นทางเข้าถึงได้เฉพาะข้อมูลของคุณเองเท่านั้น
URL หลัก https://elefymove.com
| เมธอด | เอนด์พอยต์ | สโคป | ใช้ทำอะไร |
|---|---|---|---|
/api/public/v1/listings | listings:write | ส่งประกาศใหม่เข้าสู่การตรวจสอบ ใส่เนื้อหาได้ในภาษาใดก็ได้จาก 9 ภาษาที่รองรับ | |
| GET | /api/public/v1/listings | listings: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 | นำประกาศของคุณออกจากการแสดงผล |
/api/public/v1/listings/{externalId}/photos | listings: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}/availability | availability:read | อ่านปฏิทินรวมของประกาศตามช่วงวันที่ — ว่าง จองชั่วคราว จองแล้ว หรือถูกบล็อก |
| GET | /api/public/v1/availability | availability:read | อ่านห้องว่างของประกาศได้สูงสุด 50 รายการในคำขอเดียว รหัสที่คุณไม่ได้เป็นเจ้าของหรือไม่มีอยู่จริงจะถูกใส่ไว้ใน notFound แทนที่จะทำให้คำขอทั้งหมดล้มเหลว |
| GET | /api/public/v1/listings/{id}/blocks | availability:read | อ่านการบล็อกจากช่องทางภายนอกที่ยังใช้งานอยู่ของคุณเองสำหรับประกาศหนึ่งรายการ เลือกจำกัดช่วงวันที่ได้ |
/api/public/v1/listings/{id}/blocks | availability:write | สร้างหรือแก้ไขการบล็อกวันที่จากช่องทางภายนอก โดยระบุรหัสอ้างอิงของคุณเอง | |
/api/public/v1/listings/{id}/blocks/batch | availability:write | สร้างหรือแก้ไขการบล็อกจากช่องทางภายนอกได้สูงสุด 100 รายการในประกาศเดียวด้วยคำขอเดียว พร้อมผลลัพธ์สำเร็จ/ล้มเหลวแยกรายการ | |
| DELETE | /api/public/v1/listings/{id}/blocks/batch | availability:write | ลบการบล็อกจากช่องทางภายนอกได้สูงสุด 100 รายการในประกาศเดียวด้วยคำขอเดียว พร้อมผลลัพธ์สำเร็จ/ล้มเหลวแยกรายการ |
| DELETE | /api/public/v1/listings/{id}/blocks/{externalRef} | availability:write | ลบการบล็อกวันที่จากช่องทางภายนอกที่คุณเคยสร้างไว้ |
| เมธอด | เอนด์พอยต์ | สโคป | ใช้ทำอะไร |
|---|---|---|---|
| GET | /api/public/v1/holds | holds:write | แสดงรายการการจองชั่วคราวของคุณ เรียงจากล่าสุด ค่าเริ่มต้นแสดงเฉพาะที่ยัง active ขยายผลลัพธ์ได้ด้วย ?status=all |
| GET | /api/public/v1/holds/{id} | holds:write | อ่านการจองชั่วคราวหนึ่งรายการของคุณด้วยรหัส |
/api/public/v1/listings/{id}/holds | holds:write | จองวันที่ไว้ชั่วคราวระหว่างที่ผู้เข้าพักชำระเงินฝั่งคุณ คำขอที่ช้ากว่าจะได้รับ 409 พร้อมรหัส SLOT_TAKEN | |
/api/public/v1/holds/{id}/extend | holds:write | ขยายเวลาหมดอายุของการจองชั่วคราวออกไปจากตอนนี้ อายุรวมของการจองชั่วคราวถูกจำกัดไว้ที่ 30 นาทีนับจากสร้าง — คำขอขยายที่เกินขีดจำกัดนี้จะถูกปฏิเสธด้วยรหัส 409 | |
| DELETE | /api/public/v1/holds/{id} | holds:write | ปล่อยการจองชั่วคราวของคุณก่อนหมดเวลา |
| เมธอด | เอนด์พอยต์ | สโคป | ใช้ทำอะไร |
|---|---|---|---|
| GET | /api/public/v1/listings/{id}/calendar.ics | URL ที่ลงลายเซ็น ไม่ต้องใช้คีย์ | ดาวน์โหลดปฏิทินของประกาศเป็นฟีด iCal โทเค็นที่ลงลายเซ็นใน URL ทำหน้าที่ยืนยันตัวตน แอปปฏิทินจึงสมัครรับได้โดยตรง |
| PUT | /api/public/v1/listings/{id}/ical-sources | availability:write | ลงทะเบียนหรือเปลี่ยนฟีด iCal ขาเข้าที่ ElefyMove จะดึงข้อมูลให้ประกาศของคุณ |
| GET | /api/public/v1/listings/{id}/ical-sources | availability:read | อ่านฟีดที่ลงทะเบียนไว้ของประกาศ พร้อมสถานะการดึงข้อมูลและข้อผิดพลาดล่าสุด |
| DELETE | /api/public/v1/listings/{id}/ical-sources | availability:write | หยุดดึงข้อมูลและลบฟีดที่ลงทะเบียนไว้ของประกาศ |
| เมธอด | เอนด์พอยต์ | สโคป | ใช้ทำอะไร |
|---|---|---|---|
| PUT | /api/public/v1/webhooks | webhooks:manage | ตั้งค่า URL ปลายทาง webhook ของคุณ และเลือกแทนที่รายการอีเวนต์ที่สมัครรับได้ |
| GET | /api/public/v1/webhooks | webhooks:manage | อ่านการตั้งค่า webhook ปัจจุบันของคุณ ไม่มีการส่งคืน signing secret |
| DELETE | /api/public/v1/webhooks | webhooks:manage | ล้างค่า URL ของ webhook และหยุดการส่งข้อมูล |
/api/public/v1/webhooks/test | webhooks:manage | ส่งอีเวนต์ทดสอบที่เซ็นรับรองไปยัง endpoint ที่ตั้งค่าไว้ ไม่ว่าจะสมัครรับอีเวนต์ใดอยู่ | |
| GET | /api/public/v1/webhook-deliveries | webhooks:manage | แสดงรายการความพยายามส่ง webhook ของคุณเอง พร้อมสถานะ เวลา และประวัติการลองใหม่ |
/api/public/v1/webhook-deliveries/{id}/redeliver | webhooks:manage | ลองส่งการส่งข้อมูลที่ล้มเหลวหรือถูกยกเลิกซ้ำอีกครั้งด้วยตนเอง |
| เมธอด | เอนด์พอยต์ | สโคป | ใช้ทำอะไร |
|---|---|---|---|
/api/public/v1/community/posts | community:write | ส่งโพสต์ชุมชน ทุกโพสต์ที่พาร์ตเนอร์สร้างจะเข้าสู่การตรวจสอบก่อน ไม่เผยแพร่ทันที | |
| GET | /api/public/v1/community/posts | community: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/bookings | marketplace:read | แสดงรายการการจองตลาดกลางของคุณเอง แบ่งหน้าและกรองได้ ผลลัพธ์มีเฉพาะวันที่และหมายเลขอ้างอิงเท่านั้น |
| GET | /api/public/v1/marketplace/bookings/{id} | marketplace:read | อ่านการจองตลาดกลางหนึ่งรายการของคุณด้วยรหัส |
/api/public/v1/marketplace/bookings/{id}/decline | marketplace:write | ปฏิเสธการจองที่ยังรอการชำระเงินอยู่ ไม่มีเส้นทางยืนยันการจอง — การจองจะได้รับการยืนยันเมื่อชำระเงินสำเร็จเท่านั้น ไม่ใช่จากการอนุมัติของผู้ให้บริการ |
| เมธอด | เอนด์พอยต์ | สโคป | ใช้ทำอะไร |
|---|---|---|---|
| GET | /api/public/v1/ping | คีย์ที่ใช้งานได้ทุกคีย์ | ตรวจสอบว่าคีย์ของคุณใช้งานได้ พร้อมดูชื่อไคลเอ็นต์และสโคปที่ผูกไว้ |
| GET | /api/public/v1/me | คีย์ที่ใช้งานได้ทุกคีย์ | อ่านตัวตนของไคลเอ็นต์ API ของคุณเอง — ชื่อ สภาพแวดล้อม และสโคปที่ผูกกับคีย์ของคุณ |
Open API v1 — ขณะนี้อยู่ระหว่างรับพาร์ตเนอร์เข้าร่วมทดสอบระบบ