เริ่มต้นอย่างรวดเร็ว

Author profile photo
ทีม Quickex
1 กันยายน 2568
~1 นาทีในการอ่าน

เริ่มต้นอย่างรวดเร็ว

API V1

การยืนยันตัวตน

ในการเข้าถึง API V1 จะใช้โทเค็น JWT ซึ่งสามารถรับได้ 2 วิธี:

รับโทเค็น JWT ผ่านเมธอด /api/v1/users/local/authenticate.

ตัวอย่างคำขอ:

curl -i -X POST "https://quickex.io/api/v1/users/local/authenticate" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "yourPassword",
    "browserFingerprint": "UniqueNumbers"
  }'

แฟล็ก -i จะแสดงส่วนหัวของการตอบกลับ ซึ่งจะมี Set-Cookie: access_token และ Set-Cookie: refresh_token. การตอบกลับจากเซิร์ฟเวอร์ที่คาดหวัง:

HTTP/2 201
date: Tue, 19 Aug 2025 12:33:17 GMT
content-type: text/plain; charset=utf-8
content-length: 2
cache-control: no-store, no-cache, must-revalidate, private
pragma: no-cache
session-id: aca467ef-8644-42a5-a166-8dd0e52b8b93
nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
cf-cache-status: DYNAMIC
report-to: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=iZsdq9Yv4PdbIDn6DzLcuM21w%2FK3GFkDvRb%2Fws9W4WnAi4HEAsKJPuF%2FH1KZN7sE%2FnPJDhEmcT%2FxN8k3uAzd57BiR29gBZ9U8NQ%3D"}]}
server: cloudflare
set-cookie: session_id=aca467ef-8644-42a5-a166-8dd0e52b8b93; Path=/; Max-Age=7200
set-cookie: access_token=...; HttpOnly; SameSite=Lax; Secure; Path=/; Max-Age=21600
set-cookie: refresh_token=...; HttpOnly; SameSite=Lax; Secure; Path=/; Max-Age=1209600
cf-ray: 9719adb17a671382-ARN
alt-svc: h3=":443"; ma=86400

OK

การตอบกลับที่คาดหวังโดยไม่ใช้แฟล็ก -i:

Ok

browserFingerprint สามารถกำหนดเป็นค่าเฉพาะใด ๆ ที่มีความยาวไม่น้อยกว่า 12 ตัวอักษร

ผ่านเว็บไซต์ Quickex

  • เข้าสู่ระบบที่ quickex.io ด้วยวิธีปกติ (อีเมล + รหัสผ่าน).
  • ใน DevTools (Application → Cookies) ค้นหา cookies access_token และ refresh_token.

คำขอแรก

ตัวอย่างคำขอโดยใช้ access token:

curl -X POST \
  "https://quickex.io/api/v1/users/generate-api-key" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  --cookie "access_token={your_access_token}" \
  -d '{
    "name": "MyApiKey",
    "whiteListIp": ["127.0.0.1", "127.0.0.2"],
    "isActive": true
  }'

ตัวอย่างการตอบกลับ:

{"apiId":186,"name":"MyApiKey","isActive":true,...}

API V2

การรับกุญแจ

ในการทำงานกับ Quickex API v2 จำเป็นต้องมีกุญแจคู่: publicKey และ secretKey. สามารถรับได้ 2 วิธี:

  • ผ่านบัญชีผู้ใช้ในเว็บไซต์ ในหมวด «กุญแจ API».
  • ผ่าน API v1 โดยเรียกเมธอด /api/v1/users/generate-api-key หลังจากการยืนยันตัวตน.

วิธีที่ 1. ผ่านบัญชีผู้ใช้

  • เข้าสู่ระบบบัญชีผู้ใช้ที่ quickex.io.
  • ไปที่หน้าข้อมูลส่วนตัว → หมวด «กุญแจ API».
  • สร้างกุญแจใหม่โดยระบุชื่อ และ (ตัวเลือก) รายการ IP ใน whitelistIp.

วิธีที่ 2. ผ่าน API V1

curl -X POST \
  "https://quickex.io/api/v1/users/generate-api-key" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  --cookie "access_token={your_access_token}" \
  -d '{
    "name": "MyApiKey",
    "whiteListIp": ["127.0.0.1", "127.0.0.2"],
    "isActive": true
  }'

ตัวอย่างการตอบกลับ:

{"apiId":165,"name":"MyApiKey","isActive":false,...}

สำคัญ: secretKey จะแสดงเพียงครั้งเดียวเท่านั้น ควรเก็บไว้ในที่ปลอดภัย

การตั้งค่า WhiteListIP (ตัวเลือก)

ระบุรายชื่อ IP ที่เชื่อถือได้ใน whiteListIp เมื่อสร้างกุญแจ

การลงลายเซ็นคำขอ

ทุกคำขอต้องมีส่วนหัวดังนี้:

  • X-Api-Public-Key
  • X-Api-Timestamp
  • X-Api-Signature
Signature = Base64(HMAC_SHA256(timestamp + body + publicKey, secretKey))

ตัวอย่างการสร้างลายเซ็นด้วย Python:

import hmac, hashlib, base64, json, time

public_key = "YOUR_PUBLIC_KEY"
secret_key = "YOUR_SECRET_KEY"

timestamp = str(int(time.time() * 1000))
body_dict = {"currencyTitle": "USDT","networkTitle": "TRC20","address": "THU...V"}
body = json.dumps(body_dict, separators=(',', ':'))
message = timestamp + body + public_key

signature = base64.b64encode(
    hmac.new(secret_key.encode(), message.encode(), hashlib.sha256).digest()
).decode()

print("X-Api-Timestamp:", timestamp)
print("X-Api-Signature:", signature)

คำขอแรก

ตัวอย่างการตรวจสอบที่อยู่:

curl -X POST "https://quickex.io/api/v2/instruments/public/validate-address" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Api-Public-Key: {your_api_key}" \
  -H "X-Api-Timestamp: {timestamp}" \
  -H "X-Api-Signature: {signature}" \
  -d '{
    "currencyTitle": "USDT",
    "networkTitle": "TRC20",
    "address": "THUmkPhry61edcTf79yTioV6292ccsuCjV"
  }'

การตอบกลับ:

true
เช็คลิสต์การผสานรวม
  • สำหรับ v2: สร้างกุญแจ, เก็บ secretKey, ตั้งค่า whiteListIp, ลงลายเซ็นคำขอ.
  • สำหรับ v1: ยืนยันตัวตนและใช้ cookies. สำหรับ public flow เพียงใช้เมธอด /orders/public/create และ /orders/public-info ก็เพียงพอ.


แชร์บทความนี้: