FLASH X QUEST API
REST API สำหรับทำเควส Discord อัตโนมัติ
ราคา 0.001 บาท / เควส — ตัดจากยอดเงินในระบบ
Base URL: https://flashshop.xyz/api/v1
แนะนำ API
API ให้คุณทำเควส Discord ผ่าน HTTP Request โดยไม่ต้องเปิดหน้าเว็บ เหมาะสำหรับการ integrate เข้ากับบอท, สคริปต์, หรือแอปของคุณ
Content-Type — ทุก request ที่มี body ต้องใช้ Content-Type: application/json
Rate Limit — 60 requests / นาที ต่อ API Key
Response — ทุก response เป็น JSON พร้อม field success: true/false
Authentication
ทุก request ต้องใส่ API Key ใน HTTP Header
Headerค่าหมายเหตุ
x-api-key Required string API Key ของคุณ เช่น vapark-abc123xyz...
x-discord-token Required (เควส) string Discord User Token สำหรับ endpoint ที่เกี่ยวกับเควส
Content-Type Required (POST) application/json ทุก POST request
ตัวอย่าง Header
x-api-key: vapark-abc123xyz456def
x-discord-token: YOUR_DISCORD_TOKEN
Content-Type: application/json
Error Codes
เมื่อเกิด error response จะมี success: false และ code บอกสาเหตุ
MISSING_API_KEY
ไม่ได้ใส่ x-api-key header
INVALID_API_KEY
API Key ไม่ถูกต้องหรือไม่มีในระบบ
API_KEY_DISABLED
API Key ถูกปิดใช้งาน
MISSING_TOKEN
ไม่ได้ใส่ x-discord-token
INVALID_DISCORD_TOKEN
Discord Token ไม่ถูกต้องหรือหมดอายุ
INSUFFICIENT_BALANCE
ยอดเงินไม่พอ
NO_QUESTS
ไม่พบเควสที่ทำได้
QUEST_NOT_FOUND
ไม่พบ index/id ที่ระบุ
RATE_LIMIT
คำขอมากเกินไป (60/นาที)
ORDER_NOT_FOUND
ไม่พบ order_ref
ดึงรายการเควส
GET /api/v1/quests ดึงรายการเควสที่ทำได้จาก Discord Token

ดึงรายการเควสทั้งหมดที่ยังไม่ได้ทำและยังไม่หมดอายุ พร้อมข้อมูลราคาและ balance ปัจจุบัน

Headers
Headerประเภทรายละเอียด
x-api-key RequiredstringAPI Key ของคุณ
x-discord-token RequiredstringDiscord User Token
curl -X GET "https://flashshop.xyz/api/v1/quests" \
  -H "x-api-key: vapark-your-key-here" \
  -H "x-discord-token: YOUR_DISCORD_TOKEN"
import requests

headers = {
    "x-api-key": "vapark-your-key-here",
    "x-discord-token": "YOUR_DISCORD_TOKEN"
}

res = requests.get("https://flashshop.xyz/api/v1/quests", headers=headers)
data = res.json()

if data["success"]:
    print(f"พบ {data['total_quests']} เควส")
    for q in data["quests"]:
        print(f"[{q['index']}] {q['name']} — {q['task_type']}")
const res = await fetch("https://flashshop.xyz/api/v1/quests", {
  headers: {
    "x-api-key": "vapark-your-key-here",
    "x-discord-token": "YOUR_DISCORD_TOKEN"
  }
});
const data = await res.json();

if (data.success) {
  console.log(`พบ ${data.total_quests} เควส`);
  data.quests.forEach(q => {
    console.log(`[${q.index}] ${q.name}`);
  });
}
Response 200
{
  "success": true,
  "balance": 50.00,
  "price_per_quest": 2,
  "total_quests": 3,
  "can_afford": 25,
  "quests": [
    {
      "index": 0,
      "id": "1234567890123456789",
      "name": "Play Game X for 15 minutes",
      "application": "Game X",
      "application_id": "9876543210987654321",
      "task_type": "PLAY_ON_DESKTOP",
      "expires_at": "2025-12-31T23:59:59.000Z",
      "is_enrolled": false,
      "is_completed": false
    }
  ]
}
เริ่มทำเควส
POST /api/v1/quests/start เริ่มทำเควสที่เลือก ตัดเงินทันที
ระบบจะตัดเงินทันทีที่ส่ง request สำเร็จ แล้วรันเควสใน background ตรวจสอบสถานะได้ที่ status_url ใน response
Request Body
Fieldประเภทรายละเอียด
discord_token Required string Discord User Token
quest_indexes Optional* number[] Array ของ index เควส เช่น [0, 1, 2] (จาก GET /quests)
quest_ids Optional* string[] Array ของ quest ID เช่น ["1234...", "5678..."]
* ต้องระบุอย่างใดอย่างหนึ่ง
curl -X POST "https://flashshop.xyz/api/v1/quests/start" \
  -H "x-api-key: vapark-your-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "discord_token": "YOUR_DISCORD_TOKEN",
    "quest_indexes": [0, 1, 2]
  }'
import requests

res = requests.post(
    "https://flashshop.xyz/api/v1/quests/start",
    headers={
        "x-api-key": "vapark-your-key-here",
        "Content-Type": "application/json"
    },
    json={
        "discord_token": "YOUR_DISCORD_TOKEN",
        "quest_indexes": [0, 1, 2]
    }
)
data = res.json()

if data["success"]:
    order_ref = data["order_ref"]
    print(f"ออร์เดอร์: {order_ref}")
    print(f"ตัดเงิน: {data['total_price']} ฿")
    print(f"ตรวจสถานะ: {data['status_url']}")
