เอกสารอ้างอิง API
สร้างการเชื่อมต่อแบบกำหนดเองด้วย Asyntai REST API
ต้องใช้แผนชำระเงิน: การเข้าถึง API มีให้ในแผน Starter, Standard และ Pro ดูราคา
ภาพรวม
Asyntai API ช่วยให้คุณเชื่อมต่อการสนับสนุนลูกค้าที่ขับเคลื่อนด้วย AI เข้ากับแอปพลิเคชันใดก็ได้ ส่งข้อความและรับการตอบสนองอัจฉริยะที่ฝึกจากเนื้อหาเว็บไซต์และฐานความรู้ของคุณ
การยืนยันตัวตน
คำขอ API ทั้งหมดต้องมีการยืนยันตัวตนโดยใช้คีย์ API ของคุณ คุณสามารถรับคีย์ API จากหน้าการตั้งค่า API
รวมคีย์ API ของคุณในคำขอโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:
- ส่วนหัว Authorization (แนะนำ):
Authorization: Bearer YOUR_API_KEY - ส่วนหัว X-API-Key:
X-API-Key: YOUR_API_KEY
เก็บคีย์ API ของคุณเป็นความลับ ใครก็ตามที่มีคีย์ของคุณสามารถเข้าถึงบัญชีของคุณผ่าน API ได้ อย่าเปิดเผยในโค้ดฝั่งไคลเอนต์
URL พื้นฐาน
https://asyntai.com/api/v1/
เอนด์พอยท์
POST /chat/
ส่งข้อความและรับการตอบสนองที่สร้างโดย AI
เนื้อหาคำขอ
{
"message": "What are your business hours?",
"session_id": "user_123", // optional
"website_id": 1 // optional
}
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
message |
string | ใช่ | ข้อความของผู้ใช้ที่จะส่งไปยัง AI |
session_id |
string | ไม่ | ตัวระบุเฉพาะสำหรับการสนทนา ใช้ session_id เดียวกันเพื่อรักษาประวัติการสนทนา |
website_id |
integer | ไม่ | ID เว็บไซต์เฉพาะ หากไม่ระบุ จะใช้เว็บไซต์หลักของคุณ |
การตอบกลับ
{
"success": true,
"response": "Our business hours are Monday-Friday, 9 AM to 5 PM EST.",
"session_id": "user_123"
}
ตัวอย่าง (cURL)
curl -X POST https://asyntai.com/api/v1/chat/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message": "What are your business hours?", "session_id": "user_123"}'
ตัวอย่าง (Python)
import requests
response = requests.post(
"https://asyntai.com/api/v1/chat/",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"message": "What are your business hours?",
"session_id": "user_123"
}
)
data = response.json()
print(data["response"])
ตัวอย่าง (JavaScript)
const response = await fetch("https://asyntai.com/api/v1/chat/", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
message: "What are your business hours?",
session_id: "user_123"
})
});
const data = await response.json();
console.log(data.response);
GET /websites/
แสดงรายการเว็บไซต์ทั้งหมดที่เชื่อมโยงกับบัญชีของคุณ
การตอบกลับ
{
"success": true,
"websites": [
{
"id": 1,
"name": "My Website",
"domain": "example.com",
"is_primary": true
}
]
}
ตัวอย่าง (cURL)
curl https://asyntai.com/api/v1/websites/ \
-H "Authorization: Bearer YOUR_API_KEY"
GET /conversations/
ดึงประวัติการสนทนาสำหรับเซสชันเฉพาะ
พารามิเตอร์คิวรี
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
session_id |
string | ใช่ | ID เซสชันที่จะดึงประวัติ |
limit |
integer | ไม่ | จำนวนข้อความสูงสุดที่จะส่งคืน (ค่าเริ่มต้น: 50, สูงสุด: 100) |
การตอบกลับ
{
"success": true,
"session_id": "user_123",
"messages": [
{
"role": "user",
"content": "What are your business hours?",
"timestamp": "2024-01-15T10:30:00Z"
},
{
"role": "assistant",
"content": "Our business hours are Monday-Friday, 9 AM to 5 PM EST.",
"timestamp": "2024-01-15T10:30:01Z"
}
]
}
ตัวอย่าง (cURL)
curl "https://asyntai.com/api/v1/conversations/?session_id=user_123&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /sessions/
แสดงรายการเซสชันแชทล่าสุดของคุณ ใช้เพื่อค้นหา ID เซสชัน ซึ่งคุณสามารถส่งไปยัง /conversations/ เพื่อดึงประวัติข้อความทั้งหมด
พารามิเตอร์คิวรี
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
limit |
integer | ไม่ | จำนวนเซสชันล่าสุดที่จะส่งคืน (ค่าเริ่มต้น: 20, สูงสุด: 100) |
website_id |
string | ไม่ | กรองเซสชันตาม ID เว็บไซต์เฉพาะ |
source |
string | ไม่ | กรองตามแหล่งที่มาของเซสชัน: widget, api, whatsapp, instagram, messenger, gorgias, freshchat, zapier |
การตอบกลับ
{
"success": true,
"sessions": [
{
"session_id": "session_abc123def",
"source": "widget",
"message_count": 5,
"first_message": "What are your business hours?",
"first_message_at": "2024-01-15T10:30:00Z",
"last_message_at": "2024-01-15T10:35:00Z",
"website_domain": "example.com"
}
]
}
ตัวอย่าง (cURL)
curl "https://asyntai.com/api/v1/sessions/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /leads/
ดึงข้อมูลลีดที่รวบรวม — ที่อยู่อีเมลและหมายเลขโทรศัพท์ที่ผู้เยี่ยมชมส่งระหว่างการสนทนาแชท
พารามิเตอร์คิวรี
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
limit |
integer | ไม่ | จำนวนลีดที่จะส่งคืน (ค่าเริ่มต้น: 50, สูงสุด: 100) |
website_id |
string | ไม่ | กรองลีดตาม ID เว็บไซต์ที่ระบุ |
การตอบกลับ
{
"success": true,
"leads": [
{
"session_id": "session_abc123def",
"email": "visitor@example.com",
"phone": "+1234567890",
"page_url": "https://example.com/pricing",
"started_at": "2024-01-15T10:30:00Z"
}
]
}
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
session_id |
string | ID เซสชันแชท ส่งค่านี้ไปที่ /conversations/ เพื่อดูประวัติการแชทฉบับเต็ม |
email |
สตริงหรือ null | ที่อยู่อีเมลที่ผู้เยี่ยมชมให้มา หรือ null หากไม่ได้รวบรวม |
phone |
สตริงหรือ null | หมายเลขโทรศัพท์ที่ผู้เยี่ยมชมให้มา หรือ null หากไม่ได้รวบรวม |
page_url |
สตริงหรือ null | URL ของหน้าที่ผู้เยี่ยมชมกำลังแชท |
started_at |
string | เวลาประทับ ISO 8601 ของเวลาที่เซสชันแชทเริ่มต้น |
ตัวอย่าง (cURL)
curl "https://asyntai.com/api/v1/leads/?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
ตัวอย่าง (Python)
import requests
response = requests.get(
"https://asyntai.com/api/v1/leads/",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={"limit": 20}
)
leads = response.json()["leads"]
for lead in leads:
print(f"{lead['email'] or ''} | {lead['phone'] or ''}")
GET /account/
รับข้อมูลบัญชีและสถิติการใช้งานของคุณ
การตอบกลับ
{
"success": true,
"account": {
"email": "you@example.com",
"plan": "starter",
"messages_used": 150,
"messages_limit": 2500
}
}
ตัวอย่าง (cURL)
curl https://asyntai.com/api/v1/account/ \
-H "Authorization: Bearer YOUR_API_KEY"
มีหลายเว็บไซต์? เอนด์พอยท์ฐานความรู้จะใช้เว็บไซต์หลักของคุณเป็นค่าเริ่มต้น หากคุณมีหลายเว็บไซต์ ให้ส่ง website_id เพื่อกำหนดเป้าหมายเว็บไซต์เฉพาะ คุณสามารถค้นหา ID เว็บไซต์ได้โดยใช้ GET /websites/.
ขีดจำกัดการอัปโหลดรายวัน: การอัปโหลดฐานความรู้ (ข้อความ, URL, สเปรดชีต) มีขีดจำกัดอักขระรายวันตามแผนของคุณ ซึ่งใช้กับเนื้อหาทั้งหมดที่อัปโหลดผ่านเอนด์พอยท์ฐานความรู้ทั้งหมดต่อวัน
| แผน | อักขระ/วัน |
|---|---|
| Starter | 100,000 |
| Standard | 500,000 |
| Pro | 2,000,000 |
GET /knowledge/
แสดงรายการฐานความรู้ของคุณ สิ่งเหล่านี้คือแหล่งเนื้อหาที่แชทบอท AI ของคุณใช้ในการตอบคำถาม
พารามิเตอร์คิวรี
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
limit |
integer | ไม่ | จำนวนรายการที่จะส่งคืน (ค่าเริ่มต้น: 50, สูงสุด: 100) |
website_id |
string | ไม่ | กรองตาม ID เว็บไซต์ (ค่าเริ่มต้นคือเว็บไซต์หลักของคุณ) |
การตอบกลับ
{
"success": true,
"entries": [
{
"id": "abc-123-def",
"type": "text",
"title": "Business Hours",
"description": "Manual text content (150 words)",
"created_at": "2024-01-15T10:30:00Z"
},
{
"id": "ghi-456-jkl",
"type": "url",
"title": "About Us - Example",
"description": "Content from https://example.com/about",
"created_at": "2024-01-14T09:00:00Z"
}
]
}
ตัวอย่าง (cURL)
curl "https://asyntai.com/api/v1/knowledge/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /knowledge/text/
เพิ่มเนื้อหาข้อความแบบกำหนดเองลงในฐานความรู้ของคุณ AI จะใช้สิ่งนี้เพื่อตอบคำถามของผู้เยี่ยมชม
เนื้อหาคำขอ
{
"title": "Return Policy",
"content": "We offer a 30-day return policy on all items. Items must be unused and in original packaging. Refunds are processed within 5-7 business days.",
"website_id": "123"
}
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
title |
string | ใช่ | ชื่อเรื่องสำหรับรายการความรู้นี้ |
content |
string | ใช่ | เนื้อหาข้อความ (อย่างน้อย 10 อักขระ) |
website_id |
string | ไม่ | เว็บไซต์เป้าหมาย (ค่าเริ่มต้นคือเว็บไซต์หลักของคุณ) |
การตอบกลับ
{
"success": true,
"id": "abc-123-def",
"title": "Return Policy",
"chunks_created": 1
}
ตัวอย่าง (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/text/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "Return Policy", "content": "We offer a 30-day return policy..."}'
POST /knowledge/url/
เพิ่มหน้าเว็บลงในฐานความรู้ของคุณ เนื้อหาจะถูกดึงและแยกออกโดยอัตโนมัติ
เนื้อหาคำขอ
{
"url": "https://example.com/faq",
"website_id": "123"
}
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
url |
string | ใช่ | URL ที่จะดึงเนื้อหา |
website_id |
string | ไม่ | เว็บไซต์เป้าหมาย (ค่าเริ่มต้นคือเว็บไซต์หลักของคุณ) |
การตอบกลับ
{
"success": true,
"id": "abc-123-def",
"title": "FAQ - Example",
"url": "https://example.com/faq",
"chunks_created": 5
}
ตัวอย่าง (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/url/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/faq"}'
POST /knowledge/spreadsheet/
อัปโหลดสเปรดชีต CSV หรือ Excel (.xlsx) ลงในฐานความรู้ของคุณ แต่ละแถวจะกลายเป็นรายการความรู้แยกต่างหาก เหมาะสำหรับแคตตาล็อกสินค้า รายการคำถามที่พบบ่อย ตารางราคา และไดเรกทอรี
คำขอ
ส่งเป็น multipart/form-data (อัปโหลดไฟล์) ไม่ใช่ JSON
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
file |
file | ใช่ | ไฟล์ .csv หรือ .xlsx แถวแรกต้องเป็นหัวคอลัมน์ จำนวนแถวสูงสุดต่อการอัปโหลด: Starter 500, Standard 2,000, Pro 10,000 แถวที่เกินจะถูกตัดทิ้ง |
website_id |
string | ไม่ | เว็บไซต์เป้าหมาย (ค่าเริ่มต้นคือเว็บไซต์หลักของคุณ) |
การตอบกลับ
{
"success": true,
"id": "abc-123-def",
"title": "products.csv",
"rows_processed": 15,
"chunks_created": 15
}
ตัวอย่าง (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/spreadsheet/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@products.csv"
DELETE /knowledge/{id}/
ลบรายการฐานความรู้ id สามารถค้นหาได้จากการตอบกลับ GET /knowledge/
การตอบกลับ
{
"success": true,
"message": "Knowledge base entry deleted"
}
ตัวอย่าง (cURL)
curl -X DELETE "https://asyntai.com/api/v1/knowledge/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
เคล็ดลับ: คุณยังสามารถจัดการ webhooks ได้จาก การตั้งค่า API หน้าเว็บโดยไม่ต้องเขียนโค้ดใดๆ
GET /webhooks/
แสดงรายการ webhooks ที่ลงทะเบียนของคุณ
การตอบกลับ
{
"success": true,
"webhooks": [
{
"id": "abc-123-def",
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"is_active": true,
"created_at": "2024-01-15T10:30:00Z"
}
]
}
ตัวอย่าง (cURL)
curl "https://asyntai.com/api/v1/webhooks/" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /webhooks/
ลงทะเบียน webhook ใหม่เพื่อรับการแจ้งเตือนเหตุการณ์แบบเรียลไทม์
เหตุการณ์ที่มี
| เหตุการณ์ | คำอธิบาย |
|---|---|
message.received |
ผู้เยี่ยมชมส่งข้อความและได้รับการตอบกลับ |
conversation.started |
เซสชันแชทใหม่เริ่มต้นแล้ว |
escalation.requested |
AI ทริกเกอร์การส่งต่อไปยังเจ้าหน้าที่ |
takeover.started |
เจ้าหน้าที่เข้าควบคุมเซสชันแชท |
เนื้อหาคำขอ
{
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"website_id": "123"
}
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
url |
string | ใช่ | URL HTTPS สำหรับรับคำขอ POST ของ webhook |
events |
array | ใช่ | รายการเหตุการณ์ที่จะสมัครรับ (ดูตารางด้านบน) |
website_id |
string | ไม่ | เว็บไซต์เป้าหมาย (ค่าเริ่มต้นคือเว็บไซต์หลักของคุณ) |
การตอบกลับ
{
"success": true,
"webhook": {
"id": "abc-123-def",
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"secret": "whsec_abc123...",
"created_at": "2024-01-15T10:30:00Z"
}
}
การตรวจสอบ webhooks: แต่ละ webhook ประกอบด้วย secret (แสดงเฉพาะเมื่อสร้าง) ทุกการ POST ไปยัง URL ของคุณจะมี X-Webhook-Signature ส่วนหัว -- HMAC-SHA256 ของเนื้อหาคำขอที่ลงนามด้วยซีเคร็ตของคุณ
ตัวอย่าง (cURL)
curl -X POST "https://asyntai.com/api/v1/webhooks/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/webhook", "events": ["message.received"]}'
DELETE /webhooks/{id}/
ลบ webhook id สามารถค้นหาได้จากการตอบกลับ GET /webhooks/
การตอบกลับ
{
"success": true,
"message": "Webhook deleted"
}
ตัวอย่าง (cURL)
curl -X DELETE "https://asyntai.com/api/v1/webhooks/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
การตอบกลับข้อผิดพลาด
การตอบกลับข้อผิดพลาดทั้งหมดใช้รูปแบบนี้:
{
"success": false,
"error": "Error message describing what went wrong"
}
| รหัสสถานะ | คำอธิบาย |
|---|---|
400 |
คำขอไม่ถูกต้อง - พารามิเตอร์ไม่ถูกต้องหรือขาดฟิลด์ที่จำเป็น |
401 |
ไม่ได้รับอนุญาต - คีย์ API ไม่ถูกต้องหรือหายไป |
429 |
คำขอมากเกินไป - ถึงขีดจำกัดข้อความสำหรับแผนของคุณแล้ว |
503 |
บริการไม่พร้อมใช้งาน - บริการ AI ไม่พร้อมใช้งานชั่วคราว |
ขีดจำกัดอัตรา
การใช้งาน API ถูกจำกัดตามแผนสมัครสมาชิกของคุณ:
- Free: 100 ข้อความ/เดือน
- Starter ($39/เดือน): 2,500 ข้อความ/เดือน
- Standard ($139/เดือน): 15,000 ข้อความ/เดือน
- Pro ($449/เดือน): 50,000 ข้อความ/เดือน
ต้องการความช่วยเหลือ?
หากคุณมีคำถามหรือพบปัญหา ติดต่อเราได้ที่ hello@asyntai.com.