شروع سریع
API V1
احراز هویت
برای دسترسی به API V1 از توکن JWT استفاده میشود که به دو روش قابل دریافت است:
دریافت توکن 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 را هر مقدار یکتای حداقل ۱۲ کاراکتری قرار دهید.
از طریق وبسایت Quickex
- به صورت معمول (ایمیل + رمز عبور) وارد quickex.io شوید.
- در DevTools (Application → 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. این کلیدها به دو روش قابل دریافت هستند:
- از طریق حساب کاربری در وبسایت در بخش «کلیدهای API».
- از طریق API v1 با فراخوانی متد
/api/v1/users/generate-api-keyپس از احراز هویت.
روش ۱. از طریق حساب کاربری
- به حساب کاربری خود در quickex.io وارد شوید.
- به صفحه پروفایل → بخش «کلیدهای API» بروید.
- یک کلید جدید ایجاد کنید و نام و (اختیاری) لیست IPها را در
whitelistIpمشخص کنید.
روش ۲. از طریق 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-KeyX-Api-TimestampX-Api-Signature
Signature = Base64(HMAC_SHA256(timestamp + body + publicKey, secretKey))
نمونه تولید امضا در پایتون:
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: احراز هویت کرده و از کوکیها استفاده کنید. برای جریان عمومی متدهای
/orders/public/createو/orders/public-infoکافی هستند.