elefymove

เอกสารสำหรับนักพัฒนา

คู่มือและข้อมูลอ้างอิงสำหรับ ElefyMove Open API

ขณะนี้คู่มือเหล่านี้มีเฉพาะภาษาอังกฤษ

Endpoints

เมธอดเอนด์พอยต์สโคปใช้ทำอะไร
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 หากทำให้ประกาศที่เผยแพร่อยู่มีรูปภาพต่ำกว่าจำนวนขั้นต่ำ

How listings work

  • You identify each listing by your own externalId — ElefyMove never asks you to store its internal ids.
  • Content is multilingual: submit any subset of the 9 supported locales, and ElefyMove serves the right language to each visitor.
  • New and updated listings pass moderation before going live. Subscribe to listing.approved / listing.rejected webhooks instead of polling for status.
  • PATCH is a partial update — any field you omit is left unchanged. DELETE unlists (it does not erase history).
  • Add or remove a single photo without a full PATCH round-trip. A photo you submit as a URL is fetched and re-hosted by ElefyMove — your URL is never stored or linked directly.
  • Removing a photo is refused with a MIN_PHOTOS_REQUIRED 400 if it would drop a currently-published listing below the minimum photo count.
  • Listings sourced through the API link back to their canonical page on elefymove.com.

Reference data

These routes need no scope — any valid key can read them. They expose the exact enum, locale, and currency values POST /listings validates against, and the canonical location hierarchy, so you never have to hard-code or guess them:

เมธอดเอนด์พอยต์สโคปใช้ทำอะไร
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) เสมอ

amenities has no fixed catalog — it is free text validated only by a count and a per-item length limit. GET /reference/amenities returns those limits with an empty values array and freeText: true; do not treat the empty array as "no amenities allowed".