ข้ามไปยังเนื้อหา
Preview: API ยังอยู่ระหว่างเปิดใช้ รายละเอียดอาจเปลี่ยนก่อนเปิดจริง ดูความคืบหน้าที่ บันทึกการเปลี่ยนแปลง

API reference v1

ทุก endpoint อยู่ใต้ที่อยู่นี้ (base URL)

https://api.sukson.dev/v1
Method Path ใช้ทำอะไร
GET /v1/me ข้อมูลบอท
GET /v1/me/quota โควตาและแพ็กเกจของบอท
GET /v1/me/quota/consumption ยอดใช้เดือนนี้
PUT /v1/me/commands ตั้งรายการคำสั่ง /command
GET /v1/me/webhook ดู webhook ปัจจุบัน
PUT /v1/me/webhook ตั้ง webhook URL
DELETE /v1/me/webhook เลิกใช้ webhook
POST /v1/me/webhook/test ส่ง ping ทดสอบ
GET /v1/me/chats ห้องที่บอทอยู่
POST /v1/chats/{chat_id}/messages ส่งข้อความ (reply หรือ push)
PATCH /v1/messages/{message_id} แก้ข้อความของบอท
DELETE /v1/messages/{message_id} ลบข้อความของบอท

ไม่มี endpoint สำหรับอ่านประวัติข้อความ บอทเห็นเฉพาะ event ที่ส่งมาถึงตัวเอง

  • ส่ง Authorization: Bearer skbot_... ทุกคำขอ (การยืนยันตัวตน)
  • คำขอที่มี body ต้องส่ง Content-Type: application/json และ body เป็น JSON object เดียว ขนาดไม่เกิน 64 KB
  • ถ้าส่งฟิลด์ที่ endpoint ไม่รู้จัก จะได้ 422 UNKNOWN_FIELD (ระบบไม่ข้ามไปเฉย ๆ) คุณจึงเห็นชื่อฟิลด์ที่พิมพ์ผิดได้เร็ว
  • chat_id เป็น string, message_id เป็นจำนวนเต็มบวก
  • เวลาเป็น ISO 8601 แบบ UTC

ถ้าสำเร็จ คำตอบคือ JSON object ของข้อมูลนั้นเลย ไม่มีอะไรห่ออยู่ข้างนอก

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
X-Request-Id: 01JC0Z8W5T9V3QH2M6K4R7N1PB
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 117
X-RateLimit-Reset: 2
{ "id": "01933b40-1a2b-7c3d-8e4f-5a6b7c8d9e0f", "handle": "weather_bot", "name": "WeatherBot", "status": "active", "commands": [] }

ถ้าผิดพลาด คำตอบเป็น {message, code, details?} พร้อม HTTP status ที่ตรงกับปัญหาเสมอ (ข้อผิดพลาด)

{ "message": "Too many requests; slow down", "code": "RATE_LIMITED", "details": { "retry_after": 3 } }
Header ความหมาย
X-Request-Id id ของคำขอ แนบมาด้วยเมื่อติดต่อทีมงาน จะส่งค่าของคุณเองมาในคำขอก็ได้
X-RateLimit-Limit จำนวนคำขอต่อนาทีของบอท
X-RateLimit-Remaining จำนวนที่เหลือตอนนี้
X-RateLimit-Reset อีกกี่วินาทีจำนวนที่เรียกได้จะกลับมาเต็ม
Retry-After มากับ 429 บอกว่าควรรอกี่วินาทีก่อนลองใหม่