SlotGame API – Public Docs & Live Tester

เอกสาร + หน้าเทส API แบบอินเทอร์แอคทีฟ • รองรับ: /auth/login, /slot_spin, /upload_screenshot, /paytable, /auth/me

1) ตั้งค่าเบื้องต้น

หมายเหตุ: ระบบจะใส่ Authorization: Bearer <token> ให้อัตโนมัติเมื่อเรียก API ที่ต้องล็อกอิน

2) Login – POST /auth/login

รับ username, password แล้วคืน token สำหรับใช้งาน API อื่น ๆ

Status: idle
cURL ตัวอย่าง
curl -X POST {{BASE}}/auth/login \ 
  -H "Content-Type: application/json" \
  -d '{
    "username": "testuser",
    "password": "test1234"
  }'
(รอผลลัพธ์)

3) Spin – POST /slot_spin

ส่ง bet (จำนวนเต็ม ≥ 1) ผ่าน body เท่านั้น. ต้องมี Bearer token. ระบบจะหักเครดิตด้วย bet จากนั้นสุ่มผลลัพธ์ และบวก coin คืนเข้าบัญชี แล้วตอบกลับ credit_balance ล่าสุด

cURL ตัวอย่าง
curl -X POST {{BASE}}/slot_spin \
  -H "Authorization: Bearer {{TOKEN}}" \
  -H "Content-Type: application/json" \
  -d '{
    "bet": 50
  }'
(รอผลลัพธ์)

4) Upload Screenshot – POST /upload_screenshot

อัปโหลดรูปภาพ (ไฟล์ฟิลด์ชื่อ file) เป็น multipart/form-data. ต้องมี Bearer token. ฝั่งเซิร์ฟเวอร์จะรี-encode ภาพ, ลบ metadata และบันทึกชื่อไฟล์เป็นรูปแบบ <username>_YYYYMMDDhhmmss_UUID_RAND.png

ลากไฟล์มาวางที่นี่ หรือใช้ปุ่มเลือกไฟล์ด้านล่าง
cURL ตัวอย่าง
curl -X POST {{BASE}}/upload_screenshot \
  -H "Authorization: Bearer {{TOKEN}}" \
  -F "file=@/absolute/path/to/image.png"
(รอผลลัพธ์)

5) Paytable – GET /paytable

ตารางการจ่าย (ไม่ต้องล็อกอิน)

(รอผลลัพธ์)

แนวปฏิบัติด้านความปลอดภัย

ตัวอย่าง Error Responses

รวม error ที่ API อาจส่งกลับ พร้อมความหมายและตัวอย่าง JSON จริง

⚠️

ต้องเข้าสู่ระบบก่อน

คุณยังไม่ได้ล็อกอิน หรือยังไม่ได้ส่ง Authorization: Bearer <token>

HTTP 401 • Missing Bearer token

{
  "success": false,
  "message": "Missing Bearer token"
}

เซสชันหมดอายุ

โทเคนไม่ถูกต้องหรือหมดอายุ ต้องทำการ Login ใหม่

HTTP 401 • Invalid or expired token

{
  "success": false,
  "message": "Invalid or expired token"
}

ไม่พบบัญชีผู้ใช้

โทเคนชี้ไปยังผู้ใช้ที่ถูกลบหรือไม่มีอยู่จริง

HTTP 401 • User not found

{
  "success": false,
  "message": "User not found"
}
📝

ข้อมูลไม่ถูกต้อง

Body request ไม่ผ่าน schema validation (เช่น ลืมส่ง bet หรือชนิดข้อมูลผิด)

HTTP 400 • Validation failed

{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "Validation failed",
  "validation": {
    "body": {
      "keys": ["bet"]
    }
  }
}
🎲

Bet ไม่ถูกต้อง

ค่า bet ต้องเป็นจำนวนเต็ม ≥ 1

HTTP 400 • Invalid bet

{
  "success": false,
  "message": "Invalid bet"
}
💸

เครดิตไม่เพียงพอ

เครดิตคงเหลือไม่พอสำหรับ bet ที่ส่งมา

HTTP 400 • Insufficient credit

{
  "success": false,
  "message": "Insufficient credit"
}
📂

ไม่ได้อัปโหลดไฟล์

ต้องส่งฟิลด์ชื่อ file ใน multipart/form-data

HTTP 400 • No file uploaded

{
  "success": false,
  "message": "No file uploaded"
}
🖼️

ไฟล์ภาพไม่รองรับ

อัปโหลดได้เฉพาะ PNG / JPEG / WEBP เท่านั้น

HTTP 400 • Unsupported image type

{
  "success": false,
  "message": "Unsupported image type"
}
📏

รูปใหญ่เกินไป

ภาพมีพิกเซลรวมเกินกำหนด (เช่น > 16MP)

HTTP 400 • Image too large

{
  "success": false,
  "message": "Image too large"
}
🚫

อัปโหลดไม่สำเร็จ

เกิดข้อผิดพลาดในการบันทึกไฟล์

HTTP 400 • Upload failed

{
  "success": false,
  "message": "Upload failed"
}
⏱️

อัปโหลดถี่เกินไป

ระบบจำกัดการอัปโหลดบ่อยเกินช่วงเวลา

HTTP 429 • Too many uploads, slow down.

{
  "success": false,
  "message": "Too many uploads, slow down."
}
🌊

ยิงคำขอถี่เกินไป

ระบบป้องกัน rate limit ทำงาน

HTTP 429 • Too many requests, please try again later.

{
  "success": false,
  "message": "Too many requests, please try again later."
}
💥

เซิร์ฟเวอร์ผิดพลาด

เกิดข้อผิดพลาดภายในระบบ

HTTP 500 • Server error

{
  "success": false,
  "message": "Server error"
}