const res = await fetch("https://flashshop.xyz/api/v1/quests/start", {
  method: "POST",
  headers: {
    "x-api-key": "vapark-your-key-here",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    discord_token: "YOUR_DISCORD_TOKEN",
    quest_indexes: [0, 1, 2]   // หรือ quest_ids: ["id1","id2"]
  })
});
const data = await res.json();

if (data.success) {
  console.log("Order:", data.order_ref);
  console.log("ตรวจสถานะ:", data.status_url);
}
Response 200
{
  "success": true,
  "order_ref": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "quest_count": 3,
  "price_per_quest": 2,
  "total_price": 6,
  "balance_after": 44.00,
  "status": "processing",
  "status_url": "/api/v1/quests/status/a1b2c3d4-...",
  "message": "เริ่มทำเควสแล้ว ตรวจสอบสถานะได้ที่ status_url"
}
ตรวจสอบสถานะเควส
GET /api/v1/quests/status/:order_ref ดูสถานะและผลลัพธ์ของออร์เดอร์
Parameterประเภทรายละเอียด
:order_ref Required string Order Ref จาก /quests/start
?stream=1 Optional query รับ progress แบบ SSE (Server-Sent Events) realtime
curl -X GET "https://flashshop.xyz/api/v1/quests/status/ORDER_REF" \
  -H "x-api-key: vapark-your-key-here"
import requests, time

order_ref = "YOUR_ORDER_REF"
headers = {"x-api-key": "vapark-your-key-here"}

while True:
    res = requests.get(
        f"https://flashshop.xyz/api/v1/quests/status/{order_ref}",
        headers=headers
    )
    data = res.json()
    print(f"สถานะ: {data['status']} — {data['progress']}%")

    if data["status"] in ("completed", "failed"):
        for r in data["results"]:
            icon = "✓" if r["success"] else "✗"
            print(f"  {icon} {r['message']}")
        break

    time.sleep(10)  # poll ทุก 10 วินาที
// SSE: รับ progress realtime (?stream=1)
// หมายเหตุ: EventSource ไม่รองรับ custom headers
// ใช้ query param แทน: ?api_key=...&stream=1

const url = `https://flashshop.xyz/api/v1/quests/status/ORDER_REF?api_key=vapark-...&stream=1`;
const source = new EventSource(url);

source.onmessage = (e) => {
  const data = JSON.parse(e.data);
  if (data.type === "progress") {
    console.log(`${data.questName}: ${data.overallPercent}%`);
  } else if (data.type === "done") {
    console.log("เสร็จแล้ว!", data.results);
    source.close();
  }
};
Response 200
{
  "success": true,
  "order_ref": "a1b2c3d4-...",
  "status": "completed",
  "progress": 100,
  "quest_count": 3,
  "quest_names": ["Play Game X", "Watch Video Y"],
  "price_per_quest": 2,
  "total_price": 6,
  "results": [
    { "success": true,  "message": "Play Game X" },
    { "success": false, "message": "Watch Video Y: Task ไม่รองรับ" }
  ],
  "created_at": "2025-06-01T12:00:00.000Z",
  "updated_at": "2025-06-01T12:05:30.000Z"
}
ค่าของ status
ค่าความหมาย
pendingรอเริ่มต้น
processingกำลังทำเควส — ดู progress จาก field progress (0-100)
completedเสร็จสิ้นทั้งหมด — ดูผลใน results
failedล้มเหลว
ยอดเงิน
GET /api/v1/balance ดูยอดเงินคงเหลือ
curl -X GET "https://flashshop.xyz/api/v1/balance" \
  -H "x-api-key: vapark-your-key-here"
Response 200
{
  "success": true,
  "username": "myusername",
  "balance": 44.00
}
ประวัติออร์เดอร์
GET /api/v1/orders ดูประวัติออร์เดอร์ API ล่าสุด
Queryประเภทรายละเอียด
?limit Optionalnumberจำนวนรายการ (default: 20, max: 100)
curl -X GET "https://flashshop.xyz/api/v1/orders?limit=10" \
  -H "x-api-key: vapark-your-key-here"
Response 200
{
  "success": true,
  "total": 2,
  "orders": [
    {
      "order_ref": "a1b2c3d4-...",
      "status": "completed",
      "progress": 100,
      "quest_count": 3,
      "total_price": 6,
      "created_at": "2025-06-01T12:00:00.000Z"
    }
  ]
}
TrueMoney Wallet API
Endpoint สำหรับรับเงินจากซองของขวัญ (Gift Voucher) เข้าเบอร์โทรศัพท์ที่ระบุ
ค่าธรรมเนียม: 0.10 บาท / รายการที่สำเร็จ
POST /api/v1/tmw รับเงินจากซองของขวัญ

ใช้สำหรับรับเงินจากซองอั่งเปา TrueMoney Wallet โดยระบบจะหักค่าธรรมเนียมจากยอดเงินในบัญชีของคุณ

ParameterTypeคำอธิบาย
phone Required string เบอร์โทรศัพท์ผู้รับเงิน (10 หลัก)
voucher Required string URL ซองอั่งเปา หรือรหัสซอง (v=...)
{
  "phone": "0812345678",
  "voucher": "https://gift.truemoney.com/campaign/?v=abc123def"
}
curl -X POST https://flashshop.xyz/api/v1/tmw \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "0812345678",
    "voucher": "abc123def"
  }'
Response (Success)
{
  "success": true,
  "message": "ได้รับเงินจากซองอั่งเปาแล้วจำนวน 50.00",
  "amount": "50.00",
  "name_owner": "สมชาย ใจดี",
  "fee_deducted": 0.1,
  "balance_after": 149.9
}