อ้างอิง API
รวม enuchat เข้ากับระบบของคุณโดยใช้ Tenant API จัดการการสนทนา ส่งข้อความ และเข้าถึงข้อมูลการเรียกเก็บเงินในเชิงโปรแกรม
การรับรองความถูกต้อง
คำขอ API ทั้งหมดถูกรับรองความถูกต้องโดยใช้คีย์ API ที่ส่งในส่วนหัว X-Api-Key
การรับคีย์ API ของคุณ
- ไปที่ การตั้งค่า → คีย์ API ในแดชบอร์ดของคุณ
- คลิก สร้างคีย์ API และตั้งชื่อ
- คัดลอกคีย์ทันที — แสดงเพียงครั้งเดียว
- เก็บไว้อย่างปลอดภัย (ตัวแปรสภาพแวดล้อม ตัวจัดการความลับ)
การส่งคำขอ
รวมคีย์ในทุกคำขอ:
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
แสดงรายการการสนทนา เรียงตามข้อความล่าสุด
พารามิเตอร์การค้นหา
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
status | string | กรองตามสถานะ: open, pending, closed |
widgetId | string | กรองตาม UUID ของวิดเจ็ต |
limit | integer | ผลลัพธ์สูงสุด (ค่าเริ่มต้น 20, สูงสุด 100) |
offset | integer | ข้าม 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}
รับการสนทนาพร้อมข้อความทั้งหมด
พารามิเตอร์การค้นหา
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
limit | integer | ข้อความสูงสุด (ค่าเริ่มต้น 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"
}| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
content | string | จำเป็น ข้อความ |
role | string | system (ค่าเริ่มต้น) หรือ 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"
}| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
status | string | open, pending, หรือ closed |
assignedTo | string|null | UUID ของผู้ดำเนินการที่จะมอบหมาย หรือ 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 แบบเอ็กซ์โพเนนเชียล