อ้างอิง API

รวม enuchat เข้ากับระบบของคุณโดยใช้ Tenant API จัดการการสนทนา ส่งข้อความ และเข้าถึงข้อมูลการเรียกเก็บเงินในเชิงโปรแกรม

การรับรองความถูกต้อง

คำขอ API ทั้งหมดถูกรับรองความถูกต้องโดยใช้คีย์ API ที่ส่งในส่วนหัว X-Api-Key

การรับคีย์ API ของคุณ

  1. ไปที่ การตั้งค่า → คีย์ API ในแดชบอร์ดของคุณ
  2. คลิก สร้างคีย์ API และตั้งชื่อ
  3. คัดลอกคีย์ทันที — แสดงเพียงครั้งเดียว
  4. เก็บไว้อย่างปลอดภัย (ตัวแปรสภาพแวดล้อม ตัวจัดการความลับ)

การส่งคำขอ

รวมคีย์ในทุกคำขอ:

curl -H "X-Api-Key: tak_your_key_here" \
     https://api.enuchat.com/api/v1/tenant-api/widgets

การตอบกลับทั้งหมดเป็น JSON การตอบกลับที่สำเร็จมีฟิลด์ data ข้อผิดพลาดมีฟิลด์ error พร้อม code และ message

ความปลอดภัย: คีย์ API ถูกแฮช (SHA-256) ในฐานข้อมูลของเรา เราไม่เคยเก็บคีย์ดิบ ปฏิบัติต่อคีย์ของคุณเหมือนรหัสผ่าน — อย่า commit ลงในโค้ดหรือแบ่งปันสาธารณะ

URL หลัก

https://api.enuchat.com/api/v1/tenant-api

เอนด์พอยต์ทั้งหมดด้านล่างสัมพันธ์กับ URL หลักนี้

เอนด์พอยต์

GET /widgets

แสดงรายการวิดเจ็ตทั้งหมดสำหรับบัญชีของคุณ

การตอบกลับ

{'{'}
  "data": [
{'{'}
      "id": "019d19c6-7e0b-...",
      "name": "Main Website Chat",
      "isActive": true,
      "aiEnabled": true,
      "translationEnabled": true,
      "primaryColor": "#2563eb",
      "position": "bottom-right"
    }
  ]
}

GET /conversations

แสดงรายการการสนทนา เรียงตามข้อความล่าสุด

พารามิเตอร์การค้นหา

พารามิเตอร์ประเภทคำอธิบาย
statusstringกรองตามสถานะ: open, pending, closed
widgetIdstringกรองตาม UUID ของวิดเจ็ต
limitintegerผลลัพธ์สูงสุด (ค่าเริ่มต้น 20, สูงสุด 100)
offsetintegerข้าม N ผลลัพธ์

ตัวอย่าง

curl -H "X-Api-Key: tak_..." \
     "https://api.enuchat.com/api/v1/tenant-api/conversations?status=open&limit=10"

การตอบกลับ

{'{'}
  "data": [
{'{'}
      "id": "019d6724-000e-...",
      "widgetId": "019d19c6-7e0b-...",
      "visitorId": "v-abc123",
      "visitorName": "John",
      "visitorEmail": "john{'@'}example.com",
      "visitorLanguage": "en",
      "status": "open",
      "assignedTo": null,
      "lastMessageAt": "2026-04-11T14:30:00+00:00",
      "startedAt": "2026-04-11T14:25:00+00:00"
    }
  ]
}

GET /conversations/{'{'}id}

รับการสนทนาพร้อมข้อความทั้งหมด

พารามิเตอร์การค้นหา

พารามิเตอร์ประเภทคำอธิบาย
limitintegerข้อความสูงสุด (ค่าเริ่มต้น 50, สูงสุด 200)

การตอบกลับ

{'{'}
  "data": {'{'}
    "id": "019d6724-000e-...",
    "visitorLanguage": "en",
    "status": "open",
    "messages": [
{'{'}
        "id": "019d6724-1234-...",
        "role": "visitor",
        "content": "Hello, how much does it cost?",
        "contentLanguage": "en",
        "translatedContent": "Cześć, ile to kosztuje?",
        "translatedLanguage": "pl",
        "isAutoReply": false,
        "createdAt": "2026-04-11T14:25:30+00:00"
      },
{'{'}
        "id": "019d6724-5678-...",
        "role": "ai",
        "content": "Our plans start at €19/month...",
        "isAutoReply": true,
        "createdAt": "2026-04-11T14:25:32+00:00"
      }
    ]
  }
}

POST /conversations/{'{'}id}/messages

ส่งข้อความไปยังการสนทนา ข้อความจะถูกส่งไปยังผู้เยี่ยมชมแบบเรียลไทม์ผ่านวิดเจ็ตแชท

เนื้อหาคำขอ

{'{'}
  "content": "Thanks for reaching out! We'll process your request.",
  "role": "system"
}
ฟิลด์ประเภทคำอธิบาย
contentstringจำเป็น ข้อความ
rolestringsystem (ค่าเริ่มต้น) หรือ operator

การตอบกลับ (201 Created)

{'{'}
  "data": {'{'}
    "id": "019d6725-abcd-...",
    "role": "system",
    "content": "Thanks for reaching out!",
    "createdAt": "2026-04-11T14:35:00+00:00"
  }
}

PATCH /conversations/{'{'}id}

อัปเดตสถานะหรือการมอบหมายของการสนทนา

เนื้อหาคำขอ

{'{'}
  "status": "closed"
}
ฟิลด์ประเภทคำอธิบาย
statusstringopen, pending, หรือ closed
assignedTostring|nullUUID ของผู้ดำเนินการที่จะมอบหมาย หรือ null เพื่อยกเลิกการมอบหมาย

GET /billing/balance

รับแผนปัจจุบันและยอดเครดิตของคุณ

การตอบกลับ

{'{'}
  "data": {'{'}
    "plan": "pro",
    "creditBalance": 4500000,
    "totalCreditsAdded": 10000000
  }
}

การจัดการข้อผิดพลาด

ข้อผิดพลาดส่งคืนรหัสสถานะที่ไม่ใช่ 2xx พร้อมเนื้อหา JSON:

{'{'}
  "error": {'{'}
    "code": "NOT_FOUND",
    "message": "Conversation not found."
  }
}
สถานะ HTTPความหมาย
401คีย์ API ไม่ถูกต้อง หมดอายุ หรือไม่มี
400เนื้อหาคำขอหรือพารามิเตอร์ไม่ถูกต้อง
404ไม่พบทรัพยากร (หรือเป็นของ tenant อื่น)
500ข้อผิดพลาดเซิร์ฟเวอร์

กรณีการใช้งานทั่วไป

การรวม CRM

สำรวจการสนทนาใหม่และซิงค์ข้อมูลผู้เยี่ยมชม (ชื่อ อีเมล ภาษา) ไปยัง CRM ของคุณ ใช้ ID การสนทนาเป็นการอ้างอิงภายนอก

การติดตามอัตโนมัติ

หลังจากปิดการสนทนา ส่งข้อความติดตามผ่าน API: "ขอบคุณที่แชท! มีอะไรอื่นที่เราสามารถช่วยได้ไหม?"

ทางเลือก Webhook

จนกว่า outgoing webhooks จะพร้อมใช้งาน ให้สำรวจเอนด์พอยต์การสนทนาเป็นระยะ ๆ เพื่อตรวจหาข้อความใหม่หรือการเปลี่ยนแปลงสถานะ

การดำเนินการจำนวนมาก

ปิดการสนทนาทั้งหมดที่เก่ากว่า 7 วัน มอบหมายการสนทนาให้ผู้ดำเนินการตามตรรกะภายนอก หรือส่งออกประวัติการสนทนาสำหรับการวิเคราะห์

ขีดจำกัดอัตรา

API อนุญาตให้สูงสุด 60 คำขอต่อนาที ต่อคีย์ API หากคุณเกินขีดจำกัดนี้ คุณจะได้รับการตอบกลับ 429 Too Many Requests รอและลองใหม่ด้วย backoff แบบเอ็กซ์โพเนนเชียล

พร้อมที่จะรวม?

สร้างบัญชีฟรีของคุณและสร้างคีย์ API ในไม่กี่นาที

เริ่มต้นฟรี